Site Search

Hello, my name is Taro Washimiya and I work at Macnica providing technical support for Altera® FPGA products.

In "PLL" we explained the overview of FPGA PLL, but here we will explain the steps for using IOPLL.

For FPGA families that can use IOPLL, see "PLL".

content

  1. IOPLL generation
  2. Connection with user circuit
  3. Confirmed by simulation

tools to use

  • Altera® Quartus® Prime Pro Edition Design Software
  • ModelSim® - Altera® FPGA Edition


See the Quartus® Prime Edition Comparison for the relationship between target FPGAs and development tool editions.

If you don't already have the development software installed, you can get it from the Altera® FPGA website.

For more details, please see the content below.

How to download the Altera® Quartus® Prime Design Software and ModelSim® - Altera® FPGA Edition
How to Install Altera® Quartus® Prime Design Software and ModelSim® - Altera® FPGA Edition

1. IOPLL Generation

Here, Cyclone® 10 GX project is used as an example.

Open a project whose target device is Cyclone® 10 GX or create a new project.

(For Quartus® Prime project creation, refer to Quartus® Getting Started Guide - How to Create a Project.)

 

Type pll into the IP Catalog search bar within Quartus® Prime.

Then you can easily find the IOPLL.

With IOPLL highlighted, click Add.

 

Figure 1-1. Selecting the IOPLL Altera® FPGA IP in the IP Catalog

IP Parameter Editor launches.

Specify the folder path where you want to create the IOPLL and the name you want to give to the IOPLL, then click Create.

It is recommended that the IP be generated in the working folder of the project or a folder below it.

Figure 1-2 Specify the folder path and name to generate the IOPLL

The IOPLL parameter setting window will launch.

If you want to see detailed documentation and explanations of each setting item here, click the Details tab.

Figure 1-3 IOPLL parameter setting window

This section provides an overview of the main setting items on each tab.

PLL tab

Configure general settings such as reference clock (input clock) frequency, locked pin enable/disable, number of output clocks, and output clock settings.

Here, as an example, the settings are set as shown in the table below.

Reference clock frequency

50 (MHz)

Enable locked output port

✔ (On)

Compensation Mode

direct

Figure 1-4 IOPLL Parameter Setting Window - General Tab ①
Number Of Clocks

2

outclk0

Desired frequency

100 (MHz)

Desired Pahse Shift

0 (ps)

Desired Duty Cycle

50 (%)

outclk1

Desired frequency

100 (MHz)

Desired Pahse Shift

90 (degrees)

Desired Duty Cycle

50 (%)

Figure 1-5 IOPLL parameter setting window - General tab ②

Settings tab

Configure PLL bandwidth preset, Clock Switchover (function to switch between two inputs), LVDS External PLL, and external clock output.

To output the clock generated by the PLL to the outside of the FPGA, output from a dedicated port is recommended. Make settings for that.

Article header library 127305 pic06 1
Figure 1-6 IOPLL Parameter Settings Window - Settings Tab

 

The other tabs allow you to set the following parameters. For more information, see the IOPLL user guide.

Cascading tab

Depending on the FPGA series, PLL cascade connection is supported, and this setting is made.

Dynamic Reconfiguration Tab

Set up dynamic reconfiguration.

Advanced Parameters Tab

You can see the PLL parameter names and parameter values, such as the PLL M/N/C counter value and VCO frequency.

 

 

 

After setting various parameters, save the settings by selecting File menu ⇒ Save in IP Parameter Editor Pro.

Click Generate HDL on the bottom right to display a screen for selecting the HDL language to generate.

The Synthesis section selects the language of the files Quartus Prime uses for logic synthesis.

In the Simulation section, select the simulation model language for the EDA simulator.

Article header library 127305 pic07 1
Figure 1-7 Generation Window

Click Generate to generate the IP.

Article header library 127305 pic08 1
Figure 1-8 IOPLL generation completed

Close the IP Parameter Editor.

Now that the IOPLL generation is complete, you can connect it to your own circuit and proceed with the logic design.

If you want to change the IOPLL parameter settings, please see this FAQ.

[FAQ] How to launch the IP editing screen

After editing the necessary parts, generate the IOPLL again.

2. Connection with user circuit

Once the IOPLL is generated, connect it to the user logic.

If you are not familiar with Verilog-HDL or VHDL, please refer here. See Calling Subordinate Modules (Blocks) within this page.

Let's start! Verilog-HDL <with exercises>
Let's start! VHDL <with exercises>

If you are designing with a schematic (circuit diagram), you can not simulate it as it is, so we recommend that you design with HDL.

(* Pro Edition does not have the function to convert schematic files to HDL.)

3. Check by simulation

Let's check the behavior in simulation.

This time we will use ModelSim® - Altera® FPGA Edition.

A testbench is required for verification in simulation, but the testbench is created by the user.


See here for instructions on how to create a testbench.

Let's start! Test bench

Once you have your testbench, you are ready to simulate!

You can manually navigate and simulate with ModelSim®, but here is a convenient method. please refer.

Simulating with msel_setup.tcl

How to edit and use msim_setup.tcl


Click here for recommended articles/materials

PLL division/multiplication
PLL Applications (Reduce EMI with Spread Spectrum!)
The delicate relationship between PLL loop bandwidth and spread spectrum

PLL

List of IP-related articles and materials

Altera® FPGA Development Flow / Top Page