找回密码
 注册
关于网站域名变更的通知
查看: 1751|回复: 3
打印 上一主题 下一主题

关于阻塞赋值的疑问

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-12-25 23:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1金币
[例1]. 用阻塞赋值的反馈振荡器% u3 m) o( ^3 H- r
    module fbosc1 (y1, y2, clk, rst);
1 b6 z6 e& t- L, v      output y1, y2;
* w$ q4 k# E0 B, D- \6 a      input  clk, rst;, ^; l: ^; l- X4 P3 C) K2 O/ e
      reg    y1, y2;' y7 h" a1 K' e+ I
1 M9 S" a4 P$ ~1 ^
      always @(posedge clk or posedge rst)
+ G/ g) j8 Q  b        if (rst) y1 = 0;  // reset3 |: }- X; p, i) e* f  L5 U: O
        else     y1 = y2;
. A4 `* i3 M: J
5 k/ l* D. ?: e- Z1 b3 M      always @(posedge clk or posedge rst)
( w! k- X; c! i$ {+ Y( C) h        if (rst) y2 = 1;  // preset
( C4 L5 V, J, b) l' p7 Z+ }        else     y2 = y1;2 b8 H3 w- v- Q+ a
    endmodule
; A1 f3 g( L- o- U    5 z+ B: p7 a3 R5 j- B
依据IEEE Verilog标准,这两个always块可以以任意的次序执行。如果在reset后第一个块先被执行,结果将是y1和y2都获得赋值1;如果在reset后第二个块先被执行,结果将是y1和y2都被赋值0。这个例子清楚地展示了一个Verilog竞争条件地产生。0 F; C( R4 Y0 x5 L

7 `5 V0 A* v: A9 s0 Q. J5 H( Q很多书上都用来这个例子,我google中翻了10多页,也都是这么说的,并且没人质疑,那看来是很对的,而且也没人问为什么,那说明这是一个很简单的不能再简单的例子了。可是我愣是没想通。希望各位能指点指点,在此先谢过了。; j9 A2 N! @! V3 X& g) D" Z

+ l" d. {! R  B7 i/ \如果第一个先被执行,那if (rst),就执行y1=0,然后,第二个块,if (rst) y2 =1,为啥不对呢?谁能告诉我,我哪里错了呢?谢谢!!!!

最佳答案

查看完整内容

拙见: “如果第一个先被执行,那if (rst),就执行y1=0,然后,第二个块,if (rst) y2 =1...” 是reset后先执行和后执行,reset期间是保持复位状态,原文是: “如果在reset后第一个块先被执行,结果将是y1和y2都获得赋值1;如果在reset后第二个块先被执行,结果将是y1和y2都被赋值0。”

该用户从未签到

2#
发表于 2009-12-25 23:39 | 只看该作者
拙见:
5 p4 r+ F: i3 g# D“如果第一个先被执行,那if (rst),就执行y1=0,然后,第二个块,if (rst) y2 =1...”! O% Z0 \2 O9 F3 [+ v
是reset后先执行和后执行,reset期间是保持复位状态,原文是:
1 n& Q5 P' b5 p/ E9 w8 Z: u( @9 O# N“如果在reset后第一个块先被执行,结果将是y1和y2都获得赋值1;如果在reset后第二个块先被执行,结果将是y1和y2都被赋值0。”

该用户从未签到

3#
 楼主| 发表于 2009-12-27 23:47 | 只看该作者
非常感谢!!一字只差,我郁闷了好长时间。如果在reset 之后,第一个块先被执行。如果在reset结束后,第一个块先被执行。4 a; x" z# O9 |) @
这样,就更容易了,呵呵!!

该用户从未签到

4#
发表于 2009-12-28 12:03 | 只看该作者
一个人有时候是挺郁闷的,这就是论坛的好处,多交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-19 16:35 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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