1、常量
整數:整數可以用二進制數b或B,八進制o或O,十進制d或D,十六進制h或H表示,例如:8‘b10101010表示8位位寬的二進制數;
x和z:x代表不定值,z代表高阻值,例如,5’b0x111,第四位不定值,3‘bz00表示最高位為高阻值;
下劃線:在位數過長時可以用來分割位數,提高程序可讀性,如8’b0101_0101;
參數 parameter:可以用標識符定義常量,運用時只使用標識符即可,提高可讀性及維護性,如可以定義parameter width = 8 ;定義寄存器 reg [width - 1 : 0] a;即定義了八位寬度的寄存器;
參數的傳遞:在一個模塊中如果有定義參數,在其它模塊調用此模塊時可以傳遞參數,并可以修改參數;
注意:parameter可以用于模塊間的參數傳遞,而localparam僅用于本模塊內使用,不能用于參數傳遞。localparam多用于狀態機狀態的定義;
2、變量
變量是指在程序運行過程中可以改變其中的值,常見的變量類型主要有wire型和reg型
wire型
wire類型變量,也叫網絡類型變量,用于結構實體之間的物理連接,如門與門之間,不能儲存值,用連續賦值語句assign賦值,定義為wire[n-1 : 0] x ;其中n代表位寬,如定義wire x; assign x = y ;是將y的結點連接到連線x上;
reg 型
reg類型變量,也稱為寄存器變量,可用來儲存值,必須在always語句內使用。通??梢远x為:reg [n-1 : 0] a ;表示n位位寬的寄存器, 如reg[7 : 0] a ; 表示定義8位位寬的寄存器a。
module cs (d, clk, q) ;
input d ;
input clk ;
output reg q ;
always @ (posedge clk)
begin
q <= d ;
end
endmodule
?
寄存器的結構圖
?
以上便是關于verilog的常見數據類型的相關知識,希望對你有所幫助。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603010 -
寄存器
+關注
關注
31文章
5336瀏覽量
120232 -
Verilog
+關注
關注
28文章
1351瀏覽量
110077 -
數字電路
+關注
關注
193文章
1605瀏覽量
80580
發布評論請先 登錄
相關推薦
評論