1. 程式人生 > >Verilog語法

Verilog語法

fault tput sed 什麽 子集 連續 優先 同步問題 常用

語法子集很小,易用。
模塊:module…endmodule
端口:input,output,inout(雙向特殊)
inout比較難用,有一張真值表,需要大家觀察後書寫,基本原則就是輸入時一定是高阻態(z),與問號冒號運算符搭配使用。
信號:wire,reg,tri(測試用)… reg與wire常用
運算符:與其他語言類似,邏輯運算與算數運算以及關系運算。
分支:if…else, case…default…endcase。
if…else其實在邏輯上與case差別不是很大,但是if…else天生帶優先級。
賦值:assign與=以及<=(非阻塞賦值什麽鬼?)
其中assign是連續賦值的語句,而=是阻塞賦值,<=是非阻塞賦值,其中非阻塞賦值在verilog中使用頻率很高。=似乎在同步問題上比較有用。
always:與@連用,敏感信號量改變引起此模塊執行。
[email protected](posedge [signal] [or negedge[signal]])。
begin…end就是作用域
任務:task…endtask
循環:for循環不是很好用,因為硬件的時序問題很重要,同步異步,自己體會能知。
參數:#與localparam。
都是可綜合語法,大道從簡。

Verilog語法