All pastes #2049633 Raw Edit

Someone

public text v1 · immutable
#2049633 ·published 2011-04-23 07:37 UTC
rendered paste body
module s3(o, y, x1, x2, os);
     output o, y;
     input x1,x2,os;
     wire t1, t2, nos, z1,z2,z3, z4, a1, a2, a3;
     
     not(t1, x1);
     not(t2, x2);
     not(nos, os);

and(z1, x1, t2, nos);
and(z2, t1, x2, nos);
and(z3, t1, t2, os);
and(z4, x1, x2, os);
or(y, z1, z2, z3, z4);

and(a1, x1, x2);
and(a2, t1, x2, os);
and(a3, x1, t2, os);
or(o, a1, a2, a3);
endmodule

module neg(y1, y2, y3, x1,x2,x3);
output y1,y2,y3;
input x1, x2, x3;
wire t1, t2, t3, o1,o2,o3, z1, zero, one;


not(z1, x1);
and(zero, z1, x1);   
not(one, zero);


not(t1,x1);
not(t2,x2);
not(t3,x3);

s3 xxx(o1, y3, t3, one, zero);
s3 xxx(o2, y2, t2, zero, o1);
s3 xxx(o3, y1, t1, zero, o2);
endmodule


module main(y1,y2,y3,y4,y5,x1,x2,x3,x4,x5,x6,x7,x8);
     output y1, y2,y3,y4,y5;
     input x1,x2,x3,x4,x5,x6,x7,x8;
	wire z1, zero, o1, o2,o3,o4,o5;

not(z1, x1);
and(zero, z1, x1);   
   
   s3 xxx(o1, y5, x4, x8, zero);
   s3 xxx(o2, y4, x3, x7, o1);
   s3 xxx(o3, y3, x2, x6, o2);
   s3 xxx(y1, y2, x1, x5, o3);
endmodule











module s3(o, y, x1, x2, os);
     output o, y;
     input x1,x2,os;
     wire t1, t2, nos, z1,z2,z3, z4, a1, a2, a3;
     
     not(t1, x1);
     not(t2, x2);
     not(nos, os);

and(z1, x1, t2, nos);
and(z2, t1, x2, nos);
and(z3, t1, t2, os);
and(z4, x1, x2, os);
or(y, z1, z2, z3, z4);

and(a1, x1, x2);
and(a2, t1, x2, os);
and(a3, x1, t2, os);
or(o, a1, a2, a3);
endmodule


//=================================================================================

module neg(y0, y1, y2, y3, y4, y5, y6, y7, y8, x0, x1, x2, x3, x4, x5, x6, x7, x8);
output y0, y1, y2, y3, y4, y5, y6, y7, y8;
input x0, x1, x2, x3, x4, x5, x6, x7, x8;
wire t0, t1, t2, t3, t4,t5,t6,t7,t8, o1,o2,o3,o4,o5,o6,o7,o8,o9, zero, one;


not(z1, x1);
and(zero, z1, x1);   
not(one, zero);


assign t0 = ~x0;
assign t1 = ~x1;
assign t2 = ~x2;
assign t3 = ~x3;
assign t4 = ~x4;
assign t5 = ~x5;
assign t6 = ~x6;
assign t7 = ~x7;
assign t8 = ~x8;

s3 xxx(o1, y8, t8, one, zero);
s3 xxx(o2, y7, t7, zero, o1);
s3 xxx(o3, y6, t6, zero, o2);
s3 xxx(o4, y5, t5, zero, o3);
s3 xxx(o5, y4, t4, zero, o4);
s3 xxx(o6, y3, t3, zero, o5);
s3 xxx(o7, y2, t2, zero, o6);
s3 xxx(o8, y1, t1, zero, o7);
s3 xxx(o9, y0, t0, zero, o8);
endmodule


module main(y0, y1, y2, y3, y4, y5, y6, y7, y8, a0, a1, a2, a3, a4, a5, a6, a7, a8, b0, b1, b2, b3, b4, b5, b6, b7, b8);
     output y0, y1, y2, y3, y4, y5, y6, y7, y8;
     input a0, a1, a2, a3, a4, a5, a6, a7, a8, b0, b1, b2, b3, b4, b5, b6, b7, b8;
	wire z1, zero, o1,o2,o3,o4,o5,o6,o7,o8,o9;

not(z1, x1);
and(zero, z1, x1);   
   
   s3 xxx(o1, y8, a8, b8, zero);
   s3 xxx(o2, y7, a7, b7, o1);
   s3 xxx(o3, y7, a6, b6, o2);
   s3 xxx(o4, y7, a5, b5, o3);
   s3 xxx(o5, y7, a4, b4, o4);
   s3 xxx(o6, y7, a3, b3, o5);
   s3 xxx(o7, y7, a2, b2, o6);
   s3 xxx(o8, y7, a1, b1, o7);
   s3 xxx(o9, y7, a0, b0, o8);
endmodule



module incr(y0, y1, y2, y3, y4, y5, y6, y7, y8, a0, a1, a2, a3, a4, a5, a6, a7, a8);
     output y0, y1, y2, y3, y4, y5, y6, y7, y8;
     input a0, a1, a2, a3, a4, a5, a6, a7, a8;
     wire z1, one, zero, o1,o2,o3,o4,o5,o6,o7,o8,o9;

not(z1, x1);
and(zero, z1, x1);  
or(zero, z1, x1);   
   
   main xxx(y0, y1, y2, y3, y4, y5, y6, y7, y8, a0, a1, a2, a3, a4, a5, a6, a7, a8, zero, zero, zero, zero, zero, zero, zero, zero, one);
endmodule








module s3gs(q, nq, s, c, r);
     output q, nq;
     input s, c, r;


assign q = ~(~(c&s) & nq);
assign nq = ~(~(c&r) & q);


endmodule

module dtri(q, nq, d, c);
     output q, nq;
     input d, c;


assign q = ~(~(c & d) & nq);
assign nq = ~(~(c & ~(c & d)) & q);


endmodule