2008年11月17日 星期一

2 byte compare

module compare_2_byte(A_lt_B,A_gt_B,A_eq_B,A0,A1,B0,B1);
input A0,A1,B0,B1;output A_lt_B,A_gt_B,A_eq_B;wire w1,w2,w3,w4,w5,w6,w7;or(A_lt_B,w1,w2,w3);nor(A_gt_B,A_lt_B,A_eq_B);and(A_eq_B,w4,w5);and(w1,w6,B1);and(w2,w6,w7,B0);and(w3,w7,B0,B1);not(w6,A1);not(w7,A0);xnor(w4,A1,B1);xnor(w5,A0,B0);
endmodule-------------------------------------------------------------module compare_2a(A_lt_B,A_gt_B,A_eq_B,A0,A1,B0,B1);
input A0,A1,B0,B1;output A_lt_B,A_gt_B,A_eq_B;asign A-lt_B=(~A1)&B1(-A1)&(~A0)&B0(~A0)&B1&B0;asign A_gt_B=A1&(-B1)A0&(~B1)&(~B0)A1&A0&(~B0);


method 3

asign A_lt_B=({a1,a0}<{b1,b0});
return 1 if ture else 0

method 4
always@(A or B)
if(A==B)A_eq_B=1;

沒有留言: