- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is there a way or attribute to control the pipeline value of an inferred multiplier? It looks like that Quartus will use 1 pipeline only.
Thanks in advanceLink Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tricky is describing register retiming.
what about using the MegaWizard to create an lpm_multiplier, then looking at their multiplier instantion: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
);
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).

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page