Honored Contributor II
03-09-2007 03:32 AM
I lost many sleepless nights again trying to get FIR coefficient reload to simulate properly in DSP Builder. I thought I would share my experience with everyone. Hopefully I can save you some time.My FIR setting: - 6.1 - MCV structure - 1 cycle/output - pipeline level 3 - coefficient and data are both stored in LE - coefficient scaling is turned off - forced non-symmetry - original coefficient [1 0 0] I understand that with this configuration, coef_ld is actually missing. The errata talked about how I could heck the generated HDL files to get this port to show. However, there was one problem: the user guide said that coef_ld is an input (when it is supposed to be an output!) Also one more thing that the errata or the user guide did not talk about: if you try to overwrite your coefficients that are stored in LE, the new values will disappear after reset. Furthermore, it is almost impossible to get coef_ld to show up in DSP Builder. To get the newly added port to show up in DSP Builder, you have to regenerate the megacore. However, when you regenerate your megacore, you lose coef_ld again. It's a chicken-and-egg problem. That CAUSED me a lot of sleepless nights. I finally found a work-around to that problem: - Generate a quartus project. - Instantiate the FIR core as the top level module for that project. - Heck the VHDL/Verilog file to get coef_ld to show up. - Run "Start Analysis and Elaborate" on that project. - Once that's done, go back to your DSP Builder design and import that project via HDL import. Voila! You can now simulate your FIR in DSP Builder. I ran into a second problem when I tried to run RTL simulation of my DSP Bulider design in ModelSim. Typically SignalCompiler generates simulation files, input stimuli and ModelSim tcl script. However, in this case, the tcl script failed for me (I think this is because I imported a Quartus project, which is hidden to SignalCompiler). Long story short, the steps that it took to get it to work are outlined below:
- Create a Quartus project of the DSP Builder design using signal Compile (step 1 – 3 => maybe 1 and 2 are good enough…).
- Open up that project: --- Quote Start ---
- analyze & elaborate
- analyze & synthesis
- run EDA tool to create functional netlist --- Quote End ---
- Open up ModelSim and create a new project.
- Add <new DSP Builder Project>.vho and tb_<DSP Builder project>.vhd (Signal Compiler generated this for you) to the project.
- Compile both files.
- Go to the main GUI window and type the following (essentially copying and pasting some of the original tcl scripts):