Line 107... |
Line 107... |
|
|
|
|
// count leading zeros
|
// count leading zeros
|
//s_dvd_zeros <= count_l_zeros( s_fracta_24 );
|
//s_dvd_zeros <= count_l_zeros( s_fracta_24 );
|
always @(s_fracta_24)
|
always @(s_fracta_24)
|
casex(s_fracta_24) // synopsys full_case parallel_case
|
casez(s_fracta_24) // synopsys full_case parallel_case
|
24'b1???????????????????????: s_dvd_zeros <= 0;
|
24'b1???????????????????????: s_dvd_zeros = 0;
|
24'b01??????????????????????: s_dvd_zeros <= 1;
|
24'b01??????????????????????: s_dvd_zeros = 1;
|
24'b001?????????????????????: s_dvd_zeros <= 2;
|
24'b001?????????????????????: s_dvd_zeros = 2;
|
24'b0001????????????????????: s_dvd_zeros <= 3;
|
24'b0001????????????????????: s_dvd_zeros = 3;
|
24'b00001???????????????????: s_dvd_zeros <= 4;
|
24'b00001???????????????????: s_dvd_zeros = 4;
|
24'b000001??????????????????: s_dvd_zeros <= 5;
|
24'b000001??????????????????: s_dvd_zeros = 5;
|
24'b0000001?????????????????: s_dvd_zeros <= 6;
|
24'b0000001?????????????????: s_dvd_zeros = 6;
|
24'b00000001????????????????: s_dvd_zeros <= 7;
|
24'b00000001????????????????: s_dvd_zeros = 7;
|
24'b000000001???????????????: s_dvd_zeros <= 8;
|
24'b000000001???????????????: s_dvd_zeros = 8;
|
24'b0000000001??????????????: s_dvd_zeros <= 9;
|
24'b0000000001??????????????: s_dvd_zeros = 9;
|
24'b00000000001?????????????: s_dvd_zeros <= 10;
|
24'b00000000001?????????????: s_dvd_zeros = 10;
|
24'b000000000001????????????: s_dvd_zeros <= 11;
|
24'b000000000001????????????: s_dvd_zeros = 11;
|
24'b0000000000001???????????: s_dvd_zeros <= 12;
|
24'b0000000000001???????????: s_dvd_zeros = 12;
|
24'b00000000000001??????????: s_dvd_zeros <= 13;
|
24'b00000000000001??????????: s_dvd_zeros = 13;
|
24'b000000000000001?????????: s_dvd_zeros <= 14;
|
24'b000000000000001?????????: s_dvd_zeros = 14;
|
24'b0000000000000001????????: s_dvd_zeros <= 15;
|
24'b0000000000000001????????: s_dvd_zeros = 15;
|
24'b00000000000000001???????: s_dvd_zeros <= 16;
|
24'b00000000000000001???????: s_dvd_zeros = 16;
|
24'b000000000000000001??????: s_dvd_zeros <= 17;
|
24'b000000000000000001??????: s_dvd_zeros = 17;
|
24'b0000000000000000001?????: s_dvd_zeros <= 18;
|
24'b0000000000000000001?????: s_dvd_zeros = 18;
|
24'b00000000000000000001????: s_dvd_zeros <= 19;
|
24'b00000000000000000001????: s_dvd_zeros = 19;
|
24'b000000000000000000001???: s_dvd_zeros <= 20;
|
24'b000000000000000000001???: s_dvd_zeros = 20;
|
24'b0000000000000000000001??: s_dvd_zeros <= 21;
|
24'b0000000000000000000001??: s_dvd_zeros = 21;
|
24'b00000000000000000000001?: s_dvd_zeros <= 22;
|
24'b00000000000000000000001?: s_dvd_zeros = 22;
|
24'b000000000000000000000001: s_dvd_zeros <= 23;
|
24'b000000000000000000000001: s_dvd_zeros = 23;
|
24'b000000000000000000000000: s_dvd_zeros <= 24;
|
24'b000000000000000000000000: s_dvd_zeros = 24;
|
endcase
|
endcase
|
|
|
//s_div_zeros <= count_l_zeros( s_fractb_24 );
|
//s_div_zeros <= count_l_zeros( s_fractb_24 );
|
always @(s_fractb_24)
|
always @(s_fractb_24)
|
casex(s_fractb_24) // synopsys full_case parallel_case
|
casez(s_fractb_24) // synopsys full_case parallel_case
|
24'b1???????????????????????: s_div_zeros <= 0;
|
24'b1???????????????????????: s_div_zeros = 0;
|
24'b01??????????????????????: s_div_zeros <= 1;
|
24'b01??????????????????????: s_div_zeros = 1;
|
24'b001?????????????????????: s_div_zeros <= 2;
|
24'b001?????????????????????: s_div_zeros = 2;
|
24'b0001????????????????????: s_div_zeros <= 3;
|
24'b0001????????????????????: s_div_zeros = 3;
|
24'b00001???????????????????: s_div_zeros <= 4;
|
24'b00001???????????????????: s_div_zeros = 4;
|
24'b000001??????????????????: s_div_zeros <= 5;
|
24'b000001??????????????????: s_div_zeros = 5;
|
24'b0000001?????????????????: s_div_zeros <= 6;
|
24'b0000001?????????????????: s_div_zeros = 6;
|
24'b00000001????????????????: s_div_zeros <= 7;
|
24'b00000001????????????????: s_div_zeros = 7;
|
24'b000000001???????????????: s_div_zeros <= 8;
|
24'b000000001???????????????: s_div_zeros = 8;
|
24'b0000000001??????????????: s_div_zeros <= 9;
|
24'b0000000001??????????????: s_div_zeros = 9;
|
24'b00000000001?????????????: s_div_zeros <= 10;
|
24'b00000000001?????????????: s_div_zeros = 10;
|
24'b000000000001????????????: s_div_zeros <= 11;
|
24'b000000000001????????????: s_div_zeros = 11;
|
24'b0000000000001???????????: s_div_zeros <= 12;
|
24'b0000000000001???????????: s_div_zeros = 12;
|
24'b00000000000001??????????: s_div_zeros <= 13;
|
24'b00000000000001??????????: s_div_zeros = 13;
|
24'b000000000000001?????????: s_div_zeros <= 14;
|
24'b000000000000001?????????: s_div_zeros = 14;
|
24'b0000000000000001????????: s_div_zeros <= 15;
|
24'b0000000000000001????????: s_div_zeros = 15;
|
24'b00000000000000001???????: s_div_zeros <= 16;
|
24'b00000000000000001???????: s_div_zeros = 16;
|
24'b000000000000000001??????: s_div_zeros <= 17;
|
24'b000000000000000001??????: s_div_zeros = 17;
|
24'b0000000000000000001?????: s_div_zeros <= 18;
|
24'b0000000000000000001?????: s_div_zeros = 18;
|
24'b00000000000000000001????: s_div_zeros <= 19;
|
24'b00000000000000000001????: s_div_zeros = 19;
|
24'b000000000000000000001???: s_div_zeros <= 20;
|
24'b000000000000000000001???: s_div_zeros = 20;
|
24'b0000000000000000000001??: s_div_zeros <= 21;
|
24'b0000000000000000000001??: s_div_zeros = 21;
|
24'b00000000000000000000001?: s_div_zeros <= 22;
|
24'b00000000000000000000001?: s_div_zeros = 22;
|
24'b000000000000000000000001: s_div_zeros <= 23;
|
24'b000000000000000000000001: s_div_zeros = 23;
|
24'b000000000000000000000000: s_div_zeros <= 24;
|
24'b000000000000000000000000: s_div_zeros = 24;
|
endcase
|
endcase
|
|
|
// left-shift the dividend and divisor
|
// left-shift the dividend and divisor
|
wire [FRAC_WIDTH:0] fracta_lshift_intermediate;
|
wire [FRAC_WIDTH:0] fracta_lshift_intermediate;
|
wire [FRAC_WIDTH:0] fractb_lshift_intermediate;
|
wire [FRAC_WIDTH:0] fractb_lshift_intermediate;
|