Modulo (2^n) + 1 Adder -Edwin Jose
Submitted by arredwin on Wed, 03/16/2011 - 10:44
module FA(u,y,a,b); input a,b; output y,u; or n1 (y,a,b); xnor n2(u,a,b); endmodule module FAF(u,y,a1,b1,a0,b0); input a1,b1,a0,b0; output y,u; wire x1,x2; or n3(x1,a1,b1); or n4(x2,a0,b0); xnor n5(u,a0,b0); nor n6(y,x1,x2); endmodule module squ(gi,pi,y,u); input y,u; output gi,pi; xor n7(pi,y,u); and n8(gi,y,u); endmodule module dia(si,pi,ci_1); input pi,ci_1; output si; xor n9(si,pi,ci_1); endmodule module bla(g,p,gi,pi,gi_1,pi_1); input gi,gi_1,pi,pi_1; output g,p; wire x3; and n10(p,pi,pi_1); and n11(x3,gi_1,pi); or n12(g,gi,x3); endmodule module black(out,gi,pi,cin); input gi,pi,cin; output out; wire x; and a12(x,pi,cin); or o12(out,gi,x); endmodule module whi(gi,pi,gi_1,pi_1); input gi_1,pi_1; output gi,pi; buf n13(gi,gi_1); buf n14(pi,pi_1); endmodule module Trans(u,y,a,b); input [8:0]a,b; output [7:0]y,u; FA F0(u[0],y[0],a[0],b[0]); FA F1(u[1],y[1],a[1],b[1]); FA F2(u[2],y[2],a[2],b[2]); FA F3(u[3],y[3],a[3],b[3]); FA F4(u[4],y[4],a[4],b[4]); FA F5(u[5],y[5],a[5],b[5]); FA F6(u[6],y[6],a[6],b[6]); FAF ff(u[7],y[7],a[8],b[8],a[7],b[7]); endmodule module cor(FIX,a7,b7,a8,b8); input a7,b7,a8,b8; output FIX; wire x1,x2,x3,x4; and n15(x1,b7,a8); and n16(x2,a7,b8); and n17(x3,a8,b8); or n18(x4,x2,x3); or n19(FIX,x4,x1); endmodule module dma(qi,pi,u,y); input [7:0]u,y; output [7:0]qi,pi; squ s0(qi[0],pi[0],u[0],y[7]); squ s1(qi[1],pi[1],u[1],y[0]); squ s2(qi[2],pi[2],u[2],y[1]); squ s3(qi[3],pi[3],u[3],y[2]); squ s4(qi[4],pi[4],u[4],y[3]); squ s5(qi[5],pi[5],u[5],y[4]); squ s6(qi[6],pi[6],u[6],y[5]); squ s7(qi[7],pi[7],u[7],y[6]); endmodule module ppa(c,d,qi,pi); input [7:0]qi,pi; output [7:0]c,d; wire [31:0]w; whi w1(w[0],w[1],qi[0],pi[0]); whi w2(w[2],w[3],w[0],w[1]); whi w3(c[0],d[0],w[2],w[3]); bla b1(w[4],w[5],qi[1],pi[1],qi[0],pi[0]); whi w4(w[6],w[7],w[4],w[5]); whi w5(c[1],d[1],w[6],w[7]); whi w6(w[8],w[9],qi[2],pi[2]); bla b2(w[10],w[11],w[8],w[9],w[4],w[5]); whi w7(c[2],d[2],w[10],w[11]); bla b3(w[12],w[13],qi[3],pi[3],qi[2],pi[2]); bla b4(w[14],w[15],w[12],w[13],w[4],w[5]); whi w8(c[3],d[3],w[14],w[15]); whi w9(w[16],w[17],qi[4],pi[4]); whi w10(w[18],w[19],w[16],w[17]); bla b5(c[4],d[4],w[18],w[19],w[14],w[15]); bla b6(w[20],w[21],qi[5],pi[5],qi[4],pi[4]); whi w11(w[22],w[23],w[20],w[21]); bla b7(c[5],d[5],w[22],w[23],w[14],w[15]); whi w12(w[24],w[25],qi[6],pi[6]); bla b8(w[26],w[27],w[24],w[25],w[20],w[21]); bla b9(c[6],d[6],w[26],w[27],w[14],w[15]); bla b10(w[28],w[29],qi[7],pi[7],qi[6],pi[6]); bla b11(w[30],w[31],w[28],w[29],w[20],w[21]); bla b12(c[7],d[7],w[30],w[31],w[14],w[15]); endmodule module corr(z,FIX,k7); input FIX,k7; output z; or n20(z,FIX,k7); endmodule module EAC(x,c,d,pi,z); input [7:0]c,d,pi; input z; output [8:0]x; wire [6:0]h; dia d1(x[0],pi[0],z); black b13(h[0],c[0],d[0],z); dia d2(x[1],h[0],pi[1]); black b14(h[1],c[1],d[1],z); dia d3(x[2],h[1],pi[2]); black b15(h[2],c[2],d[2],z); dia d4(x[3],h[2],pi[3]); black b16(h[3],c[3],d[3],z); dia d5(x[4],h[3],pi[4]); black b17(h[4],c[4],d[4],z); dia d6(x[5],h[4],pi[5]); black b18(h[5],c[5],d[5],z); dia d7(x[6],h[5],pi[6]); black b19(h[6],c[6],d[6],z); dia d8(x[7],h[6],pi[7]); buf b2(x[8],d[7]); endmodule module aaa(A,B,n,m,FIX,Cin,SUM); input [8:0]A,B; output [7:0]n,m; output [8:0]SUM; output FIX,Cin; wire [7:0]r,t,e,f; Trans t1(r,t,A,B); dma d1(e,f,r,t); cor c1(FIX,A[7],B[7],A[8],B[8]); ppa p1(n,m,e,f); corr c2(Cin,FIX,m[7]); EAC e1(SUM,n,m,f,Cin); endmodule
