1.詞法規定 1.1間隔符 (類似于C語言) 1.2標識符和關鍵詞 標識符:英文字母、數字、$符和下劃線組成(首字符必須為英文字母或下劃線)。 轉義標識符:如:\***。 2.四種邏輯值 0 邏輯0、邏輯假 1 邏輯1、邏輯真 x或X 不確定值(未知邏輯狀態) z或Z 高阻態 3.八種強度值 最強————>最弱 強度等級名稱 supply strong pull large weak medium small highz 類型 驅動 驅動 驅動 存儲 驅動 存儲 存儲 高阻抗 4.常量及其表示 4.1整數型表示 格式: <+/- size>' 例如: 3'b101 //3位二進制數101 5'o37 //5位八進制數37 8'b1001_1100 //八位二進制數,等同于8'b10011100 注意:在這里的‘_’無實際意義,可以隨便在整數或實數中使用,方便讀數。 4.2實數型常量 (實數通過四舍五入轉換為整數) 例如: 42.45轉換為整數42; 92.5,92.699轉化為93;-15.62轉換為-16. 4.3字符串常量 (每個字符串包括空格都被看做8位的ACSII值序列) 例如: 存儲字符串"FPGA"就需要定義一個8*4位的變量。 reg [8*4:1] messsage; initial begin message = "FPGA"; end 對于初學者來說,reg、initial這些請無視掉,只用了解這個格式就行。 4.4參數語句 格式: parameter param1 = xxxx, param2 = xxxx, ......; parameter聲明的符號常量常量通常出現在module(模塊)內部,參數常用于指令yan'延遲、變量的wei'位寬和狀態值de等(類似于C語言的局部參數) 補:define是宏定義,通常放在module外部,改常量是一個全局變量。 localparam(局部參數)是模塊內部參數(無傳遞,類似于C語言的函數內部參數)。 5.數據類型 5.1線網類型 wire、tri(wire為一般連線;tri為驅動的線網); wor、trior(一個線網被多個信號驅動qing情況); wand、triand(一個線網被多個信號驅動qing情況); trireg(電荷保持特性); tri1(上拉電阻); tri0(下拉電阻); supply1(電源建模、高點平); supply0(對地建模、低電平)。 線網變量聲明: 例如: wire A,B; //兩個1位wire類型的變量 wire [7:0] Databus; //Databus位8位向量的wire變量 supply0 logic_0,vss; //‘地’ supply1 logic_1,vdd; //‘電源線’ 建議別對同一變量多次賦值。 5.2寄存器類型 (只能在initial或always塊內部被賦值) reg、integer、time未賦值前為x; real、realtime默認值是0. reg:寄存器變量,默認值是x 格式 reg 例如: reg clock,a; //1位的reg型變量clock,a; reg [3:0] cnt; //4位的reg型變量cnt,等效于:cnt[3],cnt[2],cnt[1],cnt[0]; integer:整數型寄存器變量 (變量保持的是整數值) 格式: integer 1,2,3,...,n<[msb:lsb]>; 例如: integer A,B,C; //3個整數型變量; integer HINT[3:0]; //一個由四個整數變量組成的數組; tiem型變量主要用于存儲和處理仿真時間 time 1,2,3,...,n [msb:lsb] reale和realtime變量通產用于對實數型產量常量進行存儲和運算,實數不能定義范圍,默認值是0 real 1,2,3,...,n; //實型變量聲明 realtime 1,2,3,...,n; //實型時間變量聲明 參考文獻 1.《FPGA自學筆記——設計與驗證》 2.《可編程邏輯電路設計基礎教程》 3.《Verilog HDL與FPGA數字系統設計》 4.《Verilog HDL入門》 ———————————————— 版權聲明:本文為CSDN博主「JaysonRen」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/JaysonRen/article/details/82179137 |