什么时候用wire,什么时候用reg

更新时间:2023-05-07 13:08:17 阅读: 评论:0

wire为无逻辑连线。只做连线,wire本身是不带逻辑性的,所以输入什么输出就是什么。所以你尝试着用always语句对wire变量赋值。综合器就会报错。
要在always模块里赋值,必须是寄存器变量。要用assign赋值,必须是wire型。output自动就是wire型。不知道说清楚了么
输出变量如果没有特别声明,默认是wire型;
wire and_result;
assign and_result =a&&b;
你可以试试把wire定义成reg。综合器会报错。
有几种情况变量需要定义成wire
第一:assign 语句/第二:元件例化时候的输出必须用wire
wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。
reg表示一定要有触发,输出才会反映输入的状态。
reg相当于存储单元,wire相当于物理连线。reg表示一定要有触发,没有输入的时候可以保
持原来的值,但不直接实际的硬件电路对应。
      两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动。wire使用在连续赋值语句中,而reg使用在过程赋值语句(initial always)中。wire若无驱动器连接,其值为zreg默认初始值为不定值 x
      在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。
      对组合逻辑输出变量,可以直接用assign。即如果不指定为reg类型,那么就默认为1wire类型,故无需指定1wire类型的变量。当然专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initialalways中赋值。
      输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以是wire/reg类型,
输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型(wire/tri)。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型。
      默认信号是wire类型,reg类型要申明。这里所说的默认是指输出信号申明成output时为wire。如果是模块内部信号,必须申明成wire或者reg.
      对于always语句而言,赋值要申明成reg,连续赋值assign的时候要用wire
模块调用时 信号类型确定方法总结如下:
信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信号为内部信号。
对于端口信号,输入端口只能是net类型。输出端口可以是net类型,也可以是register类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值(包括实例化语句),则为net类型。
内部信号类型与输出端口相同,可以是netregister类型。判断方法也与输出端口相同。若在过程块中赋值,则为register类型;若在过程块外赋值,则为net类型。
若信号既需要在过程块中赋值,又需要在过程块外赋值。这种情况是有可能出现的,如决
断信号。这时需要一个中间信号转换。
下面所列是常出的错误及相应的错误信息(error message)
用过程语句给一个net类型的或忘记声明类型的信号赋值。
           信息:illegal …… assignment.
将实例的输出连接到声明为register类型的信号上。
           信息:<name> has illegal output port specification.
将模块的输入信号声明为register类型。
           信息:incompatible declaration, <signal name> ……

本文发布于:2023-05-07 13:08:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/865632.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   输出   赋值   端口   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图