Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17268 Discussions

Modelsim and CycloneV PLL : flat output

Altera_Forum
Honored Contributor II
1,531 Views

Hello everyone, 

 

I am trying to simulate a QSys design with Nios and custom IPs, one of them including a reconfigurable pll. 

I am able to compile my design, simulate it, but when simulating, clock outputs from the pll stay at a value of '0' and it doesn't lock. 

 

What makes it tricky is that I can simulate the IP which contains the PLL with a testbench and everything works fine. but when this IP is placed in a wider qsys design it doesn't work. 

I watched pll inputs ant outputs, nothing seems suspect except its flat outputs : 

 

pll startup : 

https://www.alteraforum.com/forum/attachment.php?attachmentid=8865  

as you can see, output clocks stay flat, but reconfig_from_pll has a legit value. 

 

the libraries I use in my design :  

vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v" -work altera_ver vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v" -work lpm_ver vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v" -work sgate_ver vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v" -work altera_mf_ver vlog -sv "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/altera_lnsim_for_vhdl.sv" -work altera_lnsim_ver vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.v" -work cyclonev_ver vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_syn_attributes.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_standard_functions.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/alt_dspbuilder_package.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_europa_support_lib.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives_components.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.vhd" -work altera vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/220pack.vhd" -work lpm vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.vhd" -work lpm vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate_pack.vhd" -work sgate vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.vhd" -work sgate vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf_components.vhd" -work altera_mf vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.vhd" -work altera_mf vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim_components.vhd" -work altera_lnsim vlog "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/cyclonev_atoms_ncrypt.v" -work cyclonev vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_atoms.vhd" -work cyclonev vcom "$QUARTUS_INSTALL_DIR/eda/sim_lib/cyclonev_components.vhd" -work cyclonev  

they are all given as -L arguments to the vsim command. 

 

the pll simulation file I use : 

vcom "D:/dev/TstPtfm/output_files/testbench/TstPtfm_tb/simulation/submodules/altera_pll_clock_gen.vho" -work clock_generator  

 

when vsim loads the component : 

# Loading clock_generator.clock_def_pkg(body)# Loading clock_generator.f_clock_generator_ip(imp)# Loading altera_lnsim.altera_lnsim_components# Loading clock_generator.altera_pll_clock_gen(rtl)# Loading sv_std.std# Loading cyclonev_ver.cyclonev_lcell_comb# Loading ieee.vital_timing(body)# Loading ieee.vital_primitives(body)# Loading cyclonev.cyclonev_atom_pack(body)# Loading cyclonev.cyclonev_components# Loading sgate.sgate_pack(body)# Loading clock_generator.altera_pll_reconfig_clock_gen(rtl)  

it seems that all necessary libraries are loaded. 

 

I already RTFM and googled my problem. The only thread that could be related is : 

http://www.alteraforum.com/forum/showthread.php?t=42356&referrerid=90168 

I already had to deal with this "error in protected content" issue and used the solution given in the thread (include verilog lib). 

 

My question is simple : do you have any idea of what is happening and how to solve it? 

 

Thank you for reading all this and have a good day!
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
760 Views

I haven't run into this problem myself. But I think you need to ask yourself if it works fine for you in isolation, but fails when integrated into the larger system: what changed? 

 

From your description, it sounds like you might be using your own Modelsim scripts instead of the Qsys generated ones; your list of libraries doesn't match what I have in my projects which use the msim_setup.tcl from Qsys 13.1 Have you tried using the Qsys testbench scripts just to see it lock (or not)?
0 Kudos
Altera_Forum
Honored Contributor II
760 Views

Sooooo... I finally managed to make this pll work. 

I originally used a first pll to provide its clock input, starting up after a short while. I used its "locked" signal as a reset so that my problematic pll didn't try to sync without input (cf printscreen from the first post). I switched for an independent clock source, starting up without delay, and suddenly it works.  

So my conclusion is : never let a pll without input clock, even if it's in reset (at least in modelsim).
0 Kudos
Reply