Altera_Forum
Honored Contributor
17 years agoIP core optimization
Hi everyone,
How can I optimize any IP core for Altera FPGA technology? What kind of care needs to be taken when optimizing for particular FPGA technology or ASIC?Hi everyone,
How can I optimize any IP core for Altera FPGA technology? What kind of care needs to be taken when optimizing for particular FPGA technology or ASIC?Anyone who knows it, please help me. I would like Altera Gurus to help me out with this problem.
I've difficulties to hear a specific question.
Alright! Lets make it general, what should be an approach to optimize cores? i.e. does it make difference in optimization if I take off the shelf memory core or altera's megacore like altsyncram?
Sorry, Ketan, but it's still not clear what you want to do. Optimizing something for FPGA implementation could mean to describe the logic in a way that the synthesis tools is able to implement it according to your needs that you still haven't said. Do you want highest speed? Then try to pipeline the logic so that only one LUT is needed between two registers stages. Or do you want smallest area? Or lowest power? You question is not specific enough by now.
Altsyncram is a good example for the fact, that IP has to consider particular hardware properties. Internal RAM blocks are showing some implementation differences between FPGA families (e.g. which RAM ports are registered). Furthermore, not all internal RAM features are accessible from HDL (e.g. dual port with port width translation), an IP has to use Altera specific libraries to utilize it. If the IP is also intended for use with other vendor's FPGA, more differences come into play.
This is all about basic porting, optimizing probably means more.Thanks Harald! I am re-designing a existing fast Ethernet MAC IP (with limited feature to incorporate into an embedded system) which needs to be fit in to Altera's small FPGA which should be optimized in both speed and area. I would like to reduce its size to round about less than 1000 LEs and 4-6 Kb internal memory usage.
Thanks Frank! Can you please tell me which parameters need to be taken care of when optimizing IP cores for a specific vendor FPGA, for a time being lets take only Altera's FPGAs.Hi I wrote http://nibz.googlecode.com using Quartus II, in the current incarnation nibz12.vhd the "ALTERA" generic is not used anywhere. The LUT usage is mainly controlled by the VHDL sythesizer setting of area, balanced or speed. The area option even provides more speed sometimes, but enable register retiming etc to get the exta nano second. Avoid long chains of carry propergation. Nibz although a 34 state state machi9ne, renders as a 5 state state machine in one hot technology. Why, I don't know.
So 4-LUT or arithmetic and/xor double 3-LUT (I think) *2 in each logic element with one general register/latch. Memory: use registered read for generality. cheers jackoThanks Brad! I will look into the Handbook, but I wanted to know if there is any thumb rule!