資源描述:
《常用VerilogHDL-語法總結.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、常用VerilogHDL語法總結1模塊(1)端口定義:聲明模塊的輸入輸出口。引用模塊時端口的兩種連接方法。(2)模塊內容:I/O說明(輸入輸出)、內部信號說明(和端口有關的變量說明)、功能定義(定義邏輯功能的三種方式:assign聲明語句;實例元件;always塊)。(3)理解要點:整體語句并發(fā)執(zhí)行,always塊內順序執(zhí)行。2常量(1)數字:整數及三種表達方式x和z值負數:減號的位置下劃線:位置和作用(2)參數:parameter符號常量,常用于定義延遲時間(使用#)和變量寬度。3變量(1)wire:表示易assign指定的組合邏輯信號
2、;默認值;任何方程式的輸入或assign語句及實例元件的輸出;定義格式。(2)reg:表示always塊中指定的信號,代表觸發(fā)器;寄存器數據類型(觸發(fā)器存儲值),默認值為x;定義格式。(3)memory:reg的數組;描述RAM、ROM、reg文件;單元索引;一個n為寄存器和n個一位數組的區(qū)別。4運算符與表達式(1)算術運算符:五種(2)位運算符:五種(3)邏輯運算符:三種(4)關系運算符:四種(3種不同的返回值)(5)等式運算符:四種(6)移位運算符:兩種(移位補零)(7)位拼接運算符:{},常用于某些控制信號位;重復與嵌套使用(8)縮
3、減運算符:類似于邏輯運算符,結果為一位二進制數(9)運算符優(yōu)先級5語句(1)賦值語句阻塞賦值:b<=a;塊結束后完成賦值,b的值不是立即改變的,較為常用;非阻塞賦值:b=a;賦值語句執(zhí)行后塊才結束,b的值馬上改變,在沿觸發(fā)的always塊中使用可能引起錯誤后果。(2)塊語句順序塊begin-end:順序執(zhí)行,最后語句執(zhí)行完流程跳出語句塊;并行塊fork-join:同時執(zhí)行,時間最長語句執(zhí)行完或disable語句執(zhí)行時跳出程序塊;塊名的作用;起始時間和結束時間(3)條件語句If-else語句:三種形式;if表達式判斷;分號;復合語句;表達式
4、簡寫;if語句嵌套;if與else的配對。Case語句:三種形式(casez:不考慮z進行比較,casex:不考慮z和x進行比較);控制表達式與分支表達式(常量表達式);default;所有表達式的位寬必須相等。條件語句使用不當造成鎖存器:避免錯誤:case中使用default,if必須搭配else。(4)循環(huán)語句Forever:格式;連續(xù)執(zhí)行;Repeat:格式;連續(xù)執(zhí)行n次;表達式通常為常量表達式;While:格式;執(zhí)行語句至條件不滿足;For:格式:for(循環(huán)變量初值;循環(huán)結束條件;循環(huán)變量增值)。(5)結構說明語句Initial
5、:格式;執(zhí)行一次;常用來變量初始化和生成激勵波形作為電路的測試仿真信號;Always:格式;執(zhí)行至仿真結束;注意時序;常用來描述時鐘信號作為激勵信號;時間控制可以為沿觸發(fā)(描述時序行為)也可以是電平觸發(fā)(描述組合邏輯行為);Task:定義;任務的調用與變量的傳遞;任務調用變量與任務定義的I/O變量必須一一對應;Function:定義;函數返回值(函數定義蘊含定義了同名寄存器);函數調用通過函數表達式中的操作數來實現的。(6)時間控制語句#、@、wait標識的語句6系統(tǒng)函數和任務(1)$display和$write:輸出信息;格式說明和普通
6、字符;(2)$monitor:監(jiān)控和輸出參數列表中的表達式和變量值;關閉與打開控制;(3)$time:返回64位整數表示當前仿真時刻值;時間尺度;$realtime:返回時間為實型數;(4)$finish:退出仿真器,返回主操作系統(tǒng);參數;(5)$stop:把EDA工具設置為暫停,給出交互命令提示,把控制權交給用戶;(6)$readmemb和$readmemh:從文件讀取數據到存儲器;格式;讀取內容;(7)$random:返回32位帶符號整型隨機數;用于產生隨即脈沖序列和寬度隨機的脈沖序列進行電路測試。7編譯預處理(1)`define:宏
7、定義,符號常量;(2)`include:文件包含;使用形式;(3)`timescale:時間尺度,說明跟在該命令后的模塊的時間單位和時間精度;(4)`ifdef、`else、`endif:滿足條件的語句進行編譯;不編譯的部分也應符VerilongHDL語言規(guī)范。