2020年3月11日 星期三

Verilog 實例說明 4x1 MUX 4對1多工器

Verilog 實例說明  4x1 MUX 4對1多工器


//=============================
// Ch04 mux4_1.v
// 4 對 1 多工器 (閘層敘述)

module mux4_1 (A, B, C, D, S1, S0, Y);
input  A,B,C,D,S1,S0;   // 一位元輸入
output Y;               // 一位元輸出  

bufif1 (CD,  D, S0);
bufif0 (CD,  C, S0);
bufif1 (AB,  B, S0);
bufif0 (AB,  A, S0);
bufif1 ( Y, CD, S1);
bufif0 ( Y, AB, S1);


endmodule

//=============================
`timescale 10ns/10ps

module T;
    reg A = 1'b0;
    reg B = 1'b1;
    reg C = 1'b0;
    reg D = 1'b1;
    reg S1 = 1'b0;
    reg S0 = 1'b0;
    wire Y;


    mux4_1 UUT (
        .A(A),
        .B(B),
        .C(C),
        .D(D),
        .S1(S1),
        .S0(S0),
        .Y(Y));

    initial
    begin
      #2400 // Final time:  2400 ns
        $stop;
    end

    initial begin
        // -------------  Current Time:  100ns
        #100;
        A = 1'b1; B = 1'b01; C = 1'b0; D = 1'b0;
        S1 = 1'b0;S0 = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  200ns
        #100;
        A = 1'b1; B = 1'b0; C = 1'b0; D = 1'b0;
        S1 = 1'b0;S0 = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  300ns
        #100;
        A = 1'b1; B = 1'b1; C = 1'b0; D = 1'b0;
        S1 = 1'b0;S0 = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  400ns
        #100;
        A = 1'b1; B = 1'b1; C = 1'b0; D = 1'b0;
        S1 = 1'b1;S0 = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  500ns
        #100;
        A = 1'b1; B = 1'b1; C = 1'b1; D = 1'b0;
        S1 = 1'b1;S0 = 1'b0;        
        // -------------------------------------
        // -------------  Current Time:  600ns
        #100;
        A = 1'b1; B = 1'b1; C = 1'b1; D = 1'b0;
        S1 = 1'b1;S0 = 1'b1;    
        // -------------------------------------
        // -------------  Current Time:  700ns
        #100;
        A = 1'b1; B = 1'b1; C = 1'b1; D = 1'b1;
        S1 = 1'b1;S0 = 1'b1;    
        // -------------------------------------
        // -------------  Current Time:  800ns
        #100;
$stop;

    end

endmodule


沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...