1.4.4.2. IOPLL and TOD Setup using IOPLL Reconfig IP
To set up the IOPLL using the IOPLL Reconfig IP and enable pulse-per-second (advanced accuracy mode) on a TOD clock running on 125MHz period clock for Intel Agilex® 7 devices, follow these steps:
- Create an Intel® Quartus® Prime project with Intel Agilex® 7 device selected.
- From IP Catalog, select IOPLL Intel® FPGA IP .
- In IP Parameter Editor, apply the following settings and generate the IOPLL instance:
- Use the same clock source as TOD period_clk to drive IOPLL reference clock. Set Reference Clock Frequency to 125 MHz.
- For Output Clocks section, set Number of Clocks to 2.
- Outclk0: Generate pps_sampling_clk, set Desired Frequency to 85.33 MHz (pps_sampling_clk = period_clk *256/375). Sampling clock factor of 256/375 is suitable for all supported period_clk frequencies.
- Outclk1: Second clock port of the IOPLL must be allocated for iopll_phased_clk. Set Desired Frequency to the TOD period_clk frequency (125 MHz).
- Enable Specify VCO frequency and set Desired VCO Frequency to 1375 MHz.
- Intel recommends you to specify the VCO frequency value as this value will be used to determine PLL unit phase shift parameter value of TOD. Otherwise, you can refer to Advanced Parameters tab for auto assigned VCO frequency.
- At Dynamic Reconfiguration tab:
- Select Enable dynamic reconfiguration of PLL.
- In MIF Generation Options, select Create MIF file during IP Generation.
- Generate the IP.
- From IP Catalog, select IOPLL Reconfig Intel® FPGA IP .
- In IP Parameter Editor, apply the following settings and generate the IOPLL Reconfig IP instance:
- Under MIF File settings, paste the path of the generated MIF File.
- Generate the IP.
- From IP Catalog, select Ethernet IEEE 1588 Time of Day Clock Intel® FPGA IP .
- In IP Parameter Editor, apply the following settings and generate the TOD Clock instance:
- De-select Enable high clock frequency mode.
- Set DEFAULT_NSEC_PERIOD to 8.
- Set DEFAULT_FNSEC_PERIOD to 0x0.
- Set DEFAULT_NSEC_ADJPERIOD to 8.
- Set DEFAULT_FNSEC_ADJPERIOD to 0x0.
- Select Enable pulse per second interface.
- Select Advanced for Accuracy mode.
- Enter desired value for Pulse width.
- Enter "100" for PLL scan clock frequency. This example uses a 100 MHz clock to feed iopll_scan_clk.
- Enter "90" for PLL unit phase shift. This example has set the IOPLL VCO frequency to 1375 MHz, the unit phase shift equals to 1/8 of IOPLL VCO period, thus 90 ps.
- Generate the IP.
When using IOPLL Reconfig IP, the dynamic phase shift interface of the TOD IP is mapped to the IOPLL Reconfig IP ports. The following table shows the mapping of the ports.
TOD Dynamic Phase Shift Interface | IOPLL Reconfig IP Ports |
---|---|
iopll_phase_done | ~ mgmt_waitrequest (inverted assignment) |
iopll_phase_en | mgmt_write |
iopll_num_phase_shifts[2:0] | mgmt_writedata[2:0] |
iopll_updn | mgmt_writedata[3] |
iopll_cnt_sel[3:0] | mgmt_writedata[7:4] |
The diagram below illustrates the connection between IOPLL, IOPLL Reconfig IP, and TOD instances. mgmt_address of IOPLL Reconfig IP can be tied to 10'h300 to select Dynamic phase shift reconfiguration operation mode. Note that the diagram does not elaborate all interfaces of the TOD instance.
Figure 2. Example of connection between IOPLL, IOPLL reconfig IP, and TOD's Advanced Accuracy Pulse Per Second Interfaces