diff options
Diffstat (limited to 'rtl/modexpng_dsp_slice_addsub_wrapper_generic.v')
-rw-r--r-- | rtl/modexpng_dsp_slice_addsub_wrapper_generic.v | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/rtl/modexpng_dsp_slice_addsub_wrapper_generic.v b/rtl/modexpng_dsp_slice_addsub_wrapper_generic.v index d5b294c..1c4ca00 100644 --- a/rtl/modexpng_dsp_slice_addsub_wrapper_generic.v +++ b/rtl/modexpng_dsp_slice_addsub_wrapper_generic.v @@ -30,15 +30,10 @@ // //====================================================================== -module modexpng_dsp_slice_addsub_wrapper_generic # -( - AB_REG = 1 -) +module modexpng_dsp_slice_addsub_wrapper_generic ( clk, - ce_ab1, - ce_ab2, - ce_c, + ce_abc, ce_p, ce_ctrl, ab, c, p, @@ -53,9 +48,7 @@ module modexpng_dsp_slice_addsub_wrapper_generic # `include "modexpng_dsp48e1.vh" input clk; - input ce_ab1; - input ce_ab2; - input ce_c; + input ce_abc; input ce_p; input ce_ctrl; input [ DSP48E1_C_W -1:0] ab; @@ -72,22 +65,19 @@ module modexpng_dsp_slice_addsub_wrapper_generic # // // Internal Registers // - reg [ DSP48E1_C_W -1:0] reg_ab1; - reg [ DSP48E1_C_W -1:0] reg_ab2; + reg [ DSP48E1_C_W -1:0] reg_ab; reg [ DSP48E1_C_W -1:0] reg_c; reg [ DSP48E1_OPMODE_W -1:0] reg_op_mode; reg [ DSP48E1_ALUMODE_W -1:0] reg_alu_mode; reg [DSP48E1_CARRYINSEL_W -1:0] reg_carry_in_sel; - always @(posedge clk) begin - // - if (ce_ab1) reg_ab1 <= ab; - if (ce_ab2) reg_ab2 <= AB_REG == 2 ? reg_ab1 : ab; - if (ce_c) reg_c <= c; + always @(posedge clk) // - end - + if (ce_abc) begin + reg_ab <= ab; + reg_c <= c; + end always @(posedge clk) // @@ -134,6 +124,8 @@ module modexpng_dsp_slice_addsub_wrapper_generic # input [DSP48E1_P_W-1:0] pcin_value; case (opmode_z) DSP48E1_OPMODE_Z_0: calc_mux_z = {DSP48E1_C_W{1'b0}}; // 000 + DSP48E1_OPMODE_Z_PCIN: calc_mux_z = pcin_value; // 001 + DSP48E1_OPMODE_Z_P: calc_mux_z = p_value; // 010 DSP48E1_OPMODE_Z_C: calc_mux_z = c_value; // 011 DSP48E1_OPMODE_Z_PCIN17: calc_mux_z = {{17{1'b0}}, pcin_value[DSP48E1_C_W-1:17]}; // 101 DSP48E1_OPMODE_Z_P17: calc_mux_z = {{17{1'b0}}, p_value[DSP48E1_C_W-1:17]}; // 110 @@ -215,7 +207,7 @@ module modexpng_dsp_slice_addsub_wrapper_generic # always @(posedge clk) // if (ce_p) {reg_carry_out, reg_p} <= - calc_p(reg_alu_mode, reg_op_mode, reg_carry_in_sel, reg_p, reg_ab2, reg_c, reg_carry_out, casc_p_in); + calc_p(reg_alu_mode, reg_op_mode, reg_carry_in_sel, reg_p, reg_ab, reg_c, reg_carry_out, casc_p_in); // |