【小白求问】verilog仿真全都是x怎么破

一介愤青 2018-04-22 02:56:42
代码大概是这样的……
module adder(a,b,c,c_);
input [3:0] a,b;
output[4:1] c;
input c_;
reg [4:1] c;
reg [3:0] g,p;
genvar i;
generate
for(i=0;i<=3;i=i+1)
begin
assign g[i]=a[i]&b[i];
assign p[i]=a[i]|b[i];
end
assign c[1]=g[1]+(p[i]&c_);
for(i=2;i<=4;i=i+1)
assign c[i]=g[i]|(c[i-1]&p[i]);
endgenerate
endmodule

也不报错,但是仿真结果不论输入还是输出都是x……
初始化是初始化了的!
...全文
12456 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
神农氏 2019-03-31
  • 打赏
  • 举报
回复
如果只是学习仿真,你需要在你的module加入initial 块。在其中做reg的初始化。
神农氏 2019-03-31
  • 打赏
  • 举报
回复
真正做工程的时候,一般每个模块都会加入一个reset的输入信号。并且在这个信号拉低的时候对所有REG做初始化。然后在reset拉高的时候才处理业务逻辑。
fly 100% 2018-12-22
  • 打赏
  • 举报
回复
x一般是不可预知态,这个根据实际硬件情况确定的,不一定就出问题
FPGA探索者 2018-11-11
  • 打赏
  • 举报
回复
test bench里initial给初始化的值
我是Trustintruth 2018-07-08
  • 打赏
  • 举报
回复
在你的方针文件中没有仿时钟或者仿时钟没有初始值或者没有写激励吧
liudehuaabcdef 2018-05-14
  • 打赏
  • 举报
回复
不要太相信仿真,经验是XILinx的仿真不可靠
qq_41146420 2018-04-30
  • 打赏
  • 举报
回复
首先test_bench要写对。 其次在点击simulate behavioral model时,一定要在hierarchy中先选中你的test_bench模块。
wang_bingo 2018-04-25
  • 打赏
  • 举报
回复 1
亲,你的testbench呢,,仿真时未赋初值的情况下一般都是X(不定值)或者Z(高阻态)。

6,156

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧