FPGA Verilog语言常用语法
本文介紹FPGA Verilog語(yǔ)言語(yǔ)法知識(shí)。
1. 邏輯值,Verilog語(yǔ)言中有四種邏輯值,分別代表4中邏輯狀態(tài),邏輯1:高電平狀態(tài)、邏輯0:低電平狀態(tài)、邏輯X:不定狀態(tài)、邏輯Z:高阻狀態(tài)。
2. 標(biāo)志符,Verilog語(yǔ)言中的標(biāo)志符用于定義模塊名、端口號(hào)、信號(hào)名等,注意標(biāo)識(shí)符的定義是區(qū)分大小寫的。
3. 數(shù)字的基數(shù)表示法:Verilog語(yǔ)言常用基數(shù)表示法表示數(shù)字,例如4’b1010表示二進(jìn)制數(shù)據(jù)1010,其中4表示數(shù)據(jù)占4個(gè)bit位,4’h9表示16禁止數(shù)字9,4'o8表示8進(jìn)制數(shù)字8,4‘d2表示10進(jìn)制數(shù)字2.
4. 數(shù)據(jù)類型,Verilog語(yǔ)言中數(shù)據(jù)類型包括,寄存器類型、網(wǎng)線類型、參數(shù)類型三種,其中寄存器類型表示一個(gè)數(shù)據(jù)存儲(chǔ)單元,只能在always語(yǔ)句和initial語(yǔ)句中被賦值,常用寄存器類型是reg,使用方法如下:reg [31:0] delay;表示一個(gè)32位寄存器。網(wǎng)線類型表示邏輯單元之間的物理連線,常用的是wire,使用方法如下:wire [7:0] data; 參數(shù)類型表示一個(gè)常量,例如parameter STATUS=1;
常用于表示狀態(tài)機(jī)的狀態(tài)。
5. 運(yùn)算符 ,Verilog算術(shù)運(yùn)算符:+ 、-、*、/、%? 關(guān)系運(yùn)算符:> 、< 、== 、>=、<= 、!=? 邏輯運(yùn)算符:&& 、||、!條件運(yùn)算符:
?: 位運(yùn)算符:^、&、|、~移位運(yùn)算符:<<、>>拼接運(yùn)算符{}。
6. 運(yùn)算符優(yōu)先級(jí):
7. 常用關(guān)鍵字:
8. 堵塞賦值(=)與非堵塞賦值(<=),堵塞賦值只有在上一條賦值語(yǔ)句結(jié)束時(shí),下一條語(yǔ)句才會(huì)執(zhí)行,非堵塞賦值,在一個(gè)時(shí)鐘周期下,位于同一個(gè)begin end 邏輯塊內(nèi)的表達(dá)式全部被賦值。一般堵塞賦值用于assign語(yǔ)句和不帶時(shí)鐘的assign語(yǔ)句,非堵塞賦值用于帶時(shí)鐘的assign語(yǔ)句,即組合邏輯電路使用堵塞賦值,時(shí)序邏輯電路使用非堵塞賦值。
9.always與assign語(yǔ)句,assign 表示組合邏輯電路的起始,always語(yǔ)句,當(dāng)輸入帶時(shí)鐘信號(hào)時(shí),表示時(shí)序邏輯電路,不帶時(shí)鐘信號(hào)時(shí)表示組合邏輯電路,復(fù)雜的組合邏輯電路推薦使用always.
10.latch? 容易引發(fā)毛刺,應(yīng)該盡量規(guī)避。latch只在組合邏輯電路中會(huì)出現(xiàn),比如不帶是時(shí)鐘信號(hào)的always語(yǔ)句中,如果if? 結(jié)構(gòu)缺少else 或 case 結(jié)構(gòu)缺少default。
11.? 凡是在initial語(yǔ)句和always語(yǔ)句中被賦值得變量一定是reg類型,凡是在assign語(yǔ)句中被賦值得變量一定是wire類型。
12. 在仿真測(cè)試文件中,輸入信號(hào)一定是reg類型,輸出信號(hào)一定是wire類型。
13.對(duì)于組合邏輯電路使用阻塞賦值(=)例如assign語(yǔ)句和不帶時(shí)鐘得always語(yǔ)句。對(duì)于時(shí)序邏輯電路使用非阻塞賦值(<=)例如帶時(shí)鐘得assign語(yǔ)句。
14. 在仿真測(cè)試文件中,時(shí)鐘信號(hào)的初始值為1,且使用阻塞賦值,注意非阻塞賦值只能用于對(duì)寄存器變量進(jìn)行賦值操作,因此只能用于initial和always語(yǔ)句中,不能用于assign語(yǔ)句中。
15.編寫時(shí)序邏輯電路,使用帶時(shí)鐘的always語(yǔ)句,要使用非阻塞賦值,編寫組合邏輯電路,推薦使用不帶時(shí)鐘的always語(yǔ)句,要使用阻塞賦值,一般建議在always語(yǔ)句中一次只對(duì)一個(gè)變量賦值。?
?
總結(jié)
以上是生活随笔為你收集整理的FPGA Verilog语言常用语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: art-template提取某个重复字段
- 下一篇: 计算机组成原理知识点总结(第3篇 第6章