微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于Verilog语言的请教

关于Verilog语言的请教

时间:10-02 整理:3721RD 点击:
比如两个管脚1,2都设置成了output,我疑惑的是在什么情况下设置成wire型和reg型?先在这里谢谢了!

需要在过程块always或initial中赋值的output 定义为reg型,而在连续赋值语句assign中赋值的output定义为wire型

楼上所说,对头



    你好,谢谢你的回复!我的疑问是:什么时候该给这个output信号连续赋值呢?

当设计使用组合逻辑输出时,定义输出管脚为wire。使用时序逻辑输出时,为reg型。
但请注意一点:设计中会使用always块实现组合逻辑功能,这时候受verilog语言限制输出信号需要定义成reg型,但实际上也是组合逻辑输出。



    谢谢你的回复,最后一句解决了我的疑惑!



    还有一个问题:我在always语句块中使用了过程性赋值语句,但在编译时一直报错,说是不能给reg型进行连续赋值!

还需要读一下Verilog语法,过程与连续的区别。

这个取决于自己的设计,最好是REG输出哦



    连续性赋值assign一般与过程块并列,而不能出现在过程块当中,听说过过程连续性赋值,但似乎综合不理想吧,查阅一下相关verilog书籍吧。



    是啊,但最近看的书是杜建国编写的《Verilog HDL硬件描述语言》,上面讲的不是很详细,麻烦您推荐一本吧!多谢了!



    wire型输出和reg型输出在硬件上到底有什么区别呢?

以上问题源于没有学好语言,在这里给大侠们添堵了!我得赶紧补补!希望以后多与大家交流!

output可以声明成reg是verilog 2001里面的用法,在1995的verilog里端口只能声明成wire型。
其实这个概念很好理解,reg型的output 实质上是一个 reg 的output + 一个wire型的 output



    对,你这么理解不错!output端口最好定义为reg型。

输出的类型取决于你的输出逻辑,组合逻辑输出wire,寄存器输出reg,都可以

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top