//عبدالاحد محمودي
//تمرين مقايسه کننده10 بيتي

module comp(q1,q0,a,b);
input a,b;
output q1,q0;

assign q1=~a|b;
assign q0=a|~b;
endmodule


module mux(out,s,a,b);
input a,b,s;
output out;

assign out= s?a:b;
endmodule

module sam(a1,a2,a,b,c,d);
output a1,a2;
input a,b,c,d;
mux mu1(a1,a^b,a,c);
mux mu2(a2,a^b,b,d);
endmodule

module main1(q1,q0,x,y);
wire [9:0]p1,p0;
output q1,q0;
input [9:0]x;
input [9:0]y;
sam sam1(p1[9],p0[9],x[9],y[9],x[8],y[8]);
sam sam2(p1[8],p0[8],p1[9],p0[9],x[7],y[7]);
sam sam3(p1[7],p0[7],p1[8],p0[8],x[6],y[6]);
sam sam4(p1[6],p0[6],p1[7],p0[7],x[5],y[5]);
sam sam5(p1[5],p0[5],p1[6],p0[6],x[4],y[4]);
sam sam6(p1[4],p0[4],p1[5],p0[5],x[3],y[3]);
sam sam7(p1[3],p0[3],p1[4],p0[4],x[2],y[2]);
sam sam8(p1[2],p0[2],p1[3],p0[3],x[1],y[1]);
sam sam9(p1[1],p0[1],p1[2],p0[2],x[0],y[0]);
comp com1(q1,q0,p1[1],p0[0]);

endmodule

module test;
reg [9:0]a=10'b1100110001;
reg [9:0]b=10'b1111001111;
wire o1,o2;
main1 main11(o1,o2,a,b);

initial begin
#1 $display("\tA=%d\tB=%d\t o1=%d\t o2=%b",a,b,o1,o2);
end
endmodule