刚开始学verilog,请问#号在verilog中都能表达什么意思?

我知道放在左边的时候好像是表达延时的,还有别的情况的时候表达别的意思的么?比如放在右边<=#,求大侠解答,最好有例子有讲解
比如在blocking里 比如#15 reg_a[2]=1'b1; 和 reg_a[2]<=#15 1'b1;有什么区别,请具体讲解一下

井号就是延迟的意思,无论在哪里,但是不能被综合,只对仿真的时候可以产生延时效果追问

不能被综合是什么意思?比如在blocking里 比如#15 reg_a[2]=1'b1; 和 reg_a[2]<=#15 1'b1;有什么区别,请具体讲解一下

追答

不能被综合就是不能产生实际的电路结构,只是仿真的时候能用到看个波形延迟什么的。
#15 reg_a[2]=1'b1;
reg_a[2]<=#15 1'b1;
这两条语句你仔细看是有差别的,你看第一个是=号,第二个是<=号,第一个叫阻塞赋值,等号右边的值计算完马上赋给左边,第二个叫非阻塞赋值,等号右边的数先进行运算,但是不赋值,等要程序代码块都结束了再赋值,这个你要看书了。至于#15的位置,完全就是两个语句的事,你就这么写就行,仿真延迟没有差别。

追问

谢谢你,再问最后一个问题,请问你看的是哪本书呢?我现在在国外好多中文书不好买,有没有电子版的书呢?你是怎么学习这个的呢?

追答

这样 你留个邮箱,我给你电子版的,北航夏宇闻老师的(国内目前Verilog最有名的,但是我真没觉得是最好的),我还有其他的一些建模的书,个人觉得很有用。我要去上课,今晚之前一并发给你。

追问

好的好的 [email protected] 这是我qq,希望成为朋友

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-27
不能被综合就是不能做成硬件,只能当软件仿真。
第2个回答  2012-03-27
也是延时,自己仿真下
相似回答