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;                        // 雙狀態,雙精度浮點數。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM