微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 综合技术问答 > EDA使用问答 > verilog语言

verilog语言

时间:03-14 整理:3721RD 点击:
求助

小弟乃verilog新手,以下这个程序不知道错误在哪,仿真就是不正确呢,表现为q的值始终为0,求各位大仙多多指教!
module zdws(q,clk,clr,plus,minus);
input clk,clr,plus,minus;
output[7:0]q;
reg[7:0]q;
always@(posedge clk or negedge clr)
begin
if(!clr) q<=8'h00;
else
case({plus,minus})
2'b10:begin//递增
if(q[3:0]==4'd9)
begin
q[3:0]<=4'd0;
if(q[7:4]==9)q[7:4]=4'd0;
else q[7:4]<=q[7:4]+1'b1;
end
else q[3:0]<=q[3:0]+1'b1;
end
2'b01:begin//递减
if(q[3:0]==4'd0)
begin
q[3:0]<=4'd9;
if(q[7:4]==0)q[7:4]=4'd9;
else q[7:4]<=q[7:4]-1'b1;
end
else q[3:0]<=q[3:0]-1'b1;
end
2'b11:q<=q;//暂停
default:q<=4'bx;
endcase
end
endmodule

你的testbench中{plus,minus}是不是始终等于2'b11

这个要看你的仿真程序了。

是啊,要看你的testbench了



我用的是波形仿真,设置的值是plus始终为1,minus值始终为0.这个时候仿真结果q的值始终为0,怎么回事啊?



我用的是波形仿真,q 的值始终是0,怎么回事?

看看clean是多少。 另外看看逻辑关系对么。 看你的begin end块总觉得怪怪

上一篇:Multisim2001使用教程
下一篇:最后一页

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top