找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1135|回复: 3
打印 上一主题 下一主题

关于阻塞赋值的疑问

[复制链接]

2

主题

6

帖子

-8977

积分

未知游客(0)

积分
-8977
跳转到指定楼层
1#
发表于 2009-12-25 23:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1E币
[例1]. 用阻塞赋值的反馈振荡器% N" }4 y1 ^2 T" A$ l+ H
    module fbosc1 (y1, y2, clk, rst);
( B, Q) i8 a4 ^$ D& C2 U/ v      output y1, y2;8 s, b$ e% g* B$ \
      input  clk, rst;
  L* B0 q! n! M+ \* i+ I/ s      reg    y1, y2;
3 `$ u! ~0 P& N. v3 H) C; F$ t" R2 p3 h! X! l( J6 l
      always @(posedge clk or posedge rst)1 w+ q1 }: Q% A& L. R' s6 w
        if (rst) y1 = 0;  // reset$ ~. i0 U' Z* e9 J  t
        else     y1 = y2;
- I( i" t' u# y# T
2 V0 G/ q; n+ X7 c. ?- P      always @(posedge clk or posedge rst)5 R0 n# h. ]" \2 k0 X
        if (rst) y2 = 1;  // preset. ?1 A0 M; o' D; t% s& M
        else     y2 = y1;; |8 P* @. ?$ W/ k  S
    endmodule2 f+ x+ I$ m' n% }
    # n; C- L1 ?8 w+ j- g% L4 E
依据IEEE Verilog标准,这两个always块可以以任意的次序执行。如果在reset后第一个块先被执行,结果将是y1和y2都获得赋值1;如果在reset后第二个块先被执行,结果将是y1和y2都被赋值0。这个例子清楚地展示了一个Verilog竞争条件地产生。
- X1 N2 K6 e. J0 t8 q! c5 m! a9 ~7 r0 F1 y; F' r; n6 Z" g0 f: e7 k
很多书上都用来这个例子,我google中翻了10多页,也都是这么说的,并且没人质疑,那看来是很对的,而且也没人问为什么,那说明这是一个很简单的不能再简单的例子了。可是我愣是没想通。希望各位能指点指点,在此先谢过了。4 e4 }2 C: p1 }0 w* b

; I3 {. E% M7 @; ^  {/ a4 C如果第一个先被执行,那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。”
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

51

主题

429

帖子

6391

积分

五级会员(50)

Rank: 5

积分
6391
2#
发表于 2009-12-25 23:39 | 只看该作者
拙见:6 S( C( w& a% }2 v; w5 X
“如果第一个先被执行,那if (rst),就执行y1=0,然后,第二个块,if (rst) y2 =1...”; b; l: c7 @* ]& O- T: t. H" b* f
是reset后先执行和后执行,reset期间是保持复位状态,原文是:
- b7 h! f: l. w0 N% x) u“如果在reset后第一个块先被执行,结果将是y1和y2都获得赋值1;如果在reset后第二个块先被执行,结果将是y1和y2都被赋值0。”

2

主题

6

帖子

-8977

积分

未知游客(0)

积分
-8977
3#
 楼主| 发表于 2009-12-27 23:47 | 只看该作者
非常感谢!!一字只差,我郁闷了好长时间。如果在reset 之后,第一个块先被执行。如果在reset结束后,第一个块先被执行。* r5 X" P& {% R- o) c) n
这样,就更容易了,呵呵!!
http://www.osplay.org

51

主题

429

帖子

6391

积分

五级会员(50)

Rank: 5

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-21 23:02 , Processed in 0.060875 second(s), 33 queries , Gzip On.

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

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

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