1位的二选一多路选择器的逻辑表达式实现

design source

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2018/03/17 08:26:28
// Design Name: 
// Module Name: disTwo2OneSelector
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////




module disTwo2OneSelector(
    input sl,
    input a,
    input b,
    output out
    );
    reg out;
    always @(sl or a or b)
        begin
//         “?  :”表达式的返回值必须赋给一个变量。
            out=sl?b:a;
        end

endmodule

simulation source

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2018/03/17 08:45:19
// Design Name: 
// Module Name: simTwo2OneSelector
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////

module simTwo2OneSelector(


    );
    reg simA,simB,simSl;
    wire simOut;
        initial
        begin
        
        simSl=0;
        simA=0;
        simB=0;
//       在激励程序运行的瞬间,"simSl=0;simA=0;simB=0;"语句已经执行完了。
//       在0-10个时间单位,激励程序的状态保持不变。
        #10
         simSl=0;
         simA=1;
         simB=0;


    
        #10
         simSl=1;
         simA=0;
         simB=0;


    
        #10
         simSl=1;
         simA=0;
         simB=1;
        end
//  设计文件模块名      对象名            (.设计文件模块中的类中的参数(激励文件模块中的类中的参数))
    disTwo2OneSelector objTwo2OneSelector(.a(simA),.b(simB),.sl(simSl),.out(simOut));
endmodule

 

你可能感兴趣的:(1位的二选一多路选择器的逻辑表达式实现)