对verilog的初学者来说,线网和变量reg之间的不同点,也许是最难的。你有时得用reg而有时却得使用wire,使用来使用去,简直头晕。
而在SystemVerilog中,我们将会看到你可以在过去verilog中用reg型或是wire型的地方用logic型来代替。
实际上logic是对reg数据类型的改进,使得它除了作为一个变量之外,还可以被连续赋值、门单元和模块所驱动,显然,logic是一个更合适的名字。
举个RAM modelling的例子来说明上述问题,我们分别用Verilog和SystemVerilog来实现。
//RAM modelling in Verilog
1
module
mema (r_wb,addr,d_q);
2 input r_wb;
3 input [ 7 : 0 ] addr;
4 inout [ 7 : 0 ] d_q;
5
6 wire r_wb;
7 wire [ 7 : 0 ] addr, d_q;
8 reg [ 7 : 0 ] mem [ 0 : 255 ];
2 input r_wb;
3 input [ 7 : 0 ] addr;
4 inout [ 7 : 0 ] d_q;
5
6 wire r_wb;
7 wire [ 7 : 0 ] addr, d_q;
8 reg [ 7 : 0 ] mem [ 0 : 255 ];