禾雨

导航

systemverilog数据类型

1,logic类型:

       verilog中最常使用的数据类型是变量(reg)和线网(wire),在编码或测试的时候经常需要区分两种数据类型的不同使用方法。在SV中定义logic可以取代这两种数据类型。
       logic不仅能够作为变量,而且可以被连续赋值,门单元和模块所驱动。但是logic不能够被多个结构体驱动。下面这段代码展示了logic的使用方法。
 
module logic_test(input logic rst_h
);
  parameter CYCLE = 20;
  logic q,q_1,d,clk,rst_1;
  
  initial 
  begin
    clk = 0;
    forever #(CYCLE/2) clk = ~clk;          // 过程赋值
  end
 
  assign rst_1 = ~ rst_h;                         //连续赋值
  not n1(q_1,q);                                      //q_1被门驱动
  my_dff d1(q,d,clk,rst_1);                      //q被模块驱动
endmodule
2,双状态数据类型。
     相比于verilog中的4状态数据类型(1,0,x,z),SV引入双状态数据类型有利于提高仿真器的性能并减少内存的使用量。下面逐例解释。
 
bit                  b;                      // 双状态 单bit
bit [31:0]        b32;                  // 双状态,32bit,无符号
int  unsigned ui;                     // 双状态,32bit,无符号
int                  i;                       // 双状态,32bit,有符号
byte               b8;                    // 双状态,8bit  ,有符号
shortint         s;                       // 双状态,16bit,有符号
longint          l;                        // 双状态,64bit,有符号
integer          i4;                      // 四状态,32bit,有符号
time              t;                        // 四状态,64bit,无符号
real               r;                        // 双状态,双精度浮点数。
 

posted on 2020-01-08 21:55  禾雨  阅读(2368)  评论(0编辑  收藏  举报