- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi:
does anybody have the details of the pipelined lpmmux? 1. For instance I am able to enter any value in mega wizard for no. of pipeline stages. Will the tool honor it? 2. Also, how are the pipeline stages inserted i.e. based on what logic (equal no. of comb lcells between the stages) 3. In the generated synthesis netlist, I see an external_reg. Does that mean the output will be registered as well? 4. Will the inputs be registered as well? 5. Is the lpm-mux performance friendly? I want a pipelined mux tree (64 bits of data) with 500MHz clock to meet my timing. I can do lpm mux or hand place it if possible. cheers!Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Hi: does anybody have the details of the pipelined lpmmux? 1. For instance I am able to enter any value in mega wizard for no. of pipeline stages. Will the tool honor it? 2. Also, how are the pipeline stages inserted i.e. based on what logic (equal no. of comb lcells between the stages) 3. In the generated synthesis netlist, I see an external_reg. Does that mean the output will be registered as well? 4. Will the inputs be registered as well? 5. Is the lpm-mux performance friendly? I want a pipelined mux tree (64 bits of data) with 500MHz clock to meet my timing. I can do lpm mux or hand place it if possible. cheers! --- Quote End --- Just try it! Run 'Analysis & SYnthesis', then open the RTL viewer (Tools->Netlist Viewers-> RTL Viewer) and you can check Q1,2,3 and 4. For Q5 do a full compilation with a 500 MHz clock in your SDC file.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
lpm mux was written a long time ago, and I would be surprised how optimized it is. It will nicely insert pipelines, but I would be surprised if it identifies the "optimal" mux logic that can be put into a single LUT and then adds them from there. I'm guessing it does a good job but 500Mhz may be tough. As josyb said though, throw it down and see what happens.
Is it a 64:1 mux, or 64-bit data that is being muxed? How many channels? If the latter, your problem will probably be the select lines, which fan-out all over the place. I would manually replicate them in your code(or put a max fanout assignment on them) to try and get better control. (Actually, I wouldn't do anything besides writing it in HDL and seeing what fails, and then recoding from there...)- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thank you. it is a 64:1 mux. i will try it.

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