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

    文章

    1343

    浏览量

    109972
  • Reg
    Reg
    +关注

    关注

    0

    文章

    20

    浏览量

    11462
  • Wire
    +关注

    关注

    0

    文章

    23

    浏览量

    15866

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

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

收藏 人收藏

    评论

    相关推荐

    TPA3116D2EVM电感位置,第二和第三种情况什么时候使用的?

    1、请问电感位置,第二和第三种情况什么时候使用的? 2、电感电流选择怎么选的?如果是BTL,4欧姆负载。按极限电流算纯电阻做功,每通道都是130W左右了。标的是50W。余量大概是多少?
    发表于 10-22 06:55

    一般运算放大器什么时候是数字电压供电什么时候是模拟电压供电?

    您好,我发现在有的电路,运算放大器是数字电源,有时候又是模拟电源供电,请问一般运算放大器什么时候是数字电压供电什么时候是模拟电压供电?
    发表于 09-11 06:03

    什么时候需要用到no phase reversal运放呢?

    什么时候需要用到no phase reversal运放呢? 此时不用的话会造成什么影响呢?
    发表于 08-02 14:09

    请问ESP32S2什么时候可以支持USB HOST读取U盘?

    请问 ESP32S2什么时候可以支持USB HOST读取U盘
    发表于 06-21 06:07

    stm32辅助时钟AFIO,什么时候使能该时钟?其作用是什么?

    一直不知道AFIO,请指点一什么时候使能该时钟。其作用是什么?
    发表于 05-15 08:01

    USB中断setup,in和out阶段到底什么时候进入中断?

    进入中断 还是发给host数据data0之后呢,或者是ACK之后? 第三个问题:同理out处理时什么时候进入中断,是收到out packet之后 还是设备收到data1数据之后,还是ACK之后?
    发表于 04-29 08:37

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

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

    条件相同情况下,stm8L与STM32L谁的功耗会更低?

    stm8L与STM32L谁的功耗会更低,条件相同情况下,正常运行和低功耗模式时。
    发表于 04-16 07:17

    PMG1 PoR复位时POWER_DRILL2GO什么时候进入?

    我有两个关于 PMG1 PoR 的问题。 1.复位时POWER_DRILL2GO什么时候进入? 也许您想在电压低于预设值时强制 EZ-PD™ PMG1-S1 MCU 设备复位
    发表于 03-06 06:03

    龙旗科技什么时候上市?

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

    二极管电路中被钳位是什么意思 什么时候会出现被钳位

    二极管电路中被钳位是什么意思 什么时候会出现被钳位 二极管电路,被钳位是指当输入信号的电压超过或低于一定阈值时,输出电压被限制某个范
    的头像 发表于 02-06 13:52 2781次阅读

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

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

    什么时候选择DAC高速线缆/AOC有源光缆?如何进行堆叠?

    什么时候选择DAC高速线缆/AOC有源光缆?如何进行堆叠? DAC高速线缆和AOC有源光缆都是用于数据中心和高性能计算环境的高速数据传输的解决方案。它们都有各自的优点和适用场景。选择哪种解决方案
    的头像 发表于 12-27 10:56 653次阅读

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

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

    vlookup函数什么时候绝对引用

    单元格时,引用的单元格位置不会改变。使用VLOOKUP函数时,有几种情况下我们需要使用绝对引用。本文将详细介绍VLOOKUP函数以及绝对引用的使用情况。 首先,我们先来了解一VLO
    的头像 发表于 12-01 10:25 6526次阅读