RM9003A寄存器型變量賦值
發布時間:2019/10/14 12:13:10 訪問次數:1708
RM9003A組合邏輯電路的行為級建模舉例
下面通過兩個例子介紹組合電路的行為級建模。
例4,6,7和例4.6,8是數據選擇器的行為級描述。前一個例子使用if-else語句描述了2選1數據選擇器,后一個例子混合使用if-else和case語句描述了帶有使能控制端的4選1數據選擇器。行為級描述的標識是always結構,always是一個循環執行語句,在它后面跟著循環執行的條件@(SEL or A OrB)(注意后面沒有分號),它表示圓括號內的任一個變量發生變化時,下面的過程賦值語句就會被執行一次,執行完最后一條語句后,執行掛起,always語句再次等待變量發生變化,因此將圓括號內列出的變量稱為敏感變量。對組合邏輯電路來說,所有的輸人信號都是敏感變量,應該被寫在圓括號內。
注意:
敏感變量之間使用關鍵詞or代替了邏輯或運算符(|)。
過程賦值語句只能給寄存器型變量賦值,因此,程序中將輸出變量L定義成reg數據類型。
例4.6,7
///∶Behavioral description of 2ˉto~1~1ine multiplexer
module mux2to1~bh(A,B,sEL,L);
input A,B,sEL;
output L;
reg I-`; //define register variable
always@(sEL or A or B)
if(SEL==1)L=B;//也可以寫成if(sEL)L=B;
else L=A;
endmodule
例4.6,8
//Behavioral description of 4-to~1-line multiplexcr
module mux4to1~bh(A,SEL,E,L);
input[3:o]A;
input[1:0]SEL;
output L;
reg L;
always@.(A or sEL Or E)
begin
if(E==1) L=0;
else
case(SEL)
21 dO:L=A[0];
21d1:L=A[1];
21d2:L=A[2];
2i d3:L=A[3];
endcase
end
endmodule
RM9003A組合邏輯電路的行為級建模舉例
下面通過兩個例子介紹組合電路的行為級建模。
例4,6,7和例4.6,8是數據選擇器的行為級描述。前一個例子使用if-else語句描述了2選1數據選擇器,后一個例子混合使用if-else和case語句描述了帶有使能控制端的4選1數據選擇器。行為級描述的標識是always結構,always是一個循環執行語句,在它后面跟著循環執行的條件@(SEL or A OrB)(注意后面沒有分號),它表示圓括號內的任一個變量發生變化時,下面的過程賦值語句就會被執行一次,執行完最后一條語句后,執行掛起,always語句再次等待變量發生變化,因此將圓括號內列出的變量稱為敏感變量。對組合邏輯電路來說,所有的輸人信號都是敏感變量,應該被寫在圓括號內。
注意:
敏感變量之間使用關鍵詞or代替了邏輯或運算符(|)。
過程賦值語句只能給寄存器型變量賦值,因此,程序中將輸出變量L定義成reg數據類型。
例4.6,7
///∶Behavioral description of 2ˉto~1~1ine multiplexer
module mux2to1~bh(A,B,sEL,L);
input A,B,sEL;
output L;
reg I-`; //define register variable
always@(sEL or A or B)
if(SEL==1)L=B;//也可以寫成if(sEL)L=B;
else L=A;
endmodule
例4.6,8
//Behavioral description of 4-to~1-line multiplexcr
module mux4to1~bh(A,SEL,E,L);
input[3:o]A;
input[1:0]SEL;
output L;
reg L;
always@.(A or sEL Or E)
begin
if(E==1) L=0;
else
case(SEL)
21 dO:L=A[0];
21d1:L=A[1];
21d2:L=A[2];
2i d3:L=A[3];
endcase
end
endmodule