题意整理
本题要求根据加法器的逻辑表达式实现该电路,采用门级描述方式。
注意,题目中给出的是总体的逻辑表达式,还需要求出各个位的G P Ci。
题解主体
根据题目所给的Ci 逻辑表达式,求出C0 、C1 、C2 、C3 的逻辑表达式如下:
由上述逻辑表达式,可画出超前进位产生电路如下.
进而可画出超前进位加法器电路图如下:
根据电路图和逻辑表达式,将电路转换成Verilog代码描述如下:
and ad0(ad_o0, P0, C_1), ad1(ad_o1, P1, G0 ), ad2(ad_o2, P1, P0, C_1), ad3(ad_o3, P2, G1 ), ad4(ad_o4, P2, P1, G0), ad5(ad_o5, P2, P1, P0, C_1), ad6(ad_o6, P3, G0 ), ad7(ad_o7, P3, P2, G1), ad8(ad_o8, P3, P2, P1, G0 ), ad9(ad_o9, P3, P2, P1, P0, C_1); or or0(C0, ad_o0, G0), or1(C1, ad_o2, ad_o1, G1), or2(C2, ad_o5, ad_o4, ad_o3, G2), or3(CO, ad_o9, ad_o8, ad_o7, ad_o6, G3); xor xr3(P3, A_in[3], B_in[3]), xr2(P2, A_in[2], B_in[2]), xr1(P1, A_in[1], B_in[1]), xr0(P0, A_in[0], B_in[0]); and ad10(G3, A_in[3], B_in[3]), ad11(G2, A_in[2], B_in[2]), ad12(G1, A_in[1], B_in[1]), ad13(G0, A_in[0], B_in[0]); xor xr7(S[3], P3, C2 ), xr6(S[2], P2, C1 ), xr5(S[1], P1, C0 ), xr4(S[0], P0, C_1 );
关于门级描述方式,需要注意的是
上图实例代码中,1位置表示的是门类型,2位置表示的是门实例名,3位置表示的是门实例输出,4及以后位置表示的是门输入 ,1和2中间还可添加驱动能力和延时参数。
参考答案
`timescale 1ns/1ns module lca_4( input [3:0] A_in , input [3:0] B_in , input C_1 , output wire CO , output wire [3:0] S ); and ad0(ad_o0, P0, C_1), ad1(ad_o1, P1, G0 ), ad2(ad_o2, P1, P0, C_1), ad3(ad_o3, P2, G1 ), ad4(ad_o4, P2, P1, G0), ad5(ad_o5, P2, P1, P0, C_1), ad6(ad_o6, P3, G0 ), ad7(ad_o7, P3, P2, G1), ad8(ad_o8, P3, P2, P1, G0 ), ad9(ad_o9, P3, P2, P1, P0, C_1); or or0(C0, ad_o0, G0), or1(C1, ad_o2, ad_o1, G1), or2(C2, ad_o5, ad_o4, ad_o3, G2), or3(CO, ad_o9, ad_o8, ad_o7, ad_o6, G3); xor xr3(P3, A_in[3], B_in[3]), xr2(P2, A_in[2], B_in[2]), xr1(P1, A_in[1], B_in[1]), xr0(P0, A_in[0], B_in[0]); and ad10(G3, A_in[3], B_in[3]), ad11(G2, A_in[2], B_in[2]), ad12(G1, A_in[1], B_in[1]), ad13(G0, A_in[0], B_in[0]); xor xr7(S[3], P3, C2 ), xr6(S[2], P2, C1 ), xr5(S[1], P1, C0 ), xr4(S[0], P0, C_1 ); endmodule