列表

详情


VL20. 数据选择器实现逻辑电路

描述

请使用此4选1数据选择器和必要的逻辑门实现下列表达式。

L=A∙B+A∙~C+B∙C
数据选择器的逻辑符号如下图:
数据选择器代码如下,可在本题答案中添加并例化此数据选择器。
module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

输入描述

   input             A     ,
   input             B     ,
   input             C         

输出描述

   output wire       L 

原站题解

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    
    wire  y;
    
    data_sel u_data_sel(
    
        .S0     (C),
        .S1     (0),
        .D0     (A),
        .D1     (B),
        .D2     (),
        .D3     (),
   
        .Y      (y)
    
    );
    
    assign L = y | (A&B);
    
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    wire l;
    data_sel sev (.S0(A), .S1(B), .D0(C), .D1(C), .D2(C), .D3(C), .Y(l));
    assign L = (B&l&(~A))+(A&(~B)&(~l))+(A&B&(~l))+(A&B&l);
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    wire N_C;
    not (N_C,C);
    data_sel ds(
        .S0(B),
        .S1(A),
        .D0('b0),
        .D1(C),
        .D2(N_C),
        .D3(1'b1),
        .Y(L)
                );  
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    
    data_sel u0(
        .S0 (C)    ,
        .S1 (B)    ,
        .D0 (A)    ,
        .D1 (1'b0)    ,
        .D2 (A)    ,
        .D3 (1'b1)    ,
   
        .Y  (L)  
);
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    
    data_sel data_sel_inst (
        .S0(B),
        .S1(A),
        .D0(1'b0),
        .D1(C),
        .D2(~C),
        .D3(1'b1),
        .Y (L)
    );
endmodule

上一题