assign,連續(xù)賦值語句摄狱,有些書稱為數(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只能是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之間不存在先后順序沈矿,也沒有執(zhí)行順序。
assign只能單獨(dú)使用咬腋,不能嵌套在任何行為塊語句中羹膳。