-數據流建模:根據數據在寄存器之間的流動和處理過程對電路進行描述,而不是直接對電路的邏輯門進行實例引用。
-連續賦值語句:Verilog數據流建模的基本語句,用於對線網進行賦值。
驅動強度是可選項,默認值爲strong1和strong0;
延遲值是可選項;
1、連續賦值語句左值必須是一個標量或是向量線網,或是兩者拼接。
2、連續賦值語句總是處於激活狀態。
3、操作數可以是標量、向量線網、寄存器、函數調用。
4、賦值延遲類似於門延遲,用於控制對線網賦予新值的時間。
e.g.:
assign out = i1 & i2;
assign addr[15:0] = addr1_bits[15:0] ^ addr2_bits[15:0];
-隱式連續賦值:在線網聲明的同時對其進行賦值。
-隱式線網聲明:
1、如果一個信號名被用在連續賦值語句的左側,那麼Verilog編譯器默認該信號是一個隱式聲明的線網;
2、如果線網被連接到模塊的端口上,則Verilog編譯器認爲隱式聲明線網的寬度等於模塊端口的寬度;
-延遲:用於控制任一操作數發生變化到語句左值被賦予新值的時間間隔。
-普通賦值延遲:在連續賦值的語句中說明延遲值,延遲值位於關鍵字assign之後。若在延遲時間範圍內,即在左值獲得新值之前,輸入值發生變化,那麼在計算表達式的新值時會取輸入值的當前值,稱爲慣性延遲,即脈衝寬度小於賦值延遲的輸入變化不會對輸出產生影響。
assign #10 out = in1 & iin2;
-隱式連續賦值延遲:
-線網聲明延遲:在聲明線網時指定一個延遲。
-表達式、操作符、操作數:
-表達式:操作符與操作數構成,同C;
-操作數:可以是常數、整數、實數、線網、寄存器、時間、位選、域選、存儲器、函數調用。
-操作符:見下一篇中操作符