Forum Discussion
3 Replies
- Altera_Forum
Honored Contributor
I seem to remember this coming up on here before. I cant find the previous thread atm, but IIRC, the answer was the put the pipeline registers before the input to the multiplier rather than the output to get it to pipeline it for you.
- Altera_Forum
Honored Contributor
Thanks Tricky, however I can put registers before/after inferred multiplier but I wonder how can I put more registers inside the multiplier inferred instance just like the megawizard parameter.
- Altera_Forum
Honored Contributor
Tricky is describing register retiming.
what about using the MegaWizard to create an lpm_multiplier, then looking at their multiplier instantion:
you can see the pipeline parameter here. it looks like its using the internal DSP block registers (i looked at RTL Viewer with an Arria II GX).LIBRARY lpm; USE lpm.all; ... lpm_mult_component : lpm_mult GENERIC MAP ( lpm_hint => "MAXIMIZE_SPEED=5", lpm_pipeline => 3, lpm_representation => "SIGNED", lpm_type => "LPM_MULT", lpm_widtha => 20, lpm_widthb => 20, lpm_widthp => 40 ) PORT MAP ( dataa => dataa, datab => datab, clock => clock, result => sub_wire0 );