Download User Manual
Transcript
DN5000k10 Features, Overview and General Description Synthesis and Emulation Issues The QuartusII™ software from Altera is able to synthesize directly from Verilog or VHDL code. However, third-party synthesis tools provide an advantage: to create a memory block or multiplier, all you need to do is describe them functionally, and the tool will infer the appropriate DSP and RAM megafunctions for Quartus to place and route. On the other hand, if you are using Quartus to synthesize, and you try to infer an M-RAM block using a functional description, Quartus will attempt to route 200,000 LEs as a memory array. So, if you don't have any other synthesis tool, you will need to become familiar with Quartus megafunctions. We have tried the following tools for synthesis: Synplicity Synplify (http://www.synplicity.com/) Synopsys FPGA Express (http://www.synopsys.com/) Synopsys FPGA Compiler II Exemplar LeonardoSpectrum (http://www.exemplar.com/products/leonardospectrum.html) Of the four listed here, we find that Synplicity offers the best performance, followed by Exemplar. The Synopsys products are not the easiest products to use, and probably should be avoided until Synopsys decides that they want to be in this market. It is generally not worth your time to preserve your Synopsys ASIC compiler directives and scripts by using the FPGA synthesis products from Synopsys. The time you save using Snopsys products is offset by other hassles. Synthesis Notes 1. The FPGAs used on your DN5000k10 are EP1S80s in an F1508 package (EP1S60s available on request). Unless you paid for a faster speed grade, the –6 is what you will be getting. 2. Assuming you have a synthesis tool other than QuartusII, memories are best implemented by describing them behaviorally in your RTL. All four synthesis products are sophisticated enough to map your behavioral descriptions into the memory blocks. It is NOT necessary to instantiate memories manually, unless you are synthesizing with Quartus. Make sure, however, to check the report files to make sure that your memories were implemented in memory blocks (if this is possible). If input and output registers in your RTL don’t match the behavior of the embedded memory blocks, the synthesis program may not recognize what you intended, and give you arrays of LEs instead. 3. Much to our surprise, the synthesis programs recognized RTL multiplier code and used the embedded multipliers without any trouble. So, like the memories, RTL description of your multipliers is all that is necessary unless you are synthesizing with Quartus. Make sure to check the report files—multipliers that are implemented using logic blocks (as opposed to the embedded memory blocks) take huge amounts of FPGA resources. 2-26 The DINI Group