verilog中的reg 和 wire类型的区别 这几天和公司出了点不愉快
的事情,一切都定下来了,只有安安心心的学习了!
继续学verilog...
在前面简单的介绍了reg和wire的定义。
到网上搜了些资料,根据自己的理解总结了一下reg和wire的区别:
1.reg相当于存储单元,wire相当于物理连线;
2.
输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使
wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为wire型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。
3.wire表示直通,即只要输入有变化,输出马上无条件的反映;reg表示一定要有触发,输出才会反映输入。
4.从仿真的角度老说,wire只能被assign连续赋值;reg只能在initial和always中赋值。
wire使用在连续赋值语句中,而reg使用在过程赋值语句中。
5.从综合的角度来说
wire型变量综合出来一般是一根导线;
reg型变量在always块中有两种情况:
(1)always后的敏感表中是(a or b)形式的,也就是不带时钟边沿的,综合出来的是组合逻辑。
(2)always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来的一般是时序逻辑,会包含触发器。
6.如果不指定reg,缺省情况下是1位wire型变量。
7.reg存器型数据保持最后一次的赋值,而wire线网型数据需要持续的驱动。
参考网页:
%BA%CDwire%B5%C4%C7%F8%B1%F0
end...............
阅读(1933) | 评论(0) | 转发(0) |