1 Verilog 基本語法


一、常量

  常量按類型分為數字常量、字符常量和其他。

1.數字常量

  數字常量分為整數和實數。

  整數的表示形式:<+/-><數字位寬>'<數字類型><數字>

    負號表示為負數,負數通常表示為二進制的補碼形式:-6‘d3表示6位的用二進制補碼形式存儲的十進制3,表示負數;

  數字類型:十進制(D或d)、十六進制(H或h)、二進制(B或b)、八進制(O或o);

  數字:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

  實數表現形式:

    十進制,如:4.0、3.567;

    科學計數法:3.6e2、5e-4;

2.字符串

  雙引號括起來的字符隊列,字符串不可多行書寫,即不能含回車符。如“hello verilog” //為一字符串

3.其他

  x和z值以及下划線“_”和“?”。

  x表示不確定值,z表示高阻值:x或z在二進制中為1位的x或z,在八進制中位3位,在十六進制中為4位。8'b1100zzzz  //相當於8'bcz

  "_"可出現在數字常量的任何位置,只是提高可讀性,編譯時會被忽略。

  "?"是z的另一種表示,使用問號是增加casex和casez語句的可讀性,"?"(高阻抗)表示“不必關心”的情況,如4'b10??  //相當於4'b10zz

二、數據類型  

  Verilog有兩大數據類型:線網類型、寄存器類型

1.線網類型

   線網結構相當於硬件電路的各種物理連接,特點是輸出值跟隨輸入值變化而變化

定義格式:

  wire[位寬]<數據名>:位寬缺省默認為1;

  多位wire類型變量:wire[n-1:0]<數據名>或wire[n:1]<數據名>   表示數據寬度為n位

  為避免使用關鍵字,建議數據名用大寫字母

2.寄存器類型

  具有保持狀態的電路元件,如觸發器。寄存器類型只能在initial和always語中,通過過程賦值

在initial和always過程塊中,被賦值的信號必須定義成寄存器類型,即使某些實際設計信號實際上不是寄存器類型

  verilog中共有4種寄存器變量:reg型、integer型(32位帶符號整形)、real型(64位帶符號實型)、time型(無符號時間變量)。

定義格式:

  與wire類型相似。

  reg[位寬]<數據名>:位寬缺省默認為1;

  多位reg類型變量:reg[n-1:0]<數據名>或reg[n:1]<數據名>   表示數據寬度為n位

3.參數型(parameter)

  用parameter定義的參數代表常量,不能進行賦值操作。

定義格式:

  parameter <參數名>=表達式:parameter WIDTH=256; //定義寬度為常數256

 


免責聲明!

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



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