0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不同情况下,在Verilog中什么时候用wire,什么时候用reg

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-09-28 11:26 次阅读

Verilog中何时用wire,何时用reg?

Verilog HDL中的变量可以定义为wire型和reg型,这两种类型的变量在定义时要设置位宽,缺省为1位,变量的每一位可以取0、1、x、z,其中x代表未预置初始状态,z代表高阻状态。
reg相当于存储单元,wire型相当于物理连线,即reg型变量保持最后一次的赋值,而wire型变量需要持续的驱动。

那么,在Verilog HDL中何时用wire,何时用reg型变量呢?
wire为连线,本身不带逻辑性,所以输入什么输出就是什么
若变量放在begin…end内,则声明为reg型;否则,声明为wire型
在always块中的变量,只能是reg型
使用wire型变量时,必须搭配assign
input、output、inout声明的变量,默认都是wire型

若wire和reg用错了,编译器会提醒,一般不用太担心,下面再从仿真和综合的角度解释一下。


简单来说,硬件描述语言有两种用途:仿真、综合,对于wire和reg的理解,也可以从这两个角度来考虑。

从仿真的角度来说,HDL语言面对的是编译器,相当于软件思路,这时:
wire对应于连续赋值,如assign
reg对应于过程赋值,如always块、initial块

从综合的角度来说,HDL语言面对的是综合器,要从电路的角度来考虑,这时:
wire型的变量综合出来一般是一根导线。
reg变量在always块中有两种情况:(1) always后的敏感表中是(a orb or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑。(2) always后的敏感表中是(posedgeclk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器。


在设计中,一般来说我们并不知道输入信号是来自上一级寄存器的输出还是组合逻辑的输出,那么对于本级而言就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型和reg型都可以,但通常整个设计的外部输出(即最顶层模块的输出)是寄存器输出,这样电路比较稳定。

责任编辑:xj

原文标题:在Verilog中何时用wire,何时用reg?

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109311
  • Reg
    Reg
    +关注

    关注

    0

    文章

    20

    浏览量

    11428
  • Wire
    +关注

    关注

    0

    文章

    23

    浏览量

    15739

原文标题:在Verilog中何时用wire,何时用reg?

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    EXTI9_5仿真过程PR是什么时候挂起和解挂的?

    EXTI9_5仿真过程,EXTI->PR什么时候是挂起的,什么时候是解挂的? 今天晚上我练习了5.6.7号中断线的使用。首先产生
    发表于 04-19 06:23

    龙旗科技什么时候上市?

    龙旗科技什么时候上市?龙旗科技于2024年3月1日成功登陆上交所主板,开启全新发展阶段。
    的头像 发表于 03-01 11:43 595次阅读

    ATOM触发ADC采样中断是什么时候产生?

    ATOM触发ADC采样中断是什么时候产生?发生周期匹配的时候还是0匹配的时候,怎么进行设置
    发表于 02-06 06:27

    请问直流电机的碳刷什么时候带电?

    请问直流电机的碳刷什么时候带电?运行的碳刷会电人吗?如果减少碳刷使用数量,假设正常使用16个碳刷,现在我每排减少一个碳刷会出现什么后果?电流变大?谢谢,刚接触直流电机
    发表于 12-12 07:35

    请问51的P0口什么时候要上拉电阻什么时候不需要?

    求教大神,51的P0口什么时候要上拉电阻什么时候不需要呢?
    发表于 11-09 08:02

    请问什么时候喂狗?怎么喂狗?喂狗的注意事项有哪些?

    什么时候喂狗?怎么喂狗?喂狗的注意事项?
    发表于 10-27 07:30

    STM32控制电机的时候什么时候需要考虑死区时间?

    STM32控制电机的时候什么时候需要考虑死区时间
    发表于 10-13 06:51

    串口接线什么时候直连,什么时候要交叉,有没有什么规则?

    串口接线,什么时候直连,什么时候要交叉,有没有什么规则
    发表于 10-08 06:49

    求助,关于什么时候调用uploadMat/downloadMat接口的问题

    关于什么时候调用 uploadMat/downloadMat接口的问题
    发表于 09-19 06:25

    请问VisionFive 2的系统镜像什么时候会放出呢?

    论坛中了解到VisionFive 2即将发货的消息,想知道与之适配的系统镜像预计什么时候会放出呢?谢谢
    发表于 09-13 07:13

    RK3588 ubuntu什么时候能支持mpi

    目前的测试buildrootmpi例子可以工作,debian和ubuntu运行报egl错误,请问ubuntu预计什么时候能支持。
    发表于 08-11 16:53

    使用Verilog HDL描述寄存器的硬件

    刚接触数字集成电路设计,特别是Verilog HDL语言的同学,往往不理解什么时候变量需要设置为wire型,什么时候需要设置成reg型。
    发表于 07-13 15:53 605次阅读
    使用<b class='flag-5'>Verilog</b> HDL描述寄存器的硬件

    求助,什么时候RTOS?

    本菜鸟一直是的裸机开发,也学习过操作系统,但是一直没明白什么时候RTOS,感觉裸 机开发一点问题没有啊,什么情况下
    发表于 06-28 06:54

    发送AT指令后resp的缓存在什么时候会清除?

    发送AT指令后,resp的缓存在什么时候会清除?
    发表于 05-12 15:49

    RTT Studio什么时候可以实现DAP下载调试呢?

    RTT Studio什么时候可以实现DAP下载调试呢?手上只有一个DAP的仿真器,大概什么时候能用上呀?多谢。。。。。
    发表于 05-11 09:47