wire与reg类型的区分
0赞
发表于 3/12/2017 9:03:47 PM
阅读(1517)
reg,寄存器类型,要有触发,才会响应。而wire只要输入有变化,输出就无条件的立即发生变化。
wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。
还有一点就是,输入端口可以是wire 或 reg驱动,但输入端口只能是wire,输出端口可以是wire 或reg,但输出驱动只能是wire。
参考资料:fxqcn博客《FPGA中wire与reg类型的区别》
