1.數據選擇器是指經過選擇,把多個通道的數據傳到唯一的公共數據通道上。實現數據選擇功能的邏輯電路稱為數據選擇器,它的作用相當於多個輸入的單刀多擲開關。本例程以四選一數據選擇器(電平觸發)為例。 四選一數據選擇器書堆 4 個數據源進行選擇, 使用量為地址 A1A0 產生 4 個地址信號,由 A1A0 等於“00” 、 “01” 、 “10” 、 “11”來選擇輸出,真值表如下:
module mux4(d0,d1,d2,d3,y,a,g); input d0,d1,d2,d3; // 輸入的四個數據 input g; // 輸入使能端 input[1:0] a; // 輸入的選擇端 output y; // 輸出數據 reg y; // 輸出數據寄存器 always@(d0 or d1 or d2 or d3 or g or a) // 電平觸發,當 d0,d1,d2,d3,a 有變化時 候、// 觸發 begin if(g==1'b0) //當 當 g 為 為 0 時候 y=1'b0; //y 置 置 0 else case(a) // 判斷 a 的取值,並作出相應的賦值 2'b00:y=d0; 2'b01:y=d1; 2'b10:y=d2; 2'b11:y=d3; default:y=1'b0; //a 為其他值得條件下,y 賦予 0 endcase end endmodule
時序仿真結果:
2.加法器是一種較為常見的算術運算電路,包括半加器(對兩個輸入數據相加,輸出一個結果位和進位,沒有進位輸入的電路),全加器(有進位輸入)。
如題,實現一個四位全加器:
module add4(a,b,ci,s,co); input [3:0] a,b; // 輸入四位數據 a ,b input ci; // 輸入進位 ci output [3:0] s; // 輸出四位數據 s output co; // 輸出進位 co assign {co,s}=a+b+ci; //把 把 a 、b 、ci 相加后的結果賦予 co 、s ,其中 co // 放最高位,s 放低三位 endmodule