搜索
bottom↓
回复: 5

求助!!关于verilog 里非阻塞赋值的理解偏差的问题!!

[复制链接]

出0入0汤圆

发表于 2012-4-27 10:48:24 | 显示全部楼层 |阅读模式
非阻塞赋值(如b <= a)书上讲解如下:
1、在语句块中,上面语句所赋的变量值不能立即就为下面的语句所用;
2、块结束后才能完成这次操作,而所赋的变量值是上一次赋值得到的;
3、在编写可综合德尔时序逻辑模块时,这是最常用的赋值方法

而在我实际运用中,可能是理解偏差,总是有些疑问,如下面的例子

exp1
     always @(posedge clk)
        begin
            b <= a;
            c<= b;
       end
always 块中用了非阻塞赋值方式,定义了两个reg型信号b和c,clk信号的上升沿到来时,b就等于a,c就等于b,这里用到了两个触发器。如若在此clk之前,a为1,b为0;经此clk到来后,b被赋值1,c等于b,但这个b是此clk到来前的b,为0,也就是在语句块中,上一条语句所赋的值不能立即被下面的语句所用,实际上就是先计算更新RHS的值,在此语句块结束后才更新LHS的值。。这些都能理解但是后面的一段代码我就有点理解上的问题了

exp2

always @(posedge clk or negedge rst_n)
  if (!rst_n)  begin
       num < = 4'd0;
       state<= A;
   end
  else begin
       num <= num + 1 ;
      case (state)
            A:     begin
                      语句1;
                   end
            B:    begin
                      语句2;
                   end
           C:     begin
                      语句3;
                   end

     endcase

end
首先复位后,num为0,state = A;
当来一个clk时,执行else 后面的begin  .....   end语句块
问题是,我觉得来第一个clk时,首先更新RHS的num+1;但在此clk中语句块中num的值仍应该为0,所以因为state=A,所以执行语句1时,num的值应为0,,!!
然而在实践中时发现在A中,num 是为1  ?!!
很不解,望高手指导!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-4-27 11:01:37 | 显示全部楼层
理解没错啊。是别的问题吧?

出0入0汤圆

发表于 2012-4-27 11:01:45 | 显示全部楼层
数字电路里面有两种电路: 组合逻辑\时序逻辑,把这两个搞清楚了,基本就差不多了;

出0入0汤圆

发表于 2012-4-27 11:02:44 | 显示全部楼层
不用理解,我做VHDL,设计中根本没用阻塞非阻塞概念

出0入0汤圆

发表于 2012-4-27 14:48:32 来自手机 | 显示全部楼层
理解没问题,把你的代码其他关于num的语句给一下。

出0入0汤圆

发表于 2012-4-27 16:38:12 | 显示全部楼层
在clk上升沿的这一刻,num就变成1了。而不是等什么语句块执行完才更新和变化的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表