请教 VERILOG 并串转换程序问题
时间:10-02
整理:3721RD
点击:
module bt(xin,clk,fdata,start);
input clk;
input[1:0] xin;
input start;
output fdata;
wire[1:0] xin;
reg fdata;
integer qx=0;
always @(start or clk)
begin
if(!start)
fdata<=0;
else
begin
if(clk==1)
begin
fdata<=xin[qx];
qx<=(qx+1)%2;
end
end
end
endmodule
出错结果 现象: 输出串行数据一部分为未知数据XXXX?请高手看看哪里出问题了
input clk;
input[1:0] xin;
input start;
output fdata;
wire[1:0] xin;
reg fdata;
integer qx=0;
always @(start or clk)
begin
if(!start)
fdata<=0;
else
begin
if(clk==1)
begin
fdata<=xin[qx];
qx<=(qx+1)%2;
end
end
end
endmodule
出错结果 现象: 输出串行数据一部分为未知数据XXXX?请高手看看哪里出问题了
没人回答。
学习!
无语了!
多看看书,想一想吧
你真把verilog当编程了。
这是啥鸟程序,XIN[]也没初值,仿真看个樢
有同步的clock信号,就不要用电平敏感的描述,应该用边沿敏感的方式,你中间的那一段应该改成这样:
reg qx;
always @(negedge start or posedge clk) begin
if(!start) begin
fdata<=0;
qx<=0;
end
else begin
fdata<=xin[qx];
qx<=qx+1;
end
end
最好写成沿触发
xuexizhong
用8楼的!
好好看看verilog。
if(clk==1) 去掉,因为clk已经出现在敏感列表中了
呵呵。
start信号是一个局部信号,放在敏感列表是一个不好,或者错误的写法
