Intel Cyclone 10 GX Core Fabric and General Purpose I/Os Handbook
1. Logic Array Blocks and Adaptive Logic Modules in Intel Cyclone 10 GX Devices
You can use a quarter of the available LABs in the Intel® Cyclone® 10 GX devices as a memory LAB (MLAB). Certain devices may have higher MLAB ratio.
The Intel® Quartus® Prime software and other supported third-party synthesis tools, in conjunction with parameterized functions such as the library of parameterized modules (LPM), automatically choose the appropriate mode for common functions such as counters, adders, subtractors, and arithmetic functions.
This chapter contains the following sections:
- LAB
- ALM Operating Modes
1.1. LAB
MLAB is a superset of the LAB and includes all the LAB features.
1.1.1. MLAB
You can configure each ALM in an MLAB as a 32 (depth) × 2 (width) memory block, resulting in a configuration of 32 (depth) × 20 (width) simple dual-port SRAM block.
MLAB supports the following 64-deep modes in soft implementation using the Intel® Quartus® Prime software:
- 64 (depth) × 8 (width)
- 64 (depth) × 9 (width)
- 64 (depth) × 10 (width)
1.1.2. Local and Direct Link Interconnects
The direct link connection feature minimizes the use of row and column interconnects, providing higher performance and flexibility.
The local interconnect drives ALMs in the same LAB using column and row interconnects, and ALM outputs in the same LAB.
Neighboring LABs, MLABs, M20K blocks, or digital signal processing (DSP) blocks from the left or right can also drive the LAB’s local interconnect using the direct link connection.
1.1.3. Shared Arithmetic Chain and Carry Chain Interconnects
1.1.4. LAB Control Signals
The LAB control block generates up to three clocks using the two clock sources and three clock enable signals. An inverted clock source is considered as an individual clock source. Each clock and the clock enable signals are linked.
Deasserting the clock enable signal turns off the corresponding LAB-wide clock.
The LAB row clocks [5..0] and LAB local interconnects generate the LAB-wide control signals. The inherent low skew of the MultiTrack interconnect allows clock and control signal distribution in addition to data. The MultiTrack interconnect consists of continuous, performance-optimized routing lines of different lengths and speeds used for inter- and intra-design block connectivity.
Clear and Preset Logic Control
LAB-wide signals control the logic for the register’s clear signal. The ALM directly supports an asynchronous clear function. The register preset is implemented as the NOT-gate push-back logic in the Intel® Quartus® Prime software. Each LAB supports up to two clears.
Intel® Cyclone® 10 GX devices provide a device-wide reset pin (DEV_CLRn) that resets all the registers in the device. You can enable the DEV_CLRn pin in the Intel® Quartus® Prime software before compilation. The device-wide reset signal overrides all other control signals.
1.1.5. ALM Resources
With up to eight inputs for the two combinational ALUTs, one ALM can implement various combinations of two functions. This adaptability allows an ALM to be completely backward-compatible with four-input LUT architectures. One ALM can also implement any function with up to six inputs and certain seven-input functions.
One ALM contains four programmable registers. Each register has the following ports:
- Data
- Clock
- Synchronous and asynchronous clear
- Synchronous load
Global signals, general purpose I/O (GPIO) pins, or any internal logic can drive the clock enable signal and the clock and clear control signals of an ALM register.
For combinational functions, the registers are bypassed and the output of the look-up table (LUT) drives directly to the outputs of an ALM.
1.1.6. ALM Output
The LUT, adder, or register output can drive the ALM outputs. The LUT or adder can drive one output while the register drives another output.
Register packing improves device utilization by allowing unrelated register and combinational logic to be packed into a single ALM. Another mechanism to improve fitting is to allow the register output to feed back into the LUT of the same ALM so that the register is packed with its own fan-out LUT. The ALM can also drive out registered and unregistered versions of the LUT or adder output.
1.2. ALM Operating Modes
The Intel® Cyclone® 10 GX ALM operates in any of the following modes:
- Normal mode
- Extended LUT mode
- Arithmetic mode
- Shared arithmetic mode
1.2.1. Normal Mode
Up to eight data inputs from the LAB local interconnect are inputs to the combinational logic.
The ALM can support certain combinations of completely independent functions and various combinations of functions that have common inputs.
The Intel® Quartus® Prime Compiler automatically selects the inputs to the LUT. ALMs in normal mode support register packing.
For the packing of two five-input functions into one ALM, the functions must have at least two common inputs. The common inputs are dataa and datab. The combination of a four-input function with a five-input function requires one common input (either dataa or datab).
In the case of implementing two six-input functions in one ALM, four inputs must be shared and the combinational function must be the same. In a sparsely used device, functions that could be placed in one ALM may be implemented in separate ALMs by the Intel® Quartus® Prime software to achieve the best possible performance. As a device begins to fill up, the Intel® Quartus® Prime software automatically uses the full potential of the Intel® Cyclone® 10 GX ALM. The Intel® Quartus® Prime Compiler automatically searches for functions using common inputs or completely independent functions to be placed in one ALM to make efficient use of device resources. In addition, you can manually control resource use by setting location assignments.
You can implement any six-input function using the following inputs:
- dataa
- datab
- datac
- datad
- datae0 and dataf1, or datae1 and dataf0
If you use datae0 and dataf1 inputs, you can obtain the following outputs:
- Output driven to register0 or register0 is bypassed
- Output driven to register1 or register1 is bypassed
You can use the datae1 or dataf0 input, whichever is available, as the packed register input to register2 or register3.
If you use datae1 and dataf0 inputs, you can obtain the following outputs:
- Output driven to register2 or register2 is bypassed
- Output driven to register3 or register3 is bypassed
You can use the datae0 or dataf1 input, whichever is available, as the packed register input to register0 or register1.
1.2.2. Extended LUT Mode
A seven-input function can be implemented in a single ALM using the following inputs:
- dataa
- datab
- datac
- datad
- datae0
- datae1
- dataf0 or dataf1
If you use dataf0 input, you can obtain the following outputs:
- Output driven to register0 or register0 is bypassed
- Output driven to register1 or register1 is bypassed
You can use the dataf1 input as the packed register input to register2 or register3.
If you use dataf1 input, you can obtain the following outputs:
- Output driven to register2 or register2 is bypassed
- Output driven to register3 or register3 is bypassed
You can use the dataf0 input as the packed register input to register0 or register1.
1.2.3. Arithmetic Mode
The dedicated adders allow the LUTs to perform pre-adder logic; therefore, each adder can add the output of two four-input functions.
The ALM supports simultaneous use of the adder’s carry output along with combinational logic outputs. The adder output is ignored in this operation.
Using the adder with the combinational logic output provides resource savings of up to 50% for functions that can use this mode.
Arithmetic mode also offers clock enable, counter enable, synchronous up and down control, add and subtract control, synchronous clear, and synchronous load.
The LAB local interconnect data inputs generate the clock enable, counter enable, synchronous up/down, and add/subtract control signals. These control signals are good candidates for the inputs that are shared between the four LUTs in the ALM.
The synchronous clear and synchronous load options are LAB-wide signals that affect all registers in the LAB. You can individually disable or enable these signals for each register. The Intel® Quartus® Prime software automatically places any registers that are not used by the counter into other LABs.
Carry Chain
The carry chain provides a fast carry function between the dedicated adders in arithmetic or shared arithmetic mode.
The two-bit carry select feature in Intel® Cyclone® 10 GX devices halves the propagation delay of carry chains within the ALM. Carry chains can begin in either the first ALM or the fifth ALM in a LAB. The final carry-out signal is routed to an ALM, where it is fed to local, row, or column interconnects.
To avoid routing congestion in one small area of the device if a high fan-in arithmetic function is implemented, the LAB can support carry chains that only use either the top half or bottom half of the LAB before connecting to the next LAB. This leaves the other half of the ALMs in the LAB available for implementing narrower fan-in functions in normal mode. Carry chains that use the top five ALMs in the first LAB carry into the top half of the ALMs in the next LAB in the column. Carry chains that use the bottom five ALMs in the first LAB carry into the bottom half of the ALMs in the next LAB within the column. You can bypass the top-half of the LAB columns and bottom-half of the MLAB columns.
The Intel® Quartus® Prime Compiler creates carry chains longer than 20 ALMs (10 ALMs in arithmetic or shared arithmetic mode) by linking LABs together automatically. For enhanced fitting, a long carry chain runs vertically, allowing fast horizontal connections to the TriMatrix memory and DSP blocks. A carry chain can continue as far as a full column.
1.2.4. Shared Arithmetic Mode
This mode configures the ALM with four four-input LUTs. Each LUT either computes the sum of three inputs or the carry of three inputs. The output of the carry computation is fed to the next adder using a dedicated connection called the shared arithmetic chain.
Shared Arithmetic Chain
The shared arithmetic chain available in enhanced arithmetic mode allows the ALM to implement a four-input adder. This significantly reduces the resources necessary to implement large adder trees or correlator functions.
The shared arithmetic chain can begin in either the first or sixth ALM in a LAB.
Similar to carry chains, the top and bottom half of the shared arithmetic chains in alternate LAB columns can be bypassed. This capability allows the shared arithmetic chain to cascade through half of the ALMs in an LAB while leaving the other half available for narrower fan-in functionality. In every LAB, the column is top-half bypassable; while in MLAB, columns are bottom-half bypassable.
The Intel® Quartus® Prime Compiler creates shared arithmetic chains longer than 20 ALMs (10 ALMs in arithmetic or shared arithmetic mode) by linking LABs together automatically. To enhance fitting, a long shared arithmetic chain runs vertically, allowing fast horizontal connections to the TriMatrix memory and DSP blocks. A shared arithmetic chain can continue as far as a full column.
1.3. LAB Power Management Techniques
Use the following techniques to manage static and dynamic power consumption within the LAB:
- Intel® Cyclone® 10 GX LABs operate in high-performance mode or low-power mode. The Intel® Quartus® Prime software automatically optimizes the LAB power consumption mode based on your design.
- Clocks, especially LAB clocks, consumes a significant portion of dynamic power. Each LAB's clock and clock enable signals are linked and can be controlled by a shared, gated clock. Use the LAB-wide clock enable signal to gate the LAB-wide clock without disabling the entire clock tree. In your HDL code for registered logic, use a clock-enable construct.
1.4. Logic Array Blocks and Adaptive Logic Modules in Intel Cyclone 10 GX Devices Revision History
Document Version | Changes |
---|---|
2019.12.27 | Updated
the following signal names in ALM Connection
Details for
Intel®
Cyclone® 10 GX
Devices figure:
|
Date | Version | Changes |
---|---|---|
May 2017 | 2017.05.08 | Initial release. |
2. Embedded Memory Blocks in Intel Cyclone 10 GX Devices
The embedded memory blocks in the devices are flexible and designed to provide an optimal amount of small- and large-sized memory arrays to fit your design requirements.
2.1. Types of Embedded Memory
The Intel® Cyclone® 10 GX devices contain two types of memory blocks:
- 20 Kb M20K blocks—blocks of dedicated memory resources. The M20K blocks are ideal for larger memory arrays while still providing a large number of independent ports.
- 640 bit memory logic array blocks (MLABs)—enhanced memory blocks that are configured from dual-purpose logic array blocks (LABs). The MLABs are ideal for wide and shallow memory arrays. The MLABs are optimized for implementation of shift registers for digital signal processing (DSP) applications and filter delay lines. Each MLAB is made up of ten adaptive logic modules (ALMs). In the Intel® Cyclone® 10 GX devices, you can configure these ALMs as ten 32 x 2 blocks, giving you one 32 x 20 simple dual-port SRAM block per MLAB.
2.1.1. Embedded Memory Capacity in Intel Cyclone 10 GX Devices
Product Line | M20K | MLAB | Total RAM Bit (Kb) | ||
---|---|---|---|---|---|
Block | RAM Bit (Kb) | Block | RAM Bit (Kb) | ||
10CX085 | 291 | 5,820 | 1,044 | 653 | 6,473 |
10CX105 | 382 | 7,640 | 1,278 | 799 | 8,439 |
10CX150 | 475 | 9,500 | 1,843 | 1,152 | 10,652 |
10CX220 | 587 | 11,740 | 2,704 | 1,690 | 13,430 |
2.2. Embedded Memory Design Guidelines for Intel Cyclone 10 GX Devices
There are several considerations that require your attention to ensure the success of your designs. Unless noted otherwise, these design guidelines apply to all variants of this device family.
2.2.1. Consider the Memory Block Selection
The Intel® Quartus® Prime software automatically partitions the user-defined memory into the memory blocks based on your design's speed and size constraints. For example, the Intel® Quartus® Prime software may spread out the memory across multiple available memory blocks to increase the performance of the design.
To assign the memory to a specific block size manually, use the RAM IP core in the parameter editor.
For the MLABs, you can implement single-port SRAM through emulation using the Intel® Quartus® Prime software. Emulation results in minimal additional use of logic resources.
Because of the dual purpose architecture of the MLAB, only data input registers, output registers, and write address registers are available in the block. The MLABs gain read address registers from the ALMs.
2.2.2. Guideline: Implement External Conflict Resolution
In the true dual-port RAM mode, you can perform two write operations to the same memory location. However, the memory blocks do not have internal conflict resolution circuitry. To avoid unknown data being written to the address, implement external conflict resolution logic to the memory block.
2.2.3. Guideline: Customize Read-During-Write Behavior
Customize the read-during-write behavior of the memory blocks to suit your design requirements.
2.2.3.1. Same-Port Read-During-Write Mode
The same-port read-during-write mode applies to a single-port RAM or the same port of a true dual-port RAM.
Output Mode | Memory Type | Description |
---|---|---|
"new data"
(flow-through) |
M20K | The new data is available on the rising edge of the same clock cycle on which the new data is written. |
"don't care" | M20K, MLAB | The RAM outputs "don't care" values for a read-during-write operation. |
2.2.3.2. Mixed-Port Read-During-Write Mode
The mixed-port read-during-write mode applies to simple and true dual-port RAM modes where two ports perform read and write operations on the same memory address using the same clock—one port reading from the address, and the other port writing to it.
Output Mode | Memory Type | Description |
---|---|---|
"new data" | MLAB |
A read-during-write operation to different ports causes the MLAB registered output to reflect the “new data” on the next rising edge after the data is written to the MLAB memory. This mode is available only if the output is registered. |
"old data" | M20K, MLAB |
A read-during-write operation to different ports causes the RAM output to reflect the “old data” value at the particular address. For MLAB, this mode is available only if the output is registered. |
"don't care" | M20K, MLAB |
The RAM outputs “don’t care” or “unknown” value.
|
"constrained don't care" | MLAB |
The RAM outputs “don’t care” or “unknown” value. The Intel® Quartus® Prime software analyzes the timing between write and read operations in the MLAB. |
In the dual-port RAM mode, the mixed-port read-during-write operation is supported if the input registers have the same clock.
2.2.4. Guideline: Consider Power-Up State and Memory Initialization
Consider the power up state of the different types of memory blocks if you are designing logic that evaluates the initial power-up values, as listed in the following table.
Memory Type | Output Registers | Power Up Value |
---|---|---|
MLAB | Used | Zero (cleared) |
Bypassed | Read memory contents | |
M20K | Used | Zero (cleared) |
Bypassed | Zero (cleared) |
By default, the Intel® Quartus® Prime software initializes the RAM cells in Intel® Cyclone® 10 GX devices to zero unless you specify a .mif.
All memory blocks support initialization with a .mif. You can create .mif files in the Intel® Quartus® Prime software and specify their use with the RAM IP core when you instantiate a memory in your design. Even if a memory is pre-initialized (for example, using a .mif), it still powers up with its output cleared.
2.2.5. Guideline: Control Clocking to Reduce Power Consumption
Reduce AC power consumption of each memory block in your design:
- Use Intel® Cyclone® 10 GX memory block clock-enables to allow you to control clocking of each memory block.
- Use the read-enable signal to ensure that read operations occur only when necessary. If your design does not require read-during-write, you can reduce your power consumption by deasserting the read-enable signal during write operations, or during the period when no memory operations occur.
- Use the Intel® Quartus® Prime software to automatically place any unused memory blocks in low-power mode to reduce static power.
2.3. Embedded Memory Features
Features | M20K | MLAB |
---|---|---|
Maximum operating frequency |
730 MHz |
700 MHz |
Total RAM bits (including parity bits) |
20,480 |
640 |
Parity bits | Supported | — |
Byte enable | Supported | Supported |
Packed mode | Supported | — |
Address clock enable | Supported | — |
Simple dual-port mixed width | Supported | — |
True dual-port mixed width | Supported | — |
Memory Initialization File (.mif) | Supported | Supported |
Mixed-clock mode | Supported | Supported |
Fully synchronous memory | Supported | Supported |
Asynchronous memory | — | Only for flow-through read memory operations. |
Power-up state |
Output ports are cleared. |
|
Asynchronous clears | Output registers and output latches | Output registers and output latches |
Write/read operation triggering | Rising clock edges | Rising clock edges |
Same-port read-during-write |
Output ports set to "new data" or "don't care". |
Output ports set to "don't care". |
Mixed-port read-during-write | Output ports set to "old data" or "don't care". | Output ports set to "old data", "new data", "don't care", or "constrained don't care". |
ECC support |
Soft IP support using the Intel® Quartus® Prime software. Built-in support in x32-wide simple dual-port mode. |
Soft IP support using the Intel® Quartus® Prime software. |
2.4. Embedded Memory Modes
Memory Mode | M20K Support | MLAB Support | Description |
---|---|---|---|
Single-port RAM | Yes | Yes |
You can perform only one read or one write operation at a time. Use the read enable port to control the RAM output ports behavior during a write operation:
|
Simple dual-port RAM | Yes | Yes |
You can simultaneously perform one read and one write operations to different locations where the write operation happens on port A and the read operation happens on port B. |
True dual-port RAM | Yes | — |
You can perform any combination of two port operations: two reads, two writes, or one read and one write at two different clock frequencies. |
Shift-register | Yes | Yes |
You can use the memory blocks as a shift-register block to save logic cells and routing resources. This is useful in DSP applications that require local data storage such as finite impulse response (FIR) filters, pseudo-random number generators, multi-channel filtering, and auto- and cross- correlation functions. Traditionally, the local data storage is implemented with standard flip-flops that exhaust many logic cells for large shift registers. The input data width (w), the length of the taps (m), and the number of taps (n) determine the size of a shift register (w × m × n). You can cascade memory blocks to implement larger shift registers. |
ROM | Yes | Yes |
You can use the memory blocks as ROM.
|
2.4.1. Embedded Memory Configurations for Single-port Mode
Memory Block | Depth (bits) | Programmable Width |
---|---|---|
MLAB | 32 | x16, x18, or x20 |
64 1 | x8, x9, x10 | |
M20K | 512 | x40, x32 |
1K | x20, x16 | |
2K | x10, x8 | |
4K | x5, x4 | |
8K | x2 | |
16K | x1 |
2.4.2. Embedded Memory Configurations for Dual-port Modes
Read Port | Write Port | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
16K×1 | 8K×2 | 4K×4 | 4K×5 | 2K×8 | 2K×10 | 1K×16 | 1K×20 | 512×32 | 512×40 | |
16K×1 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
8K×2 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
4K×4 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
4K×5 | — | — | — | Yes | — | Yes | — | Yes | — | Yes |
2K×8 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
2K×10 | — | — | — | Yes | — | Yes | — | Yes | — | Yes |
1K×16 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
1K×20 | — | — | — | Yes | — | Yes | — | Yes | — | Yes |
512×32 | Yes | Yes | Yes | — | Yes | — | Yes | — | Yes | — |
512×40 | — | — | — | Yes | — | Yes | — | Yes | — | Yes |
Port A | Port B | |||||||
---|---|---|---|---|---|---|---|---|
16K×1 | 8K×2 | 4K×4 | 4K×5 | 2K×8 | 2K×10 | 1K×16 | 1K×20 | |
16K×1 | Yes | Yes | Yes | — | Yes | — | Yes | — |
8K×2 | Yes | Yes | Yes | — | Yes | — | Yes | — |
4K×4 | Yes | Yes | Yes | — | Yes | — | Yes | — |
4K×5 | — | — | — | Yes | — | Yes | — | Yes |
2K×8 | Yes | Yes | Yes | — | Yes | — | Yes | — |
2K×10 | — | — | — | Yes | — | Yes | — | Yes |
1K×16 | Yes | Yes | Yes | — | Yes | — | Yes | — |
1K×20 | — | — | — | Yes | — | Yes | — | Yes |
2.5. Embedded Memory Clocking Modes
This section describes the clocking modes for the Intel® Cyclone® 10 GX memory blocks.
2.5.1. Clocking Modes for Each Memory Mode
Clocking Mode | Memory Mode | |||
---|---|---|---|---|
Single-Port | Simple Dual-Port | True Dual-Port | ROM | |
Single clock mode | Yes | Yes | Yes | Yes |
Read/write clock mode | — | Yes | — | — |
Input/output clock mode | Yes | Yes | Yes | Yes |
Independent clock mode | — | — | Yes | Yes |
2.5.1.1. Single Clock Mode
In the single clock mode, a single clock, together with a clock enable, controls all registers of the memory block.
2.5.1.2. Read/Write Clock Mode
In the read/write clock mode, a separate clock is available for each read and write port. A read clock controls the data-output, read-address, and read-enable registers. A write clock controls the data-input, write-address, write-enable, and byte enable registers.
2.5.1.3. Input/Output Clock Mode
In input/output clock mode, a separate clock is available for each input and output port. An input clock controls all registers related to the data input to the memory block including data, address, byte enables, read enables, and write enables. An output clock controls the data output registers.
2.5.1.4. Independent Clock Mode
In the independent clock mode, a separate clock is available for each port (A and B). Clock A controls all registers on the port A side; clock B controls all registers on the port B side.
2.5.2. Asynchronous Clears in Clocking Modes
In all clocking modes, asynchronous clears are available only for output latches and output registers. For the independent clock mode, this is applicable on both ports.
2.5.3. Output Read Data in Simultaneous Read/Write
If you perform a simultaneous read/write to the same address location using the read/write clock mode, the output read data is unknown. If you require the output read data to be a known value, use single-clock or input/output clock mode and select the appropriate read-during-write behavior in the IP core parameter editor.
2.5.4. Independent Clock Enables in Clocking Modes
Independent clock enables are supported in the following clocking modes:
- Read/write clock mode—supported for both the read and write clocks.
- Independent clock mode—supported for the registers of both ports.
To save power, you can control the shut down of a particular register using the clock enables.
2.6. Parity Bit in Embedded Memory Blocks
The following describes the parity bit support for M20K blocks:
- The parity bit is the fifth bit associated with each 4 data bits in data widths of 5, 10, 20, and 40 (bits 4, 9, 14, 19, 24, 29, 34, and 39).
- In non-parity data widths, the parity bits are skipped during read or write operations.
- Parity function is not performed on the parity bit.
2.7. Byte Enable in Embedded Memory Blocks
The embedded memory blocks support byte enable controls:
- The byte enable controls mask the input data so that only specific bytes of data are written. The unwritten bytes retain the values written previously.
- The write enable (wren) signal, together with the byte enable (byteena) signal, control the write operations on the RAM blocks. By default, the byteena signal is high (enabled) and only the wren signal controls the writing.
- The byte enable registers do not have a clear port.
- If you are using parity bits, on the M20K blocks, the byte enable function controls 8 data bits and 2 parity bits; on the MLABs, the byte enable function controls all 10 bits in the widest mode.
- The LSB of the byteena signal corresponds to the LSB of the data bus.
- The byte enable signals are active high.
2.7.1. Byte Enable Controls in Memory Blocks
byteena[1:0] | Data Bits Written | |
---|---|---|
11 (default) | [19:10] | [9:0] |
10 | [19:10] | — |
01 | — | [9:0] |
byteena[3:0] | Data Bits Written | |||
---|---|---|---|---|
1111 (default) | [39:30] | [29:20] | [19:10] | [9:0] |
1000 | [39:30] | — | — | — |
0100 | — | [29:20] | — | — |
0010 | — | — | [19:10] | — |
0001 | — | — | — | [9:0] |
2.7.2. Data Byte Output
In M20K blocks or MLABs, when you set a byte-enable bit to 0, the embedded memory IP sets the corresponding data byte output to a “don't care” value. You must ensure that the option Get X's for write masked bytes instead of old data when byte enable is always selected.
2.7.3. RAM Blocks Operations
2.8. Memory Blocks Packed Mode Support
The M20K memory blocks support packed mode.
The packed mode feature packs two independent single-port RAM blocks into one memory block. The Intel® Quartus® Prime software automatically implements packed mode where appropriate by placing the physical RAM block in true dual-port mode and using the MSB of the address to distinguish between the two logical RAM blocks. The size of each independent single-port RAM must not exceed half of the target block size.
2.9. Memory Blocks Address Clock Enable Support
The embedded memory blocks support address clock enable, which holds the previous address value for as long as the signal is enabled (addressstall = 1). When the memory blocks are configured in dual-port mode, each port has its own independent address clock enable. The default value for the address clock enable signal is low (disabled).
2.10. Memory Blocks Asynchronous Clear
The M20K memory blocks support asynchronous clear on output latches and output registers. If your RAM does not use output registers, clear the RAM outputs using the output latch asynchronous clear.
The clear is an asynchronous signal pulse that you assert to clear the outputs. The internal logic extends the clear pulse until the next rising edge of the output clock. The outputs are cleared until you deassert the clear signal.
2.11. Memory Blocks Error Correction Code Support
ECC allows you to detect and correct data errors at the output of the memory. ECC can perform single-error correction, double-adjacent-error correction, and triple-adjacent-error detection in a 32-bit word. However, ECC cannot detect four or more errors.
The M20K blocks have built-in support for ECC when in x32-wide simple dual-port mode:
- The M20K runs slower than non-ECC simple-dual port mode when ECC is engaged. However, you can enable optional ECC pipeline registers before the output decoder to achieve higher performance compared to non-pipeline ECC mode at the expense of one cycle of latency.
- The M20K ECC status is communicated with two ECC status flag signals—e (error) and ue (uncorrectable error). The status flags are part of the regular output from the memory block. When ECC is engaged, you cannot access two of the parity bits because the ECC status flag replaces them.
2.11.1. Error Correction Code Truth Table
e (error) eccstatus[1] |
ue (uncorrectable error) eccstatus[0] |
Status |
---|---|---|
0 | 0 | No error. |
0 | 1 | Illegal. |
1 | 0 | A correctable error occurred and the error has been corrected at the outputs; however, the memory array has not been updated. |
1 | 1 | An uncorrectable error occurred and uncorrectable data appears at the outputs. |
If you engage ECC:
- You cannot use the byte enable feature.
- Read-during-write old data mode is not supported.
- Mixed-width configurations are not supported.
2.12. Embedded Memory Blocks in Intel Cyclone 10 GX Devices Revision History
Date | Version | Changes |
---|---|---|
November 2017 | 2017.11.10 |
|
May 2017 | 2017.05.08 | Initial release. |
3. Variable Precision DSP Blocks in Intel Cyclone 10 GX Devices
This chapter describes how the variable-precision digital signal processing (DSP) blocks in Intel® Cyclone® 10 GX devices are optimized to support higher bit precision in high-performance DSP applications.
3.1. Supported Operational Modes in Intel Cyclone 10 GX Devices
Variable-Precision DSP Block Resource | Operation Mode | Supported Operation Instance | Pre-Adder Support | Coefficient Support | Input Cascade Support | Chainin Support | Chainout Support |
---|---|---|---|---|---|---|---|
1 variable precision DSP block | Fixed-point independent 18 x 19 multiplication | 2 | Yes | Yes | Yes 2 | No | No |
Fixed-point independent 27 x 27 multiplication | 1 | Yes | Yes | Yes 3 | Yes | Yes | |
Fixed-point two 18 x 19 multiplier adder mode | 1 | Yes | Yes | Yes2 | Yes | Yes | |
Fixed-point 18 x 18 multiplier adder summed with 36-bit input | 1 | No | No | No | Yes | Yes | |
Fixed-point 18 x 19 systolic mode | 1 | Yes | Yes | Yes2 | Yes | Yes | |
1 variable precision DSP block | Floating-point multiplication mode | 1 | No | No | No | No | Yes |
Floating-point adder or subtract mode | 1 | No | No | No | No | Yes | |
Floating-point multiplier adder or subtract mode | 1 | No | No | No | Yes | Yes | |
Floating-point multiplier accumulate mode | 1 | No | No | No | No | Yes | |
Floating-point vector one mode | 1 | No | No | No | Yes | Yes | |
Floating-point vector two mode | 1 | No | No | No | Yes | Yes | |
2 Variable precision DSP blocks | Complex 18x19 multiplication | 1 | No | No | Yes | No | No |
Variable-Precision DSP Block Resource | Operation Mode | Dynamic ACCUMULATE | Dynamic LOADCONST | Dynamic SUB | Dynamic NEGATE |
---|---|---|---|---|---|
1 variable precision DSP block | Fixed-point independent 18 x 19 multiplication | No | No | No | No |
Fixed-point independent 27 x 27 multiplication | Yes | Yes | No | Yes | |
Fixed-point two 18 x 19 multiplier adder mode | Yes | Yes | Yes | Yes | |
Fixed-point 18 x 18 multiplier adder summed with 36-bit input | Yes | Yes | Yes | Yes | |
Fixed-point 18 x 19 systolic mode | Yes | Yes | Yes | Yes | |
Floating-point multiplication mode | No | No | No | No | |
Floating-point adder or subtract mode | No | No | No | No | |
Floating-point multiplier adder or subtract mode | No | No | No | No | |
Floating-point multiplier accumulate mode | Yes | No | No | No | |
Floating-point vector one mode | No | No | No | No | |
Floating-point vector two mode | No | No | No | No | |
2 variable precision DSP blocks | Complex 18 x 19 multiplication | No | No | No | No |
3.1.1. Features
The Intel® Cyclone® 10 GX variable precision DSP blocks support fixed-point arithmetic and floating-point arithmetic.
Features for fixed-point arithmetic:
- High-performance, power-optimized, and fully registered multiplication operations
- 18-bit and 27-bit word lengths
- Two 18 x 19 multipliers or one 27 x 27 multiplier per DSP block
- Built-in addition, subtraction, and 64-bit double accumulation register to combine multiplication results
- Cascading 19-bit or 27-bit when pre-adder is disabled and cascading 18-bit when pre-adder is used to form the tap-delay line for filtering applications
- Cascading 64-bit output bus to propagate output results from one block to the next block without external logic support
- Hard pre-adder supported in 19-bit and 27-bit modes for symmetric filters
- Internal coefficient register bank in both 18-bit and 27-bit modes for filter implementation
- 18-bit and 27-bit systolic finite impulse response (FIR) filters with distributed output adder
- Biased rounding support
Features for floating-point arithmetic:
- A completely hardened architecture that supports multiplication, addition, subtraction, multiply-add, and multiply-subtract
- Multiplication with accumulation capability and a dynamic accumulator reset control
- Multiplication with cascade summation capability
- Multiplication with cascade subtraction capability
- Complex multiplication
- Direct vector dot product
- Systolic FIR filter
3.2. Resources
Device |
Variable-precision DSP Block |
Independent Input and Output Multiplications Operator |
18×19 Multiplier Adder Sum Mode |
18×18 Multiplier Adder Summed with 36-bit Input |
|
---|---|---|---|---|---|
18×19 Multiplier |
27×27 Multiplier |
||||
10CX085 | 84 | 168 | 84 | 84 | 84 |
10CX105 | 125 | 250 | 125 | 125 | 125 |
10CX150 | 156 | 312 | 156 | 156 | 156 |
10CX220 | 192 | 384 | 192 | 192 | 192 |
Device |
Variable-precision DSP Block |
Single Precision Floating-Point Multiplication Mode | Single-Precision Floating-Point Adder Mode | Single-Precision Floating-Point Multiply Accumulate Mode |
Peak Giga Floating-Point Operations per Second (GFLOPs) |
---|---|---|---|---|---|
10CX085 | 84 | 84 | 84 | 84 | 76 |
10CX105 | 125 | 125 | 125 | 125 | 113 |
10CX150 | 156 | 156 | 156 | 156 | 140 |
10CX220 | 192 | 192 | 192 | 192 | 173 |
3.3. Design Considerations
You should consider the following elements in your design:
DSP Implementation | Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|---|
Design elements |
|
|
Operational Mode | Available Design Templates |
---|---|
18 x 18 Independent Multiplier Mode | Single Multiplier with Preadder and Coefficient |
27 x 27 Independent Multiplier Mode |
|
Multiplier Adder Sum Mode |
|
18 x 19 Multiplication Summed with 36-Bit Input Mode |
|
18-bit Systolic FIR Mode |
|
- In Intel® Quartus® Prime software, open a new Verilog HDL or VHDL file.
- From Edit tab, click Insert Template.
- From the Insert Template window prompt, you may select Verilog HDL or VHDL depending on your preferred design language.
- Click Full Designs to expand the options.
- From the options, click Arithmetic > DSP Features > > DSP Features for 20-nm Device.
- Choose the design template that match your system requirement and click Insert to append the design template to a new .v or .vhd file.
3.3.1. Operational Modes
The Intel® Quartus® Prime software includes IP cores that you can use to control the operation mode of the multipliers. After entering the parameter settings with the IP Catalog, the Intel® Quartus® Prime software automatically configures the variable precision DSP block.
Variable-precision DSP block can also be implemented using DSP Builder for Intel® FPGAs and OpenCL™.
Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|
Intel provides two methods for implementing various modes of the Intel® Cyclone® 10 GX variable precision DSP block in a design—using the Intel® Quartus® Prime DSP IP core and HDL inferring. The following
Intel®
Quartus® Prime IP cores are supported
for the
Intel®
Cyclone® 10 GX variable precision DSP
blocks in the fixed-point arithmetic implementation:
|
Intel provides one
method for implementing various modes of the
Intel®
Cyclone® 10 GX variable precision DSP block in a
design—using the
Intel®
Quartus® Prime DSP IP
core. The following
Intel®
Quartus® Prime IP cores are supported for the
Intel®
Cyclone® 10 GX variable precision DSP blocks in the
floating-point arithmetic implementation:
|
3.3.2. Internal Coefficient and Pre-Adder for Fixed-Point Arithmetic
When you enable input register for the pre-adder feature, these input registers must have the same clock setting.
The input cascade support is only available for 18-bit mode when you enable the pre-adder feature.
In both 18-bit and 27-bit modes, you can use the coefficient feature and pre-adder feature independently.
When internal coefficient feature is enabled in 18-bit modes, you must enable both top and bottom coefficient.
When pre-adder feature is enabled in 18-bit modes, you must enable both top and bottom pre-adder.
3.3.3. Accumulator for Fixed-Point Arithmetic
The accumulator in the Intel® Cyclone® 10 GX devices supports double accumulation by enabling the 64-bit double accumulation registers located between the output register bank and the accumulator.
3.3.4. Chainout Adder
Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|
You can use the output chaining path to add results from another DSP block. |
You can use the output chaining path to add results from another DSP block. Support for certain operation modes:
|
3.3.4.1. Resources
Product Line |
Variable-precision DSP Block |
Independent Input and Output Multiplications Operator |
18 x 19 Multiplier Adder Sum Mode |
18 x 18 Multiplier Adder Summed with 36 bit Input |
|
---|---|---|---|---|---|
18 x 19 Multiplier |
27 x 27 Multiplier |
||||
10CX085 | 84 | 168 | 84 | 84 | 84 |
10CX105 | 125 | 250 | 125 | 125 | 125 |
10CX150 | 156 | 312 | 156 | 156 | 156 |
10CX220 | 192 | 384 | 192 | 192 | 192 |
Product Line |
Variable-precision DSP Block |
Single Precision Floating-Point Multiplication Mode | Single-Precision Floating-Point Adder Mode | Single-Precision Floating-Point Multiply Accumulate Mode |
Peak Giga Floating-Point Operations per Second (GFLOPs) |
---|---|---|---|---|---|
10CX085 | 84 | 84 | 84 | 84 | 76 |
10CX105 | 125 | 250 | 250 | 250 | 113 |
10CX150 | 156 | 156 | 156 | 156 | 140 |
10CX220 | 192 | 192 | 192 | 192 | 173 |
3.4. Block Architecture
The Intel® Cyclone® 10 GX variable precision DSP block consists of the following elements:
DSP Implementation | Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|---|
Block architecture |
|
|
If the variable precision DSP block is not configured in fixed-point arithmetic systolic FIR mode, both systolic registers are bypassed.
3.4.1. Input Register Bank
Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|
|
|
All the registers in the DSP blocks are positive-edge triggered and cleared on power up. Each multiplier operand can feed an input register or a multiplier directly, bypassing the input registers.
The following variable precision DSP block signals control the input registers within the variable precision DSP block:
- CLK[2..0]
- ENA[2..0]
- ACLR[0]
In fixed-point arithmetic 18 x 19 mode, you can use the delay registers to balance the latency requirements when you use both the input cascade and chainout features.
The tap-delay line feature allows you to drive the top leg of the multiplier input, dataa_y0 and datab_y1 in fixed-point arithmetic 18 x 19 mode and dataa_y0 only in fixed-point arithmetic 27 x 27 mode, from the general routing or cascade chain.
3.4.1.1. Two Sets of Delay Registers for Fixed-Point Arithmetic
The two delay registers along with the input cascade chain that can be used in fixed-point arithmetic 18 x 19 mode are the top delay registers and bottom delay registers. Delay registers are not supported in 18 × 19 multiplication summed with 36-bit input mode and 27 × 27 mode.
3.4.2. Pipeline Register
Pipeline register is used to get the maximum Fmax performance. Pipeline register can be bypassed if high Fmax is not needed.
- CLK[2..0]
- ENA[2..0]
- ACLR[1]
- Bypass all latency layers of pipeline registers
- Use either one latency layers of pipeline registers
- Use both latency layers of pipeline registers
3.4.3. Pre-Adder for Fixed-Point Arithmetic
Each variable precision DSP block has two 19-bit pre-adders. You can configure these pre-adders in the following configurations:
- Two independent 19-bit pre-adders
- One 27-bit pre-adder
The pre-adder supports both addition and subtraction in the following input configurations:
- 18-bit (signed or unsigned) addition or subtraction for 18 x 19 mode
- 26-bit addition or subtraction for 27 x 27 mode
When both pre-adders within the same DSP block are used, they must share the same operation type (either addition or subtraction).
3.4.4. Internal Coefficient for Fixed-Point Arithmetic
The Intel® Cyclone® 10 GX variable precision DSP block has the flexibility of selecting the multiplicand from either the dynamic input or the internal coefficient.
The internal coefficient can support up to eight constant coefficients for the multiplicands in 18-bit and 27-bit modes. When you enable the internal coefficient feature, COEFSELA/COEFSELB are used to control the selection of the coefficient multiplexer.
3.4.5. Multipliers
A single variable precision DSP block can perform many multiplications in parallel, depending on the data width of the multiplier and implementation.
There are two multipliers per variable precision DSP block. You can configure these two multipliers in several operational modes:
Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|
|
One floating-point arithmetic single precision multiplier |
3.4.6. Adder
Depending on the operational mode, you can use the adder as follows:
- One 55-bit or 38-bit adder
- One floating-point arithmetic single precision adder
DSP Implementation | Addition Using Dynamic SUB Port | Subtraction Using Dynamic SUB Port |
---|---|---|
Fixed-Point Arithmetic | Yes | Yes |
Floating-Point Arithmetic | No | No |
3.4.7. Accumulator and Chainout Adder for Fixed-Point Arithmetic
The Intel® Cyclone® 10 GX variable precision DSP block supports a 64-bit accumulator and a 64-bit adder for fixed-point arithmetic.
The following signals can dynamically control the function of the accumulator:
- NEGATE
- LOADCONST
- ACCUMULATE
The accumulator supports double accumulation by enabling the 64-bit double accumulation registers located between the output register bank and the accumulator.
The accumulator and chainout adder features are not supported in two fixed-point arithmetic independent 18 x 19 modes.
Function | Description | NEGATE | LOADCONST | ACCUMULATE |
---|---|---|---|---|
Zeroing | Disables the accumulator. | 0 | 0 | 0 |
Preload | The result is always added to the preload value. Only one bit of the 64-bit preload value can be “1”. It can be used as rounding the DSP result to any position of the 64-bit result. | 0 | 1 | 0 |
Accumulation | Adds the current result to the previous accumulate result. | 0 | X | 1 |
Decimation + Accumulate | This function takes the current result, converts it into two’s complement, and adds it to the previous result. | 1 | X | 1 |
Decimation + Chainout Adder | This function takes the current result, converts it into two’s complement, and adds it to the output of previous DSP block. | 1 | 0 | 0 |
3.4.8. Systolic Registers for Fixed-Point Arithmetic
There are two systolic registers per variable precision DSP block. If the variable precision DSP block is not configured in fixed-point arithmetic systolic FIR mode, both systolic registers are bypassed.
The first set of systolic registers consists of 18-bit and 19-bit registers that are used to register the 18-bit and 19-bit inputs of the upper multiplier, respectively.
The second set of systolic registers are used to delay the chainin input from the previous variable precision DSP block.
You must clock all the systolic registers with the same clock source as the output register. Output registers must be turned on.
3.4.9. Double Accumulation Register for Fixed-Point Arithmetic
The double accumulation register is an extra register in the feedback path of the accumulator. Enabling the double accumulation register causes an extra clock cycle delay in the feedback path of the accumulator.
This register has the same CLK, ENA, and ACLR settings as the output register bank.
By enabling this register, you can have two accumulator channels using the same number of variable precision DSP block. This is useful when processing interleaved complex data (I, Q).
3.4.10. Output Register Bank
The positive edge of the clock signal triggers the 74-bit bypassable output register bank and is cleared after power up.
The following variable precision DSP block signals control the output register per variable precision DSP block:
- CLK[2..0]
- ENA[2..0]
- ACLR[1]
3.5. Operational Mode Descriptions
This section describes how you can configure an Intel® Cyclone® 10 GX variable precision DSP block to efficiently support the fixed-point arithmetic and floating-point arithmetic operational modes.
Fixed-Point Arithmetic | Floating-Point Arithmetic |
---|---|
|
|
3.5.1. Operational Modes for Fixed-Point Arithmetic
3.5.1.1. Independent Multiplier Mode
In independent input and output multiplier mode, the variable precision DSP blocks perform individual multiplication operations for general purpose multipliers.
Configuration | Multipliers per Block |
---|---|
18 (signed) x 19 (signed) | 2 |
18 (unsigned) x 18 (unsigned) | 2 |
27 (signed or unsigned) x 27 (signed or unsigned) | 1 |
3.5.1.1.1. 18 x 18 or 18 x 19 Independent Multiplier
In this figure, the variables are defined as follows:
- n = 19 and m = 37 for 18 x 19 operand
- n = 18 and m = 36 for 18 x 18 operand
3.5.1.1.2. 27 x 27 Independent Multiplier
3.5.1.2. Independent Complex Multiplier
The Intel® Cyclone® 10 GX devices support the 18 x 19 complex multiplier mode using two fixed-point arithmetic multiplier adder sum mode.
The imaginary part [(a × d) + (b × c)] is implemented in the first variable-precision DSP block, while the real part [(a × c) - (b × d)] is implemented in the second variable-precision DSP block.
3.5.1.2.1. 18 x 19 Complex Multiplier
3.5.1.3. Multiplier Adder Sum Mode
3.5.1.4. 18 x 19 Multiplication Summed with 36-Bit Input Mode
Intel® Cyclone® 10 GX variable precision DSP blocks support one 18 x 19 multiplication summed to a 36-bit input.
Use the upper multiplier to provide the input for an 18 x 19 multiplication, while the bottom multiplier is bypassed. The datab_y1[17..0] and datab_y1[35..18] signals are concatenated to produce a 36-bit input.
3.5.1.5. Systolic FIR Mode
The basic structure of a FIR filter consists of a series of multiplications followed by an addition.
Depending on the number of taps and the input sizes, the delay through chaining a high number of adders can become quite large. To overcome the delay performance issue, the systolic form is used with additional delay elements placed per tap to increase the performance at the cost of increased latency.
Intel® Cyclone® 10 GX variable precision DSP blocks support the following systolic FIR structures:
- 18-bit
- 27-bit
In systolic FIR mode, the input of the multiplier can come from four different sets of sources:
- Two dynamic inputs
- One dynamic input and one coefficient input
- One coefficient input and one pre-adder output
- One dynamic input and one pre-adder output
3.5.1.5.1. Mapping Systolic Mode User View to Variable Precision Block Architecture View
The following figure shows that the user view of the systolic FIR filter (a) can be implemented using the Intel® Cyclone® 10 GX variable precision DSP blocks (d) by retiming the register and restructuring the adder. Register B can be retimed into systolic registers at the chainin, dataa_y0 and dataa_x0 input paths as shown in (b). The end result of the register retiming is shown in (c). The summation of two multiplier results by restructuring the inputs and location of the adder are added to the chainin input by the chainout adder as shown in (d).
3.5.1.5.2. 18-Bit Systolic FIR Mode
In 18-bit systolic FIR mode, the adders are configured as dual 44-bit adders, thereby giving 7 bits of overhead when using an 18 x 19 operation mode, resulting 37-bit result. This allows a total sixteen 18 x 19 multipliers or eight Intel® Cyclone® 10 GX variable precision DSP blocks to be cascaded as systolic FIR structure.
3.5.1.5.3. 27-Bit Systolic FIR Mode
In 27-bit systolic FIR mode, the chainout adder or accumulator is configured for a 64-bit operation, providing 10 bits of overhead when using a 27-bit data (54-bit products). This allows a total of eleven 27 x 27 multipliers or eleven Intel® Cyclone® 10 GX variable precision DSP blocks to be cascaded as systolic FIR structure.
The 27-bit systolic FIR mode allows the implementation of one stage systolic filter per DSP block. Systolic registers are not required in this mode.
3.5.2. Operational Modes for Floating-Point Arithmetic
3.5.2.1. Single Floating-Point Arithmetic Functions
- Multiplication mode
- Adder or subtract mode
- Multiply accumulate mode
3.5.2.1.1. Multiplication Mode
This mode allows you to apply basic floating-point multiplication (y*z).
3.5.2.1.2. Adder or Subtract Mode
This mode allows you to apply basic floating-point addition (x+y) or basic floating-point subtraction (y-x).
3.5.2.1.3. Multiply Accumulate Mode
This mode performs floating-point multiplication followed by floating-point addition with the previous multiplication result { ((y*z) + acc) or ((y*z) - acc) }
3.5.2.2. Multiple Floating-Point Arithmetic Functions
- Multiply-add or multiply-subtract mode which uses single floating-point arithmetic DSP if the chainin parameter is turn off
- Vector one mode
- Vector two mode
- Direct vector dot product
- Complex multiplication
3.5.2.2.1. Multiply-Add or Multiply-Subtract Mode
This mode performs floating-point multiplication followed by floating-point addition or floating-point subtraction { ((y*z) + x) or ((y*z) - x) }. The chainin parameter allows you to enable a multiple-chain mode.
3.5.2.2.2. Vector One Mode
This mode performs floating-point multiplication followed by floating-point addition with the chainin input from the previous variable DSP Block. Input x is directly fed into chainout. (result = y*z + chainin , where chainout = x)
3.5.2.2.3. Vector Two Mode
This mode performs floating-point multiplication where the multiplication result is directly fed to chainout. The chainin input from the previous variable DSP Block is then added to input x as the output result. (result = x + chainin, where chainout = y*z)
3.5.2.2.4. Direct Vector Dot Product
- Multiply-add and subtract mode with chainin parameter turned on
- Vector one
- Vector two
3.5.2.2.5. Complex Multiplication
The Intel® Cyclone® 10 GX devices support the floating-point arithmetic single precision complex multiplier using four Intel® Cyclone® 10 GX variable-precision DSP blocks.
The imaginary part [(a × d) + (b × c)] is implemented in the first two variable-precision DSP blocks, while the real part [(a × c) - (b × d)] is implemented in the second variable-precision DSP block.
3.6. Variable Precision DSP Blocks in Intel Cyclone 10 GX Devices Revision History
Date | Version | Changes |
---|---|---|
May 2017 | 2017.05.08 | Initial release. |
4. Clock Networks and PLLs in Intel Cyclone 10 GX Devices
This chapter describes the advanced features of hierarchical clock networks and phase-locked loops (PLLs) in Intel® Cyclone® 10 GX devices. The Intel® Quartus® Prime software enables the PLLs and their features without external devices.
4.1. Clock Networks
The Intel® Cyclone® 10 GX devices contain the following clock networks that are organized into a hierarchical structure:
- Global clock (GCLK) networks
- Regional clock (RCLK) networks
- Periphery clock (PCLK)
networks
- Small periphery clock (SPCLK) networks
- Large periphery clock (LPCLK) networks
4.1.1. Clock Resources in Intel Cyclone 10 GX Devices
Clock Input Pins | ||
---|---|---|
Device | Number of Resources Available | Source of Clock Resource |
|
|
For high-speed serial interface (HSSI):
REFCLK_GXB[L][1][C,D]_CH[B,T][p,n]
pins For I/O: CLK_[2A, 2J, 2K, 2L, 3A, 3B]_[0,1][p,n] pins |
GCLK Networks | ||
Device | Number of Resources Available | Source of Clock Resource |
All | 32 |
|
RCLK Networks | ||
Device | Number of Resources Available | Source of Clock Resource |
|
8 |
|
SPCLK Networks | ||
Device | Number of Resources Available | Source of Clock Resource |
|
144 | For HSSI:
For I/O:
|
LPCLK Networks | ||
Device | Number of Resources Available | Source of Clock Resource |
|
24 | For HSSI:
For I/O:
|
For more information about the clock input pins connections, refer to the pin connection guidelines.
4.1.2. Hierarchical Clock Networks
Intel® Cyclone® 10 GX devices cover 3 levels of clock networks hierarchy. The sequence of the hierarchy is as follows:
- GCLK, RCLK, PCLK, and GCLK and RCLK feedback clocks
- Section clock (SCLK)
- Row clocks
Each HSSI and I/O column contains clock drivers to drive down shared buses to the respective GCLK, RCLK, and PCLK clock networks.
Intel® Cyclone® 10 GX clock networks (GCLK, RCLK, and PCLK) are routed through SCLK before each clock is connected to the clock routing for each HSSI or I/O bank. The settings for SCLK are transparent. The Intel® Quartus® Prime software automatically routes the SCLK based on the GCLK, RCLK, and PCLK networks.
Each SCLK spine has a consistent height, matching that of HSSI and I/O banks. The number of SCLK spine in a device depends on the number of HSSI and I/O banks.
Intel® Cyclone® 10 GX devices provide a maximum of 33 SCLK networks in the SCLK spine region. The SCLK networks can drive six row clocks in each row clock region. The row clocks are the clock resources to the core functional blocks, PLLs, and I/O interfaces, and HSSI interfaces of the device. Six unique signals can be routed into each row clock region. The connectivity pattern of the multiplexers that drive each SCLK limits the clock sources to the SCLK spine region. Each SCLK can select the clock resources from GCLK, RCLK, LPCLK, or SPCLK lines.
The following figure shows SCLKs driven by the GCLK, RCLK, PCLK, or GCLK and RCLK feedback clock networks in each SCLK spine region. The GCLK, RCLK, PCLK, and GCLK and RCLK feedback clocks share the same SCLK routing resources. To ensure successful design fitting in the Intel® Quartus® Prime software, the total number of clock resources must not exceed the SCLK limits in each SCLK spine region.
4.1.3. Types of Clock Networks
4.1.3.1. Global Clock Networks
GCLK networks serve as low-skew clock sources for functional blocks, such as adaptive logic modules (ALMs), digital signal processing (DSP), embedded memory, and PLLs. Intel® Cyclone® 10 GX I/O elements (IOEs) and internal logic can also drive GCLKs to create internally-generated global clocks and other high fan-out control signals, such as synchronous or asynchronous clear and clock enable signals.
Intel® Cyclone® 10 GX devices provide GCLKs that can drive throughout the device. GCLKs cover every SCLK spine region in the device. Each GCLK is accessible through the direction as indicated in the Symbolic GCLK Networks diagram.
4.1.3.2. Regional Clock Networks
RCLK networks provide low clock insertion delay and skew for logic contained within a single RCLK region. The Intel® Cyclone® 10 GX IOEs and internal logic within a given region can also drive RCLKs to create internally-generated regional clocks and other high fan-out signals.
Intel® Cyclone® 10 GX devices provide RCLKs that can drive through the chip horizontally. RCLKs cover all the SCLK spine regions in the same row of the device.
4.1.3.3. Periphery Clock Networks
PCLK networks provide the lowest insertion delay and the same skew as RCLK networks.
Small Periphery Clock Networks
Each HSSI or I/O bank has 12 SPCLKs. SPCLKs cover one SCLK spine region in HSSI bank and one SCLK spine region in I/O bank adjacent to each other in the same row.
Large Periphery Clock Networks
Each HSSI or I/O bank has 2 LPCLKs. LPCLKs have larger network coverage compared to SPCLKs. LPCLKs cover one SCLK spine region in HSSI bank and one SCLK spine region in I/O bank adjacent to each other in the same row.
4.1.4. Clock Network Sources
This section describes the clock network sources that can drive the GCLK, RCLK, and PCLK networks.
4.1.4.1. Dedicated Clock Input Pins
The sources of dedicated clock input pins are as follows:
- fPLL— REFCLK_GXB[L][1][C,D]_CH[B,T][p,n] from HSSI column
- I/O PLL— CLK_[2A, 2J, 2K, 2L, 3A, 3B]_[0,1][p,n] from I/O column
You can use the dedicated clock input pins for high fan-out control signals, such as asynchronous clears, presets, and clock enables, for protocol signals through the GCLK or RCLK networks.
The dedicated clock input pins can be either differential clocks or single-ended clocks for I/O PLL. For single-ended clock inputs, both the CLKp and CLKn pins have dedicated connections to the I/O PLL. fPLLs only support differential clock inputs.
Driving a PLL over a global or regional clock can lead to higher jitter at the PLL input, and the PLL will not be able to fully compensate for the global or regional clock. Intel recommends using the dedicated clock input pins for optimal performance to drive the PLLs.
4.1.4.2. Internal Logic
You can drive each GCLK and RCLK network using core routing to enable internal logic to drive a high fan-out, low-skew signal.
4.1.4.3. DPA Outputs
Each DPA can drive the PCLK networks.
4.1.4.4. HSSI Clock Outputs
HSSI clock outputs can drive the GCLK, RCLK, and PCLK networks.
4.1.4.5. PLL Clock Outputs
The fPLL and I/O PLL clock outputs can drive all clock networks.
4.1.5. Clock Control Block
Every GCLK, RCLK, and PCLK network has its own clock control block. The control block provides the following features:
- Clock source selection (dynamic selection available only for GCLKs)
- Clock power down (static or dynamic clock enable or disable available only for GCLKs and RCLKs)
4.1.5.1. Pin Mapping in Intel Cyclone 10 GX Devices
Clock | Fed by |
---|---|
inclk[0] | PLL counters C0 and C2 from adjacent fPLLs. |
inclk[1] | PLL counters C1 and C3 from adjacent fPLLs. |
inclk[2] and inclk[3] | Any of the two dedicated clock pins on the same HSSI bank. |
Clock | Fed by |
---|---|
inclk[0] | CLK_[2,3][A..L]_0p or any counters from adjacent I/O PLLs. |
inclk[1] | CLK_[2,3][A..L]_0n or any counters from adjacent I/O PLLs. |
inclk[2] | CLK_[2,3][A..L]_1p or any counters from adjacent I/O PLLs. |
inclk[3] | CLK_[2,3][A..L]_1n or any counters from adjacent I/O PLLs. |
4.1.5.2. GCLK Control Block
You can select the clock source for the GCLK select block either statically or dynamically using internal logic to drive the multiplexer-select inputs.
When selecting the clock source dynamically, you can select either PLL outputs (such as C0 or C1), or a combination of clock pins or PLL outputs.
You can set the input clock sources and the clkena signals for the GCLK network multiplexers through the Intel® Quartus® Prime software using the ALTCLKCTRL IP core.
When selecting the clock source dynamically using the ALTCLKCTRL IP core, choose the inputs using the CLKSELECT[0..1] signal.
4.1.5.3. RCLK Control Block
You can only control the clock source selection for the RCLK select block statically using configuration bit settings in the configuration file (.sof or .pof) generated by the Intel® Quartus® Prime software.
You can set the input clock sources and the clkena signals for the RCLK networks through the Intel® Quartus® Prime software using the ALTCLKCTRL IP core.
4.1.5.4. PCLK Control Block
PCLK control block drives both SPCLK and LPCLK networks.
To drive the HSSI PCLK, select the HSSI output, fPLL output, or clock input pin.
To drive the I/O PCLK, select the DPA clock output, I/O PLL output, or clock input pin.
You can set the input clock sources and the clkena signals for the PCLK networks through the Intel® Quartus® Prime software using the ALTCLKCTRL IP core.
4.1.6. Clock Power Down
You can power down the GCLK and RCLK clock networks using both static and dynamic approaches.
When a clock network is powered down, all the logic fed by the clock network is in off-state, reducing the overall power consumption of the device. The unused GCLK, RCLK, and PCLK networks are automatically powered down through configuration bit settings in the configuration file (.sof or .pof) generated by the Intel® Quartus® Prime software.
The dynamic clock enable or disable feature allows the internal logic to control power-up or power-down synchronously on the GCLK and RCLK networks. This feature is independent of the PLL and is applied directly on the clock network.
4.1.7. Clock Enable Signals
You cannot use the clock enable and disable circuit of the clock control block if the GCLK or RCLK output drives the input of a PLL.
The clkena signals are supported at the clock network level instead of at the PLL output counter level. This allows you to gate off the clock even when you are not using a PLL. You can also use the clkena signals to control the dedicated external clocks from the PLLs.
Intel® Cyclone® 10 GX devices have an additional metastability register that aids in asynchronous enable and disable of the GCLK and RCLK networks. You can optionally bypass this register in the Intel® Quartus® Prime software.
The PLL can remain locked, independent of the clkena signals, because the loop-related counters are not affected. This feature is useful for applications that require a low-power or sleep mode. The clkena signal can also disable clock outputs if the system is not tolerant of frequency overshoot during resynchronization.
4.2. Intel Cyclone 10 GX PLLs
PLLs provide robust clock management and synthesis for device clock management, external system clock management, and high-speed I/O interfaces.
The Intel® Cyclone® 10 GX device family contains the following PLLs:
- fPLLs—can function as fractional PLLs or integer PLLs
- I/O PLLs—can only function as integer PLLs
The fPLLs are located adjacent to the transceiver blocks in the HSSI banks. Each HSSI bank contains two fPLLs. You can configure each fPLL independently in conventional integer mode or fractional mode. In fractional mode, the fPLL can operate with third-order delta-sigma modulation. Each fPLL has four C counter outputs and one L counter output.
The I/O PLLs are located adjacent to the hard memory controllers and LVDS serializer/deserializer (SERDES) blocks in the I/O banks. Each I/O bank contains one I/O PLL. The I/O PLLs can operate in conventional integer mode. Each I/O PLL has nine C counter outputs. In some specific device package, you can use the I/O PLLs in the I/O banks that are not bonded out in your design. These I/O PLLs must take their reference clock source from the FPGA core or through a dedicated cascade connection from another I/O PLL in the same I/O column.
Intel® Cyclone® 10 GX devices have up to six fPLLs and six I/O PLLs in the largest densities. Intel® Cyclone® 10 GX PLLs have different core analog structure and features support.
Feature | Fractional PLL | I/O PLL |
---|---|---|
Integer mode | Yes | Yes |
Fractional mode | Yes | — |
C output counters | 4 | 9 |
M counter divide factors | 8 to 127 | 4 to 160 |
N counter divide factors | 1 to 32 | 1 to 80 |
C counter divide factors | 1 to 512 | 1 to 512 |
L counter divide factors | 1, 2, 4, 8 | — |
Dedicated external clock outputs | — | Yes |
Dedicated clock input pins | Yes | Yes |
External feedback input pin | — | Yes |
Spread-spectrum input clock tracking 4 | Yes | Yes |
Source synchronous compensation | — | Yes |
Direct compensation | Yes | Yes |
Normal compensation | — | Yes |
Zero-delay buffer compensation | — | Yes |
External feedback compensation | — | Yes |
LVDS compensation | — | Yes |
Feedback compensation bonding | Yes | — |
Voltage-controlled oscillator (VCO) output drives the DPA clock | — | Yes |
Phase shift resolution 5 | 72 ps | 78.125 ps |
Programmable duty cycle | Fixed 50% duty cycle | Yes |
Power down mode | Yes | Yes |
4.2.1. PLL Usage
fPLLs are optimized for use as transceiver transmit PLLs and for synthesizing reference clock frequencies. You can use the fPLLs as follows:
- Reduce the number of required oscillators on the board
- Reduce the clock pins used in the FPGA by synthesizing multiple clock frequencies from a single reference clock source
- Compensate clock network delay
- Transmit clocking for transceivers
I/O PLLs are optimized for use with memory interfaces and LVDS SERDES. You can use the I/O PLLs as follows:
- Reduce the number of required oscillators on the board
- Reduce the clock pins used in the FPGA by synthesizing multiple clock frequencies from a single reference clock source
- Simplify the design of external memory interfaces and high-speed LVDS interfaces
- Ease timing closure because the I/O PLLs are tightly coupled with the I/Os
- Compensate clock network delay
- Zero delay buffering
4.2.2. PLL Architecture
4.2.3. PLL Control Signals
You can use the reset signal to control PLL operation and resynchronization, and use the locked signal to observe the status of the PLL.
4.2.3.1. Reset
The reset signal port of the IP core for each PLL is as follows:
- fPLL—pll_powerdown
- I/O PLL—reset
The reset signal is the reset or resynchronization input for each PLL. The device input pins or internal logic can drive these input signals.
When the reset signal is driven high, the PLL counters reset, clearing the PLL output and placing the PLL out-of-lock. The VCO is then set back to its nominal setting. When the reset signal is driven low again, the PLL resynchronizes to its input clock source as it re-locks.
You must assert the reset signal every time the PLL loses lock to guarantee the correct phase relationship between the PLL input and output clocks. You can set up the PLL to automatically reset (self-reset) after a loss-of-lock condition using the Intel® Quartus® Prime parameter editor.
You must include the reset signal if either of the following conditions is true:
- PLL reconfiguration or clock switchover is enabled in the design
- Phase relationships between the PLL input and output clocks must be maintained after a loss-of-lock condition
- If the input clock to the PLL is not toggling or is unstable when the FPGA transitions into user mode, reset the PLL after the input clock is stable and within specifications, even when the self-reset feature is enabled.
- If the PLL is not able to lock to the reference clock after reconfiguring the PLL or the external clock source, reset the PLL after the input clock is stable and within specifications, even when the self-reset feature is enabled.
- For fPLL, after device power-up, you must reset the fPLL when the fPLL power-up calibration process has completed (pll_cal_busy signal deasserts).
4.2.3.2. Locked
The locked signal port of the IP core for each PLL is as follows:
- fPLL—pll_locked
- I/O PLL—locked
The lock detection circuit provides a signal to the core logic. The signal indicates when the feedback clock has locked onto the reference clock both in phase and frequency.
4.2.4. Clock Feedback Modes
Clock feedback modes compensate for clock network delays to align the PLL clock input rising edge with the rising edge of the clock output. Select the appropriate type of compensation for the timing critical clock path in your design.
PLL compensation is not always needed. A PLL should be configured in direct (no compensation) mode unless a need for compensation is identified. Direct mode provides the best PLL jitter performance and avoids expending compensation clocking resources unnecessarily.
The default clock feedback mode is direct compensation mode.
fPLLs support the following clock feedback modes:
- Direct compensation
- Feedback compensation bonding
I/O PLLs support the following clock feedback modes:
- Direct compensation
- Normal compensation
- Source synchronous compensation
- LVDS compensation
- Zero delay buffer (ZDB) compensation
- External feedback (EFB) compensation
4.2.5. Clock Multiplication and Division
An Intel® Cyclone® 10 GX PLL output frequency is related to its input reference clock source by a scale factor of M/(N × C) in integer mode. The input clock is divided by a pre-scale factor, N, and is then multiplied by the M feedback factor. The control loop drives the VCO to match fin × (M/N).
The Intel® Quartus® Prime software automatically chooses the appropriate scale factors according to the input frequency, multiplication, and division values entered into the Altera IOPLL IP core for I/O PLL.
Pre-Scale Counter, N and Multiply Counter, M
Each PLL has one pre-scale counter, N, and one multiply counter, M. The M and N counters do not use duty-cycle control because the only purpose of these counters is to calculate frequency division.
Post-Scale Counter, C
Each output port has a unique post-scale counter, C. For multiple C counter outputs with different frequencies, the VCO is set to the least common multiple of the output frequencies that meets its frequency specifications. For example, if the output frequencies required from one I/O PLL are 55 MHz and 100 MHz, the Intel® Quartus® Prime software sets the VCO frequency to 1.1 GHz (the least common multiple of 55 MHz and 100 MHz within the VCO operating frequency range). Then the post-scale counters, C, scale down the VCO frequency for each output port.
Post-Scale Counter, L
The fPLL has an additional post-scale counter, L. The L counter synthesizes the frequency from its clock source using the M/(N × L) scale factor. The L counter generates a differential clock pair (0 degree and 180 degree) and drives the HSSI clock network.
Delta-Sigma Modulator
The delta-sigma modulator (DSM) is used together with the M multiply counter to enable the fPLL to operate in fractional mode. The DSM dynamically changes the M counter factor on a cycle-to-cycle basis. The different M counter factors allow the "average" M counter factor to be a non-integer.
Fractional Mode
In fractional mode, the M counter value equals to the sum of the M feedback factor and the fractional value. The fractional value is equal to K/232 , where K is an integer between 0 and (232 – 1).
Integer Mode
For a fPLL operating in integer mode, M is an integer value and DSM is disabled.
The I/O PLL can only operate in integer mode.
4.2.6. Programmable Phase Shift
The programmable phase shift feature allows both fPLLs and I/O PLLs to generate output clocks with a fixed phase offset.
The VCO frequency of the PLL determines the precision of the phase shift. The minimum phase shift increment is 1/8 (for I/O PLL) or 1/4 (for fPLL) of the VCO period. For example, if an I/O PLL operates with a VCO frequency of 1000 MHz, phase shift steps of 125 ps are possible.
The Intel® Quartus® Prime software automatically adjusts the VCO frequency according to the user-specified phase shift values entered into the IP core.
4.2.7. Programmable Duty Cycle
The programmable duty cycle feature allows I/O PLLs to generate clock outputs with a variable duty cycle. This feature is only supported by the I/O PLL post-scale counters, C. fPLLs do not support the programmable duty cycle feature and only have fixed 50% duty cycle.
The I/O PLL C counter value determines the precision of the duty cycle. The precision is 50% divided by the post-scale counter value. For example, if the C0 counter is 10, steps of 5% are possible for duty-cycle options from 5% to 90%. If the I/O PLL is in external feedback mode, set the duty cycle for the counter driving the fbin pin to 50%.
The Intel® Quartus® Prime software automatically adjusts the VCO frequency according to the required duty cycle that you enter in the IOPLL IP core parameter editor.
Combining the programmable duty cycle with programmable phase shift allows the generation of precise non-overlapping clocks.
4.2.8. PLL Cascading
Intel® Cyclone® 10 GX devices support PLL-to-PLL cascading. PLL cascading synthesizes more output clock frequencies than a single PLL.
If you cascade PLLs in your design, the source (upstream) PLL must have a low-bandwidth setting and the destination (downstream) PLL must have a high-bandwidth setting. During cascading, the output of the source PLL serves as the reference clock (input) of the destination PLL. The bandwidth settings of cascaded PLLs must be different. If the bandwidth settings of the cascaded PLLs are the same, the cascaded PLLs may amplify phase noise at certain frequencies.
Intel® Cyclone® 10 GX devices only support I/O-PLL-to-I/O-PLL cascading for core applications. In this mode, upstream I/O PLL and downstream I/O PLL must be located within the same I/O column.
Intel® Cyclone® 10 GX fPLL does not support PLL cascading mode for core applications.
4.2.9. Reference Clock Sources
There are three possible reference clock sources to the I/O PLL. The clock can come from a dedicated pin, a core clock network, or the dedicated cascade network.
Intel recommends providing the I/O PLL reference clock using a dedicated pin when possible. If you want to use a non-dedicated pin for the PLL reference clock, you have to explicitly promote the clock to a global signal in the Intel® Quartus® Prime software.
You can provide up to two reference clocks to the I/O PLL.
- Both reference clocks can come from dedicated pins.
- Only one reference clock can come from a core clock.
- Only one reference clock can come from a dedicated cascade network.
You need to ensure that the PLL input reference clock is in the lock range as stated in the Intel® Quartus® Prime PLL Usage Summary under Fitter report. PLL loses lock if the input reference clock exceeds the stated range value. You need to reconfigure the PLL if the input reference clock that you are sourcing exceeds this frequency lock range.
4.2.10. Clock Switchover
The clock switchover feature allows the PLL to switch between two reference input clocks. Use this feature for clock redundancy or for a dual-clock domain application where a system turns to the redundant clock if the previous clock stops running. The design can perform clock switchover automatically when the clock is no longer toggling or based on a user control signal, extswitch.
Intel® Cyclone® 10 GX PLLs support the following clock switchover modes:
- Automatic switchover—The clock sense circuit monitors the current reference clock. If the current reference clock stops toggling, the reference clock automatically switches to inclk0 or inclk1 clock.
- Manual clock switchover—Clock switchover is controlled using the extswitch signal. When the extswitch signal pulse stays low for at least three clock cycles for the inclk being switched to, the reference clock to the PLL is switched from inclk0 to inclk1, or vice-versa.
- Automatic switchover with manual override—This mode combines automatic switchover and manual clock switchover. When the extswitch signal goes low, it overrides the automatic clock switchover function. As long as the extswitch signal is low, further switchover action is blocked.
4.2.10.1. Automatic Switchover
Intel® Cyclone® 10 GX PLLs support a fully configurable clock switchover capability.
When the current reference clock is not present, the clock sense block automatically switches to the backup clock for PLL reference. You can select a clock source as the backup clock by connecting it to the inclk1 port of the PLL in your design.
The clock switchover circuit sends out three status signals—clkbad0, clkbad1, and activeclock—from the PLL to implement a custom switchover circuit in the logic array.
In automatic switchover mode, the clkbad0 and clkbad1 signals indicate the status of the two clock inputs. When they are asserted, the clock sense block detects that the corresponding clock input has stopped toggling. These two signals are not valid if the frequency difference between inclk0 and inclk1 is greater than 20%.
The activeclock signal indicates which of the two clock inputs (inclk0 or inclk1) is being selected as the reference clock to the PLL. When the frequency difference between the two clock inputs is more than 20%, the activeclock signal is the only valid status signal.
Use the switchover circuitry to automatically switch between inclk0 and inclk1 when the current reference clock to the PLL stops toggling. You can switch back and forth between inclk0 and inclk1 any number of times when one of the two clocks fails and the other clock is available.
For example, in applications that require a redundant clock with the same frequency as the reference clock, the switchover state machine generates a signal (clksw) that controls the multiplexer select input. In this case, inclk1 becomes the reference clock for the PLL.
When using automatic clock switchover mode, the following requirements must be satisfied:
- Both clock inputs must be running when the FPGA is configured.
- The period of the two clock inputs can differ by no more than 20%.
The input clocks must meet the input jitter specifications to ensure proper operation of the status signals. Glitches in the input clock may be seen as a greater than 20% difference in frequency between the input clocks.
If the current clock input stops toggling while the other clock is also not toggling, switchover is not initiated and the clkbad[0..1] signals are not valid. If both clock inputs are not the same frequency, but their period difference is within 20%, the clock sense block detects when a clock stops toggling. However, the PLL may lose lock after the switchover is completed and needs time to relock.
4.2.10.2. Automatic Switchover with Manual Override
In automatic switchover with manual override mode, you can use the extswitch signal for user- or system-controlled switch conditions. You can use this mode for same-frequency switchover, or to switch between inputs of different frequencies.
For example, if inclk0 is 66 MHz and inclk1 is 200 MHz, you must control switchover using the extswitch signal. The automatic clock-sense circuitry cannot monitor clock input (inclk0 and inclk1) frequencies with a frequency difference of more than 100% (2×).
This feature is useful when the clock sources originate from multiple cards on the backplane, requiring a system-controlled switchover between the frequencies of operation.
You must choose the backup clock frequency and set the M, N, C, L, and K counters so that the VCO operates within the recommended operating frequency range. The Altera IOPLL (for I/O PLL) parameter editor notifies you if a given combination of inclk0 and inclk1 frequencies cannot meet this requirement.
In automatic override with manual switchover mode, the activeclock signal inverts after the extswitch signal transitions from logic high to logic low. Since both clocks are still functional during the manual switch, neither clkbad signal goes high. Because the switchover circuit is negative-edge sensitive, the rising edge of the extswitch signal does not cause the circuit to switch back from inclk1 to inclk0. When the extswitch signal goes low again, the process repeats.
The extswitch signal and automatic switch work only if the clock being switched to is available. If the clock is not available, the state machine waits until the clock is available.
4.2.10.3. Manual Clock Switchover
In manual clock switchover mode, the extswitch signal controls whether inclk0 or inclk1 is selected as the input clock to the PLL. By default, inclk0 is selected.
A clock switchover event is initiated when the extswitch signal transitions from logic high to logic low, and being held low for at least three inclk cycles for the inclk being switched to.
You must bring the extswitch signal back high again to perform another switchover event. If you do not require another switchover event, you can leave the extswitch signal in a logic low state after the initial switch.
Pulsing the extswitch signal low for at least three inclk cycles for the inclk being switched to performs another switchover event.
If inclk0 and inclk1 are different frequencies and are always running, the extswitch signal minimum low time must be greater than or equal to three of the slower frequency inclk0 and inclk1 cycles.
You can delay the clock switchover action by specifying the switchover delay in the Altera IOPLL (for I/O PLL) IP core. When you specify the switchover delay, the extswitch signal must be held low for at least three inclk cycles for the inclk being switched to plus the number of the delay cycles that has been specified to initiate a clock switchover.
4.2.10.4. Guidelines
When implementing clock switchover in Intel® Cyclone® 10 GX PLLs, use the following guidelines:
- Automatic clock switchover requires that the inclk0 and inclk1 frequencies be within 20% of each other. Failing to meet this requirement causes the clkbad0 and clkbad1 signals to not function properly.
- When using manual clock switchover, the difference between inclk0 and inclk1 can be more than 100% (2×). However, differences in frequency, phase, or both, of the two clock sources is likely to cause the PLL to lose lock. Resetting the PLL ensures that you maintain the correct phase relationships between the input and output clocks.
- Both inclk0 and inclk1 must be running when the extswitch signal goes low to initiate the manual clock switchover event. Failing to meet this requirement causes the clock switchover to not function properly.
- Applications that require a clock switchover feature and a small frequency drift must use a low-bandwidth PLL. When referencing input clock changes, the low-bandwidth PLL reacts more slowly than a high-bandwidth PLL. When switchover happens, a low-bandwidth PLL propagates the stopping of the clock to the output more slowly than a high-bandwidth PLL. However, be aware that the low-bandwidth PLL also increases lock time.
- After a switchover occurs, there may be a finite resynchronization period for the PLL to lock onto a new clock. The time it takes for the PLL to relock depends on the PLL configuration.
- The phase relationship between the input clock to the PLL and the output clock from the PLL is important in your design. Assert the reset signal for at least 10 ns after performing a clock switchover. Wait for the locked signal to go high and be stable before re-enabling the output clocks from the PLL.
- The VCO frequency gradually decreases when the current clock is lost and then increases as the VCO locks on to the backup clock, as shown in the following figure.
4.2.11. PLL Reconfiguration and Dynamic Phase Shift
fPLLs and I/O PLLs support PLL reconfiguration and dynamic phase shift with the following features:
- PLL reconfiguration—Reconfigure the M, N, and C counters. Able to reconfigure the fractional settings (for fPLL).
- Dynamic phase shift—Perform positive or negative phase shift. fPLLs support only single phase step in one dynamic phase shift operation, where each phase step is equal to 1/4 of the VCO period. I/O PLLs support multiple phase steps in one dynamic phase shift operation, where each phase step is equal to 1/8 of the VCO period.
4.3. Clock Networks and PLLs in Intel Cyclone 10 GX Devices Revision History
Document Version | Changes |
---|---|
2019.06.24 |
|
2018.02.02 | Updated the notes on PLL reset in the Reset section. |
Date | Version | Changes |
---|---|---|
May 2017 | 2017.05.08 | Initial release. |
5. I/O and High Speed I/O in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX I/Os support the following features:
- Single-ended, non-voltage-referenced, and voltage-referenced I/O standards
- Low-voltage differential signaling (LVDS), RSDS, mini-LVDS, HSTL, HSUL, and SSTL I/O standards
- Serializer/deserializer (SERDES)
- Programmable output current strength
- Programmable slew rate
- Programmable bus-hold
- Programmable weak pull-up resistor
- Programmable pre-emphasis LVDS standards
- Programmable I/O delay
- Programmable differential output voltage (VOD)
- Open-drain output
- On-chip series termination (RS OCT) with and without calibration
- On-chip parallel termination (RT OCT)
- On-chip differential termination (RD OCT)
- HSTL and SSTL input buffer with dynamic power down
- Dynamic on-chip parallel termination for all I/O banks
5.1. I/O and Differential I/O Buffers in Intel Cyclone 10 GX Devices
The general purpose I/Os (GPIOs) consist of LVDS I/O and 3 V I/O banks:
- LVDS I/O bank—supports differential and single-ended I/O standards up to 1.8 V. The LVDS I/O pins form pairs of true differential LVDS channels. Each pair supports a parallel input/output termination between the two pins. You can use each LVDS channel as transmitter only or receiver only. Each LVDS channel supports transmit SERDES and receive SERDES with DPA circuitry. For example, you use 10 channels of the available 24 channels as transmitters. Of the remaining channels, you can use 13 channels as receivers and one channel for the reference clock.
-
3 V I/O bank—supports single-ended and differential SSTL, HSTL, and HSUL I/O standards up to 3 V. Single-ended I/O within this I/O bank support all programmable I/O element (IOE) features except:
- Programmable pre-emphasis
- RD on-chip termination (OCT)
- Calibrated RS and RT OCT
- Internal VREF generation
Intel® Cyclone® 10 GX devices support LVDS on all LVDS I/O banks:
- All LVDS I/O banks support true LVDS input with RD OCT and true LVDS output buffer.
- The devices do not support emulated LVDS channels.
- The devices support both single-ended and differential I/O reference clock for the I/O PLL that drives the SERDES.
5.2. I/O Standards and Voltage Levels in Intel Cyclone 10 GX Devices
5.2.1. I/O Standards Support in Intel Cyclone 10 GX Devices
I/O Standard | I/O Buffer Type Support | Application | Standard Support | |
---|---|---|---|---|
LVDS I/O | 3V I/O | |||
3.0 V LVTTL/3.0 V LVCMOS | No | Yes | General purpose | JESD8-B |
2.5 V LVCMOS | No | Yes | General purpose | JESD8-5 |
1.8 V LVCMOS | Yes | Yes | General purpose | JESD8-7 |
1.5 V LVCMOS | Yes | Yes | General purpose | JESD8-11 |
1.2 V LVCMOS | Yes | Yes | General purpose | JESD8-12 |
SSTL-18 Class I and Class II 6 | Yes | Yes | General purpose | JESD8-15 |
SSTL-15 Class I and Class II | Yes | Yes | DDR3 | — |
SSTL-15 | Yes | Yes | DDR3 | JESD79-3D |
SSTL-135, SSTL-135 Class I and Class II | Yes | Yes | DDR3L | — |
SSTL-125, SSTL-125 Class I and Class II | Yes | Yes | DDR3U | — |
SSTL-12, SSTL-12 Class I and Class II 6 | Yes | No | General purpose | — |
POD12 6 | Yes | No | General purpose | JESD8-24 |
1.8 V HSTL Class I and Class II 6 | Yes | Yes | General purpose | JESD8-6 |
1.5 V HSTL Class I and Class II 6 | Yes | Yes | General purpose | JESD8-6 |
1.2 V HSTL Class I and Class II | Yes | Yes | General purpose | JESD8-16A |
HSUL-12 6 | Yes | Yes | General purpose | — |
Differential SSTL-18 Class I and Class II 6 | Yes | Yes | General purpose | JESD8-15 |
Differential SSTL-15 Class I and Class II | Yes | Yes | DDR3 | — |
Differential SSTL-15 | Yes | Yes | DDR3 | JESD79-3D |
Differential SSTL-135, SSTL-135 Class I and Class II | Yes | Yes | DDR3L | — |
Differential SSTL-125, SSTL-125 Class I and Class II | Yes | Yes | DDR3U | — |
Differential SSTL-12, SSTL-12 Class I and Class II 6 | Yes | No | RLDRAMIII | — |
Differential POD12 6 | Yes | No | General purpose | JESD8-24 |
Differential 1.8 V HSTL Class I and Class II 6 | Yes | Yes | General purpose | JESD8-6 |
Differential 1.5 V HSTL Class I and Class II 6 | Yes | Yes | General purpose | JESD8-6 |
Differential 1.2 V HSTL Class I and Class II | Yes | Yes | General purpose | JESD8-16A |
Differential HSUL-12 6 | Yes | Yes | General purpose | — |
LVDS | Yes | No | SGMII, SFI, and SPI | ANSI/TIA/EIA-644 |
Mini-LVDS | Yes | No | SGMII, SFI, and SPI | — |
RSDS | Yes | No | SGMII, SFI, and SPI | — |
LVPECL | Yes | No | SGMII, SFI, and SPI | — |
5.2.2. I/O Standards Voltage Levels in Intel Cyclone 10 GX Devices
- The I/O buffers are powered by VCC, VCCPT and VCCIO.
- Each I/O bank has its own VCCIO supply and supports only one VCCIO voltage.
- In all I/O banks, you can use any of the listed VCCIO voltages except 2.5 V and 3.0 V.
- The 2.5 V and 3.0 V VCCIO voltages are supported only on the 3 V I/O banks.
- For the maximum and minimum input voltages allowed, refer to the device datasheet.
I/O Standard | VCCIO(V) |
VCCPT(V) (Pre-Driver Voltage) |
VREF(V) (Input Ref Voltage) |
VTT(V) (Board Termination Voltage) |
|
---|---|---|---|---|---|
Input7 | Output | ||||
3.0 V LVTTL/3.0 V LVCMOS | 3.0/2.5 | 3.0 | 1.8 | — | — |
2.5 V LVCMOS | 3.0/2.5 | 2.5 | 1.8 | — | — |
1.8 V LVCMOS | 1.8 | 1.8 | 1.8 | — | — |
1.5 V LVCMOS | 1.5 | 1.5 | 1.8 | — | — |
1.2 V LVCMOS | 1.2 | 1.2 | 1.8 | — | — |
SSTL-18 Class I and Class II | VCCPT | 1.8 | 1.8 | 0.9 | 0.9 |
SSTL-15 Class I and Class II | VCCPT | 1.5 | 1.8 | 0.75 | 0.75 |
SSTL-15 | VCCPT | 1.5 | 1.8 | 0.75 | 0.75 |
SSTL-135, SSTL-135 Class I and Class II | VCCPT | 1.35 | 1.8 | 0.675 | 0.675 |
SSTL-125, SSTL-125 Class I and Class II | VCCPT | 1.25 | 1.8 | 0.625 | 0.625 |
SSTL-12, SSTL-12 Class I and Class II | VCCPT | 1.2 | 1.8 | 0.6 | 0.6 |
POD12 | VCCPT | 1.2 | 1.8 | 0.84 | 1.2 |
1.8 V HSTL Class I and Class II | VCCPT | 1.8 | 1.8 | 0.9 | 0.9 |
1.5 V HSTL Class I and Class II | VCCPT | 1.5 | 1.8 | 0.75 | 0.75 |
1.2 V HSTL Class I and Class II | VCCPT | 1.2 | 1.8 | 0.6 | 0.6 |
HSUL-12 | VCCPT | 1.2 | 1.8 | 0.6 | — |
Differential SSTL-18 Class I and Class II | VCCPT | 1.8 | 1.8 | — | 0.9 |
Differential SSTL-15 Class I and Class II | VCCPT | 1.5 | 1.8 | — | 0.75 |
Differential SSTL-15 | VCCPT | 1.5 | 1.8 | — | 0.75 |
Differential SSTL-135, SSTL-135 Class I and Class II | VCCPT | 1.35 | 1.8 | — | 0.675 |
Differential SSTL-125, SSTL-125 Class I and Class II | VCCPT | 1.25 | 1.8 | — | 0.625 |
Differential SSTL-12, SSTL-12 Class I and Class II | VCCPT | 1.2 | 1.8 | — | 0.6 |
Differential POD12 | VCCPT | 1.2 | 1.8 | — | 1.2 |
Differential 1.8 V HSTL Class I and Class II | VCCPT | 1.8 | 1.8 | — | 0.9 |
Differential 1.5 V HSTL Class I and Class II | VCCPT | 1.5 | 1.8 | — | 0.75 |
Differential 1.2 V HSTL Class I and Class II | VCCPT | 1.2 | 1.8 | — | 0.6 |
Differential HSUL-12 | VCCPT | 1.2 | 1.8 | — | — |
LVDS | VCCPT | 1.8 | 1.8 | — | — |
Mini-LVDS | VCCPT | 1.8 | 1.8 | — | — |
RSDS | VCCPT | 1.8 | 1.8 | — | — |
LVPECL (Differential clock input only) | VCCPT | — | 1.8 | — | — |
5.3. Intel FPGA I/O IP Cores for Intel Cyclone 10 GX Devices
- GPIO—supports operations of the GPIO components.
- LVDS SERDES—supports operations of the high-speed source-synchronous SERDES.
- Intel FPGA OCT—supports the OCT calibration block.
- Intel FPGA PHYlite for Parallel Interfaces —supports dynamic OCT and I/O delays for strobe-based capture I/O elements. This IP core can also be used for generic source synchronous interfaces using single ended I/O.
5.4. I/O Resources in Intel Cyclone 10 GX Devices
5.4.1. GPIO Banks, SERDES, and DPA Locations in Intel Cyclone 10 GX Devices
The I/O banks are located in I/O columns. Each I/O bank contains its own PLL, DPA, and SERDES circuitries.
For more details about the modular I/O banks available in each device package, refer to the related information.
5.4.2. FPGA I/O Resources in Intel Cyclone 10 GX Packages
Product Line | Package | GPIO | True LVDS Channels | |||
---|---|---|---|---|---|---|
Code | Type | 3 V I/O | LVDS I/O | Total | ||
10CX085 | U484 | 484-pin UBGA | 48 | 140 | 188 | 70 |
F672 | 672-pin FBGA | 48 | 168 | 216 | 84 | |
10CX105 | U484 | 484-pin UBGA | 48 | 140 | 188 | 70 |
F672 | 672-pin FBGA | 48 | 188 | 236 | 94 | |
F780 | 780-pin FBGA | 48 | 236 | 284 | 118 | |
10CX150 | U484 | 484-pin UBGA | 48 | 140 | 188 | 70 |
F672 | 672-pin FBGA | 48 | 188 | 236 | 94 | |
F780 | 780-pin FBGA | 48 | 236 | 284 | 118 | |
10CX220 | U484 | 484-pin UBGA | 48 | 140 | 188 | 70 |
F672 | 672-pin FBGA | 48 | 188 | 236 | 94 | |
F780 | 780-pin FBGA | 48 | 236 | 284 | 118 |
5.4.3. I/O Banks Groups in Intel Cyclone 10 GX Devices
The I/O pins in Intel® Cyclone® 10 GX devices are arranged in groups called modular I/O banks:
- Modular I/O banks have independent supplies that allow each bank to support different I/O standards.
- Each modular I/O bank can support multiple I/O standards that use the same voltage.
The following tables list the I/O banks available, the total number of I/O pins in each bank, and the total number of I/O pins for each Intel® Cyclone® 10 GX product line and device package.
Product Line | 10CX085 | 10CX105 | ||||
---|---|---|---|---|---|---|
Package | U484 | F672 | U484 | F672 | F780 | |
3 V I/O Bank | 2L | 48 | 48 | 48 | 48 | 48 |
LVDS I/O Bank | 2K | 48 | 48 | 48 | 48 | 48 |
2J | 48 | 48 | 48 | 48 | 48 | |
2A | 44 | 48 | 44 | 48 | 48 | |
3B | — | — | — | — | 48 | |
3A | — | 24 | — | 44 | 44 | |
Total | 188 | 216 | 188 | 236 | 284 |
Product Line | 10CX150 | 10CX220 | |||||
---|---|---|---|---|---|---|---|
Package | U484 | F672 | F780 | U484 | F672 | F780 | |
3 V I/O Bank | 2L | 48 | 48 | 48 | 48 | 48 | 48 |
LVDS I/O Bank | 2K | 48 | 48 | 48 | 48 | 48 | 48 |
2J | 48 | 48 | 48 | 48 | 48 | 48 | |
2A | 44 | 48 | 48 | 44 | 48 | 48 | |
3B | — | — | 48 | — | — | 48 | |
3A | — | 44 | 44 | — | 44 | 44 | |
Total | 188 | 236 | 284 | 188 | 236 | 284 |
5.4.4. I/O Vertical Migration for Intel Cyclone 10 GX Devices
- The arrows indicate the migration paths. The devices included in each vertical migration path are shaded. Devices with fewer resources in the same path have lighter shades.
- To achieve the full I/O migration across product lines in the same migration path, restrict I/Os and transceivers usage to match the product line with the lowest I/O and transceiver counts.
5.4.4.1. Verifying Pin Migration Compatibility
You can use the Pin Migration View window in the Intel® Quartus® Prime software Pin Planner to assist you in verifying whether your pin assignments migrate to a different device successfully. You can vertically migrate to a device with a different density while using the same device package, or migrate between packages with different densities and ball counts.
- Open Assignments > Pin Planner and create pin assignments.
-
If necessary,
perform one of the following options to populate the Pin Planner with the node
names in the design:
- Analysis & Elaboration
- Analysis & Synthesis
- Fully compile the design
- Then, on the menu, click View > Pin Migration View.
-
To select or change
migration devices:
- Click Device to open the Device dialog box.
- Under Migration compatibility click Migration Devices.
-
To show more
information about the pins:
- Right-click anywhere in the Pin Migration View window and select Show Columns.
- Then, click the pin feature you want to display.
- If you want to view only the pins, in at least one migration device, that have a different feature than the corresponding pin in the migration result, turn on Show migration differences.
-
Click Pin Finder to open the Pin Finder dialog box to find and highlight pins
with specific functionality.
If you want to view only the pins highlighted by the most recent query in the Pin Finder dialog box, turn on Show only highlighted pins.
- To export the pin migration information to a Comma-Separated Value file (.csv), click Export.
5.5. Architecture and General Features of I/Os in Intel Cyclone 10 GX Devices
5.5.1. I/O Element Structure in Intel Cyclone 10 GX Devices
The I/O elements (IOEs) in Intel® Cyclone® 10 GX devices contain a bidirectional I/O buffer and I/O registers to support a complete embedded bidirectional single data rate (SDR) or double data rate (DDR) transfer.
The IOEs are located in I/O columns within the core fabric of the Intel® Cyclone® 10 GX device.
The GPIO IOE register consists of the DDR register, the half rate register, and the transmitter delay chains for input, output, and output enable (OE) paths:
- You can take data from the combinatorial path or the registered path.
- Only the core clock clocks the data.
- The half rate clock routed from the core clocks the half rate register.
- The full rate clock from the core clocks the full rate register.
5.5.1.1. I/O Bank Architecture in Intel Cyclone 10 GX Devices
5.5.1.2. I/O Buffer and Registers in Intel Cyclone 10 GX Devices
I/O registers are composed of the input path for handling data from the pin to the core, the output path for handling data from the core to the pin, and the output enable (OE) path for handling the OE signal to the output buffer. These registers allow faster source-synchronous register-to-register transfers and resynchronization. Use the GPIO Intel® FPGA IP to utilize these registers to implement DDR circuitry.
The input and output paths contain the following blocks:
- Input registers—support half or full rate data transfer from peripheral to core, and support double or single data rate data capture from I/O buffer.
- Output registers—support half or full rate data transfer from core to peripheral, and support double or single data rate data transfer to I/O buffer.
- OE registers—support half or full rate data transfer from core to peripheral, and support single data rate data transfer to I/O buffer.
The input and output paths also support the following features:
- Clock enable.
- Asynchronous or synchronous reset.
- Bypass mode for input and output paths.
- Delays chains on input and output paths.
5.5.2. Features of I/O Pins in Intel Cyclone 10 GX Devices
5.5.2.1. Open-Drain Output
The optional open-drain output for each I/O pin is equivalent to an open collector output. If it is configured as an open drain, the logic value of the output is either high-Z or logic low.
Use an external resistor to pull the signal to a logic high.
5.5.2.2. Bus-Hold Circuitry
Each I/O pin provides an optional bus-hold feature that is active only after configuration. When the device enters user mode, the bus-hold circuit captures the value that is present on the pin by the end of the configuration.
The bus-hold circuitry uses a resistor with a nominal resistance (RBH), approximately 7 kΩ, to weakly pull the signal level to the last-driven state of the pin. The bus-hold circuitry holds this pin state until the next input signal is present. Because of this, you do not require an external pull-up or pull-down resistor to hold a signal level when the bus is tri-stated.
For each I/O pin, you can individually specify that the bus-hold circuitry pulls non-driven pins away from the input threshold voltage—where noise can cause unintended high-frequency switching. To prevent over-driving signals, the bus-hold circuitry drives the voltage level of the I/O pin lower than the VCCIO level.
If you enable the bus-hold feature, you cannot use the programmable pull-up option. To configure the I/O pin for differential signals, disable the bus-hold feature.
5.5.2.3. Weak Pull-up Resistor
Each I/O pin provides an optional programmable pull-up resistor during user mode. The pull-up resistor, typically 25 kΩ, weakly holds the I/O to the VCCIO level.
The Intel® Cyclone® 10 GX device supports programmable weak pull-up resistors only on user I/O pins but not on dedicated configuration pins, dedicated clock pins, or JTAG pins .
If you enable this option, you cannot use the bus-hold feature.
5.5.3. Programmable IOE Features in Intel Cyclone 10 GX Devices
Feature |
Setting |
Condition |
Intel® Quartus® Prime Assignment Name |
---|---|---|---|
Slew Rate Control | 0 (Slow), 1 (Fast). Default is 1. | Disabled if you use the RS OCT feature. | SLEW_RATE |
I/O Delay | Refer to the device datasheet | — |
INPUT_DELAY_CHAIN OUTPUT_DELAY_CHAIN |
Open-Drain Output | On, Off. Default is Off | — | AUTO_OPEN_DRAIN_PINS |
Bus-Hold | On, Off. Default is Off. | Disabled if you use the weak pull-up resistor feature. | ENABLE_BUS_HOLD_CIRCUITRY |
Weak Pull-up Resistor | On, Off. Default is Off. | Disabled if you use the bus-hold feature. | WEAK_PULL_UP_RESISTOR |
Pre-Emphasis | 0 (disabled), 1 (enabled). Default is 1. | — | PROGRAMMABLE_PREEMPHASIS |
Differential Output Voltage | 0 (low), 1 (medium low), 2 (medium high), 3 (high). Default is 2. | — | PROGRAMMABLE_VOD |
Feature |
I/O Standards Support |
I/O Buffer Type Support | |
---|---|---|---|
LVDS I/O | 3 V I/O | ||
Slew Rate Control |
|
Yes | Yes |
I/O Delay | Yes | Yes | |
Open-Drain Output |
|
Yes | Yes |
Bus-Hold | Yes | Yes | |
Weak Pull-up Resistor | Yes | Yes | |
Pre-Emphasis |
|
Yes | — |
Differential Output Voltage |
|
Yes | — |
5.5.3.1. Programmable Current Strength
To use programmable current strength, you must specify the current strength assignment in the Intel® Quartus® Prime software. Without explicit assignments, the Intel® Quartus® Prime software uses these predefined default values:
- All HSTL and SSTL Class I, and all non-voltage-referenced I/O standards—50 Ω RS OCT without calibration
- All HSTL and SSTL Class II I/O standards—25 Ω RS OCT without calibration
- POD12 I/O standard—34 Ω RS OCT without calibration
I/O Standard |
IOH / IOL Current Strength Setting (mA) 8 |
|
---|---|---|
Available | Default | |
3.0 V LVTTL/3.0 V CMOS | 16, 12, 8, 4 | 12 |
2.5 V LVCMOS | 16, 12, 8, 4 | 12 |
1.8 V LVCMOS | 12, 10, 8, 6, 4, 2 | 12 |
1.5 V LVCMOS | 12, 10, 8, 6, 4, 2 | 12 |
1.2 V LVCMOS | 8, 6, 4, 2 | 8 |
SSTL-18 Class I | 12, 10, 8, 6, 4 | 8 |
SSTL-18 Class II | 16, 8 | 16 |
SSTL-15 Class I | 12, 10, 8, 6, 4 | 8 |
SSTL-15 Class II | 16, 8 | 16 |
SSTL-135 Class I | 12, 10, 8, 6, 4 | 8 |
SSTL-135 Class II | 16 | 16 |
SSTL-125 Class I | 12, 10, 8, 6, 4 | 8 |
SSTL-125 Class II | 16 | 16 |
SSTL-12 Class I | 12, 10, 8, 6, 4 | 8 |
SSTL-12 Class II | 16 | 16 |
POD12 | 16, 12, 10, 8, 6, 4 | 8 |
1.8 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
1.8 V HSTL Class II | 16 | 16 |
1.5 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
1.5 V HSTL Class II | 16 | 16 |
1.2 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
1.2 V HSTL Class II | 16 | 16 |
Differential SSTL-18 Class I | 12, 10, 8, 6, 4 | 8 |
Differential SSTL-18 Class II | 16, 8 | 16 |
Differential SSTL-15 Class I | 12, 10, 8, 6, 4 | 8 |
Differential SSTL-15 Class II | 16, 8 | 16 |
Differential 1.8 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
Differential 1.8 V HSTL Class II | 16 | 16 |
Differential 1.5 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
Differential 1.5 V HSTL Class II | 16 | 16 |
Differential 1.2 V HSTL Class I | 12, 10, 8, 6, 4 | 8 |
Differential 1.2 V HSTL Class II | 16 | 16 |
Differential SSTL-135 Class I | 12, 10, 8, 6, 4 | 8 |
Differential SSTL-135 Class II | 16 | 16 |
Differential SSTL-125 Class I | 12, 10, 8, 6, 4 | 8 |
Differential SSTL-125 Class II | 16 | 16 |
Differential SSTL-12 Class I | 12, 10, 8, 6, 4 | 8 |
Differential SSTL-12 Class II | 16 | 16 |
Differential POD12 | 16, 12, 10, 8, 6, 4 | 8 |
5.5.3.2. Programmable Output Slew Rate Control
The programmable output slew rate control in the output buffer of each regular- and dual-function I/O pin allows you to configure the following:
- Fast slew rate—provides high-speed transitions for high-performance systems.
- Slow slew rate—reduces system noise and crosstalk but adds a nominal delay to the rising and falling edges.
You can specify the slew rate on a pin-by-pin basis because each I/O pin contains a slew rate control.
5.5.3.3. Programmable IOE Delay
To ensure that the signals within a bus have the same delay going into or out of the device, each pin can have different delay values:
- Delay from input pin to input register
- Delay from output pin to output register
For more information about the programmable IOE delay specifications, refer to the device datasheet.
5.5.3.4. Programmable Open-Drain Output
You can attach several open-drain outputs to a wire. This connection type is like a logical OR function and is commonly called an active-low wired-OR circuit. If at least one of the outputs is in logic 0 state (active), the circuit sinks the current and brings the line to low voltage.
You can use open-drain output if you are connecting multiple devices to a bus. For example, you can use the open-drain output for system-level control signals that can be asserted by any device or as an interrupt.
- Design the tristate buffer using OPNDRN primitive.
- Turn on the Auto Open-Drain Pins option in the Intel® Quartus® Prime software.
5.5.3.5. Programmable Pre-Emphasis
The VOD setting and the output impedance of the driver set the output current limit of a high-speed transmission signal. At a high frequency, the slew rate may not be fast enough to reach the full VOD level before the next edge, producing pattern-dependent jitter. With pre-emphasis, the output current is boosted momentarily during switching to increase the output slew rate.
Pre-emphasis increases the amplitude of the high-frequency component of the output signal, and thus helps to compensate for the frequency-dependent attenuation along the transmission line. The overshoot introduced by the extra current happens only during a change of state switching to increase the output slew rate and does not ring, unlike the overshoot caused by signal reflection. The amount of pre-emphasis required depends on the attenuation of the high-frequency component along the transmission line.
Field | Assignment |
---|---|
To | tx_out |
Assignment name | Programmable Pre-emphasis |
Allowed values | 0 (disabled), 1 (enabled). Default is 1. |
5.5.3.6. Programmable Differential Output Voltage
The programmable VOD settings allow you to adjust the output eye opening to optimize the trace length and power consumption. A higher VOD swing improves voltage margins at the receiver end, and a smaller VOD swing reduces power consumption. You can statically adjust the VOD of the differential signal by changing the VOD settings in the Intel® Quartus® Prime software Assignment Editor.
Field | Assignment |
---|---|
To | tx_out |
Assignment name | Programmable Differential Output Voltage (VOD) |
Allowed values | 0 (low), 1 (medium low), 2 (medium high), 3 (high). Default is 2. |
5.5.4. On-Chip I/O Termination in Intel Cyclone 10 GX Devices
Serial (RS) and parallel (RT) OCT provides I/O impedance matching and termination capabilities. OCT maintains signal quality, saves board space, and reduces external component costs.
The Intel® Cyclone® 10 GX devices support OCT in all FPGA I/O banks. For the 3 V I/Os, the I/Os support only OCT without calibration.
Direction | OCT Schemes | I/O Type Support | |
---|---|---|---|
LVDS I/O | 3 V I/O | ||
Output | RS OCT with calibration | Yes | — |
RS OCT without calibration | Yes | Yes | |
Input | RT OCT with calibration | Yes | — |
RD OCT (LVDS I/O standard only) | Yes | — | |
Bidirectional | Dynamic RS and RT OCT | Yes | Yes |
5.5.4.1. RS OCT without Calibration in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX devices support RS OCT for single-ended and voltage-referenced I/O standards. RS OCT without calibration is supported on output only.
I/O Standard | Uncalibrated OCT (Output) |
---|---|
RS (Ω) | |
3.0 V LVTTL/3.0 V LVCMOS | 25/50 |
2.5 V LVCMOS | 25/50 |
1.8 V LVCMOS | 25/50 |
1.5 V LVCMOS | 25/50 |
1.2 V LVCMOS | 25/50 |
SSTL-18 Class I | 50 |
SSTL-18 Class II | 25 |
SSTL-15 Class I | 50 |
SSTL-15 Class II | 25 |
SSTL-15 | 34, 40 |
SSTL-135 | 34, 40 |
SSTL-125 | 34, 40 |
SSTL-12 | 40, 60, 120, 240 |
POD12 | 34, 40, 48, 60 |
1.8 V HSTL Class I | 50 |
1.8 V HSTL Class II | 25 |
1.5 V HSTL Class I | 50 |
1.5 V HSTL Class II | 25 |
1.2 V HSTL Class I | 50 |
1.2 V HSTL Class II | 25 |
HSUL-12 | 34.3, 40, 48, 60, 80 |
Differential SSTL-18 Class I | 50 |
Differential SSTL-18 Class II | 25 |
Differential SSTL-15 Class I | 50 |
Differential SSTL-15 Class II | 25 |
Differential SSTL-15 | 34, 40 |
Differential SSTL-135 | 34, 40 |
Differential SSTL-125 | 34, 40 |
Differential SSTL-12 | 40, 60, 120, 240 |
Differential POD12 | 34, 40, 48, 60 |
Differential 1.8 V HSTL Class I | 50 |
Differential 1.8 V HSTL Class II | 25 |
Differential 1.5 V HSTL Class I | 50 |
Differential 1.5 V HSTL Class II | 25 |
Differential 1.2 V HSTL Class I | 50 |
Differential 1.2 V HSTL Class II | 25 |
Differential HSUL-12 | 34.3, 40, 48, 60, 80 |
Driver-impedance matching provides the I/O driver with controlled output impedance that closely matches the impedance of the transmission line. As a result, you can significantly reduce signal reflections on PCB traces.
If you select matching impedance, current strength is no longer selectable.
5.5.4.2. RS OCT with Calibration in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX devices support RS OCT with calibration in all LVDS I/O banks.
I/O Standard | Calibrated OCT (Output) | |
---|---|---|
RS (Ω) | RZQ (Ω) | |
1.8 V LVCMOS | 25, 50 | 100 |
1.5 V LVCMOS | 25, 50 | 100 |
1.2 V LVCMOS | 25, 50 | 100 |
SSTL-18 Class I | 50 | 100 |
SSTL-18 Class II | 25 | 100 |
SSTL-15 Class I | 50 | 100 |
SSTL-15 Class II | 25 | 100 |
SSTL-15 | 25, 50 | 100 |
34, 40 | 240 | |
SSTL-135 | 34, 40 | 240 |
SSTL-125 | 34, 40 | 240 |
SSTL-12 | 40, 60, 120, 240 | 240 |
POD12 | 34, 40, 48, 60 | 240 |
1.8 V HSTL Class I | 50 | 100 |
1.8 V HSTL Class II | 25 | 100 |
1.5 V HSTL Class I | 50 | 100 |
1.5 V HSTL Class II | 25 | 100 |
1.2 V HSTL Class I | 50 | 100 |
1.2 V HSTL Class II | 25 | 100 |
HSUL-12 | 34, 40, 48, 60, 80 | 240 |
Differential SSTL-18 Class I | 50 | 100 |
Differential SSTL-18 Class II | 25 | 100 |
Differential SSTL-15 Class I | 50 | 100 |
Differential SSTL-15 Class II | 25 | 100 |
Differential SSTL-15 | 25, 50 | 100 |
34, 40 | 240 | |
Differential SSTL-135 | 34, 40 | 240 |
Differential SSTL-125 | 34, 40 | 240 |
Differential SSTL-12 | 40, 60, 120, 240 | 240 |
Differential POD12 | 34, 40, 48, 60 | 240 |
Differential 1.8 V HSTL Class I | 50 | 100 |
Differential 1.8 V HSTL Class II | 25 | 100 |
Differential 1.5 V HSTL Class I | 50 | 100 |
Differential 1.5 V HSTL Class II | 25 | 100 |
Differential 1.2 V HSTL Class I | 50 | 100 |
Differential 1.2 V HSTL Class II | 25 | 100 |
Differential HSUL-12 | 34, 40, 48, 60, 80 | 240 |
The RS OCT calibration circuit compares the total impedance of the I/O buffer to the external reference resistor connected to the RZQ pin and dynamically enables or disables the transistors until they match.
Calibration occurs at the end of device configuration. When the calibration circuit finds the correct impedance, the circuit powers down and stops changing the characteristics of the drivers.
5.5.4.3. RT OCT with Calibration in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX devices support RT OCT with calibration in all LVDS I/O banks but not in the 3 V I/O banks. RT OCT with calibration is available only for configuration of input and bidirectional pins. Output pin configurations do not support RT OCT with calibration. If you use RT OCT, the VCCIO of the bank must match the I/O standard of the pin where you enable the RT OCT.
I/O Standard | Calibrated OCT (Input) | |
---|---|---|
RT (Ω) | RZQ (Ω) | |
SSTL-18 Class I | 50 | 100 |
SSTL-18 Class II | 50 | 100 |
SSTL-15 Class I | 50 | 100 |
SSTL-15 Class II | 50 | 100 |
SSTL-15 | 30, 40, 60,120 | 240 |
SSTL-135 | 30, 40, 60, 120 | 240 |
SSTL-125 | 30, 40, 60, 120 | 240 |
SSTL-12 | 60, 120 | 240 |
POD12 | 34, 40, 48, 60, 80, 120, 240 | 240 |
1.8 V HSTL Class I | 50 | 100 |
1.8 V HSTL Class II | 50 | 100 |
1.5 V HSTL Class I | 50 | 100 |
1.5 V HSTL Class II | 50 | 100 |
1.2 V HSTL Class I | 50 | 100 |
1.2 V HSTL Class II | 50 | 100 |
Differential SSTL-18 Class I | 50 | 100 |
Differential SSTL-18 Class II | 50 | 100 |
Differential SSTL-15 Class I | 50 | 100 |
Differential SSTL-15 Class II | 50 | 100 |
Differential SSTL-15 | 30, 40, 60,120 | 240 |
Differential SSTL-135 | 30, 40, 60, 120 | 240 |
Differential SSTL-125 | 30, 40, 60, 120 | 240 |
Differential SSTL-12 | 60, 120 | 240 |
Differential POD12 | 34, 40, 48, 60, 80, 120, 240 | 240 |
Differential 1.8 V HSTL Class I | 50 | 100 |
Differential 1.8 V HSTL Class II | 50 | 100 |
Differential 1.5 V HSTL Class I | 50 | 100 |
Differential 1.5 V HSTL Class II | 50 | 100 |
Differential 1.2 V HSTL Class I | 50 | 100 |
Differential 1.2 V HSTL Class II | 50 | 100 |
The RT OCT calibration circuit compares the total impedance of the I/O buffer to the external resistor connected to the RZQ pin. The circuit dynamically enables or disables the transistors until the total impedance of the I/O buffer matches the external resistor.
Calibration occurs at the end of the device configuration. When the calibration circuit finds the correct impedance, the circuit powers down and stops changing the characteristics of the drivers.
5.5.4.4. Dynamic OCT
Dynamic OCT is useful for terminating a high-performance bidirectional path by optimizing the signal integrity depending on the direction of the data. Dynamic OCT also helps save power because device termination is internal. Internal termination switches on only during input operation and thus draws less static power.
Dynamic OCT | Bidirectional I/O | State |
---|---|---|
Dynamic RT OCT | Acts as a receiver | Enabled |
Acts as a driver | Disabled | |
Dynamic RS OCT | Acts as a receiver | Disabled |
Acts as a driver | Enabled |
5.5.4.5. Differential Input RD OCT
All I/O pins and dedicated clock input pins in Intel® Cyclone® 10 GX devices support on-chip differential termination, RD OCT. The Intel® Cyclone® 10 GX devices provide a 100 Ω, on-chip differential termination option on each differential receiver channel for LVDS standards.
You can enable on-chip termination in the Intel® Quartus® Prime software Assignment Editor.
Field | Assignment |
---|---|
To | rx_in |
Assignment name | Input Termination |
Value | Differential |
5.5.4.6. OCT Calibration Block in Intel Cyclone 10 GX Devices
You can use RS and RT OCT in the same I/O bank for different I/O standards if the I/O standards use the same VCCIO supply voltage. You cannot configure the RS OCT and the programmable current strength for the same I/O buffer.
The OCT calibration process uses the RZQ pin that is available in every calibration block in a given I/O bank for series- and parallel-calibrated termination:
- Each OCT calibration block has an external 240 Ω reference resistor associated with it through the RZQ pin.
- Connect the RZQ pin to GND through an external 100 Ω or 240 Ω resistor (depending on the RS or RT OCT value).
- The RZQ pin shares the same VCCIO supply voltage with the I/O bank where the pin is located.
- The RZQ pin is a dual-purpose I/O pin and functions as a general purpose I/O pin if you do not use the calibration circuit.
Intel® Cyclone® 10 GX devices support calibrated RS and calibrated RT OCT on all LVDS I/O pins except for dedicated configuration pins.
5.5.5. External I/O Termination for Intel Cyclone 10 GX Devices
I/O Standard | External Termination Scheme |
---|---|
2.5 V LVCMOS | No external termination required |
1.8 V LVCMOS | |
1.5 V LVCMOS | |
1.2 V LVCMOS | |
SSTL-18 Class I | Single-Ended SSTL I/O Standard Termination |
SSTL-18 Class II | |
SSTL-15 Class I | |
SSTL-15 Class II | |
SSTL-15 9 | No external termination required |
SSTL-135 9 | |
SSTL-125 9 | |
SSTL-129 | |
POD12 | Single-Ended POD I/O Standard Termination |
Differential SSTL-18 Class I | Differential SSTL I/O Standard Termination |
Differential SSTL-18 Class II | |
Differential SSTL-15 Class I | |
Differential SSTL-15 Class II | |
Differential SSTL-15 9 | No external termination required |
Differential SSTL-135 9 | |
Differential SSTL-125 9 | |
Differential SSTL-129 | |
Differential POD12 | Differential POD I/O Standard Termination |
1.8 V HSTL Class I | Single-Ended HSTL I/O Standard Termination |
1.8 V HSTL Class II | |
1.5 V HSTL Class I | |
1.5 V HSTL Class II | |
1.2 V HSTL Class I | |
1.2 V HSTL Class II | |
HSUL-12 | No external termination required |
Differential 1.8 V HSTL Class I | Differential HSTL I/O Standard Termination |
Differential 1.8 V HSTL Class II | |
Differential 1.5 V HSTL Class I | |
Differential 1.5 V HSTL Class II | |
Differential 1.2 V HSTL Class I | |
Differential 1.2 V HSTL Class II | |
Differential HSUL-12 | No external termination required |
LVDS | LVDS I/O Standard Termination |
RSDS | RSDS/mini-LVDS I/O Standard Termination |
Mini-LVDS | |
LVPECL | Differential LVPECL I/O Standard Termination |
5.5.5.1. Single-Ended I/O Termination
Voltage-referenced I/O standards require an input VREF and a termination voltage (VTT). The reference voltage of the receiving device tracks the termination voltage of the transmitting device.
The supported I/O standards such as SSTL-12, SSTL-125, SSTL-135, and SSTL-15 typically do not require external board termination.
Intel recommends that you use OCT with these I/O standards to save board space and cost. OCT reduces the number of external termination resistors used.
5.5.5.2. Differential I/O Termination for Intel Cyclone 10 GX Devices
The I/O pins are organized in pairs to support differential I/O standards. Each I/O pin pair can support differential input and output buffers.
The supported I/O standards such as Differential SSTL-12, Differential SSTL-15, Differential SSTL-125, and Differential SSTL-135 typically do not require external board termination.
Intel recommends that you use OCT with these I/O standards to save board space and cost. OCT reduces the number of external termination resistors used.
5.5.5.2.1. Differential HSTL, SSTL, HSUL, and POD Termination
Differential HSTL, SSTL, HSUL, and POD inputs use LVDS differential input buffers. However, RD support is only available if the I/O standard is LVDS.
Differential HSTL, SSTL, HSUL, and POD outputs are not true differential outputs. These I/O standards use two single-ended outputs with the second output programmed as inverted.
5.5.5.2.2. LVDS, RSDS, and Mini-LVDS Termination
All I/O banks have dedicated circuitry to support the true LVDS, RSDS, and mini-LVDS I/O standards by using true LVDS output buffers without resistor networks.
5.5.5.2.3. LVPECL Termination
The Intel® Cyclone® 10 GX devices support the LVPECL I/O standard on input clock pins only:
- LVPECL input operation is supported using LVDS input buffers.
- LVPECL output operation is not supported.
Support for DC-coupled LVPECL is available if the LVPECL output common mode voltage is within the Intel® Cyclone® 10 GX LVPECL input buffer specification.
For information about the VICM specification, refer to the device datasheet.
5.6. High Speed Source-Synchronous SERDES and DPA in Intel Cyclone 10 GX Devices
5.6.1. Intel Cyclone 10 GX LVDS SERDES Usage Modes
Usage Mode | Quick Guideline |
---|---|
Transmitter | In this mode, the SERDES block acts as a serializer. |
DPA Receiver |
|
Non-DPA Receiver |
|
Soft-CDR Receiver |
|
Bypass the SERDES |
You can bypass the serializer to use SERDES factor of 2 by using the GPIO IP core:
|
5.6.2. SERDES Circuitry
The LVDS SERDES Intel® FPGA IP transmitter and receiver require various clock and load enable signals from an I/O PLL. The Intel® Quartus® Prime software configures the PLL settings automatically. The software is also responsible for generating the various clock and load enable signals based on the input reference clock and selected data rate.
5.6.3. SERDES I/O Standards Support in Intel Cyclone 10 GX Devices
I/O Standard | Intel® Quartus® Prime Software Assignment Value |
---|---|
True LVDS | LVDS |
Differential 1.2 V HSTL Class I | Differential 1.2-V HSTL Class I |
Differential 1.2 V HSTL Class II | Differential 1.2-V HSTL Class II |
Differential HSUL-12 | Differential 1.2-V HSUL |
Differential SSTL-12 | Differential 1.2-V SSTL |
Differential SSTL-125 | Differential 1.25-V SSTL |
Differential SSTL-135 | Differential 1.35-V SSTL |
Differential 1.5 V HSTL Class I | Differential 1.5-V HSTL Class I |
Differential 1.5 V HSTL Class II | Differential 1.5-V HSTL Class II |
Differential SSTL-15 | Differential 1.5-V SSTL |
Differential SSTL-15 Class I | Differential 1.5-V SSTL Class I |
Differential SSTL-15 Class II | Differential 1.5-V SSTL Class II |
Differential 1.8 V HSTL Class I | Differential 1.8-V HSTL Class I |
Differential 1.8 V HSTL Class II | Differential 1.8-V HSTL Class II |
Differential SSTL-18 Class I | Differential 1.8-V SSTL Class I |
Differential SSTL-18 Class II | Differential 1.8-V SSTL Class II |
Differential POD12 | Differential 1.2-V POD |
I/O Standard | Intel® Quartus® Prime Software Assignment Value |
---|---|
True LVDS | LVDS |
Differential 1.2 V HSTL Class I | Differential 1.2-V HSTL Class I |
Differential 1.2 V HSTL Class II | Differential 1.2-V HSTL Class II |
Differential HSUL-12 | Differential 1.2-V HSUL |
Differential SSTL-12 | Differential 1.2-V SSTL |
Differential SSTL-125 | Differential 1.25-V SSTL |
Differential SSTL-135 | Differential 1.35-V SSTL |
Differential 1.5 V HSTL Class I | Differential 1.5-V HSTL Class I |
Differential 1.5 V HSTL Class II | Differential 1.5-V HSTL Class II |
Differential SSTL-15 | Differential 1.5-V SSTL |
Differential SSTL-15 Class I | Differential 1.5-V SSTL Class I |
Differential SSTL-15 Class II | Differential 1.5-V SSTL Class II |
Differential 1.8 V HSTL Class I | Differential 1.8-V HSTL Class I |
Differential 1.8 V HSTL Class II | Differential 1.8-V HSTL Class II |
Differential SSTL-18 Class I | Differential 1.8-V SSTL Class I |
Differential SSTL-18 Class II | Differential 1.8-V SSTL Class II |
Differential POD12 | Differential 1.2-V POD |
mini-LVDS | mini-LVDS |
RSDS | RSDS |
5.6.4. Differential Transmitter in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX transmitter contains dedicated circuitry to support high-speed differential signaling. The differential transmitter buffers support the following features:
- LVDS signaling that can drive out LVDS, mini-LVDS, and RSDS signals
- Programmable VOD and programmable pre-emphasis
Dedicated Circuitry / Feature | Description |
---|---|
Differential I/O buffer | Supports LVDS, mini-LVDS, and RSDS |
SERDES | Up to 10-bit wide serializer |
Phase-locked loops (PLLs) | Clocks the load and shift registers |
Programmable VOD | Static |
Programmable pre-emphasis | Boosts output current |
5.6.4.1. Transmitter Blocks in Intel Cyclone 10 GX Devices
The dedicated circuitry consists of a true differential buffer, a serializer, and I/O PLLs that you can share between the transmitter and receiver. The serializer takes up to 10-bit wide parallel data from the FPGA fabric and clocks the data into the load registers. Then, the serializer serializes the data using shift registers that are clocked by the I/O PLL. After serializing the data, the serializer sends the data to the differential buffer. The MSB of the parallel data is transmitted first.
5.6.4.2. Serializer Bypass for DDR and SDR Operations
The I/O element (IOE) contains two data output registers that can each operate in either DDR or SDR mode.
You can bypass the serializer to support DDR (x2) and SDR (x1) operations to achieve a serialization factor of 2 and 1, respectively. The deserializer bypass is supported through the GPIO Intel® FPGA IP.
- In SDR mode:
- The IOE data width is 1 bit.
- Registered output path requires a clock.
- Data is passed directly through the IOE.
- In DDR mode:
- The IOE data width is 2 bits.
- The GPIO IP core requires a clock.
- tx_inclock clocks the IOE register.
5.6.5. Differential Receiver in Intel Cyclone 10 GX Devices
The receiver has a differential buffer and I/O PLLs that you can share among the transmitter and receiver, a DPA block, a synchronizer, a data realignment block, and a deserializer. The differential buffer can receive LVDS, mini-LVDS, and RSDS signal levels. You can statically set the I/O standard of the receiver pins to LVDS, mini-LVDS, or RSDS in the Intel® Quartus® Prime software Assignment Editor.
Dedicated Circuitry / Feature | Description |
---|---|
Differential I/O buffer | Supports LVDS, mini-LVDS, and RSDS |
SERDES | Up to 10-bit wide deserializer |
Phase-locked loops (PLLs) | Generates different phases of a clock for data synchronizer |
Data realignment (Bit slip) | Inserts bit latencies into serial data |
DPA | Chooses a phase closest to the phase of the serial data |
Synchronizer (FIFO buffer) | Compensate for phase differences between the data and the receiver’s input reference clock |
Skew adjustment | Manual |
On-chip termination (OCT) | 100 Ω in LVDS I/O standards |
5.6.5.1. Receiver Blocks in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX differential receiver has the following hardware blocks:
- DPA block
- Synchronizer
- Data realignment block (bit slip)
- Deserializer
5.6.5.1.1. DPA Block
The DPA block takes in high-speed serial data from the differential input buffer and selects one of the eight phases that the I/O PLLs generate to sample the data. The DPA chooses a phase closest to the phase of the serial data. The maximum phase offset between the received data and the selected phase is 1/8 unit interval (UI)10, which is the maximum quantization error of the DPA. The eight phases of the clock are equally divided, offering a 45° resolution.
The DPA block continuously monitors the phase of the incoming serial data and selects a new clock phase if it is required. You can prevent the DPA from selecting a new clock phase by asserting the optional rx_dpa_hold port, which is available for each channel.
DPA circuitry does not require a fixed training pattern to lock to the optimum phase out of the eight phases. After reset or power up, the DPA circuitry requires transitions on the received data to lock to the optimum phase. An optional output port, rx_dpa_locked, is available to indicate an initial DPA lock condition to the optimum phase after power up or reset. Use data checkers such as a cyclic redundancy check (CRC) or diagonal interleaved parity (DIP-4) to validate the data.
An independent reset port, rx_dpa_reset, is available to reset the DPA circuitry. You must retrain the DPA circuitry after reset.
5.6.5.1.2. Synchronizer
The synchronizer is a one-bit wide and six-bit deep FIFO buffer that compensates for the phase difference between dpa_fast_clock—the optimal clock that the DPA block selects—and the fast_clock that the I/O PLLs produce. The synchronizer can only compensate for phase differences, not frequency differences, between the data and the receiver’s input reference clock.
An optional port, rx_fifo_reset, is available to the internal logic to reset the synchronizer. The synchronizer is automatically reset when the DPA first locks to the incoming data. Intel recommends that you use rx_fifo_reset to reset the synchronizer when the data checker indicates that the received data is corrupted.
5.6.5.1.3. Data Realignment Block (Bit Slip)
Skew in transmitted data and skew added by the link cause channel-to-channel skew on the received serial data streams. If you enable the DPA, the received data is captured with different clock phases on each channel. This difference may cause misalignment of the received data from channel to channel. To compensate for this channel-to-channel skew and establish the correct received word boundary at each channel, each receiver channel has a dedicated data realignment circuit that realigns the data by inserting bit latencies into the serial stream.
An optional rx_bitslip_ctrl port controls the bit insertion of each receiver independently controlled from the internal logic. The data slips one bit on the rising edge of rx_bitslip_ctrl. The requirements for the rx_bitslip_ctrl signal include the following items:
- The minimum pulse width is one period of the parallel clock in the logic array.
- The minimum low time between pulses is one period of the parallel clock.
- The signal is an edge-triggered signal.
- The valid data is available four parallel clock cycles after the rising edge of rx_bitslip_ctrl.
The data realignment circuit has a bit slip rollover value set to the deserialization factor. An optional status port, rx_bitslip_max, is available to the FPGA fabric from each channel to indicate the reaching of the preset rollover point.
5.6.5.1.4. Deserializer
The IOE contains two data input registers that can operate in DDR or SDR mode. You can bypass the deserializer to support DDR (x2) and SDR (x1) operations. The deserializer bypass is supported through the GPIO IP core.
- If you bypass the deserializer in SDR mode:
- The IOE data width is 1 bit.
- Registered input path requires a clock.
- Data is passed directly through the IOE.
- If you bypass the deserializer in DDR mode:
- The IOE data width is 2 bits.
- The GPIO IP core requires a clock.
- rx_inclock clocks the IOE register. The clock must be synchronous to rx_in.
- You must control the data-to-clock skew.
You cannot use the DPA and data realignment circuit when you bypass the deserializer.
5.6.5.2. Receiver Modes in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX devices support the following receiver modes:
- Non-DPA mode
- DPA mode
- Soft-CDR mode
5.6.5.2.1. Non-DPA Mode
The non-DPA mode disables the DPA and synchronizer blocks. Input serial data is registered at the rising edge of the serial fast_clock clock that is produced by the I/O PLLs.
The fast_clock clock that is generated by the I/O PLLs clocks the data realignment and deserializer blocks.
5.6.5.2.2. DPA Mode
The DPA block chooses the best possible clock (dpa_fast_clock) from the eight fast clocks that the I/O PLL sent. This serial dpa_fast_clock clock is used for writing the serial data into the synchronizer. A serial fast_clock clock is used for reading the serial data from the synchronizer. The same fast_clock clock is used in data realignment and deserializer blocks.
5.6.5.2.3. Soft-CDR Mode
The Intel® Cyclone® 10 GX LVDS channel offers the soft-CDR mode to support the GbE and SGMII protocols. A receiver PLL uses the local clock source for reference.
In soft-CDR mode, the synchronizer block is inactive. The DPA circuitry selects an optimal DPA clock phase to sample the data. This clock is used for bit slip operation and deserialization. The DPA block also forwards the selected DPA clock, divided by the deserialization factor called rx_divfwdclk, to the FPGA fabric, along with the deserialized data. This clock signal is put on the periphery clock (PCLK) network.
If you use the soft-CDR mode, do not assert the rx_dpa_reset port after the DPA has trained. The DPA continuously chooses new phase taps from the PLL to track parts per million (PPM) differences between the reference clock and incoming data.
You can use every LVDS channel in soft-CDR mode and drive the FPGA fabric using the PCLK network in the Intel® Cyclone® 10 GX device family. In soft-CDR mode, the rx_dpa_locked signal is not valid because the DPA continuously changes its phase to track PPM differences between the upstream transmitter and the local receiver input reference clocks. However, you can use the rx_dpa_locked signal to determine the initial DPA locking conditions that indicate the DPA has selected the optimal phase tap to capture the data. The rx_dpa_locked signal is expected to deassert when operating in soft-CDR mode. The parallel clock, rx_coreclock, generated by the I/O PLLs, is also forwarded to the FPGA fabric.
5.6.6. PLLs and Clocking for Intel Cyclone 10 GX Devices
To generate the parallel clocks (rx_coreclock and tx_coreclock) and high-speed clocks (fast_clock), the Intel® Cyclone® 10 GX devices provide I/O PLLs in the high-speed differential I/O receiver and transmitter channels.
5.6.6.1. Clocking Differential Transmitters
The I/O PLL generates the load enable (load_enable) signal and the fast_clock signal (the clock running at serial data rate) that clocks the load and shift registers. You can statically set the serialization factor to x3, x4, x5, x6, x7, x8, x9, or x10 using the Intel® Quartus® Prime software. The load enable signal is derived from the serialization factor setting.
You can configure any Intel® Cyclone® 10 GX transmitter data channel to generate a source-synchronous transmitter clock output. This flexibility allows the placement of the output clock near the data outputs to simplify board layout and reduce clock-to-data skew.
Different applications often require specific clock-to-data alignments or specific data-rate-to-clock-rate factors. You can specify these settings statically in the Intel® Quartus® Prime parameter editor:
- The transmitter can output a clock signal at the same rate as the data with a maximum output clock frequency that each speed grade of the device supports.
- You can divide the output clock by a factor of 1, 2, 4, 6, 8, or 10, depending on the serialization factor.
- You can set the phase of the clock in relation to the data at 0° or 180° (edge- or center-aligned). The I/O PLLs provide additional support for other phase shifts in 45° increments.
5.6.6.2. Clocking Differential Receivers
The I/O PLL receives the external clock input and generates different phases of the same clock. The DPA block automatically chooses one of the clocks from the I/O PLL and aligns the incoming data on each channel.
The synchronizer circuit is a 1-bit wide by 6-bit deep FIFO buffer that compensates for any phase difference between the DPA clock and the data realignment block. If necessary, the user-controlled data realignment circuitry inserts a single bit of latency in the serial bit stream to align to the word boundary. The deserializer includes shift registers and parallel load registers, and sends a maximum of 10 bits to the internal logic.
The physical medium connecting the transmitter and receiver LVDS channels may introduce skew between the serial data and the source-synchronous clock. The instantaneous skew between each LVDS channel and the clock also varies with the jitter on the data and clock signals as seen by the receiver. The three different modes—non-DPA, DPA, and soft-CDR—provide different options to overcome skew between the source synchronous clock (non-DPA, DPA) /reference clock (soft-CDR) and the serial data.
Non-DPA mode allows you to statically select the optimal phase between the source synchronous clock and the received serial data to compensate skew. In DPA mode, the DPA circuitry automatically chooses the best phase to compensate for the skew between the source synchronous clock and the received serial data. Soft-CDR mode provides opportunities for synchronous and asynchronous applications for chip-to-chip and short reach board-to-board applications for SGMII protocols.
5.6.6.2.1. Guideline: Clocking DPA Interfaces Spanning Multiple I/O Banks
5.6.6.2.2. Guideline: I/O PLL Reference Clock Source for DPA or Non-DPA Receiver
5.6.6.3. Guideline: LVDS Reference Clock Source
Reference Clock Input Source | Description | Reference Clock Promotion |
---|---|---|
Dedicated reference clock input within the same I/O bank. | This reference clock input source is the best choice to avoid performance and timing closure issues. | Do not manually promote the reference clock. |
Reference clock input from other I/O banks. | This source must come from another I/O bank and not from other sources such as the hard processor system (HPS), IOPLL IP, or other IPs. | You must manually promote the reference clock. |
To manually promote the reference clock, include this statement in your Intel® Quartus® Prime settings file (.qsf):
set_instance_assignment -name GLOBAL_SIGNAL GLOBAL_CLOCK -to <name of top-level reference clock input port>
5.6.6.4. Guideline: Use PLLs in Integer PLL Mode for LVDS
5.6.6.5. Guideline: Use High-Speed Clock from PLL to Clock LVDS SERDES Only
The high-speed clock generated from the PLL is intended to clock the LVDS SERDES circuitry only. Do not use the high-speed clock to drive other logic because the allowed frequency to drive the core logic is restricted by the PLL FOUT specification.
For more information about the FOUT specification, refer to the device datasheet.
5.6.6.6. Guideline: Pin Placement for Differential Channels
Each I/O bank contains its own PLL. The I/O bank PLL can drive all receiver and transmitter channels in the same bank, and transmitter channels in adjacent I/O banks. However, the I/O bank PLL cannot drive receiver channels in another I/O bank or transmitter channels in non-adjacent I/O banks.
PLLs Driving Differential Transmitter Channels
For differential transmitters, the PLL can drive the differential transmitter channels in its own I/O bank and adjacent I/O banks. However, the PLL cannot drive the channels in a non-adjacent I/O bank.
The I/O bank PLL can drive the differential transmitter channels in an adjacent I/O bank only in a wide LVDS SERDES Intel® FPGA IP transmitter interface that spans multiple I/O banks, where:
- With tx_outclock enabled—the transmitter has more than 22 channels
- With tx_outclock disabled—the transmitter has more than 23 channels
For an LVDS SERDES Intel® FPGA IP transmitter interface contained within a single I/O bank, drive the transmitter using the PLL in the same I/O bank.
PLLs Driving DPA-Enabled Differential Receiver Channels
For differential receivers, the PLL can drive only the channels within the same I/O bank.
Each differential receiver in an I/O bank has a dedicated DPA circuit to align the phase of the clock to the data phase of its associated channel. If you enable a DPA channel in a bank, you can assign the unused I/O pins in the bank to single-ended or differential I/O standards that has the same VCCIO voltage level used by the bank.
DPA usage adds some constraints to the placement of high-speed differential receiver channels. The Intel® Quartus® Prime compiler automatically checks the design and issues error messages if there are placement guidelines violations. Adhere to the guidelines to ensure proper high-speed I/O operation.
PLLs Driving DPA-Enabled Differential Receiver and Transmitter Channels in LVDS Interface Spanning Multiple I/O Banks
If you use both differential transmitter and DPA-enabled receiver channels in a bank, the PLL can drive the transmitters spanning multiple adjacent I/O banks, but only the receivers in its own I/O bank.
5.6.6.7. LVDS Interface with External PLL Mode
The LVDS SERDES IP core parameter editor provides an option for implementing the LVDS interface with the Use External PLL option. With this option enabled you can control the PLL settings, such as dynamically reconfiguring the PLL to support different data rates, dynamic phase shift, and other settings.
If you enable the Use External PLL option with the LVDS SERDES IP core transmitter and receiver, the following signals are required from the IOPLL Intel® FPGA IP:
- Serial clock (fast clock) input to the SERDES of the LVDS SERDES IP core transmitter and receiver
- Load enable to the SERDES of the LVDS SERDES IP core transmitter and receiver
- Parallel clock (core clock) used to clock the transmitter FPGA fabric logic and parallel clock used for the receiver
- Asynchronous PLL reset port of the LVDS SERDES IP core receiver
- PLL VCO signal for the DPA and soft-CDR modes of the LVDS SERDES IP core receiver
The Clock Resource Summary tab in the LVDS SERDES IP core parameter editor provides the details for the signals in the preceding list.
You must instantiate an IOPLL IP core to generate the various clocks and load enable signals. You must configure these settings in IOPLL IP core parameter editor:
- LVDS External PLL options in the Settings tab
- Output Clocks options in the PLL tab
- Compensation Mode option in the PLL tab
LVDS Functional Mode | IOPLL IP Core Setting |
---|---|
TX, RX DPA, RX Soft-CDR | Direct mode |
RX non-DPA | LVDS compensation mode |
5.6.6.7.1. IOPLL IP Core Signal Interface with LVDS SERDES IP Core
From the IOPLL IP core | To the LVDS SERDES IP core transmitter | To the LVDS SERDES IP core receiver |
---|---|---|
lvds_clk[0] (serial clock output signal)
The serial clock output can only drive ext_fclk on the LVDS SERDES IP core transmitter and receiver. This clock cannot drive the core logic. |
ext_fclk (serial clock input to the transmitter) |
ext_fclk (serial clock input to the receiver) |
loaden[0] (load enable output)
|
ext_loaden (load enable to the transmitter) |
ext_loaden (load enable for the deserializer) This signal is not required for LVDS receiver in soft-CDR mode. |
outclk2 (parallel clock output) |
ext_coreclock (parallel core clock) |
ext_coreclock (parallel core clock) |
locked |
— |
pll_areset (asynchronous PLL reset port) |
phout[7:0]
|
— |
ext_vcoph This signal is required only for LVDS receiver in DPA or soft-CDR mode. |
5.6.6.7.2. IOPLL Parameter Values for External PLL Mode
The following examples show the clocking requirements to generate output clocks for LVDS SERDES IP core using the IOPLL IP core. The examples set the phase shift with the assumption that the clock and data are edge aligned at the pins of the device.
Parameter |
outclk0 (Connects as lvds_clk[0] to the ext_fclk port of LVDS SERDES IP core transmitter or receiver) |
outclk1 (Connects as loaden[0] to the ext_loaden port of LVDS SERDES IP core transmitter or receiver) |
outclk2 (Used as the core clock for the parallel data registers for both transmitter and receiver, and connects to the ext_coreclock port of LVDS SERDES IP core) |
---|---|---|---|
Frequency |
data rate |
data rate/serialization factor |
data rate/serialization factor |
Phase shift |
180° |
[(deserialization factor – 1)/deserialization factor] x 360° |
180/serialization factor (outclk0 phase shift divided by the serialization factor) |
Duty cycle |
50% |
100/serialization factor |
50% |
The calculations for phase shift, using the RSKM equation, assume that the input clock and serial data are edge aligned. Introducing a phase shift of 180° to sampling clock (outclk0) ensures that the input data is center-aligned with respect to the outclk0, as shown in the following figure.
Parameter |
outclk0 (Connects as lvds_clk[0] to the ext_fclk port of LVDS SERDES IP core transmitter or receiver) |
outclk1 (Connects as loaden[0] to the ext_loaden port of LVDS SERDES IP core transmitter or receiver) Not required for the soft-CDR receiver. |
outclk2 (Used as the core clock for the parallel data registers for both transmitter and receiver, and connects to the ext_coreclock port of LVDS SERDES IP core) |
VCO Frequency (Connects as phout[7:0] to the ext_vcoph[7:0] port of LVDS SERDES IP core) |
---|---|---|---|---|
Frequency |
data rate |
data rate/serialization factor |
data rate/serialization factor |
data rate |
Phase shift |
180° |
[(deserialization factor - 1)/deserialization factor] x 360° |
180/serialization factor (outclk0 phase shift divided by the serialization factor) |
— |
Duty cycle |
50% |
100/serialization factor |
50% |
— |
Parameter |
outclk0 (Connects as lvds_clk[0] to the ext_fclk port of LVDS SERDES IP core receiver) |
outclk1 (Connects as loaden[0] to the ext_loaden port of LVDS SERDES IP core receiver) Not required for the soft-CDR receiver. |
outclk4 (Used as the core clock for the parallel data registers for both transmitter and receiver, and connects to the ext_coreclock port of LVDS SERDES IP core) |
VCO Frequency (Connects as phout[7:0] to the ext_vcoph[7:0] port of LVDS SERDES IP core) |
---|---|---|---|---|
outclk2 (Connects as lvds_clk[1] to the ext_fclk port of LVDS SERDES IP core transmitter) |
outclk3 (Connects as loaden[1] to the ext_loaden port of LVDS SERDES IP core transmitter) |
|||
Frequency |
data rate |
data rate/serialization factor |
data rate/serialization factor |
data rate |
Phase shift |
180° |
[(deserialization factor - 1)/deserialization factor] x 360° |
180/serialization factor (outclk0 phase shift divided by the serialization factor) |
— |
Duty cycle |
50% |
100/serialization factor |
50% |
— |
5.6.6.7.3. Connection between IOPLL and LVDS SERDES in External PLL Mode
The ext_coreclock port is automatically enabled in the LVDS IP core in external PLL mode. The Intel® Quartus® Prime compiler outputs error messages if this port is not connected as shown in the preceding figures.
5.6.7. Timing and Optimization for Intel Cyclone 10 GX Devices
5.6.7.1. Source-Synchronous Timing Budget
The LVDS I/O standard enables high-speed transmission of data, resulting in better overall system performance. To take advantage of fast system performance, you must analyze the timing for these high-speed signals. Timing analysis for the differential block is different from traditional synchronous timing analysis techniques.
The basis of the source synchronous timing analysis is the skew between the data and the clock signals instead of the clock-to-output setup times. High-speed differential data transmission requires the use of timing parameters provided by IC vendors and is strongly influenced by board skew, cable skew, and clock jitter.
This section defines the source-synchronous differential data orientation timing parameters, the timing budget definitions for the Intel® Cyclone® 10 GX device family, and how to use these timing parameters to determine the maximum performance of a design.
5.6.7.1.1. Differential Data Orientation
There is a set relationship between an external clock and the incoming data. For operations at 1 Gbps and a serialization factor of 10, the external clock is multiplied by 10. You can set phase-alignment in the PLL to coincide with the sampling window of each data bit. The data is sampled on the falling edge of the multiplied clock.
5.6.7.1.2. Differential I/O Bit Position
This figure shows the data bit orientation for a channel operation and is based on the following conditions:
- The serialization factor is equal to the clock multiplication factor.
- The phase alignment uses edge alignment.
- The operation is implemented in hard SERDES.
For other serialization factors, use the Intel® Quartus® Prime software tools to find the bit position within the word.
Differential Bit Naming Conventions
Receiver Channel Data Number | Internal 8-Bit Parallel Data | |
---|---|---|
MSB Position | LSB Position | |
1 | 7 | 0 |
2 | 15 | 8 |
3 | 23 | 16 |
4 | 31 | 24 |
5 | 39 | 32 |
6 | 47 | 40 |
7 | 55 | 48 |
8 | 63 | 56 |
9 | 71 | 64 |
10 | 79 | 72 |
11 | 87 | 80 |
12 | 95 | 88 |
13 | 103 | 96 |
14 | 111 | 104 |
15 | 119 | 112 |
16 | 127 | 120 |
17 | 135 | 128 |
18 | 143 | 136 |
5.6.7.1.3. Transmitter Channel-to-Channel Skew
The receiver skew margin calculation uses the transmitter channel-to-channel skew (TCCS)—an important parameter based on the Intel® Cyclone® 10 GX transmitter in a source-synchronous differential interface:
- TCCS is the difference between the fastest and slowest data output transitions, including the TCO variation and clock skew.
- For LVDS transmitters, the Timing Analyzer provides the TCCS value in the TCCS report (report_TCCS) in the Intel® Quartus® Prime compilation report, which shows TCCS values for serial output ports.
- You can also get the TCCS value from the device datasheet.
For Intel® Cyclone® 10 GX devices, perform PCB trace compensation to adjust the trace length of each LVDS channel to improve channel-to-channel skew when interfacing with non-DPA receivers at data rate above 840 Mbps. The Intel® Quartus® Prime software Fitter Report panel reports the amount of delay you must add to each trace for the Intel® Cyclone® 10 GX device. You can use the recommended trace delay numbers shown under the LVDS Transmitter/Receiver Package Skew Compensation panel and manually compensate the skew on the PCB board trace to reduce channel-to-channel skew, thus meeting the timing budget between LVDS channels.
5.6.7.1.4. Receiver Skew Margin for Non-DPA Mode
- In DPA mode, use DPA jitter tolerance instead of the receiver skew margin (RSKM).
- In non-DPA mode, use RSKM, TCCS, and sampling window (SW) specifications for high-speed source-synchronous differential signals in the receiver data path.
RSKM Equation
Conventions used for the equation:
- RSKM—the timing margin between the clock input of the receiver and the data input sampling window, and the jitter induced from core noise and I/O switching noise.
- Time unit interval (TUI)—time period of the serial data.
- SW—the period of time that the input data must be stable to ensure that the LVDS receiver samples the data successfully. The SW is a device property and varies according to device speed grade.
- TCCS—the timing difference between the fastest and the slowest output edges across channels driven by the same PLL. The TCCS measurement includes the tCO variation, clock, and clock skew.
You must calculate the RSKM value, based on the data rate and device, to determine if the LVDS receiver can sample the data:
- A positive RSKM value, after deducting transmitter jitter, indicates that the LVDS receiver can sample the data properly.
- A negative RSKM value, after deducting transmitter jitter, indicates that the LVDS receiver cannot sample the data properly.
5.7. Using the I/Os and High Speed I/Os in Intel Cyclone 10 GX Devices
5.7.1. I/O and High-Speed I/O General Guidelines for Intel Cyclone 10 GX Devices
There are several considerations that require your attention to ensure the success of your designs. Unless noted otherwise, these design guidelines apply to all variants of this device family.
5.7.1.1. Guideline: VREF Sources and VREF Pins
For Intel® Cyclone® 10 GX devices, consider the following VREF pins guidelines:
-
Intel®
Cyclone® 10 GX
devices support internal and external VREF sources.
- There is an external VREF pin for every I/O bank, providing one external VREF source for all I/Os in the same bank.
- Each I/O lane in the bank also has its own internal VREF generator. You can configure each I/O lane independently to use its internal VREF or the I/O bank's external VREF source. All I/O pins in the same I/O lane use the same VREF source.
- You can place any combination of input, output, or bidirectional pins near VREF pins. There is no VREF pin placement restriction.
- The VREF pins are dedicated for voltage-referenced single-ended I/O standards. You cannot use the VREF pins as user I/Os.
For more information about pin capacitance of the VREF pins, refer to the device datasheet.
5.7.1.2. Guideline: Observe Device Absolute Maximum Rating for 3.0 V Interfacing
To ensure device reliability and proper operation when you use the device for 3.0 V I/O interfacing, do not violate the absolute maximum ratings of the device. For more information about absolute maximum rating and maximum allowed overshoot during transitions, refer to the device datasheet.
Single-Ended Transmitter Application
If you use the Intel® Cyclone® 10 GX device as a transmitter, use slow slew rate and series termination to limit the overshoot and undershoot at the I/O pins. Transmission line effects that cause large voltage deviations at the receiver are associated with an impedance mismatch between the driver and the transmission lines. By matching the impedance of the driver to the characteristic impedance of the transmission line, you can significantly reduce overshoot voltage. You can use a series termination resistor placed physically close to the driver to match the total driver impedance to the transmission line impedance.
Single-Ended Receiver Application
If you use the Intel® Cyclone® 10 GX device as a receiver, use an external clamping diode to limit the overshoot and undershoot voltage at the I/O pins.
The 3.0 V I/O standard is supported using the bank supply voltage (VCCIO) at 3.0 V and a VCCPT voltage of 1.8 V. In this method, the clamping diode can sufficiently clamp overshoot voltage to within the DC and AC input voltage specifications. The clamped voltage is expressed as the sum of the VCCIO and the diode forward voltage.
5.7.1.3. Guideline: I/O Standards Supported for I/O PLL Reference Clock Input Pin
The I/O PLL reference clock (REFCLK) input pin supports the following I/O standards only:
- Single-ended I/O standards
- LVDS
Intel® Cyclone® 10 GX devices support Differential HSTL and Differential SSTL input operation using LVDS input buffers. To support the electrical specifications of Differential HSTL or Differential SSTL signaling, assign the LVDS I/O standard to the REFCLK pin in the Intel® Quartus® Prime software.
5.7.2. Mixing Voltage-Referenced and Non-Voltage-Referenced I/O Standards
Each I/O bank can simultaneously support multiple I/O standards. The following sections provide guidelines for mixing non-voltage-referenced and voltage-referenced I/O standards in the devices.
5.7.2.1. Non-Voltage-Referenced I/O Standards
An I/O bank can simultaneously support any number of input signals with different I/O standard assignments if the I/O standards support the VCCIO level of the I/O bank.
For output signals, a single I/O bank supports non-voltage-referenced output signals that drive at the same voltage as VCCIO. Because an I/O bank can only have one VCCIO value, it can only drive out the value for non-voltage-referenced signals.
For example, an I/O bank with a 2.5 V VCCIO setting can support 2.5 V standard inputs and outputs, and 3.0 V LVCMOS inputs only.
5.7.2.2. Voltage-Referenced I/O Standards
To accommodate voltage-referenced I/O standards:
- Each Intel® Cyclone® 10 GX FPGA I/O bank contains a dedicated VREF pin.
- Each bank can have only a single VCCIO voltage level and a single voltage reference (VREF) level.
The voltage-referenced input buffer is powered by VCCPT. Therefore, an I/O bank featuring single-ended or differential standards can support different voltage-referenced standards under the following conditions:
- The VREF are the same levels.
- On-chip parallel termination (RT OCT) is disabled.
If you enable RT OCT, the voltage for the input standard and the VCCIO of the bank must match.
This feature allows you to place voltage-referenced input signals in an I/O bank with a VCCIO of 2.5 V or below. For example, you can place HSTL-15 input pins in an I/O bank with 2.5 V VCCIO. However, the voltage-referenced input with RT OCT enabled requires the VCCIO of the I/O bank to match the voltage of the input standard. RT OCT cannot be supported for the HSTL-15 I/O standard when VCCIO is 2.5 V.
5.7.2.3. Mixing Voltage-Referenced and Non-Voltage Referenced I/O Standards
An I/O bank can support voltage-referenced and non-voltage-referenced pins by applying each of the rule sets individually.
Examples:
- An I/O bank can support SSTL-18 inputs and outputs, and 1.8 V inputs and outputs with a 1.8 V VCCIO and a 0.9 V VREF.
- An I/O bank can support 1.5 V standards, 1.8 V inputs (but not outputs), and 1.5 V HSTL I/O standards with a 1.5 V VCCIO and 0.75 V VREF.
5.7.3. Guideline: Do Not Drive I/O Pins During Power Sequencing
The Intel® Cyclone® 10 GX I/O buffers are powered by VCC, VCCPT, and VCCIO.
Because the Intel® Cyclone® 10 GX devices do not support hot socketing, do not drive the I/O pins externally during power up and power down. Adhere to this guideline to:
- Avoid excess I/O pin current:
- Excess I/O pin current affects the device's lifetime and reliability.
- Excess current on the 3 V I/O pins can damage the Intel® Cyclone® 10 GX device.
- Achieve minimum current draw and avoid I/O glitch during power up or power down.
5.7.4. Guideline: Maximum DC Current Restrictions
Intel® Cyclone® 10 GX devices conform to the VCCIO Electro-Migration (EM) rule and IR drop targets for all I/O standard drive strength settings—ensuring reliability over the lifetime of the devices.
5.7.5. Guideline: LVDS SERDES IP Core Instantiation
5.7.6. Guideline: LVDS SERDES Pin Pairs for Soft-CDR Mode
5.7.7. Guideline: Minimizing High Jitter Impact on Intel Cyclone 10 GX GPIO Performance
- Perform power delivery network analysis using Intel PDN tool 2.0. This analysis helps you to design a robust and efficient power delivery networks with the necessary decoupling capacitors. Use the Intel® Cyclone® 10 GX Early Power Estimator (EPE) to determine the current requirements for VCC and other power supplies. Perform the PDN analysis based on the current requirements of all the power supply rails especially the VCC power rail.
- Use voltage regulator with remote sensor pins to compensate for the DC IR drop associated with the PCB and device package from the VCC power supply while maintaining the core performance. For more details about the connection guideline for the differential remote sensor pins for VCC power, refer to the pin connection guidelines.
- The input clock jitter must comply with the Intel® Cyclone® 10 GX PLL input clock cycle-to-cycle jitter specification to produce low PLL output clock jitter. You must supply a clean clock source with jitter of less than 120 ps. For details about the recommended operating conditions, refer to the PLL specifications in the device datasheet.
- Use dedicated PLL clock output pin to transmit clock signals for better jitter performance. The I/O PLL in each I/O bank supports two dedicated clock output pins. You can use the PLL dedicated clock output pin as a reference clock source for the FPGA. For optimum jitter performance, supply an external clean clock source. For details about the jitter specifications for the PLL dedicated clock output pin, refer to the device datasheet.
- If the GPIO is operating at a frequency higher than 250 MHz, use terminated I/O standards. SSTL, HSTL, POD and HSUL I/O standards are terminated I/O standards. Intel recommends that you use the HSUL I/O standard for shorter trace or interconnect with a reference length of less than two inches.
- Implement the GPIO or source synchronous I/O interface using the Altera PHYLite for Parallel Interfaces IP core. Intel recommends that you use the Altera PHYLite for Parallel Interfaces IP core if you cannot close the timing for the GPIO or source-synchronous I/O interface for data rates of more than 200 Mbps. For guidelines to migrate your design from the Altera GPIO IP core to the Altera PHYLite for Parallel Interfaces IP core, refer to the related information.
- Use the small periphery clock (SPCLK) network. The SPCLK
network is designed for high speed I/O interfaces and provides the smallest insertion delay.
The following list ranks the clock insertion delays for the clock networks, from the largest
to the smallest:
- Global clock network (GCLK)
- Regional clock network (RCLK)
- Large periphery clock network (LPCLK)
- SPCLK
5.7.8. Guideline: Usage of I/O Bank 2A for External Memory Interfaces
- Do not use I/O bank 2A's pins that are required
for configuration-related operations as external memory interface pins, even after
configuration is complete. For example:
- Pins that are used for the Fast Passive Parallel (FPP) configuration bus
- Pins that are used for Partial Reconfiguration control signals
- Ensure that the external memory interface I/O voltage is compatible with the configuration I/O voltage.
- Run the Intel® Quartus® Prime Fitter to determine if the placement of pins for external memory interfaces in your device is valid.
For more information about the configuration pins, refer to the "Configuration Function" column in the pin-out file for your device.
5.8. I/O and High Speed I/O in Intel Cyclone 10 GX Devices Revision History
Document Version | Changes |
---|---|
2019.12.27 |
|
2019.05.07 | Added a topic that provides a usage modes summary of the Intel® Cyclone® 10 GX LVDS SERDES. |
2019.01.07 |
|
2018.02.02 |
|
Date | Version | Changes |
---|---|---|
November 2017 | 2017.11.10 |
|
May 2017 | 2017.05.08 | Initial release. |
6. External Memory Interfaces in Intel Cyclone 10 GX Devices
Compared to previous generation Cyclone devices, the new architecture and solution provide the following advantages:
- Pre-closed timing in the controller and from the controller to the PHY.
- Easier pin placement.
For maximum performance and flexibility, the architecture offers hard memory controller and hard PHY for key interfaces.
6.1. Key Features of the Intel Cyclone 10 GX External Memory Interface Solution
- The solution offers completely hardened external memory interfaces for several protocols.
- The devices feature columns of I/Os that are mixed within the core logic fabric instead of I/O banks on the device periphery.
- A single hard Nios® II block calibrates all the memory interfaces in an I/O column.
- The I/O columns are composed of groups of I/O modules called I/O banks.
- Each I/O bank contains a dedicated integer PLL (IO_PLL), hard memory controller, and delay-locked loop.
- The PHY clock tree is shorter compared to previous generation Cyclone devices and only spans one I/O bank.
- Interfaces spanning multiple I/O banks require multiple PLLs using a balanced reference clock network.
6.2. Memory Standards Supported by Intel Cyclone 10 GX Devices
Memory Standard | Rate Support | Device Speed Grade | Ping Pong PHY Support |
Frequency (MHz) |
|
---|---|---|---|---|---|
LVDS I/O Bank | 3 V I/O Bank | ||||
DDR3 SDRAM |
Half rate | –5 | Yes | 533 | 225 |
— | 533 | 225 | |||
–6 | Yes | 466 | 166 | ||
— | 466 | 166 | |||
Quarter rate | –5 | Yes | 933 | 450 | |
933 | 450 | ||||
–6 | Yes | 933 | 333 | ||
933 | 333 | ||||
DDR3L SDRAM |
Half rate | –5 | Yes | 533 | 225 |
— | 533 | 225 | |||
–6 | Yes | 466 | 166 | ||
— | 466 | 166 | |||
Quarter rate | –5 | Yes | 933 | 450 | |
— | 933 | 450 | |||
–6 | Yes | 933 | 333 | ||
— | 933 | 333 | |||
LPDDR3 | Half rate | –5 | — | 400 | 225 |
–6 | — | 333 | 166 | ||
Quarter rate | –5 | — | 800 | 450 | |
–6 | — | 666 | 333 |
6.3. External Memory Interface Widths in Intel Cyclone 10 GX Devices
The Intel® Cyclone® 10 GX devices can support up to the following DDR3 external memory interfaces:
- Two x40 interfaces with ECC
- One x72 interface with ECC
Interface Width | Required Number of I/O Banks |
---|---|
x8 | 1 |
x16, x24, x32, x40 | 2 |
x48, x56, x64, x72 | 3 |
6.4. External Memory Interface I/O Pins in Intel Cyclone 10 GX Devices
The memory interface circuitry is available in every I/O bank. The Intel® Cyclone® 10 GX devices feature differential input buffers for differential read-data strobe and clock operations.
The controller and sequencer in an I/O bank can drive address command (A/C) pins only to fixed I/O lanes location in the same I/O bank. The minimum requirement for the A/C pins are three lanes. However, the controller and sequencer of an I/O bank can drive data groups to I/O lanes in adjacent I/O banks (above and below).