Skip navigation.
Home

Modulo (2^n) + 1 Adder -Edwin Jose

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