如always@(posedge clk)
begin a<=b;
b<=c;
c<=d;
end
就是在传值的过程中为什么不会出错,如c把值传给b的时候,b也在传值给a,这样就可能使得c的值把b的值覆盖掉了而出现错误啊,寄存器间的传值是通过wire连接的吧,没有什么缓存器来缓存中间值啊,求大神指点
verilog中关于寄存器间值传递的问题
答案:2 悬赏:70
解决时间 2021-03-02 02:37
- 提问者网友:全員惡人
- 2021-03-01 23:15
最佳答案
- 二级知识专家网友:猎杀温柔
- 2021-03-01 23:39
1、首先,verilog是硬件描述语言,不是软件编程语言,所以没有“执行”的概念,也没有“默认初始值”的概念; 2、你这几句描述的是一个组合逻辑循环(combinational Loop),这是硬件设计里的错误,初学者往往会出现这种错误; 3、如果非要把你的东西“转化”为硬件的话,如下图所示:
全部回答
- 1楼网友:邪性洒脱
- 2021-03-01 23:47
应该是你仿真的问题,这个是有波形的。data只有一位,所以一直在翻转。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯