systemverilog學習(3)基本數據類型


主要內容:4-state,2-state,固定數組

一:基本數據類型

1:sv的位擴展

  

2:4-state

  sv里面使用logic來代替verilog里面的reg,有4值:0,1,x,z 

  reg不可用於連續賦值語句,但logic可用於連續賦值語句;但logic不能用於多驅動,比如線與,雙向驅動。

  例子:logic [31:0] r;      //4-states,32位

3:2-state

  有bit,byte,shortint,int,longint;

  只有兩種狀態0,1;所以x,z直接轉化為0或者1;可以提高仿真性能,減少內存,但是不可用於設計中。

  

  除了bit是無符號的,其他都是有符號的;

  logic[7:0] x與 byte x 雖然都是8位,但它們是不同的,前者是無符號(0-255),后者是有符號(-128-127)

4:其它

  **4-state默認值為x,2-state默認值為0;

  **4-state可以賦值給2-state;(2-state可以賦值給我4-state嗎)

  **使用$isunknown操作符來檢查是否變量是否為x/z,有則返回1

  

二:固定數組

  支持多維數組,數組不要越界;

1:表達

  type name[constant];   

  一維:int a[16];

  多維:int array[0:7][0:3];  int array[8][4];

2:unpacked arrays

  byte,shortint與int都存儲在32位里,longint存儲在64位;unpacked數組中,如果數據沒有占用32位/64位,仍占用32/64,浪費空間。

  

3::packed arrays

  

  說明:bytes是32位的,通過bit[3:0][7:0]將存儲空間打包成四份,每一份為8位

  

4:數組賦值,使用 `{}

  例如:int array1[4] = `{3,2,4,2};

5:數組遍歷

    **for

    i 需要聲明;

    $size返回數組個數;

    

   **foreach

    索引 i,j自動聲明,不需顯式聲明

    

6:比較與copy

  == !=

 7:Mxied 數組

  packed array(不推薦這種unpacked的復雜數組形式)

  

       unpacked array

  

 


免責聲明!

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



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