I need a scheme to max out the DSP blocks on a Stratix 10
Hello guys,
I am working on a design to use all 3000 DSP blocks on the stratix 10 FPGA. I thought the best solution would be to instantiate this intel fixed point DSP IP as a multiplier:
I am using a generate for loop to generate 3000 of these DSP's. The issue that I am having is that Quartus is optimizing away these blocks unless I directly connect each of the 3000 DSP's with a top level output.
I do not have enough IO on the board to accommodate 3000 outputs, so I just don't constrain the output signals to a pin. Quartus gives an error and will not synthesize the design since I am trying to synthesize more IO than I have on the board.
So I tried to use combinational logic to do something like:
output = DSP_out[0] || DSP_out[1] || DSP_out[2]
this actually does work, but it only synthesizes 3 DSP blocks....so I would need a long combination statement to include all 3000 DSP_out. I tried it also in a for loop and it does not work.
Here is my full code as it stands. I just need a way for all 3000 of the DSP blocks to synthesize. I hope my question makes sense.
SOLVED!!!!
I was assigning the output registers of each DSP block incorrectly.
What I had:
assign result1_a_r[i] = result1_a[i];
assign result1_b_r[i] = result1_b[i];What it should be:
always @(posedge clk_i) beginresult1_a_r[i] <= result1_a[i];result1_b_r[i] <= result1_b[i];endI replaced this code in each of the chained DSP blocks and now I have it running up to 3000 DSP blocks.ThanksJacob