assign,連續(xù)賦值語(yǔ)句,有些書(shū)稱為數(shù)據(jù)流描述方式。
assign,顧名思義,分配、布置。
它是將一個(gè)表達(dá)式的值、數(shù)值(寄存器的值、固定電平)的輸出電平,連接至信號(hào)線或輸出引腳上。
舉個(gè)例子:
假如信號(hào)定義:
wire y; // 或者output y;
input a;
reg b;
則以下描述都可以:
assign y=a&b; //位運(yùn)算
assign y=1'b0; //連接到固定電平
assign y=a+b+c; //算術(shù)運(yùn)算
assign y=(a==0) ? b:c; // 條件運(yùn)算
需要注意的是:
assign,我一般視其為“連線”語(yǔ)句。y只能是wire或output等導(dǎo)線型信號(hào),不能是reg類型。因?yàn)榧拇嫫鞯馁x值是需要觸發(fā)信號(hào)的,賦值時(shí)需要觸發(fā)信號(hào),而assign并不能提供觸發(fā)信號(hào),assign只能做導(dǎo)線連接操作。
由于assign描述了硬件連線,所以多個(gè)assign之間不存在先后順序,也沒(méi)有執(zhí)行順序。
assign只能單獨(dú)使用,不能嵌套在任何行為塊語(yǔ)句中。