题解 | #使用3-8译码器①实现逻辑函数#

使用3-8译码器①实现逻辑函数

https://www.nowcoder.com/practice/be81e76ebade445baca7257aa4eca8f2

`timescale 1ns/1ns

module decoder_38(
   input             E1_n   ,
   input             E2_n   ,
   input             E3     ,
   input             A0     ,
   input             A1     ,
   input             A2     ,
   
   output wire       Y0_n   ,  
   output wire       Y1_n   , 
   output wire       Y2_n   , 
   output wire       Y3_n   , 
   output wire       Y4_n   , 
   output wire       Y5_n   , 
   output wire       Y6_n   , 
   output wire       Y7_n   
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign  Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign  Y1_n = ~(E & ~A2 & ~A1 &  A0);
assign  Y2_n = ~(E & ~A2 &  A1 & ~A0);
assign  Y3_n = ~(E & ~A2 &  A1 &  A0);
assign  Y4_n = ~(E &  A2 & ~A1 & ~A0);
assign  Y5_n = ~(E &  A2 & ~A1 &  A0);
assign  Y6_n = ~(E &  A2 &  A1 & ~A0);
assign  Y7_n = ~(E &  A2 &  A1 &  A0);
     
endmodule

module decoder0(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L
);

wire Y0_n,Y1_n,Y2_n,Y3_n,Y4_n,Y5_n,Y6_n,Y7_n;


decoder_38 decoder_38_inst(
   .E1_n(1'b0)   ,
   .E2_n(1'b0)   ,
   .E3(1'b1)     ,
   .A0(C)     ,
   .A1(B)     ,
   .A2(A)     ,
   
   .Y0_n(Y0_n)   ,  
   .Y1_n(Y1_n)   , 
   .Y2_n(Y2_n)   , 
   .Y3_n(Y3_n)   , 
   .Y4_n(Y4_n)   , 
   .Y5_n(Y5_n)   , 
   .Y6_n(Y6_n)   , 
   .Y7_n(Y7_n)   
);


assign L = ~(Y1_n & Y3_n & Y6_n & Y7_n);

endmodule

全部评论
其实这题你主要要搞清楚要考察的是什么,逻辑表达式L=(~A)·C+A·B,其中(~A)·C和A·B都只有两个输入,而3-8译码器是三个输入,我们只需要将(~A)·C和A·B改写成(~A)·(~B+B)C和A·B(~C+C)就可以了,还有其它的变换方法,这里只是其中一种,然后就可以根据3-8译码器得到输出了。
点赞 回复 分享
发布于 2023-05-29 14:01 广东

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务