module modexpng_dsp_array_block ( clk, ce_a, ce_b, ce_m, ce_p, ce_mode, mode_z, a, b, p ); `include "modexpng_parameters.vh" `include "modexpng_dsp48e1.vh" `include "modexpng_dsp_slice_primitive.vh" input clk; input ce_a; input ce_b; input ce_m; input ce_p; input ce_mode; input [ NUM_MULTS_AUX -1:0] mode_z; input [NUM_MULTS_HALF_AUX * WORD_EXT_W -1:0] a; input [ WORD_W -1:0] b; output [NUM_MULTS_AUX * MAC_W -1:0] p; wire [DSP48E1_A_W -1:0] casc_a[0:NUM_MULTS_HALF-1]; wire [DSP48E1_B_W -1:0] casc_b[0:NUM_MULTS_HALF-1]; wire ce_a0 = ce_a; reg ce_a1 = 1'b0; reg ce_a2 = 1'b0; wire ce_b0 = ce_b; reg ce_b1 = 1'b0; always @(posedge clk) begin ce_a1 <= ce_a0; ce_a2 <= ce_a1; ce_b1 <= ce_b0; end genvar z; generate for (z=0; z