在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8258|回复: 20

[求助] 夏宇闻书上的一个例子说是模块会不稳定

[复制链接]
发表于 2013-5-6 23:25:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
书上说,假设复位信号已从1变为0,且例中上面的always块的有效时钟沿比下面always块的时钟沿早几个皮秒到达,则y1和y2都会取1.。反之,如果下面always块的有效时钟沿早,则y1和y2都取0。会造成模块不稳定。。。。。。。这是为什么啊?
module fboscl(y1,y2,clk,rst);
output y1,y2;
input clk,rst;
reg y1,y2;

always@(posedge clk or posedge rst)
if(rst)y1=0;
else y1=y2;

always@(posedge clk or posedge rst)
if(rst)y2=1;
else y2=y1;
endmodule
========================《Verilog数字系统设计教程》p195
发表于 2013-5-7 13:27:08 | 显示全部楼层
但从条件上分析, 复位后,在没有发生有效时钟沿时, y1 = 0, y2 = 1;
case 1: 上面时钟先来, 所以上面先动, y1 <= y2, 因为y2还是1, 所以y1 也变成1
case 2: 下面时钟先来, 所以下面先动, y2 <= y1, 因为y1还是0, 所以y2 也变成0

这个模块也就无所谓什么稳定不稳定的问题,只是初始状态有点随机。
因为模块名字fboscl, 估计是模拟oscillator, osc初始状态随机,这是正常的。
发表于 2013-5-7 23:00:58 | 显示全部楼层
当寄存器的Tco=0,数据路径延时=0时,你说的情况就可能会发生。但是这种假设有意义吗?CycloneII的LE_FF的Tco是300ps多。
发表于 2013-5-8 14:18:32 | 显示全部楼层
什么乱七八糟的,现在的教材真是乱来,复位信号使能无意义,释放才有意义,所以释放都考虑同步释放复位,这个例子无任何实际意义
发表于 2013-5-8 22:23:09 | 显示全部楼层
不客气地说,夏宇闻根本就是个江湖骗子……
他写的书乱七八糟,错误百出。即时写对的部分也有很多风格上是有问题的。
发表于 2013-5-9 00:30:37 | 显示全部楼层
回复 2# mipsgreen

您说的很对,刚刚特意查了一下原书,确实是一个反馈振荡器的例子,但是书中已经很明确的写了,这个例子是用的阻塞赋值,下面还有一个非阻塞赋值的例子,两个例子作对比是为了说明阻塞赋值与非阻塞赋值的差别的,

楼主只拿出来一半让人解释原因,容易让人引起误会


回复 5# orlye

您说的也还算是符合事实.......夏先生的书代码风格确实不敢恭维,书中错误也着实不少......
但这个江湖骗子恐怕有些过了吧,至少我写信给夏先生,不过就是一封邮件,一二百字,反映一些书中错误和问题,顺便有些许讨教,却时常收到了上千字的回复,话语也算中肯和耐心,着实让我有点受宠若惊
至于错误,夏先生说年纪大了,部分翻译编写非本人亲自所为,校审也难免有所疏忽,再加上出版社排版和印刷问题,确实造成很多错误,对读者造成的不必要的困扰,深表歉意
虽然夏先生的书阅读起来确实会有各种不适应的感觉,我也不例外,但至少我觉得夏先生将近古稀之年还坚持翻译最新的国外书籍资料,这份心意还是值得肯定的

回复 4# lordlion

至于您么,八个字:管中窥豹可见一斑
什么叫无意义?正如前面所说,为了对比说明阻塞赋值与非阻塞赋值的区别,以及后面提倡时序逻辑用非阻塞赋值,组合逻辑用阻塞赋值,而有意引入的一个阻塞赋值会造成竞争冒险的例子,
您要是很有本事,是不是也写一本造福广大中国读者的教材出来?一定买一本拜读下
发表于 2013-5-9 07:59:33 | 显示全部楼层
回复 6# changan1216

好吧,我收回他是江湖骗子的说法。
我只是看过一些他的书,不了解他的人。
如果说他是老学者的话,那也可以理解了。
只能说,他学的那套verilog,无论观念还是风格,跟现在主流的数字设计推荐的verilog风格,已经相差很远很远。
客观地说吧,他自己写的书真心不推荐看了,风格有问题,错误也多(不是排版印刷错误,本来就是错了)。
他参与翻译的一些外国书还可以。

就拿lz的这个例子来说,既然书名是《Verilog数字系统设计教程》,举一个模拟oscillator的例子,说实话我同意4楼的想法,确实挺奇怪的。
因为第一、数字电路设计不会用verilog搭oscillator,这个例子没什么现实意义;第二、数字电路会有工具保证setup和hold时序,lz所说的这个时钟早来几ps就怎样怎样的情况在实际电路根本不会出现。
我不清楚书上这个例子想帮助大家理解什么概念,个人觉得,如果目标是“verilog数字系统设计”的话,这个例子无论帮助你理解什么概念都是欠妥的。

我不知道你是学生还是工作了。如果你是学生的话,我只能说,以现在的高校教学,你先这么学着吧,以后到了公司里,再慢慢体会学校里学的东西哪些是错的。
发表于 2013-5-9 09:42:40 | 显示全部楼层
本帖最后由 lordlion 于 2013-5-9 09:45 编辑


回复  changan1216

至于您么,八个字:管中窥豹可见一斑
什么叫无意义?正如前面所说,为了对比说明阻塞赋值与非阻塞赋值的区别,以及后面提倡时序逻辑用非阻塞赋值,组合逻辑用阻塞赋值,而有意引入的一个阻塞赋值会造成竞争冒险的例子,
您要是很有本事,是不是也写一本造福广大中国读者的教材出来?一定买一本拜读下
changan1216 发表于 2013-5-9 00:30



呵呵 可怜的机械的教条主义的受害者,你是做设计的吗,有verilog tape-out的chip吗,把你这个所谓的例子电路丢到DC里看看什么结果,这就是中国写verilog的作者大部分的通病,忽略了硬件设计语言的本质,纠结在语法的小技巧里,十分怀疑这些人是否真的干过设计,看书的风格完全是从C语言跑出来的,甚至还见过直接把verilog 的IEEE标准拿出来直接翻译就当教材的,说他们是江湖骗子都是轻的,完全误人子弟。等你真干了设计,就会发现这些完全毫无意义。
写书就没什么必要了,我写的教材在公司内部做新人培训资料,你是没幸观摩了。
发表于 2013-5-9 10:51:53 | 显示全部楼层
本帖最后由 changan1216 于 2013-5-9 11:04 编辑

回复 7# orlye


已毕业有些时日,马上就三字头了

其实楼主举得这个例子的问题,在原书中是被放在深入理解阻塞赋值与非阻塞赋值一章,

夏先生在该章开始就已经说明,原型是国外的一篇论文,该论文作者是站在对综合器和仿真器内部原理深入理解的基础上写的,
至于采用振荡器这个例子,可能原文就是如此吧,也仅仅是为了解释阻塞和非阻塞的区别和可能造成的影响,而举得一个并不合理的例子
通过阅读全文,可以发现整篇内容充斥着各种阻塞和非阻塞使用的实例,有合理的,也有很多实例,正向楼主所举的例子一样,是不合理的,会引起错误和竞争冒险,并从综合器和仿真器的内部原理部分解释了这些不合理甚至错误的产生原因,也多次强调即便类似这样的描述或许可以生成正确的电路,但依然可能导致前后仿真的差异,是不建议不提倡甚至是应当避免的

夏先生也说了翻译成中文并加入自己的理解编写而成,是希望在更深入的层次上理解阻塞与非阻塞赋值
另外该章节应该算是书中比较靠后的部分了,我个人觉得,对于初学者而言,可能都还不明白综合与形成实际电路的概念,这章的内容并不适合初学阅读,谨记组合逻辑用阻塞赋值,时序逻辑用非阻塞赋值就可以了,等对FPGA和硬件模型的描述有了一定了解以后再来阅读比较合适

最后想说的是,就现在的情况来看,夏先生的书确实不适合初学者阅读,错误不少,内容也稍显枯燥,再说多年前的书了,咱们也就别要求什么与时俱进了......
对于初学者,我觉得特权的书也还是不错的,至少图文并茂,有例程代码还有配套视频,可以板级验证实现,学起来能带动兴趣也就不觉得枯燥了,还有先锋,也还有黑金的那些事儿事儿事儿事儿和瞎搞不负责的那些笔记等等,活在现在这个时代,吸收着前人的经验,也是一件幸福的事~
可是,反过来,倒退十年?那个年代恐怕国内都没多少人用verilog吧,能找到这样一本(现在看来并不好的)中文书来看,已经是莫大的知足了

想看新东西,正如您所说,看些夏先生的中译版或者直接拜读英文原版,或者直接看厂商手册就好了

ps:中国教育制度,我也只能说呵呵了,另外夏先生恐怕是我见过的高校教师当中对当今教育制度鄙视至极的一位了,误导读者还是什么的暂且不说,至少以他的名望,貌似到退休都没有被评上博导,也能说明一些问题吧
发表于 2013-5-9 11:01:52 | 显示全部楼层
特意试了“<=”和“=”。Quartus II 11.0sp1,综合后的RTL电路和源码如下:
blk.png
nblk.png
blk_1a.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-18 07:27 , Processed in 0.028912 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表