摘自另外一个同学的播客,记录自己认为的重点:
0、wire、reg都可以有四种取值:0、1、z、x;为了表示这四种取值,所以验证平台中引入可以表示四值的logic类型;
1、wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,默认初始值是z。
2、reg型表示的寄存器类型。always模块内被赋值的信号,必须定义为reg型,代表触发器。默认初始值是x。
3、reg相当于存储单元,wire相当于物理连线。
4、两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动;wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。
5、wire只能被assign连续赋值,reg只能在initial和always中赋值。
6、wire使用在连续赋值语句中,而reg使用在过程赋值语句中。
- 连续赋值:等号右边操作数发生变化就需要执行(上电便一直执行),可简单的认为并列执行;
- 在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。
<