This design example demonstrates how to perform external phased-lock loop (PLL) sharing between the SPI-4.2 transmitter and receiver cores.
In normal cases, internal PLL sharing for the SPI-4.2 transmitter and receiver is automatically done by the Quartus® II Synthesis tool during compilation. However, there are special cases in which internal PLL sharing fails to work. For example, the SPI-4.2 ALTLVDS Megafunction of the Stratix® IV GX ES device does not support internal PLL sharing due to a DPA misalignment issue. In this case, a work around is to use external PLL sharing in order to enable PLL merging.
For more information on how to do internal PLL sharing, refer to Appendix B of the POS-PHY Level 4 MegaCore Function User Guide (PDF).
For more information on the DPA Misalignment issue in Stratix IV GX ES devices, refer to the Stratix IV GX ES Errata Sheet.
This design example is created and validated using Quartus II 9.1.
Download the files used in this example:
The use of this design is governed by, and subject to, the terms and conditions of the Altera Hardware Reference Design License Agreement
Figure 1 shows the block diagram of the functional simulation architecture
Figure 1. SPI-4.2 External PLL Sharing Functional Simulation Architecture
The device under test (DUT) module consists of the SPI-4.2 transmitter and receiver cores, the merge_pll unit, the 128-bit master source unit, and the 128-bit slave sink unit. The master source uses the Atlantic™ interface to transmit data to the SPI-4.2 transmitter core, while the 128-bit slave sink receives data from the SPI-4.2 receiver core. The merge_pll unit generates the fast clock, slow clock, and clock enable signals for both the SPI-4.2 transmitter and receiver cores. This unit also generates the rxsys_clk signal for the SPI-4.2 receiver core.
The test bench modules consist of an identical 128-bit master source for the SPI-4.2 transmitter core and a 64-bit variation slave sink module for the SPI-4.2 receiver core. The SPI-4.2 receiver core in the test bench module uses the 64-bit variation data path width. Both the SPI-4.2 transmitter and receiver cores for the test bench modules do not use external PLL sharing. In actual hardware implementation, they can be replaced with any third party SPI-4.2 devices that execute the same functionality.
Figure 2 shows the compilation report of the design example. From the report, the number of PLLs used is 1 out of 8.
Figure 2. SPI-4.2 External PLL Sharing Compilation Report
View Full Size
Figure 3 shows the clock summary report.
Figure 3. SPI-4.2 External PLL Sharing Clock Summary Report
View Full Size
For more information related to SPI-4.2 core protocol and specification, go to:
For detailed explanation on how to perform external PLL sharing between the SPI-4.2 transmitter and receiver cores, go to Altera Knowledge Database:
Design Examples Disclaimer
These design examples may only be used within Altera Corporation devices and remain the property of Altera. They are being provided on an “as-is” basis and as an accommodation; therefore, all warranties, representations, or guarantees of any kind (whether express, implied, or statutory) including, without limitation, warranties of merchantability, non-infringement, or fitness for a particular purpose, are specifically disclaimed. Altera expressly does not recommend, suggest, or require that these examples be used in combination with any other product not provided by Altera.