OpenCores
URL https://opencores.org/ocsvn/xilinx_virtex_fp_library/xilinx_virtex_fp_library/trunk

Subversion Repositories xilinx_virtex_fp_library

[/] [xilinx_virtex_fp_library/] [trunk/] [DualPathFPAdderMappedConversions/] [DualPathAdderConversion.v] - Diff between revs 11 and 17

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 11 Rev 17
Line 60... Line 60...
 
 
        wire [size_exponent - 1 : 0] exp_difference;
        wire [size_exponent - 1 : 0] exp_difference;
        wire [size_exponent     : 0] exp_inter;
        wire [size_exponent     : 0] exp_inter;
        wire eff_op;
        wire eff_op;
 
 
        wire [size_exception_field - 1 : 0] set_b_sp_case, resulted_exception_field;
        wire [size_exception_field - 1 : 0] sp_case_o, resulted_exception_field;
        wire resulted_sign;
        wire resulted_sign;
        wire swap;
        wire swap;
 
 
        wire zero_flag;
        wire zero_flag;
 
 
Line 236... Line 236...
        assign unadjusted_exponentFP = exp_inter - adjust_mantissaFP;
        assign unadjusted_exponentFP = exp_inter - adjust_mantissaFP;
        assign resulted_e_oFP = do_conversion? max_entityFP[size_mantissa+size_exponent-2 : size_mantissa-1] : unadjusted_exponentFP + 1'b1;
        assign resulted_e_oFP = do_conversion? max_entityFP[size_mantissa+size_exponent-2 : size_mantissa-1] : unadjusted_exponentFP + 1'b1;
        //-------------------------------------------------------- end FarPath addition and conversion
        //-------------------------------------------------------- end FarPath addition and conversion
 
 
 
 
        assign set_b_sp_case = do_conversion? zero : sp_case_b_number;
 
 
 
        //compute exception_field
        //compute exception_field
        special_cases   #(      .size_exception_field(size_exception_field),
        special_cases   #(      .size_exception_field(size_exception_field),
                                                .zero(zero),
                                                .zero(zero),
                                                .normal_number(normal_number),
                                                .normal_number(normal_number),
                                                .infinity(infinity),
                                                .infinity(infinity),
                                                .NaN(NaN))
                                                .NaN(NaN))
                special_cases_instance( .sp_case_a_number(sp_case_a_number),
                special_cases_instance( .sp_case_a_number(sp_case_a_number),
                                                                .sp_case_b_number(set_b_sp_case),
                                                                .sp_case_b_number(sp_case_b_number),
                                                                .sp_case_result_o(resulted_exception_field));
                                                                .sp_case_result_o(sp_case_o));
 
 
 
        assign resulted_exception_field = do_conversion? sp_case_a_number : sp_case_o;
 
 
        //set zero_flag in case of equal numbers
        //set zero_flag in case of equal numbers
        assign zero_flag = ((exp_difference > 1 | !eff_op) & conversion != int_to_FP)? ~(|resulted_m_oFP) : ~(|resulted_m_oCP);
        assign zero_flag = ((exp_difference > 1 | !eff_op) & conversion != int_to_FP)?
 
                                                        ~((|{resulted_m_oFP, sp_case_o[1]}) & (|sp_case_o)) :
 
                                                        ~((|{resulted_m_oCP, sp_case_o[1]}) & (|sp_case_o));
 
 
        assign resulted_sign = do_conversion?   s_a_number :
        assign resulted_sign = do_conversion?   s_a_number :
                                                                                        ((exp_difference > 1 | !eff_op)?        (!a_greater_exponent[size_exponent]? s_a_number : (eff_op? ~s_b_number : s_b_number)) :
                                                                                        ((exp_difference > 1 | !eff_op)?        (!a_greater_exponent[size_exponent]? s_a_number : (eff_op? ~s_b_number : s_b_number)) :
                                                                                                                                                                (ovfCP ^ swap));
                                                                                                                                                                (ovfCP ^ swap));
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.