assign相當於連線,一般是將一個變數的值不間斷地賦值給另一個變數,就像把這兩個變數連在一起,所以習慣性的當做連線用,比如把一個模組的輸出給另一個模組當輸入。例如:wireA,B,SEL,L;//宣告4個線型變數assignL=(A&~SEL)|(B&SEL);//連續賦值在assign語句中,左邊變數的資料型別必須是wire型。input和output如果不特別宣告型別,預設是wire型別。舉例2選1的資料選擇器:modulemux2x1_df(A,B,SEL,L);inputA,B,SEL;outputL;assignL=SEL?A:B;endmodule擴充套件資料:注意事項assign的功能屬於組合邏輯的範疇,應用範圍可概括為以下三點:1、持續賦值;2、連線;3、對wire型變數賦值,wire是線網,相當於實際的連線線,如果要用assign直接連線,就用wire型變數。wire型變數的值隨時變化。其實以上三點是相通的。要更好的把握assign的使用,Verilog中有幾個要點需要深入理解和掌握:1、在Verilogmodule中的所有過程塊(如initial塊和always塊)、連續賦值語句(如assign語句)和例項引用都是並行的。在同一module中這三者出現的先後順序沒有關係。2、只有連續賦值語句assign和例項引用語句可以獨立於過程塊而存在於module的功能定義部分。3、連續賦值assign語句獨立於過程塊,所以不能在always過程塊中使用assign語句。
assign相當於連線,一般是將一個變數的值不間斷地賦值給另一個變數,就像把這兩個變數連在一起,所以習慣性的當做連線用,比如把一個模組的輸出給另一個模組當輸入。例如:wireA,B,SEL,L;//宣告4個線型變數assignL=(A&~SEL)|(B&SEL);//連續賦值在assign語句中,左邊變數的資料型別必須是wire型。input和output如果不特別宣告型別,預設是wire型別。舉例2選1的資料選擇器:modulemux2x1_df(A,B,SEL,L);inputA,B,SEL;outputL;assignL=SEL?A:B;endmodule擴充套件資料:注意事項assign的功能屬於組合邏輯的範疇,應用範圍可概括為以下三點:1、持續賦值;2、連線;3、對wire型變數賦值,wire是線網,相當於實際的連線線,如果要用assign直接連線,就用wire型變數。wire型變數的值隨時變化。其實以上三點是相通的。要更好的把握assign的使用,Verilog中有幾個要點需要深入理解和掌握:1、在Verilogmodule中的所有過程塊(如initial塊和always塊)、連續賦值語句(如assign語句)和例項引用都是並行的。在同一module中這三者出現的先後順序沒有關係。2、只有連續賦值語句assign和例項引用語句可以獨立於過程塊而存在於module的功能定義部分。3、連續賦值assign語句獨立於過程塊,所以不能在always過程塊中使用assign語句。