作者zxvc (众生都是未来佛)
看板Electronics
标题Re: [心得] verilog code 语法心分享
时间Mon May 2 13:21:14 2011
※ 引述《Zephyr750 (红莲西风750)》之铭言:
: ※ 引述《Zephyr750 (红莲西风750)》之铭言:
: : 先说我不是高手!但是在verilog中略有心得
: : PTT的C_CPP版得知Programing版
: : 在Programing版讨论HDL串中发现此版
: : 小小的浏览一下发现对於verilog有很多讨论
: : 就想在此与版友分享
: : ----------------癈话完毕--------------------
: 吃光光
: : 以上,应该可以应付很多新手观念上模糊的问题了!
: : 之後只要依一开始讲的方向去做,合成完看RTL、synthesis report的时间估计
: : 以及档案之间的变化,慢慢的就可以成为高手了!
: : 而合成的过程也可以在coding时掌握住!也就有写元件的感觉了....
: : 在那时,如果有人问你,你可以说「我不是高手!不过略懂..」
: : 跟别人分享心得,互相成长!
: 本篇完全只是想补足之前随手写的一些资料
: 以全华翻译的《Verilog HDL》(中文本)做为参考资料
: 1. = 与 <=(P.7-9)
: =:依序执行
: <=:安排执行顺序不受叙述前後位置影响
想真的彻底了解=(blocking assignment)与<=(nonblocking assignment)的差异,
要去看Verilog/SystemVerilog standards的scheduling演算法,
不然凭一些经验去归纳的结论往往似是而非。
举个例,上面说"<=:安排执行顺序不受叙述前後位置影响",
我举个反例:
reg a;
initial begin
a <= 0;
a <= 1;
end
与
reg a;
initial begin
a <= 1;
a <= 0;
end
前面两个模拟结果a最後的值会不一样,前者应该总是1、後者应该总是0,
所以<=执行顺序"会"受叙述前後位置影响。
blocking与nonblocking assignments的scheduling我之前也在板上提到过了,
有兴趣请见:
#1CSx2MIh
不过要叫Verilog初学者就去看scheduling好像有点难度...
: 2. ~ 与 !(P.6-10)
: ~:逻辑上的"NOT"
: !:逐位元相反(1的补述)
上面两个弄反了,~才是逐位元相反,...
--
信佛的人要知道:佛绝不会说谎。但请把握时光。
法灭尽经:
http://www.cbeta.org/result/normal/T12/0396_001.htm
共勉之。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.71.31
※ 编辑: zxvc 来自: 140.115.71.31 (05/02 13:21)
1F:→ Zephyr750:对不起!我弄反了!^^\ 05/02 15:56
2F:→ Pash77:加油 05/07 03:31