题意整理
②需要将L=(~A)·C+A·B 逻辑式转换为最小项的形式。
题解主体
②实现逻辑表达式
38译码器的输出实际上包含了输入A2 A1 A0组成的所有最小项,而该逻辑表达式作为组合电路,其输出最终可化简为最小项的形式。
由于译码器的输出为最小项取反,而逻辑函数可以写成最小项之和的形式,故可以利用附加的门电路和译码器实现逻辑函数。
由逻辑表达式可得出,输出L的逻辑表达式用最小项表示为:
L = m1+m3+m6+m7
由于译码器的输出为最小项取反,下面需要将表达式中的最小项转换为最小项取反的形式。根据反演定理,转换结果如下:
L = (m1’m3’m6’m7’)’;
‘表示取反。
由上式可知,采用与非门即可实现该电路的组合逻辑输出。关键电路如下:
结合电路图,将电路转换成Verilog代码描述如下:
wire Y0_n ; wire Y1_n ; wire Y2_n ; wire Y3_n ; wire Y4_n ; wire Y5_n ; wire Y6_n ; wire Y7_n ; decoder_38 U0( .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);
参考答案
`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 ; wire Y1_n ; wire Y2_n ; wire Y3_n ; wire Y4_n ; wire Y5_n ; wire Y6_n ; wire Y7_n ; decoder_38 U0( .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