Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)

changing pll settings

Altera_Forum
Honored Contributor II
1,526 Views

I need to try a series of different phase delay settings on an internal (cyclone) pll. Do I have to re-synth and fit every time or is there a shortcut.

0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
803 Views

Tools -> Chip Editor. You can then double-click on the PLL, which will open the resource property editor, and change its settings. Save it off when you close the floorplanner(it should prompt you). Then run Processing -> Start -> Assembler to create a new programming file, if that's what you want. You could rerun the Timing Analyzer to see what the new timing analysis looks like, the EDA Netlist writer for a new simulation model, etc. 

 

It can be difficult to "find" the PLL in the chip-editor view. Another trick is to right-click it in the Project Navigator Hierarchy(top-left window) and Locate -> Chip Planner. 

 

Note that I believe there was a release of Quartus where you could turn on Smart Compilation, and if the only thing you changed was your PLL settings, then it would just change modify that on the next compile and rerun the assembler/TAN/etc. I don't believe it behaves this way anymore. My best guess is that PLL modifications always change timing, and changing timing technically requires a refit. So the more explicit flow listed above is recommended.
0 Kudos
Altera_Forum
Honored Contributor II
803 Views

If you are using TimeQuest, you can rerun just the timing analysis for a different phase shift. If you are using derive_pll_clocks, temporarily replace that with the generated clock(s) that derive_pll_clocks created. (Do a write_sdc, then copy from that .sdc file to the .sdc file you are using as an input to TimeQuest.) Edit the phase shift in the generated clocks. After you are satisfied with the results, modify the settings in the PLL MegaWizard, go back to derive_pll_clocks instead of the manually created generated clocks, and recompile. 

 

When you recompile, you will get some difference just because you reran the Fitter with different timing requirements as mentioned in the previous post. At the least, you will get the random variation difference that you get from any minor change to the design or timing requirements (just like the difference you get by explicitly changing the Seed value in the Fitter settings).
0 Kudos
Altera_Forum
Honored Contributor II
803 Views

 

--- Quote Start ---  

Tools -> Chip Editor. You can then double-click on the PLL, which will open the resource property editor, and change its settings. Save it off when you close the floorplanner(it should prompt you). Then run Processing -> Start -> Assembler to create a new programming file, if that's what you want. You could rerun the Timing Analyzer to see what the new timing analysis looks like, the EDA Netlist writer for a new simulation model, etc. 

 

It can be difficult to "find" the PLL in the chip-editor view. Another trick is to right-click it in the Project Navigator Hierarchy(top-left window) and Locate -> Chip Planner. 

 

 

--- Quote End ---  

 

 

I see I can just highlight the PLL block in the bdf and then Locate->Resource Property Editor. Although the table of properties does show the phase delay, it isn't an editable field. I can only change the phase by changing the 'Initial' and 'VCO Tap' entries, and these do not give anywhere near the fine tuning or the range that the MegaWizard GUI does.
0 Kudos
Altera_Forum
Honored Contributor II
803 Views

Which version of Quartus are you using? The chip-editor is a low-level representation of the silicon, so it originally didn't support the high-level things like phase shift(which affects many PLL settings and can be done in several ways). But there were enough people trying to do this that it should work in the latest Q7.1, and I believe in several previous releases.

0 Kudos
Altera_Forum
Honored Contributor II
803 Views

Version 5.0 (with all patches) 

 

It could be that the fine resolution on phase delay that I see in the MegaWizard is satified by a combination of more parameters than the ones I have tried changing in the resource editor, or that it also uses delay blocks outside of the PLL itself. Up until now I have not used the chip editor.
0 Kudos
Altera_Forum
Honored Contributor II
803 Views

Try upgrading to a more recent version and you should have a much easier time. Is what users used to do was create a small project with the same PLL instantiated in it and a few registers for it to drive. Make the Megawizard settings that you want, compile, open the chip-editor and see what the low-level parameters are set to. If you want something else and can't quickly do it with the low-level parameters, repeat the process. Just a hint if for some reason you can't upgrade. (Although naturally, it is always recommended...)

0 Kudos
Reply