题解 | #使用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 Y1,Y2,Y3,Y4,Y5,Y6,Y7; decoder_38 U1( .A2(A), .A1(B), .A0(C), .E1_n(1'b0), .E2_n(1'b0), .E3(1'b1), .Y1_n(Y1), .Y2_n(Y2), .Y3_n(Y3), .Y4_n(Y4), .Y5_n(Y5), .Y6_n(Y6), .Y7_n(Y7) ); assign L = !Y1 || !Y3 || !Y6 || !Y7; endmodule
写出逻辑函数的真值表:
A | B | C | L |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 |
再和3-8译码器的真值表对应,可以得到L= ~Y1_n + ~Y3_n + ~Y6_n + ~Y7_n;