csdn的编辑器不好用,有很多格式显示不出来,我又是一个懒人不想去迁移,所以这篇文章可能看起来比较怪,如果想要看原文的同学可以参考以下链接
wire和reg
这两个被用于端口定义和仿真文件中,使用规则如下:
在端口定义时:
输入 只能用wire定义
输出 如果变量是在always中赋值,那使用reg定义
如果变量是在assign中赋值,那使用wire定义
在tb(仿真)文件中:
输入 只能用reg定义
输出 只能用wire定义
在Verilog中,wire和reg是两种不同的数据类型,用于表示不同的硬件行为和存储特性,它们的主要区别与使用案例如下:
1. 简单描述
-
wire(线网类型)-
类似于电路中的物理连线,用于模块之间或模块内部的信号传输。它不存储数据,其值由连接到它的驱动源决定,并且实时反映驱动源的变化。
wire类型适用于表示组合逻辑电路中的信号连接,因为组合逻辑的输出仅取决于当前输入,不需要记忆过去的值。
-
-
reg(寄存器类型)-
类似于存储元件(如触发器),可以存储数据值。
reg变量的值在特定条件下(如时钟沿触发)更新,并且在更新之前保持其原有值。这种存储特性使得reg适用于表示时序逻辑电路中的状态、计数器值、数据存储等需要记忆过去状态或在时钟驱动下更新的情况。
-
2. 使用案例
-
wire使用案例:简单逻辑门电

最低0.47元/天 解锁文章
1794

被折叠的 条评论
为什么被折叠?



