verilog學習筆記-verilog基本語法


1.verilog中邏輯表示

  在verilog中,有4中邏輯:

  邏輯0:表示低電平

  邏輯1:表示高電平

  邏輯X:表示未知電平

  邏輯Z:表示高阻態

2.Verilog中數字進制

  Verilog數字進制格式包括二進制、八進制、十進制和十六進制。一般常用的為二進制、十進制和十六進制。

  d:表示十進制

  b:表示二進制

  o:表示八進制

  h:表示十六進制

  verilog中數字的表示方法:

  二進制表示如下:4'b0101 表示4位二進制數字0101
  十進制表示如下:4'd2 表示4位十進制數字2(二進制0010)
  十六進制表示如下:4'ha 表示4位十六進制數字a(二進制1010)

  在verilog中負數的表示方法:在位寬前面加符號

  例如:

  -5'd25:表示5位的十進制數-25

  在veriog中如果位寬缺省則默認位寬是32位寬:'b1001表示32位的二進制數0000_0000_0000_0000_0000_0000_0000_1001。

  在veriog中如果進制缺省則默認十進制。

3.標識符

  用於定義模塊名,端口名,信號名等。

  標識符可以是任意一組字母、數字、$符號和_(下划線)符號的組合。但是第一個必須是字母或者下划線,而且標識符區分大小寫。

  書寫標識符時應該簡潔明了清晰,最好能夠體現含義,如:

  clk_50M:表示50兆赫茲時鍾。

  cpu_addr:表示CPU的地址線

4.數據類型

  在verilog里有三種數據類型:

  reg型:寄存器數據類型。

  wire型:線網型數據類型。

  tri型:線網型數據類型。

  reg型:

  寄存器表示一個抽象的數據存儲單元,通過賦值語句可以改變寄存器儲存的值,寄存器數據類型的關鍵字是 reg,reg 類型數據的默認初始值為不定值x

  reg [7:0] data  //表示定義了一個8位的寄存器類型的數據data.

  reg  cnt_reg  //表示定義了一個一位的寄存器類型的數據cnt_reg

  reg [7:0]  data [255:0]  //定義了256個8位的寄存器data

  reg類型的數據只能在 always 語句和 initial 語句中被賦值。

  線網型:

  線網數據類型表示結構實體(例如門)之間的物理連線。線網類型的變量不能儲存值,它的值是由驅動它的元件所決定的。

  線網數據類型包括 wire 型和 tri 型,其中最常用的就是 wire 類型

  wire型只能在assign語句中被賦值。

  在端口申明中,如果數據類型缺省則默認的數據類型是wire型。

5.運算符

  Verilog中的操作符按照功能可以分為下述類型:
   1、算術運算符:+ (加)- (減)* (乘)/ (除)%(模)
   2、關系運算符:>(大於) <(小於) =(等於)<=(小於等於)>=(大於等於) !=(不等於)
   3、邏輯運算符:!(非) &&(與) ||(或)
   4、條件運算符:? :(判斷)例如:assign iic_sda=en?( a? 1'bz:1'b0) :1'bz;//  z=a? b:c 先判斷a是否為真,如果為真則z=b否則z=c.
   5、位運算符:~(按位取反) &(按位與) |(按位或)^(按位異或) 可以作為單目運算:b=&a表示a與自身的所有位按位與
   6、移位運算符:<<(左移)   >>(右移)  

   7、拼接運算符:

  {0010,1}:將0010和1拼接成00101,最后是一個5位數據

  {110,data[7:0]}:將110和data[7:0]拼接成一個新的數據,最終是一個11位數據

  

 

   

  


免責聲明!

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



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