Cyiv 5v1
Cyiv 5v1
Cyiv 5v1
CYIV-5V1-2.2
© 2016 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Additional Information
How to Contact Altera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1
Typographic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Info–1
The chapters in this document, Cyclone IV Device Handbook,, were revised on the
following dates. Where chapters or groups of chapters are available separately, part
numbers are listed.
This chapter provides additional information about the document and Altera.
Typographic Conventions
The following table shows the typographic conventions this document uses.
This section provides a complete overview of all features relating to the Cyclone® IV
device family, which is the most architecturally advanced, high-performance,
low-power FPGA in the marketplace. This section includes the following chapters:
■ Chapter 1, Cyclone IV FPGA Device Family Overview
■ Chapter 2, Logic Elements and Logic Array Blocks in Cyclone IV Devices
■ Chapter 3, Memory Blocks in Cyclone IV Devices
■ Chapter 4, Embedded Multipliers in Cyclone IV Devices
■ Chapter 5, Clock Networks and PLLs in Cyclone IV Devices
Revision History
Refer to each chapter for its own specific revision history. For information about when
each chapter was updated, refer to the Chapter Revision Dates section, which appears
in the complete handbook.
CYIV-51001-2.0
Altera’s new Cyclone® IV FPGA device family extends the Cyclone FPGA series
leadership in providing the market’s lowest-cost, lowest-power FPGAs, now with a
transceiver variant. Cyclone IV devices are targeted to high-volume, cost-sensitive
applications, enabling system designers to meet increasing bandwidth requirements
while lowering costs.
Built on an optimized low-power process, the Cyclone IV device family offers the
following two variants:
■ Cyclone IV E—lowest power, high functionality with the lowest cost
■ Cyclone IV GX—lowest power and lowest cost FPGAs with 3.125 Gbps
transceivers
f For more information, refer to the Power Requirements for Cyclone IV Devices
chapter.
Providing power and cost savings without sacrificing performance, along with a
low-cost integrated transceiver option, Cyclone IV devices are ideal for low-cost,
small-form-factor applications in the wireless, wireline, broadcast, industrial,
consumer, and communications industries.
© 2016 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
1–2 Chapter 1: Cyclone IV FPGA Device Family Overview
Cyclone IV Device Family Features
Device Resources
Table 1–1 lists Cyclone IV E device resources.
EP4CE115
EP4CE10
EP4CE15
EP4CE22
EP4CE30
EP4CE40
EP4CE55
EP4CE75
EP4CE6
Resources
Logic elements (LEs) 6,272 10,320 15,408 22,320 28,848 39,600 55,856 75,408 114,480
Embedded memory
270 414 504 594 594 1,134 2,340 2,745 3,888
(Kbits)
Embedded 18 × 18
15 23 56 66 66 116 154 200 266
multipliers
General-purpose PLLs 2 2 4 4 4 4 4 4 4
Global Clock Networks 10 10 20 20 20 20 20 20 20
User I/O Banks 8 8 8 8 8 8 8 8 8
Maximum user I/O (1) 179 179 343 153 532 532 374 426 528
Note to Table 1–1:
(1) The user I/Os count from pin-out files includes all general purpose I/O, dedicated clock pins, and dual purpose configuration pins. Transceiver
pins and dedicated configuration pins are not included in the pin count.
EP4CGX110
EP4CGX150
EP4CGX15
EP4CGX22
EP4CGX30
EP4CGX30
EP4CGX50
EP4CGX75
(1)
(2)
(3)
(3)
(3)
(3)
Resources
Logic elements (LEs) 14,400 21,280 29,440 29,440 49,888 73,920 109,424 149,760
Embedded memory (Kbits) 540 756 1,080 1,080 2,502 4,158 5,490 6,480
Embedded 18 × 18 multipliers 0 40 80 80 140 198 280 360
General purpose PLLs 1 2 2 4 (4) 4 (4) 4 (4) 4 (4) 4 (4)
Multipurpose PLLs 2 (5) 2 (5) 2 (5) 2 (5) 4 (5) 4 (5) 4 (5) 4 (5)
Maximum user I/O (9) 72 150 150 290 310 310 475 475
Notes to Table 1–2:
(1) Applicable for the F169 and F324 packages.
(2) Applicable for the F484 package.
(3) Only two multipurpose PLLs for F484 package.
(4) Two of the general purpose PLLs are able to support transceiver clocking. For more information, refer to the Clock Networks and PLLs in
Cyclone IV Devices chapter.
(5) You can use the multipurpose PLLs for general purpose clocking when they are not used to clock the transceivers. For more information, refer
to the Clock Networks and PLLs in Cyclone IV Devices chapter.
(6) If PCIe 1, you can use the remaining transceivers in a quad for other protocols at the same or different data rates.
(7) Including one configuration I/O bank and two dedicated clock input I/O banks for HSSI reference clock input.
(8) Including one configuration I/O bank and four dedicated clock input I/O banks for HSSI reference clock input.
(9) The user I/Os count from pin-out files includes all general purpose I/O, dedicated clock pins, and dual purpose configuration pins. Transceiver
pins and dedicated configuration pins are not included in the pin count.
Package Matrix
Chapter 1: Cyclone IV FPGA Device Family Overview
Table 1–3 lists Cyclone IV E device package offerings.
Table 1–3. Package Offerings for the Cyclone IV E Device Family (1), (2)
Package E144 M164 M256 U256 F256 F324 U484 F484 F780
Pitch (mm) 0.5 0.5 0.5 0.8 1.0 1.0 0.8 1.0 1.0
User I/O
User I/O
User I/O
User I/O
User I/O
User I/O
User I/O
User I/O
User I/O
(3)
(3)
(3)
(3)
(3)
(3)
(3)
(3)
(3)
LVDS
LVDS
LVDS
LVDS
LVDS
LVDS
LVDS
LVDS
LVDS
Device
1–5
Table 1–4 lists Cyclone IV GX device package offerings, including I/O and transceiver counts.
Volume 1
Cyclone IV Device Handbook,
1–6
Table 1–4. Package Offerings for the Cyclone IV GX Device Family (1)
Package F169 F324 F484 F672 F896
Size (mm) 14 × 14 19 × 19 23 × 23 27 × 27 31 × 31
User I/O
User I/O
User I/O
User I/O
User I/O
(2)
(2)
(2)
(2)
(2)
XCVRs
XCVRs
XCVRs
XCVRs
XCVRs
LVDS
LVDS
LVDS
LVDS
LVDS
Device
EP4CGX15 72 25 2 — — — — — — — — — — — —
EP4CGX22 72 25 2 150 64 4 — — — — — — — — —
EP4CGX30 72 25 2 150 64 4 290 130 4 — — — — — —
EP4CGX50 — — — — — — 290 130 4 310 140 8 — — —
EP4CGX75 — — — — — — 290 130 4 310 140 8 — — —
EP4CGX110 — — — — — — 270 120 4 393 181 8 475 220 8
EP4CGX150 — — — — — — 270 120 4 393 181 8 475 220 8
Note to Table 1–4:
(1) Use the Pin Migration View window in Pin Planner of the Quartus II software to verify the pin migration compatibility when you perform device migration. For more
information, refer to the I/O Management chapter in volume 2 of the Quartus II Handbook.
(2) This includes both dedicated and emulated LVDS pairs. For more information, refer to the I/O Features in Cyclone IV Devices chapter.
Package Matrix
Chapter 1: Cyclone IV FPGA Device Family Overview 1–7
Cyclone IV Device Family Speed Grades
Table 1–6. Speed Grades for the Cyclone IV E Device Family (1), (2)
Device E144 M164 M256 U256 F256 F324 U484 F484 F780
C8L, C9L, I8L C8L, C9L, I8L
EP4CE6 C6, C7, C8, I7, — — I7N C6, C7, C8, I7, — — — —
A7 A7
C8L, C9L, I8L C8L, C9L, I8L
EP4CE10 C6, C7, C8, I7, — — I7N C6, C7, C8, I7, — — — —
A7 A7
C8L, C9L, I8L C8L, C9L, I8L
C8L, C9L, I8L
EP4CE15 I7N C7N, I7N I7N C6, C7, C8, I7, — — C6, C7, C8, I7, —
C6, C7, C8, I7
A7 A7
C8L, C9L, I8L C8L, C9L, I8L
EP4CE22 C6, C7, C8, I7, — — I7N C6, C7, C8, I7, — — — —
A7 A7
C8L, C9L, I8L
C8L, C9L, I8L
EP4CE30 — — — — — A7N — C6, C7, C8, I7,
C6, C7, C8, I7
A7
C8L, C9L, I8L
C8L, C9L, I8L
EP4CE40 — — — — — A7N I7N C6, C7, C8, I7,
C6, C7, C8, I7
A7
C8L, C9L, I8L C8L, C9L, I8L
EP4CE55 — — — — — — I7N
C6, C7, C8, I7 C6, C7, C8, I7
C8L, C9L, I8L C8L, C9L, I8L
EP4CE75 — — — — — — I7N
C6, C7, C8, I7 C6, C7, C8, I7
C8L, C9L, I8L C8L, C9L, I8L
EP4CE115 — — — — — — —
C7, C8, I7 C7, C8, I7
Notes to Table 1–6:
(1) C8L, C9L, and I8L speed grades are applicable for the 1.0-V core voltage.
(2) C6, C7, C8, I7, and A7 speed grades are applicable for the 1.2-V core voltage.
Table 1–7. M9K Block Data Widths for Cyclone IV Device Family
Mode Data Width Configurations
Single port or simple dual port ×1, ×2, ×4, ×8/9, ×16/18, and ×32/36
True dual port ×1, ×2, ×4, ×8/9, and ×16/18
f For more information, refer to the Logic Elements and Logic Array Blocks in Cyclone IV
Devices, Memory Blocks in Cyclone IV Devices, and Embedded Multipliers in Cyclone IV
Devices chapters.
I/O Features
Cyclone IV device I/O supports programmable bus hold, programmable pull-up
resistors, programmable delay, programmable drive strength, programmable
slew-rate control to optimize signal integrity, and hot socketing. Cyclone IV devices
support calibrated on-chip series termination (Rs OCT) or driver impedance matching
(Rs) for single-ended I/O standards. In Cyclone IV GX devices, the high-speed
transceiver I/Os are located on the left side of the device. The top, bottom, and right
sides can implement general-purpose user I/Os.
Table 1–8 lists the I/O standards that Cyclone IV devices support.
Table 1–8. I/O Standards Support for the Cyclone IV Device Family
Type I/O Standard
Single-Ended I/O LVTTL, LVCMOS, SSTL, HSTL, PCI, and PCI-X
Differential I/O SSTL, HSTL, LVPECL, BLVDS, LVDS, mini-LVDS, RSDS, and PPDS
The LVDS SERDES is implemented in the core of the device using logic elements.
f For more information, refer to the I/O Features in Cyclone IV Devices chapter.
Clock Management
Cyclone IV devices include up to 30 global clock (GCLK) networks and up to eight
PLLs with five outputs per PLL to provide robust clock management and synthesis.
You can dynamically reconfigure Cyclone IV device PLLs in user mode to change the
clock frequency or phase.
Cyclone IV GX devices support two types of PLLs: multipurpose PLLs and general-
purpose PLLs:
■ Use multipurpose PLLs for clocking the transceiver blocks. You can also use them
for general-purpose clocking when they are not used for transceiver clocking.
■ Use general purpose PLLs for general-purpose applications in the fabric and
periphery, such as external memory interfaces. Some of the general purpose PLLs
can support transceiver clocking.
f For more information, refer to the Clock Networks and PLLs in Cyclone IV Devices
chapter.
f For more information, refer to the External Memory Interfaces in Cyclone IV Devices
chapter.
Configuration
Cyclone IV devices use SRAM cells to store configuration data. Configuration data is
downloaded to the Cyclone IV device each time the device powers up. Low-cost
configuration options include the Altera EPCS family serial flash devices and
commodity parallel flash configuration options. These options provide the flexibility
for general-purpose applications and the ability to meet specific configuration and
wake-up time requirements of the applications.
Table 1–9 lists which configuration schemes are supported by Cyclone IV devices.
IEEE 1149.6 (AC JTAG) is supported on all transceiver I/O pins. All other pins
support IEEE 1149.1 (JTAG) for boundary scan testing.
f For more information, refer to the JTAG Boundary-Scan Testing for Cyclone IV Devices
chapter.
For Cyclone IV GX devices to meet the PCIe 100 ms wake-up time requirement, you
must use passive serial (PS) configuration mode for the EP4CGX15/22/30 devices
and use fast passive parallel (FPP) configuration mode for the EP4CGX30F484 and
EP4CGX50/75/110/150 devices.
f For more information, refer to the Configuration and Remote System Upgrades in
Cyclone IV Devices chapter.
The cyclical redundancy check (CRC) error detection feature during user mode is
supported in all Cyclone IV GX devices. For Cyclone IV E devices, this feature is only
supported for the devices with the core voltage of 1.2 V.
f For more information about CRC error detection, refer to the SEU Mitigation in
Cyclone IV Devices chapter.
tx_dataout
Serializer
TX Phase
Compensation Byte Serializer 8B10B Encoder
PCI Express hard IP FIFO
PIPE Interface
8B10B Decoder
Byte Ordering
Compensation
Word Aligner
Deserializer
rx_datain
RX Phase
FIFO
CDR
f For more information, refer to the Cyclone IV Transceivers Architecture chapter.
f For more information, refer to the PCI Express Compiler User Guide.
Member Code
Package Type
15 : 14,400 logic elements
F : FineLine BGA (FBGA)
22 : 21,280 logic elements
N : Quad Flat Pack No Lead (QFN)
30 : 29,440 logic elements
50 : 49,888 logic elements Operating Temperature
75 : 73,920 logic elements
C : Commercial temperature (TJ = 0° C to 85° C)
110: 109,424 logic elements
I : Industrial temperature (TJ = -40° C to 100° C)
150: 149,760 logic elements
Package Type
F : FineLine BGA (FBGA)
E : Enhanced Thin Quad Flat Pack (EQFP)
Operating Temperature
U : Ultra FineLine BGA (UBGA)
M : Micro FineLine BGA (MBGA) C : Commercial temperature (TJ = 0° C to 85° C)
I : Industrial temperature (TJ = -40° C to 100° C)
Family Variant Extended industrial temperature (TJ = -40° C to 125° C)
A : Automotive temperature (TJ = -40° C to 125° C)
E : Enhanced logic/memory
CYIV-51002-1.0
This chapter contains feature definitions for logic elements (LEs) and logic array
blocks (LABs). Details are provided on how LEs work, how LABs contain groups of
LEs, and how LABs interface with the other blocks in Cyclone® IV devices.
Logic Elements
Logic elements (LEs) are the smallest units of logic in the Cyclone IV device
architecture. LEs are compact and provide advanced features with efficient logic
usage. Each LE has the following features:
■ A four-input look-up table (LUT), which can implement any function of four
variables
■ A programmable register
■ A carry chain connection
■ A register chain connection
■ The ability to drive the following interconnects:
■ Local
■ Row
■ Column
■ Register chain
■ Direct link
■ Register packing support
■ Register feedback support
© 2009 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
2–2 Chapter 2: Logic Elements and Logic Array Blocks in Cyclone IV Devices
Logic Elements
Chip-Wide Asynchronous
Local
Reset Clear Logic
Routing
Register Feedback (DEV_CLRn)
labclk2
labclkena1
labclkena2
LE Features
You can configure the programmable register of each LE for D, T, JK, or SR flipflop
operation. Each register has data, clock, clock enable, and clear inputs. Signals that
use the global clock network, general-purpose I/O pins, or any internal logic can
drive the clock and clear control signals of the register. Either general-purpose I/O
pins or the internal logic can drive the clock enable. For combinational functions, the
LUT output bypasses the register and drives directly to the LE outputs.
Each LE has three outputs that drive the local, row, and column routing resources. The
LUT or register output independently drives these three outputs. Two LE outputs
drive the column or row and direct link routing connections, while one LE drives the
local interconnect resources. This allows the LUT to drive one output while the
register drives another output. This feature, called register packing, improves device
utilization because the device can use the register and the LUT for unrelated
functions. The LAB-wide synchronous load control signal is not available when using
register packing. For more information about the synchronous load control signal,
refer to “LAB Control Signals” on page 2–6.
The register feedback mode allows the register output to feed back into the LUT of the
same LE to ensure that the register is packed with its own fan-out LUT, providing
another mechanism for improved fitting. The LE can also drive out registered and
unregistered versions of the LUT output.
In addition to the three general routing outputs, LEs in an LAB have register chain
outputs, which allows registers in the same LAB to cascade together. The register
chain output allows the LUTs to be used for combinational functions and the registers
to be used for an unrelated shift register implementation. These resources speed up
connections between LABs while saving local interconnect resources.
LE Operating Modes
Cyclone IV LEs operate in the following modes:
■ Normal mode
■ Arithmetic mode
The Quartus® II software automatically chooses the appropriate mode for common
functions, such as counters, adders, subtractors, and arithmetic functions, in
conjunction with parameterized functions such as the library of parameterized
modules (LPM) functions. You can also create special-purpose functions that specify
which LE operating mode to use for optimal performance, if required.
Normal Mode
Normal mode is suitable for general logic applications and combinational functions.
In normal mode, four data inputs from the LAB local interconnect are inputs to a
four-input LUT (Figure 2–2). The Quartus II Compiler automatically selects the
carry-in (cin) or the data3 signal as one of the inputs to the LUT. LEs in normal mode
support packed registers and register feedback.
Figure 2–2 shows LEs in normal mode.
Register
Register Bypass Register Feedback
Chain Output
Arithmetic Mode
Arithmetic mode is ideal for implementing adders, counters, accumulators, and
comparators. An LE in arithmetic mode implements a 2-bit full adder and basic carry
chain (Figure 2–3). LEs in arithmetic mode can drive out registered and unregistered
versions of the LUT output. Register feedback and register packing are supported
when LEs are used in arithmetic mode.
Figure 2–3 shows LEs in arithmetic mode.
data4
data1
Three-Input
data2 Q Row, Column, and
LUT
D Direct link routing
Register
Chain Output
The Quartus II Compiler automatically creates carry chain logic during design
processing. You can also manually create the carry chain logic during design entry.
Parameterized functions, such as LPM functions, automatically take advantage of
carry chains for the appropriate functions.
The Quartus II Compiler creates carry chains longer than 16 LEs by automatically
linking LABs in the same column. For enhanced fitting, a long carry chain runs
vertically, which allows fast horizontal connections to M9K memory blocks or
embedded multipliers through direct link interconnects. For example, if a design has a
long carry chain in an LAB column next to a column of M9K memory blocks, any LE
output can feed an adjacent M9K memory block through the direct link interconnect.
If the carry chains run horizontally, any LAB which is not next to the column of M9K
memory blocks uses other row or column interconnects to drive a M9K memory
block. A carry chain continues as far as a full column.
Topology
Each LAB consists of the following features:
■ 16 LEs
■ LAB control signals
■ LE carry chains
■ Register chains
■ Local interconnect
The local interconnect transfers signals between LEs in the same LAB. Register chain
connections transfer the output of one LE register to the adjacent LE register in an
LAB. The Quartus II Compiler places associated logic in an LAB or adjacent LABs,
allowing the use of local and register chain connections for performance and area
efficiency.
Figure 2–4 shows the LAB structure for Cyclone IV devices.
Row Interconnect
Column
Interconnect
Direct link
Direct link interconnect
interconnect from adjacent
from adjacent block
block
LAB Interconnects
The LAB local interconnect is driven by column and row interconnects and LE
outputs in the same LAB. Neighboring LABs, phase-locked loops (PLLs), M9K RAM
blocks, and embedded multipliers from the left and right can also drive the local
interconnect of a LAB through the direct link connection. The direct link connection
feature minimizes the use of row and column interconnects, providing higher
performance and flexibility. Each LE can drive up to 48 LEs through fast local and
direct link interconnects.
Figure 2–5 shows the direct link connection.
Local
LAB
Interconnect
Each LAB can use two clocks and two clock enable signals. The clock and clock enable
signals of each LAB are linked. For example, any LE in a particular LAB using the
labclk1 signal also uses the labclkena1. If the LAB uses both the rising and falling
edges of a clock, it also uses both LAB-wide clock signals. Deasserting the clock
enable signal turns off the LAB-wide clock.
The LAB row clocks [5..0] and LAB local interconnect generate the LAB-wide
control signals. The MultiTrack interconnect inherent low skew allows clock and
control signal distribution in addition to data distribution.
Figure 2–6 shows the LAB control signal generation circuit.
Local
Interconnect
Local
Interconnect
Local
Interconnect
Local
Interconnect
labclkena1 labclkena2 labclr1 synclr
LAB-wide signals control the logic for the clear signal of the register. The LE directly
supports an asynchronous clear function. Each LAB supports up to two asynchronous
clear signals (labclr1 and labclr2).
A LAB-wide asynchronous load signal to control the logic for the preset signal of the
register is not available. The register preset is achieved with a NOT gate push-back
technique. Cyclone IV devices only support either a preset or asynchronous clear
signal.
In addition to the clear port, Cyclone IV devices provide a chip-wide reset pin
(DEV_CLRn) that resets all registers in the device. An option set before compilation in
the Quartus II software controls this pin. This chip-wide reset overrides all other
control signals.
CYIV-51003-1.1
Overview
M9K blocks support the following features:
■ 8,192 memory bits per block (9,216 bits per block including parity)
■ Independent read-enable (rden) and write-enable (wren) signals for each port
■ Packed mode in which the M9K memory block is split into two 4.5 K single-port
RAMs
■ Variable port configurations
■ Single-port and simple dual-port modes support for all port widths
■ True dual-port (one read and one write, two reads, or two writes) operation
■ Byte enables for data input masking during writes
■ Two clock-enable control signals for each port (port A and port B)
■ Initialization file to pre-load memory content in RAM and ROM modes
© 2011 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
3–2 Chapter 3: Memory Blocks in Cyclone IV Devices
Overview
f For information about the number of M9K memory blocks for Cyclone IV devices,
refer to the Cyclone IV Device Family Overview chapter in volume 1 of the Cyclone IV
Device Handbook.
Control Signals
The clock-enable control signal controls the clock entering the input and output
registers and the entire M9K memory block. This signal disables the clock so that the
M9K memory block does not see any clock edges and does not perform any
operations.
The rden and wren control signals control the read and write operations for each port
of M9K memory blocks. You can disable the rden or wren signals independently to
save power whenever the operation is not required.
Affected Bytes
byteena[3..0]
datain ×16 datain ×18 datain ×32 datain ×36
[0] = 1 [7..0] [8..0] [7..0] [8..0]
[1] = 1 [15..8] [17..9] [15..8] [17..9]
[2] = 1 — — [23..16] [26..18]
[3] = 1 — — [31..24] [35..27]
Note to Table 3–2:
(1) Any combination of byte enables is possible.
Figure 3–1 shows how the wren and byteena signals control the RAM operations.
inclock
wren
rden
address an a0 a1 a2 a0 a1 a2
byteena XX 10 01 11 XX
When a byteena bit is deasserted during a write cycle, the old data in the memory
appears in the corresponding data-byte output. When a byteena bit is asserted during
a write cycle, the corresponding data-byte output depends on the setting chosen in
the Quartus® II software. The setting can either be the newly written data or the old
data at that location.
1 Byte enables are only supported for True Dual-Port memory configurations when
both the PortA and PortB data widths of the individual M9K memory blocks are
multiples of 8 or 9 bits.
address[0]
address[0] address[0]
register
address[N] address[N]
address[N] register
addressstall
clock
The address clock enable is typically used to improve the effectiveness of cache
memory applications during a cache-miss. The default value for the address clock
enable signals is low.
Figure 3–3 and Figure 3–4 show the address clock enable waveform during read and
write cycles, respectively.
Figure 3–3. Cyclone IV Devices Address Clock Enable During Read Cycle Waveform
inclock
rdaddress a0 a1 a2 a3 a4 a5 a6
rden
addressstall
latched address
an a0 a1 a4 a5
(inside memory)
Figure 3–4. Cyclone IV Devices Address Clock Enable During Write Cycle Waveform
inclock
a0 a1 a2 a3 a4 a5 a6
wraddress
data 00 01 02 03 04 05 06
wren
addressstall
latched address a1
an a0 a4 a5
(inside memory)
contents at a0 XX 00
contents at a1 XX 01 02 03
contents at a2 XX
contents at a3 XX
contents at a4 XX 04
contents at a5 XX 05
Mixed-Width Support
M9K memory blocks support mixed data widths. When using simple dual-port, true
dual-port, or FIFO modes, mixed width support allows you to read and write
different data widths to an M9K memory block. For more information about the
different widths supported per memory mode, refer to “Memory Modes” on
page 3–7.
Asynchronous Clear
Cyclone IV devices support asynchronous clears for read address registers, output
registers, and output latches only. Input registers other than read address registers are
not supported. When applied to output registers, the asynchronous clear signal clears
the output registers and the effects are immediately seen. If your RAM does not use
output registers, you can still clear the RAM outputs using the output latch
asynchronous clear feature.
1 Asserting asynchronous clear to the read address register during a read operation
may corrupt the memory content.
Figure 3–5 shows the functional waveform for the asynchronous clear feature.
clk
aclr
aclr at latch
q a1 a2 a0 a1
1 You can selectively enable asynchronous clears per logical memory using the
Quartus II RAM MegaWizard™ Plug-In Manager.
Memory Modes
Cyclone IV devices M9K memory blocks allow you to implement fully-synchronous
SRAM memory in multiple modes of operation. Cyclone IV devices M9K memory
blocks do not support asynchronous (unregistered) memory inputs.
M9K memory blocks support the following modes:
■ Single-port
■ Simple dual-port
■ True dual-port
■ Shift-register
■ ROM
■ FIFO
1 Violating the setup or hold time on the M9K memory block input registers may
corrupt memory contents. This applies to both read and write operations.
Single-Port Mode
Single-port mode supports non-simultaneous read and write operations from a single
address. Figure 3–6 shows the single-port memory configuration for Cyclone IV
devices M9K memory blocks.
data[ ]
address[ ]
wren
byteena[]
addressstall q[]
inclock outclock
inclocken outclocken
rden
aclr
During a write operation, the behavior of the RAM outputs is configurable. If you
activate rden during a write operation, the RAM outputs show either the new data
being written or the old data at that address. If you perform a write operation with
rden deactivated, the RAM outputs retain the values they held during the most recent
active rden signal.
To choose the desired behavior, set the Read-During-Write option to either New Data
or Old Data in the RAM MegaWizard Plug-In Manager in the Quartus II software. For
more information about read-during-write mode, refer to “Read-During-Write
Operations” on page 3–15.
The port width configurations for M9K blocks in single-port mode are as follow:
■ 8192 × 1
■ 4096 × 2
■ 2048 × 4
■ 1024 × 8
■ 1024 × 9
■ 512 × 16
■ 512 × 18
■ 256 × 32
■ 256 × 36
Figure 3–7 shows a timing waveform for read and write operations in single-port
mode with unregistered outputs. Registering the outputs of the RAM simply delays
the q output by one clock cycle.
clk_a
wren_a
rden_a
address_a a0 a1
data_a A B C D E F
data[ ] rdaddress[ ]
wraddress[ ] rden
wren q[ ]
byteena[] rd_addressstall
wr_addressstall rdclock
wrclock rdclocken
wrclocken
aclr
Table 3–3. Cyclone IV Devices M9K Block Mixed-Width Configurations (Simple Dual-Port Mode) (Part 1 of 2)
Write Port
Read Port
8192 × 1 4096 × 2 2048 × 4 1024 × 8 512 × 16 256 × 32 1024 × 9 512 × 18 256 × 36
8192 × 1 v v v v v v — — —
4096 × 2 v v v v v v — — —
2048 × 4 v v v v v v — — —
1024 × 8 v v v v v v — — —
Table 3–3. Cyclone IV Devices M9K Block Mixed-Width Configurations (Simple Dual-Port Mode) (Part 2 of 2)
Write Port
Read Port
8192 × 1 4096 × 2 2048 × 4 1024 × 8 512 × 16 256 × 32 1024 × 9 512 × 18 256 × 36
512 × 16 v v v v v v — — —
256 × 32 v v v v v v — — —
1024 × 9 — — — — — — v v v
512 × 18 — — — — — — v v v
256 × 36 — — — — — — v v v
In simple dual-port mode, M9K memory blocks support separate wren and rden
signals. You can save power by keeping the rden signal low (inactive) when not
reading. Read-during-write operations to the same address can either output “Don’t
Care” data at that location or output “Old Data”. To choose the desired behavior, set
the Read-During-Write option to either Don’t Care or Old Data in the RAM
MegaWizard Plug-In Manager in the Quartus II software. For more information about
this behavior, refer to “Read-During-Write Operations” on page 3–15.
Figure 3–9 shows the timing waveform for read and write operations in simple
dual-port mode with unregistered outputs. Registering the outputs of the RAM
simply delays the q output by one clock cycle.
wrclock
wren
wraddress an-1 an a0 a1 a2 a3 a4 a5 a6
rdclock
rden
rdaddress bn b0 b1 b2 b3
data_a[ ] data_b[ ]
address_a[ ] address_b[]
wren_a wren_b
byteena_a[] byteena_b[]
addressstall_a addressstall_b
clock_a clock_b
clocken_a clocken_b
rden_a rden_b
aclr_a aclr_b
q_a[] q_b[]
1 The widest bit configuration of the M9K blocks in true dual-port mode is 512 × 16-bit
(18-bit with parity).
Table 3–4 lists the possible M9K block mixed-port width configurations.
Table 3–4. Cyclone IV Devices M9K Block Mixed-Width Configurations (True Dual-Port Mode)
Write Port
Read Port
8192 × 1 4096 × 2 2048 × 4 1024 × 8 512 × 16 1024 × 9 512 × 18
8192 × 1 v v v v v — —
4096 × 2 v v v v v — —
2048 × 4 v v v v v — —
1024 × 8 v v v v v — —
512 × 16 v v v v v — —
1024 × 9 — — — — — v v
512 × 18 — — — — — v v
In true dual-port mode, M9K memory blocks support separate wren and rden signals.
You can save power by keeping the rden signal low (inactive) when not reading.
Read-during-write operations to the same address can either output “New Data” at
that location or “Old Data”. To choose the desired behavior, set the Read-During-
Write option to either New Data or Old Data in the RAM MegaWizard Plug-In
Manager in the Quartus II software. For more information about this behavior, refer to
“Read-During-Write Operations” on page 3–15.
In true dual-port mode, you can access any memory location at any time from either
port A or port B. However, when accessing the same memory location from both
ports, you must avoid possible write conflicts. When you attempt to write to the same
address location from both ports at the same time, a write conflict happens. This
results in unknown data being stored to that address location. There is no conflict
resolution circuitry built into the Cyclone IV devices M9K memory blocks. You must
handle address conflicts external to the RAM block.
Figure 3–11 shows true dual-port timing waveforms for the write operation at port A
and read operation at port B. Registering the outputs of the RAM simply delays the q
outputs by one clock cycle.
clk_a
wren_a
address_a an-1 an a0 a1 a2 a3 a4 a5 a6
rden_a
q_a (asynch) din-1 din dout0 dout1 dout2 dout3 din4 din5
clk_b
wren_b
address_b bn b0 b1 b2 b3
rden_b
Figure 3–12 shows the Cyclone IV devices M9K memory block in shift register mode.
w × m × n Shift Register
W W
W W
n Number of Taps
W W
W W
ROM Mode
Cyclone IV devices M9K memory blocks support ROM mode. A .mif initializes the
ROM contents of these blocks. The address lines of the ROM are registered. The
outputs can be registered or unregistered. The ROM read operation is identical to the
read operation in the single-port RAM configuration.
f For more information about FIFO buffers, refer to the Single- and Dual-Clock FIFO
Megafunction User Guide.
Clocking Modes
Cyclone IV devices M9K memory blocks support the following clocking modes:
■ Independent
■ Input or output
■ Read or write
■ Single-clock
When using read or write clock mode, if you perform a simultaneous read or write to
the same address location, the output read data is unknown. If you require the output
data to be a known value, use either single-clock mode or I/O clock mode and choose
the appropriate read-during-write behavior in the MegaWizard Plug-In Manager.
1 Violating the setup or hold time on the memory block input registers might corrupt
the memory contents. This applies to both read and write operations.
1 Asynchronous clears are available on read address registers, output registers, and
output latches only.
Table 3–5 lists the clocking mode versus memory mode support matrix.
Single-Clock Mode
Cyclone IV devices M9K memory blocks can implement single-clock mode for FIFO,
ROM, true dual-port, simple dual-port, and single-port memories. In this mode, you
can control all registers of the M9K memory block with a single clock together with
clock enable.
Design Considerations
This section describes designing with M9K memory blocks.
Read-During-Write Operations
“Same-Port Read-During-Write Mode” on page 3–16 and “Mixed-Port Read-During-
Write Mode” on page 3–16 describe the functionality of the various RAM
configurations when reading from an address during a write operation at that same
address.
There are two read-during-write data flows: same-port and mixed-port. Figure 3–13
shows the difference between these flows.
write_a write_b
Port A Port B
data in data in
Mixed-port
data flow
Same-port
data flow
read_a
Port A Port B
data out data out read_b
clk_a
wren_a
rden_a
address_a a0 a1
data_a A B C D E F
q_a (asynch) A B C D E F
clk_a
wren_a
rden_a
address_a a0 a1
data_a A B C D E F
In this mode, you also have two output choices: Old Data mode or Don't Care mode.
In Old Data mode, a read-during-write operation to different ports causes the RAM
outputs to reflect the old data at that address location. In Don't Care mode, the same
operation results in a “Don't Care” or unknown value on the RAM outputs.
f For more information about how to implement the desired behavior, refer to the RAM
Megafunction User Guide.
clk_a&b
wren_a
address_a a b
data_a A B C D E F
rden_b
address_b a b
Conflict Resolution
When you are using M9K memory blocks in true dual-port mode, it is possible to
attempt two write operations to the same memory location (address). Because there is
no conflict resolution circuitry built into M9K memory blocks, this results in unknown
data being written to that location. Therefore, you must implement conflict-resolution
logic external to the M9K memory block.
f For more information about .mifs, refer to the RAM Megafunction User Guide and the
Quartus II Handbook.
Power Management
The M9K memory block clock enables of Cyclone IV devices allow you to control
clocking of each M9K memory block to reduce AC power consumption. Use the rden
signal to ensure that read operations only occur when necessary. If your design does
not require read-during-write, reduce power consumption by deasserting the rden
signal during write operations or any period when there are no memory operations.
The Quartus II software automatically powers down any unused M9K memory
blocks to save static power.
CYIV-51004-1.1
Embedded
Multiplier
Column
1 LAB Embedded
Row Multiplier
© 2010 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
4–2 Chapter 4: Embedded Multipliers in Cyclone IV Devices
Architecture
Table 4–1 lists the number of embedded multipliers and the multiplier modes that can
be implemented in each Cyclone IV device.
f For more information about M9K memory blocks, refer to the Memory Blocks in
Cyclone IV Devices chapter.
f For more information about soft multipliers, refer to AN 306: Implementing Multipliers
in FPGA Devices.
Architecture
Each embedded multiplier consists of the following elements:
■ Multiplier stage
■ Input and output registers
■ Input and output interfaces
signa
signb
aclr
clock
ena
Data A D Q
ENA
Data Out
D Q
CLRN ENA
CLRN
Data B D Q
ENA Output
Input Register
CLRN Register
Input Registers
You can send each multiplier input signal into an input register or directly into the
multiplier in 9- or 18-bit sections, depending on the operational mode of the
multiplier. You can send each multiplier input signal through a register independently
of other input signals. For example, you can send the multiplier Data A signal through
a register and send the Data B signal directly to the multiplier.
The following control signals are available for each input register in the embedded
multiplier:
■ clock
■ clock enable
■ asynchronous clear
All input and output registers in a single embedded multiplier are fed by the same
clock, clock enable, and asynchronous clear signals.
Multiplier Stage
The multiplier stage of an embedded multiplier block supports 9 × 9 or 18 × 18
multipliers, as well as other multipliers between these configurations. Depending on
the data width or operational mode of the multiplier, a single embedded multiplier
can perform one or two multiplications in parallel. For multiplier information, refer to
“Operational Modes” on page 4–4.
Each multiplier operand is a unique signed or unsigned number. The signa and signb
signals control an input of a multiplier and determine if the value is signed or
unsigned. If the signa signal is high, the Data A operand is a signed number. If the
signa signal is low, the Data A operand is an unsigned number.
Table 4–2 lists the sign of the multiplication results for the various operand sign
representations. The results of the multiplication are signed if any one of the operands
is a signed value.
Each embedded multiplier block has only one signa and one signb signal to control
the sign representation of the input data to the block. If the embedded multiplier
block has two 9 × 9 multipliers, the Data A input of both multipliers share the same
signa signal, and the Data B input of both multipliers share the same signb signal.
You can dynamically change the signa and signb signals to modify the sign
representation of the input operands at run time. You can send the signa and signb
signals through a dedicated input register. The multiplier offers full precision,
regardless of the sign representation.
1 When the signa and signb signals are unused, the Quartus II software sets the
multiplier to perform unsigned multiplication by default.
Output Registers
You can register the embedded multiplier output with output registers in either 18- or
36-bit sections, depending on the operational mode of the multiplier. The following
control signals are available for each output register in the embedded multiplier:
■ clock
■ clock enable
■ asynchronous clear
All input and output registers in a single embedded multiplier are fed by the same
clock, clock enable, and asynchronous clear signals.
Operational Modes
You can use an embedded multiplier block in one of two operational modes,
depending on the application needs:
■ One 18 × 18 multiplier
■ Up to two 9 × 9 independent multipliers
1 You can also use embedded multipliers of Cyclone IV devices to implement multiplier
adder and multiplier accumulator functions, in which the multiplier portion of the
function is implemented with embedded multipliers, and the adder or accumulator
function is implemented in logic elements (LEs).
18-Bit Multipliers
You can configure each embedded multiplier to support a single 18 × 18 multiplier for
input widths of 10 to 18 bits.
Figure 4–3 shows the embedded multiplier configured to support an 18-bit multiplier.
signa
signb
aclr
clock
ena
Data A [17..0] D Q
ENA
Data Out [35..0]
D Q
CLRN ENA
CLRN
Data B [17..0] D Q
ENA
CLRN
18 × 18 Multiplier
Embedded Multiplier
All 18-bit multiplier inputs and results are independently sent through registers. The
multiplier inputs can accept signed integers, unsigned integers, or a combination of
both. Also, you can dynamically change the signa and signb signals and send these
signals through dedicated input registers.
9-Bit Multipliers
You can configure each embedded multiplier to support two 9 × 9 independent
multipliers for input widths of up to 9 bits.
Figure 4–4 shows the embedded multiplier configured to support two 9-bit
multipliers.
signa
signb
aclr
clock
ena
Data A 0 [8..0] D Q
ENA
Data Out 0 [17..0]
D Q
CLRN ENA
CLRN
Data B 0 [8..0] D Q
ENA
CLRN
9 × 9 Multiplier
Data A 1 [8..0] D Q
ENA
Data Out 1 [17..0]
D Q
CLRN ENA
CLRN
Data B 1 [8..0] D Q
ENA
CLRN
9 × 9 Multiplier
Embedded Multiplier
All 9-bit multiplier inputs and results are independently sent through registers. The
multiplier inputs can accept signed integers, unsigned integers, or a combination of
both. Two 9 × 9 multipliers in the same embedded multiplier block share the same
signa and signb signal. Therefore, all the Data A inputs feeding the same embedded
multiplier must have the same sign representation. Similarly, all the Data B inputs
feeding the same embedded multiplier must have the same sign representation.
CYIV-51005-2.4
This chapter describes the hierarchical clock networks and phase-locked loops (PLLs)
with advanced features in the Cyclone® IV device family. It includes details about the
ability to reconfigure the PLL counter clock frequency and phase shift in real time,
allowing you to sweep PLL output frequencies and dynamically adjust the output
clock phase shift.
1 The Quartus® II software enables the PLLs and their features without external
devices.
Clock Networks
The Cyclone IV GX device provides up to 12 dedicated clock pins (CLK[15..4]) that
can drive the global clocks (GCLKs). Cyclone IV GX devices support four dedicated
clock pins on each side of the device except the left side. These clock pins can drive up
to 30 GCLKs.
The Cyclone IV E device provides up to 15 dedicated clock pins (CLK[15..1]) that can
drive up to 20 GCLKs. Cyclone IV E devices support three dedicated clock pins on the
left side and four dedicated clock pins on the top, right, and bottom sides of the device
except EP4CE6 and EP4CE10 devices. EP4CE6 and EP4CE10 devices only support
three dedicated clock pins on the left side and four dedicated clock pins on the right
side of the device.
© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
5–2 Chapter 5: Clock Networks and PLLs in Cyclone IV Devices
Clock Networks
f For more information about the number of GCLK networks in each device density,
refer to the Cyclone IV FPGA Device Family Overview chapter.
GCLK Network
GCLKs drive throughout the entire device, feeding all device quadrants. All resources
in the device (I/O elements, logic array blocks (LABs), dedicated multiplier blocks,
and M9K memory blocks) can use GCLKs as clock sources. Use these clock network
resources for control signals, such as clock enables and clears fed by an external pin.
Internal logic can also drive GCLKs for internally generated GCLKs and
asynchronous clears, clock enables, or other control signals with high fan-out.
Table 5–1, Table 5–2 on page 5–4, and Table 5–3 on page 5–7 list the connectivity of the
clock sources to the GCLK networks.
Table 5–1. GCLK Network Connections for EP4CGX15, EP4CGX22, and EP4CGX30 (1), (2) (Part 1 of 2)
Table 5–1. GCLK Network Connections for EP4CGX15, EP4CGX22, and EP4CGX30 (1), (2) (Part 2 of 2)
5–4
Table 5–2. GCLK Network Connections for EP4CGX30, EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 Devices (1), (2) (Part 1 of 4)
PLL_1_C4 — — v — v v — — — — — — — — — — — — — — — — — — — — v — v v
PLL_2_C0 — — — — — — v — — v — v — — — — — — v — — v — v — — — — — —
PLL_2_C1 — — — — — — — v — — v — — — — — — — — v — — v — — — — — — —
Altera Corporation
— — — — — — v — v — — — — — — — — — v — v — — — — — — — — —
Clock Networks
PLL_2_C2
PLL_2_C3 — — — — — — — v — v — — — — — — — — — v — v — — — — — — — —
PLL_2_C4 — — — — — — — — v — v v — — — — — — — — v — v v — — — — — —
Table 5–2. GCLK Network Connections for EP4CGX30, EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 Devices (1), (2) (Part 2 of 4)
October 2012
Clock Networks
Chapter 5: Clock Networks and PLLs in Cyclone IV Devices
GCLK Network Clock GCLK Networks
Sources 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Altera Corporation
PLL_3_C0 — — — — — — — — — — — — v — — v — v — — — — — — v — — v — v
PLL_3_C1 — — — — — — — — — — — — — v — — v — — — — — — — — v — — v —
PLL_3_C2 — — — — — — — — — — — — v — v — — — — — — — — — v — v — — —
PLL_3_C3 — — — — — — — — — — — — — v — v — — — — — — — — — v — v — —
PLL_3_C4 — — — — — — — — — — — — — — v — v v — — — — — — — — v — v v
PLL_4_C0 — — — — — — — — — — — — v — — v — v v — — v — v — — — — — —
PLL_4_C1 — — — — — — — — — — — — — v — — v — — v — — v — — — — — — —
PLL_4_C2 — — — — — — — — — — — — v — v — — — v — v — — — — — — — — —
PLL_4_C3 — — — — — — — — — — — — — v — v — — — v — v — — — — — — — —
PLL_4_C4 — — — — — — — — — — — — — — v — v v — — v — v v — — — — — —
PLL_5_C0 v — v — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_5_C1 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_5_C2 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_5_C3 — v — v — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_5_C4 — — v — v v — — — — — — — — — — — — — — — — — — — — — — — —
PLL_6_C0 v — — v — v — — — — — — — — — — — — — — — — — — — — — — — —
PLL_6_C1 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_6_C2 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_6_C3 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_6_C4 — v — — v — — — — — — — — — — — — — — — — — — — — — — — — —
Cyclone IV Device Handbook,
PLL_7_C0 (3) — — — — — — v — — v — v — — — — — — — — — — — — — — — — — —
PLL_7_C1 (3) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_7_C2 (3) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
(3)
Volume 1
PLL_7_C3 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
(3) — — — — — — — v — — v — — — — — — — — — — — — — — — — — — —
5–5
PLL_7_C4
Table 5–2. GCLK Network Connections for EP4CGX30, EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 Devices (1), (2) (Part 3 of 4)
Volume 1
Cyclone IV Device Handbook,
5–6
GCLK Network Clock GCLK Networks
Sources 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
PLL_8_C0 (3) — — — — — — v — v — — — — — — — — — — — — — — — — — — — — —
PLL_8_C1 (3) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_8_C2 (3) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
PLL_8_C3 (3) — — — — — — — v — v — — — — — — — — — — — — — — — — — — — —
PLL_8_C4 (3) — — — — — — — — v — v v — — — — — — — — — — — — — — — — — —
DPCLK0 — — — — — — — — — — — — — — — — — — — — — — — — — v — — — —
DPCLK1 — — — — — — — — — — — — — — — — — — — — — — — — — — — v — —
DPCLK2 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — v
DPCLK3 — — — — — — — — — — — — — — — — — — — — — — — — v — — — — —
DPCLK4 — — — — — — — — — — — — — — — — — — — — — — — — — — v — — —
DPCLK5 — — — — — — — — — — — — — — — — — — — — — — — — — — — — v —
DPCLK6 — — — — — — — — — — — — — — — — — v — — — — — — — — — — — —
DPCLK7 — — — — — — — — — — — — — — — v — — — — — — — — — — — — — —
DPCLK8 — — — — — — — — — — — — — v — — — — — — — — — — — — — — — —
DPCLK14 — — — — — — — — — — — — — — — — — — v — — — — — — — — — — —
DPCLK15 — — — — — — — — — — — — — — — — — — — — — — — v — — — — — —
DPCLK16 — — — — — — — — — — — — — — — — — — — — — v — — — — — — — —
Altera Corporation
Clock Networks
Table 5–2. GCLK Network Connections for EP4CGX30, EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 Devices (1), (2) (Part 4 of 4)
October 2012
Clock Networks
Chapter 5: Clock Networks and PLLs in Cyclone IV Devices
GCLK Network Clock GCLK Networks
Sources 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Altera Corporation
DPCLK17 — — — — — — — — — — — — — — — — — — — v — — — — — — — — — —
Notes to Table 5–2:
(1) EP4CGX30 information in this table refers to only EP4CGX30 device in F484 package.
(2) PLL_1, PLL_2, PLL_3, and PLL_4 are general purpose PLLs while PLL_5, PLL_6, PLL_7, and PLL_8 are multipurpose PLLs.
(3) PLL_7 and PLL_8 are not available in EP4CXGX30, EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 devices in F484 package.
Table 5–3. GCLK Network Connections for Cyclone IV E Devices (1) (Part 1 of 3)
CLK11/DIFFCLK_4p
(2) — — — — — — — — — — v — — v — — — — — —
Cyclone IV Device Handbook,
CLK12/DIFFCLK_7n
(2) — — — — — — — — — — — — — — — v — v — v
CLK13/DIFFCLK_7p
(2) — — — — — — — — — — — — — — — — v v — —
Volume 1
CLK14/DIFFCLK_6n
(2) — — — — — — — — — — — — — — — — v — v v
5–7
Table 5–3. GCLK Network Connections for Cyclone IV E Devices (1) (Part 2 of 3)
Volume 1
Cyclone IV Device Handbook,
5–8
GCLK Network Clock GCLK Networks
Sources 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
CLK15/DIFFCLK_6p
(2) — — — — — — — — — — — — — — — v — — v —
PLL_1_C0 (3) v — — v — — — — — — — — — — — — — — — —
PLL_1_C1 (3) — v — — v — — — — — — — — — — — — — — —
PLL_1_C2 (3) v — v — — — — — — — — — — — — — — — — —
PLL_1_C3 (3) — v — v — — — — — — — — — — — — — — — —
PLL_1_C4 (3) — — v — v — — — — — — — — — — — — — — —
PLL_2_C0 (3) — — — — — v — — v — — — — — — — — — — —
PLL_2_C1 (3) — — — — — — v — — v — — — — — — — — — —
PLL_2_C2 (3) — — — — — v — v — — — — — — — — — — — —
PLL_2_C3 (3) — — — — — — v — v — — — — — — — — — — —
PLL_2_C4 (3) — — — — — — — v — v — — — — — — — — — —
PLL_3_C0 — — — — — — — — — — v — — v — — — — — —
PLL_3_C1 — — — — — — — — — — — v — — v — — — — —
PLL_3_C2 — — — — — — — — — — v — v — — — — — — —
PLL_4_C3 — — — — — — — — — — — — — — — — —
PLL_4_C4 — — — — — — — — — — — — — — — — — v — v
DPCLK0 v — — — — — — — — — — — — — — — — — — —
DPCLK1 — v — — — — — — — — — — — — — — — — — —
Altera Corporation
Clock Networks
DPCLK7 (4)
CDPCLK0, or — — v — — — — — — — — — — — — — — — — —
CDPCLK7 (2), (5)
Table 5–3. GCLK Network Connections for Cyclone IV E Devices (1) (Part 3 of 3)
October 2012
Clock Networks
Chapter 5: Clock Networks and PLLs in Cyclone IV Devices
GCLK Network Clock GCLK Networks
Sources 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Altera Corporation
DPCLK2 (4)
CDPCLK1, or — — — v v — — — — — — — — — — — — — — —
CDPCLK2 (2), (5)
DPCLK5 (4)
— — — — — v — — — — — — — — — — — — — —
DPCLK7 (2)
DPCLK4 (4)
— — — — — — v — — — — — — — — — — — — —
DPCLK6 (2)
DPCLK6 (4)
CDPCLK5, or — — — — — — — v — — — — — — — — — — — —
CDPCLK6 (2), (5)
DPCLK3 (4)
CDPCLK4, or — — — — — — — — v v — — — — — — — — — —
CDPCLK3 (2), (5)
DPCLK8 — — — — — — — — — — v — — — — — — — — —
DPCLK11 — — — — — — — — — — — v — — — — — — — —
DPCLK9 — — — — — — — — — — — — v — — — — — — —
DPCLK10 — — — — — — — — — — — — — v v — — — — —
DPCLK5 — — — — — — — — — — — — — — — v — — — —
DPCLK2 — — — — — — — — — — — — — — — — v — — —
DPCLK4 — — — — — — — — — — — — — — — — — v — —
DPCLK3 — — — — — — — — — — — — — — — — — — v v
Cyclone IV Device Handbook,
(5) Only one of the two CDPCLK pins can feed the clock control block. You can use the other pin as a regular I/O pin.
5–9
5–10 Chapter 5: Clock Networks and PLLs in Cyclone IV Devices
Clock Networks
If you do not use dedicated clock pins to feed the GCLKs, you can use them as
general-purpose input pins to feed the logic array. However, when using them as
general-purpose input pins, they do not have support for an I/O register and must
use LE-based registers in place of an I/O register.
f For more information about how to connect the clock and PLL pins, refer to the
Cyclone IV Device Family Pin Connection Guidelines.
In Cyclone IV devices, dedicated clock input pins, PLL counter outputs, dual-purpose
clock I/O inputs, and internal logic can all feed the clock control block for each GCLK.
The output from the clock control block in turn feeds the corresponding GCLK. The
GCLK can drive the PLL input if the clock control block inputs are outputs of another
PLL or dedicated clock input pins. There are five or six clock control blocks on each
side of the device periphery—depending on device density; providing up to 30 clock
control blocks in each Cyclone IV GX device. The maximum number of clock control
blocks per Cyclone IV E device is 20. For the clock control block locations, refer to
Figure 5–2 on page 5–12, Figure 5–3 on page 5–13, and Figure 5–4 on page 5–14.
1 The clock control blocks on the left side of the Cyclone IV GX device do not support
any clock inputs.
Internal Logic
DPCLK Enable/ Global
Static Clock Select (3) Disable Clock
Static Clock
C0 Select (3)
CLK[n + 3] C1
inclk1 fIN
CLK[n + 2] C2
inclk0 PLL
CLK[n + 1]
CLK[n] (6) C3
CLKSWITCH (1) C4 Internal Logic (5)
CLKSELECT[1..0] (2)
C0
C1
inclk1 fIN
PLL C2
inclk0
(4)
C3
Not applicable to
CLKSWITCH (1) C4
Cyclone IV E devices
Each PLL generates five clock outputs through the c[4..0] counters. Two of these
clocks can drive the GCLK through a clock control block, as shown in Figure 5–1.
f For more information about how to use the clock control block in the Quartus II
software, refer to the ALTCLKCTRL Megafunction User Guide.
Figure 5–2. Clock Networks and Clock Control Block Locations in EP4CGX15, EP4CGX22, and EP4CGX30 Devices (1), (2)
CLK[11..8]
2 2
4
5 5
Clock
Control
Block (3)
4
5
5
GCLK[19..0]
DPCLK[9..8] (5)
20 2
Clock 20 20 Clock
HSSI Control Control CLK[7..4]
Block (3) Block (3) 4
20
DPCLK[7..6] (5)
GCLK[19..0] 2
5
5
Clock
Control
Block (3)
5 5
4
2 2
CLK[15..12]
Figure 5–3. Clock Networks and Clock Control Block Locations in EP4CGX30, EP4CGX50, EP4CGX75, EP4CGX110, and
EP4CGX150 Devices (1), (2)
DPCLK[17..15] DPCLK[14..12]
REFCLK[4,5]p/n (4) CLKIO[11..8]
3 3
4
4 (6) 4
PLL_8 4 4
PLL_2 (6) PLL_4
(5) (6)
5 5
Clock
Control
Block (3)
4
3
HSSI
5
5
GCLK[29..0]
Clock DPCLK[11..9]
(6) 30 3
PLL_7 Control
(5) 2 Block (3) Clock
30 30
Control CLKIO[7..4]
4
Clock Block (3)
PLL_6 2 30
Control
(6) DPCLK[8..6]
Block (3)
GCLK[29..0] 3
HSSI 5
3 5
Clock
Control
Block (3)
5 5
(6)
PLL_5 PLL_1 4 4 (6) PLL_3
4
4 (6)
3 4 3
REFCLK[0,1]p/n (4)
CLKIO[15..12]
DPCLK[2..0] DPCLK[5..3]
Figure 5–4. Clock Networks and Clock Control Block Locations in Cyclone IV E Devices
DPCLK[11.10] DPCLK[9..8]
2 2
4
(3) 4
PLL_3 4 PLL_2
(4)
5
CDPCLK0 Clock CDPCLK5
Control
(3)
(2) Block (1) (2)
2 4
4
2 5
GCLK[19..0]
DPCLK0 DPCLK7
20
Clock Clock
20 20
CLK[3..1] Control Control CLK[7..4]
3 Block (1) Block (1) 4
20
DPCLK1 DPCLK6
GCLK[19..0]
4 2 4
5
2
(2) Clock (2) (3)
Control
CDPCLK1 Block (1) CDPCLK4
5
PLL_4
PLL_1 (3) 4
(4)
4
4
2 2
CDPCLK2 CDPCLK3
CLK[15..12]
DPCLK[3..2] DPCLK[5..4]
The inputs to the clock control blocks on each side of the Cyclone IV GX device must
be chosen from among the following clock sources:
■ Four clock input pins
■ Ten PLL counter outputs (five from each adjacent PLLs)
■ Two, four, or six DPCLK pins from the top, bottom, and right sides of the device
■ Five signals from internal logic
From the clock sources listed above, only two clock input pins, two out of four PLL
clock outputs (two clock outputs from either adjacent PLLs), one DPCLK pin, and one
source from internal logic can drive into any given clock control block, as shown in
Figure 5–1 on page 5–11.
Out of these six inputs to any clock control block, the two clock input pins and two
PLL outputs are dynamically selected to feed a GCLK. The clock control block
supports static selection of the signal from internal logic.
Figure 5–5 shows a simplified version of the clock control blocks on each side of the
Cyclone IV GX device periphery.
4
Clock Input Pins
10
PLL Outputs Clock 5 or 6 (2)
2, 4, or 6 Control GCLK
DPCLK (1) Block
Internal Logic 5
The inputs to the five clock control blocks on each side of the Cyclone IV E device
must be chosen from among the following clock sources:
■ Three or four clock input pins, depending on the specific device
■ Five PLL counter outputs
■ Two DPCLK pins and two CDPCLK pins from both the left and right sides and four
DPCLK pins from both the top and bottom
■ Five signals from internal logic
From the clock sources listed above, only two clock input pins, two PLL clock outputs,
one DPCLK or CDPCLK pin, and one source from internal logic can drive into any given
clock control block, as shown in Figure 5–1 on page 5–11.
Out of these six inputs to any clock control block, the two clock input pins and two
PLL outputs are dynamically selected to feed a GCLK. The clock control block
supports static selection of the signal from internal logic.
Figure 5–6 shows a simplified version of the five clock control blocks on each side of
the Cyclone IV E device periphery.
Figure 5–6. Clock Control Blocks on Each Side of Cyclone IV E Device (1)
3 or 4
Clock Input Pins
PLL Outputs 5
2 Clock 5
CDPCLK Control GCLK
2 or 4 Block
DPCLK
5
Internal Logic
clkena Signals
Cyclone IV devices support clkena signals at the GCLK network level. This allows
you to gate-off the clock even when a PLL is used. Upon re-enabling the output clock,
the PLL does not need a resynchronization or re-lock period because the circuit gates
off the clock at the clock network level. In addition, the PLL can remain locked
independent of the clkena signals because the loop-related counters are not affected.
Figure 5–7 shows how to implement the clkena signal with a single register.
clkena D Q clkena_out
clkin
clk_out
1 The clkena circuitry controlling the output C0 of the PLL to an output pin is
implemented with two registers instead of a single register, as shown in Figure 5–7.
Figure 5–8 shows the waveform example for a clock output enable. The clkena signal
is sampled on the falling edge of the clock (clkin).
1 This feature is useful for applications that require low power or sleep mode.
clkin
clkena
clk_out
The clkena signal can also disable clock outputs if the system is not tolerant to
frequency overshoot during PLL resynchronization.
Altera recommends using the clkena signals when switching the clock source to the
PLLs or the GCLK. The recommended sequence is:
1. Disable the primary output clock by de-asserting the clkena signal.
2. Switch to the secondary clock using the dynamic select signals of the clock control
block.
3. Allow some clock cycles of the secondary clock to pass before reasserting the
clkena signal. The exact number of clock cycles you must wait before enabling the
secondary clock is design-dependent. You can build custom logic to ensure
glitch-free transition when switching between different clock sources.
f For more details about the multipurpose PLLs used for transceiver clocking, refer to
the Cyclone IV Transceivers chapter.
f For more information about the number of general purpose PLLs and multipurpose
PLLs in each device density, refer to the Cyclone IV Device Family Overview chapter.
1 The general I/O pins cannot drive the PLL clock input pins.
C (output counters) 5
M, N, C counter sizes 1 to 512 (5)
lock
LOCK ÷2, ÷4
FREF for ppm detect circuit
(MPLLs, GPLL1, and GPLL2 only) ÷C0
8 GCLKs (5)
Clock inputs 4 (2) ÷C1
÷n 8
from pins inclk0 PFD CP LF VCO ÷2 (3) 8
External clock output
Clock clkswitch ÷C2 PLL
Switchover clkbad0 output
inclk1 TX serial clock (MPLLs,
GCLK (4) Block ÷C3 mux
clkbad1 VCO VCOOVRR GPLL1, and GPLL2 only) (6)
activeclock Range
Detector VCOUNDR ÷C4 TX load enable (MPLLs,
GPLL1, and GPLL2 only) (7)
no compensation;
ZDB mode
Figure 5–10 shows a simplified block diagram of the major components of the PLL of
Cyclone IV E devices.
lock
LOCK
circuit
÷C0
GCLKs
Clock inputs 4 ÷C1
÷n 8
from pins inclk0 PFD CP LF VCO ÷2 (2) 8
External clock output
Clock clkswitch ÷C2 PLL
Switchover clkbad0 output
inclk1 Block ÷C3 mux
GCLK (3) clkbad1 VCO VCOOVRR
activeclock Range
Detector VCOUNDR ÷C4
pfdena
÷M
no compensation;
ZDB mode
1 The VCO post-scale counter K is used to divide the supported VCO range by two. The
VCO frequency reported by the Quartus II software in the PLL summary section of
the compilation report takes into consideration the VCO post-scale counter value.
Therefore, if the VCO post-scale counter has a value of 2, the frequency reported is
lower than the fVCO specification specified in the Cyclone IV Device Datasheet chapter.
C0
C1
C2
PLL# C3
C4
clkena 0 (1)
clkena 1 (1)
PLL#_CLKOUTp (2)
PLL#_CLKOUTn (2)
Each pin of a differential output pair is 180° out of phase. The Quartus II software
places the NOT gate in your design into the I/O element to implement 180° phase
with respect to the other pin in the pair. The clock output pin pairs support the same
I/O standards as standard output pins.
f To determine which I/O standards are supported by the PLL clock input and output
pins, refer to the Cyclone IV Device I/O Features chapter.
Cyclone IV PLLs can drive out to any regular I/O pin through the GCLK. You can also
use the external clock output pins as GPIO pins if external PLL clocking is not
required.
1 Input and output delays are fully compensated by the PLL only if you are using the
dedicated clock input pins associated with a given PLL as the clock sources.
When driving the PLL using the GCLK network, the input and output delays may not
be fully compensated in the Quartus II software.
Source-Synchronous Mode
If the data and clock arrive at the same time at the input pins, the phase relationship
between the data and clock remains the same at the data and clock ports of any I/O
element input register.
Figure 5–12 shows an example waveform of the data and clock in this mode. Use this
mode for source-synchronous data transfers. Data and clock signals at the I/O
element experience similar buffer delays as long as the same I/O standard is used.
Figure 5–12. Phase Relationship Between Data and Clock in Source-Synchronous Mode
Data pin
PLL reference
clock at input pin
Data at register
Clock at register
1 Set the input pin to the register delay chain in the I/O element to zero in the
Quartus II software for all data pins clocked by a source-synchronous mode PLL.
Also, all data pins must use the PLL COMPENSATED logic option in the Quartus II
software.
No Compensation Mode
In no compensation mode, the PLL does not compensate for any clock networks. This
provides better jitter performance because clock feedback into the PFD does not pass
through as much circuitry. Both the PLL internal and external clock outputs are phase
shifted with respect to the PLL clock input.
Figure 5–13 shows a waveform example of the phase relationship of the PLL clock in
this mode.
Phase Aligned
PLL Reference
Clock at the Input Pin
Normal Mode
An internal clock in normal mode is phase-aligned to the input clock pin. The external
clock output pin has a phase delay relative to the clock input pin if connected in this
mode. The Quartus II software timing analyzer reports any phase difference between
the two. In normal mode, the PLL fully compensates the delay introduced by the
GCLK network.
Figure 5–14 shows a waveform example of the phase relationship of the PLL clocks in
this mode.
PLL Reference
Clock at the Input pin
PLL Clock
at the Register Clock Port
Hardware Features
Cyclone IV PLLs support several features for general-purpose clock management.
This section discusses clock multiplication and division implementation,
phase shifting implementations, and programmable duty cycles.
VCO Output
C0
VCO Output
C1
VCO Output
C2
VCO Output
C3
VCO Output
C4
VCO Output
f For more information about the PLL control signals, refer to the ALTPLL Megafunction
User Guide.
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,
such as a system that turns on the redundant clock if the previous clock stops running.
Your design can automatically perform clock switchover when the clock is no longer
toggling, or based on the user control signal, clkswitch.
clkbad1
activeclock
Clock Switchover
Sense State
Machine
clksw
clkswitch
(provides manual
switchover support)
inclk0
n Counter PFD
inclk1
muxout refclk
fbclk
20%. This feature is useful when clock sources can originate from multiple cards
on the backplane, requiring a system-controlled switchover between frequencies
of operation. Choose the secondary clock frequency so the VCO operates in the
recommended frequency range. Also, set the M, N, and C counters accordingly to
keep the VCO operating frequency in the recommended range.
Figure 5–18 shows a waveform example of the switchover feature when using
automatic loss of clock detection. Here, the inclk0 signal remains low. After the
inclk0 signal remains low for approximately two clock cycles, the clock-sense
circuitry drives the clkbad0 signal high. Also, because the reference clock signal is not
toggling, the switchover state machine controls the multiplexer through the clksw
signal to switch to inclk1.
inclk0
inclk1
(1)
muxout
clkbad0
clkbad1
activeclock
Manual Override
If you are using the automatic switchover, you must switch input clocks with the
manual override feature with the clkswitch input.
Figure 5–19 shows an example of a waveform illustrating the switchover feature
when controlled by clkswitch. In this case, both clock sources are functional and
inclk0 is selected as the reference clock. A low-to-high transition of the clkswitch
signal starts the switchover sequence. The clkswitch signal must be high for at least
three clock cycles (at least three of the longer clock period if inclk0 and inclk1 have
different frequencies). On the falling edge of inclk0, the reference clock of the counter,
muxout, is gated off to prevent any clock glitching. On the falling edge of inclk1, the
reference clock multiplexer switches from inclk0 to inclk1 as the PLL reference, and
the activeclock signal changes to indicate which clock is currently feeding the PLL.
In this mode, the activeclock signal mirrors the clkswitch signal. As both blocks are
still functional during the manual switch, neither clkbad signals go high. Because the
switchover circuit is positive edge-sensitive, the falling edge of the clkswitch signal
does not cause the circuit to switch back from inclk1 to inclk0. When the clkswitch
signal goes high again, the process repeats. The clkswitch signal and the automatic
switch only works depending on the availability of the clock that is switched to. If the
clock is unavailable, the state machine waits until the clock is available.
inclk0
inclk1
muxout
clkswitch
activeclock
clkbad0
clkbad1
f For more information about PLL software support in the Quartus II software, refer to
the ALTPLL Megafunction User Guide.
Guidelines
Use the following guidelines to design with clock switchover in PLLs:
■ Clock loss detection and automatic clock switchover require the inclk0 and
inclk1 frequencies be within 20% of each other. Failing to meet this requirement
causes the clkbad0 and clkbad1 signals to function improperly.
■ When using manual clock switchover, the difference between inclk0 and inclk1
can be more than 20%. However, differences between the two clock sources
(frequency, phase, or both) can cause the PLL to lose lock. Resetting the PLL
ensures that the correct phase relationships are maintained between the input and
output clocks.
■ Both inclk0 and inclk1 must be running when the clkswitch signal goes high to
start the manual clock switchover event. Failing to meet this requirement causes
the clock switchover to malfunction.
■ 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 slower than a high-bandwidth PLL. When the
switchover happens, the low-bandwidth PLL propagates the stopping of the clock
to the output slower than the high-bandwidth PLL. The low-bandwidth PLL
filters out jitter on the reference clock. However, 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 exact amount of time it takes for the PLL to
re-lock is dependent on the PLL configuration.
■ If the phase relationship between the input clock to the PLL and output clock from
the PLL is important in your design, assert areset for 10 ns after performing a
clock switchover. Wait for the locked signal (or gated lock) to go high before
re-enabling the output clocks from the PLL.
■ Figure 5–20 shows how the VCO frequency gradually decreases when the primary
clock is lost and then increases as the VCO locks on to the secondary clock. After
the VCO locks on to the secondary clock, some overshoot can occur (an
over-frequency condition) in the VCO frequency.
Switchover Occurs
■ Disable the system during switchover if the system is not tolerant to frequency
variations during the PLL resynchronization period. You can use the clkbad0 and
clkbad1 status signals to turn off the PFD (pfdena = 0) so the VCO maintains its
last frequency. You can also use the switchover state machine to switch over to the
secondary clock. Upon enabling the PFD, output clock enable signals (clkena) can
disable clock outputs during the switchover and resynchronization period. After
the lock indication is stable, the system can re-enable the output clock or clocks.
Programmable Bandwidth
The PLL bandwidth is the measure of the PLL’s ability to track the input clock and its
associated jitter. PLLs of Cyclone IV devices provide advanced control of the PLL
bandwidth using the programmable characteristics of the PLL loop, including loop
filter and charge pump. The closed-loop gain 3-dB frequency in the PLL determines
the PLL bandwidth. The bandwidth is approximately the unity gain point for open
loop PLL response.
C is the count value set for the counter delay time (this is the initial setting in the PLL
usage section of the compilation report in the Quartus II software). If the initial value
is 1, C – 1 = 0° phase shift.
Figure 5–21 shows an example of phase shift insertion using fine resolution through
VCO phase taps method. The eight phases from the VCO are shown and labeled for
reference. In this example, CLK0 is based on 0° phase from the VCO and has the C
value for the counter set to one. The CLK1 signal is divided by four, two VCO clocks
for high time and two VCO clocks for low time. CLK1 is based on the 135° phase tap
from the VCO and has the C value for the counter set to one. The CLK1 signal is also
divided by four. In this case, the two clocks are offset by 3 fine. CLK2 is based on the
0° phase from the VCO but has the C value for the counter set to three. This creates a
delay of two coarse (two complete VCO periods).
Figure 5–21. Delay Insertion Using VCO Phase Output and Counter Delay Time
45
90
135
180
225
270
315
CLK0
td0-1
CLK1
td0-2
CLK2
You can use the coarse and fine phase shifts to implement clock delays in
Cyclone IV devices.
Cyclone IV devices support dynamic phase shifting of VCO phase taps only. The
phase shift is configurable for any number of times. Each phase shift takes about one
scanclk cycle, allowing you to implement large phase shifts quickly.
PLL Cascading
Cyclone IV devices allow cascading between general purpose PLLs and multipurpose
PLLs in normal or direct mode through the GCLK network. If your design cascades
PLLs, the source (upstream) PLL must have a low-bandwidth setting, while the
destination (downstream) PLL must have a high-bandwidth setting.
PLL Reconfiguration
PLLs use several divide counters and different VCO phase taps to perform frequency
synthesis and phase shifts. In PLLs of Cyclone IV devices, you can reconfigure both
counter settings and phase shift the PLL output clock in real time. You can also change
the charge pump and loop filter components, which dynamically affects PLL
bandwidth. You can use these PLL components to update the output clock frequency,
PLL bandwidth, and phase shift in real time, without reconfiguring the entire FPGA.
The ability to reconfigure the PLL in real time is useful in applications that might
operate at multiple frequencies. It is also useful in prototyping environments,
allowing you to sweep PLL output frequencies and adjust the output clock phase
dynamically. For instance, a system generating test patterns is required to generate
and send patterns at 75 or 150 MHz, depending on the requirements of the device
under test. Reconfiguring PLL components in real time allows you to switch between
two such output frequencies in a few microseconds.
You can also use this feature to adjust clock-to-out (tCO) delays in real time by
changing the PLL output clock phase shift. This approach eliminates the need to
regenerate a configuration file with the new PLL settings.
Figure 5–22 shows how to adjust PLL counter settings dynamically by shifting their
new settings into a serial shift register chain or scan chain. Serial data shifts to the scan
chain via the scandataport, and shift registers are clocked by scanclk. The maximum
scanclk frequency is 100 MHz. After shifting the last bit of data, asserting the
configupdate signal for at least one scanclk clock cycle synchronously updates the
PLL configuration bits with the data in the scan registers.
FVCO
from M counter
from N counter PFD LF/K/CP VCO
scandata
scanclkena
configupdate
scandone
scanclk
1 The counter settings are updated synchronously to the clock frequency of the
individual counters. Therefore, not all counters update simultaneously.
scanclk
scanclkena
configupdate
scandone
areset
1 When reconfiguring the counter clock frequency, the corresponding counter phase
shift settings cannot be reconfigured using the same interface. You can reconfigure
phase shifts in real time using the dynamic phase shift reconfiguration interface. If
you reconfigure the counter frequency, but wish to keep the same non-zero phase shift
setting (for example, 90°) on the clock output, you must reconfigure the phase shift
after reconfiguring the counter clock frequency.
Figure 5–24 shows the scan chain order of the PLL components.
LF CP
DATAIN N M C0
MSB LSB
DATAOUT C4 C3 C2 C1
Figure 5–25 shows the scan chain bit order sequence for one PLL post-scale counter in
PLLs of Cyclone IV devices.
HB HB HB HB HB HB HB HB HB HB
rbypass DATAIN
0 1 2 3 4 5 6 7 8 9
LB LB LB LB LB LB LB LB LB LB
DATAOUT rselodd
0 1 2 3 4 5 6 7 8 9
To bypass any of the PLL counters, set the bypass bit to 1. The values on the other bits
are then ignored.
Table 5–13 lists the PLL counter selection based on the corresponding
PHASECOUNTERSELECT setting.
1 You can repeat dynamic phase-shifting indefinitely. For example, in a design where
the VCO frequency is set to 1,000 MHz and the output clock frequency is set to
100 MHz, performing 40 dynamic phase shifts (each one yields 125 ps phase shift)
results in shifting the output clock by 180, in other words, a phase shift of 5 ns.
SCANCLK
PHASESTEP
PHASEUPDOWN
PHASECOUNTERSELECT
PHASEDONE
a b c d
The PHASESTEP signal is latched on the negative edge of SCANCLK (a,c) and must remain
asserted for at least two SCANCLK cycles. Deassert PHASESTEP after PHASEDONE goes low.
On the second SCANCLK rising edge (b,d) after PHASESTEP is latched, the values of
PHASEUPDOWN and PHASECOUNTERSELECT are latched and the PLL starts dynamic
phase-shifting for the specified counters, and in the indicated direction. PHASEDONE is
deasserted synchronous to SCANCLK at the second rising edge (b,d) and remains low
until the PLL finishes dynamic phase-shifting. Depending on the VCO and SCANCLK
frequencies, PHASEDONE low time may be greater than or less than one SCANCLK cycle.
You can perform another dynamic phase-shift after the PHASEDONE signal goes from
low to high. Each PHASESTEP pulse enables one phase shift. PHASESTEP pulses must be
at least one SCANCLK cycle apart.
Spread-Spectrum Clocking
Cyclone IV devices can accept a spread-spectrum input with typical modulation
frequencies. However, the device cannot automatically detect that the input is a
spread-spectrum signal. Instead, the input signal looks like deterministic jitter at the
input of the PLL. PLLs of Cyclone IV devices can track a spread-spectrum input clock
as long as it is in the input jitter tolerance specifications and the modulation frequency
of the input clock is below the PLL bandwidth, that is specified in the fitter report.
Cyclone IV devices cannot generate spread-spectrum signals internally.
PLL Specifications
f For information about PLL specifications, refer to the Cyclone IV Device Datasheet
chapter.
This section provides information about Cyclone® IV device family I/O features and
high-speed differential and external memory interfaces.
This section includes the following chapters:
■ Chapter 6, I/O Features in Cyclone IV Devices
■ Chapter 7, External Memory Interfaces in Cyclone IV Devices
Revision History
Refer to each chapter for its own specific revision history. For information about when
each chapter was updated, refer to the Chapter Revision Dates section, which appears
in the complete handbook.
CYIV-51006-2.7
This chapter describes the I/O and high speed I/O capabilities and features offered in
Cyclone® IV devices.
The I/O capabilities of Cyclone IV devices are driven by the diversification of I/O
standards in many low-cost applications, and the significant increase in required I/O
performance. Altera’s objective is to create a device that accommodates your key
board design needs with ease and flexibility.
The I/O flexibility of Cyclone IV devices is increased from the previous generation
low-cost FPGAs by allowing all I/O standards to be selected on all I/O banks.
Improvements to on-chip termination (OCT) support and the addition of true
differential buffers have eliminated the need for external resistors in many
applications, such as display system interfaces.
High-speed differential I/O standards have become popular in high-speed interfaces
because of their significant advantages over single-ended I/O standards. The
Cyclone IV devices support LVDS, BLVDS, RSDS, mini-LVDS, and PPDS. The
transceiver reference clocks and the existing general-purpose I/O (GPIO) clock input
features also support the LVDS I/O standards.
The Quartus® II software completes the solution with powerful pin planning features
that allow you to plan and optimize I/O system designs even before the design files
are available.
This chapter includes the following sections:
■ “Cyclone IV I/O Elements” on page 6–2
■ “I/O Element Features” on page 6–3
■ “OCT Support” on page 6–6
■ “I/O Standards” on page 6–11
■ “Termination Scheme for I/O Standards” on page 6–13
■ “I/O Banks” on page 6–16
© 2016 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
6–2 Chapter 6: I/O Features in Cyclone IV Devices
Cyclone IV I/O Elements
Figure 6–1 shows the Cyclone IV devices IOE structure for single data rate (SDR)
operation.
Figure 6–1. Cyclone IV IOEs in a Bidirectional I/O Configuration for SDR Mode
io_clk[5..0]
Column
or Row
Interconnect
OE
OE Register VCCIO
D Q
clkout Optional
PCI Clamp
ENA
ACLR
/PRN
VCCIO
oe_out
Programmable
Pull-Up
aclr/prn Resistor
Chip-Wide Reset
Output (1)
Output Register Pin Delay
Table 6–2 on page 6–7 shows the possible settings for I/O standards with current
strength control. These programmable current strength settings are a valuable tool in
helping decrease the effects of simultaneously switching outputs (SSO) in conjunction
with reducing system noise. The supported settings ensure that the device driver
meets the specifications for IOH and IOL of the corresponding I/O standard.
1 When you use programmable current strength, on-chip series termination (RS OCT) is
not available.
1 You cannot use the programmable slew rate feature when using OCT with calibration.
1 You cannot use the programmable slew rate feature when using the 3.0-V PCI,
3.0-V PCI-X, 3.3-V LVTTL, or 3.3-V LVCMOS I/O standards. Only the fast slew rate
(default) setting is available.
Open-Drain Output
Cyclone IV devices provide an optional open-drain (equivalent to an open-collector)
output for each I/O pin. This open-drain output enables the device to provide
system-level control signals (for example, interrupt and write enable signals) that are
asserted by multiple devices in your system.
Bus Hold
Each Cyclone IV device user I/O pin provides an optional bus-hold feature. The
bus-hold circuitry holds the signal on an I/O pin at its last-driven state. Because the
bus-hold feature holds the last-driven state of the pin until the next input signal is
present, an external pull-up or pull-down resistor is not necessary to hold a signal
level when the bus is tri-stated.
The bus-hold circuitry also pulls undriven pins away from the input threshold
voltage in which noise can cause unintended high-frequency switching. You can select
this feature individually for each I/O pin. The bus-hold output drives no higher than
VCCIO to prevent overdriving signals.
1 If you enable the bus-hold feature, the device cannot use the programmable pull-up
option. Disable the bus-hold feature when the I/O pin is configured for differential
signals. Bus-hold circuitry is not available on dedicated clock pins.
Bus-hold circuitry is only active after configuration. When going into user mode, the
bus-hold circuit captures the value on the pin present at the end of configuration.
f For the specific sustaining current for each V CCIO voltage level driven through the
resistor and for the overdrive current used to identify the next driven input level, refer
to the Cyclone IV Device Datasheet chapter.
1 If you enable the programmable pull-up resistor, the device cannot use the bus-hold
feature. Programmable pull-up resistors are not supported on the dedicated
configuration, JTAG, and dedicated clock pins.
1 When the optional DEV_OE signal drives low, all I/O pins remains tri-stated even with
the programmable pull-up option enabled.
Programmable Delay
The Cyclone IV IOE includes programmable delays to ensure zero hold times,
minimize setup times, increase clock-to-output times, and delay the clock input
signal.
A path in which a pin directly drives a register may require a programmable delay to
ensure zero hold time, whereas a path in which a pin drives a register through
combinational logic may not require the delay. Programmable delays minimize setup
time. The Quartus II Compiler can program these delays to automatically minimize
setup time while providing a zero hold time. Programmable delays can increase the
register-to-pin delays for output registers. Each dual-purpose clock input pin
provides a programmable delay to the global clock networks.
Table 6–1 shows the programmable delays for Cyclone IV devices.
There are two paths in the IOE for an input to reach the logic array. Each of the two
paths can have a different delay. This allows you to adjust delays from the pin to the
internal logic element (LE) registers that reside in two different areas of the device.
You must set the two combinational input delays with the input delay from pin to
internal cells logic option in the Quartus II software for each path. If the pin uses the
input register, one of the delays is disregarded and the delay is set with the input
delay from pin to input register logic option in the Quartus II software.
The IOE registers in each I/O block share the same source for the preset or clear
features. You can program preset or clear for each individual IOE, but you cannot use
both features simultaneously. You can also program the registers to power-up high or
low after configuration is complete. If programmed to power-up low, an
asynchronous clear can control the registers. If programmed to power-up high, an
asynchronous preset can control the registers. This feature prevents the inadvertent
activation of the active-low input of another device upon power-up. If one register in
an IOE uses a preset or clear signal, all registers in the IOE must use that same signal if
they require preset or clear. Additionally, a synchronous reset signal is available for
the IOE registers.
f For more information about the input and output pin delay settings, refer to the Area
and Timing Optimization chapter in volume 2 of the Quartus II Handbook.
PCI-Clamp Diode
Cyclone IV devices provide an optional PCI-clamp diode enabled input and output
for each I/O pin. Dual-purpose configuration pins support the diode in user mode if
the specific pins are not used as configuration pins for the selected configuration
scheme. For example, if you are using the active serial (AS) configuration scheme, you
cannot use the clamp diode on the ASDO and nCSO pins in user mode. Dedicated
configuration pins do not support the on-chip diode.
The PCI-clamp diode is available for the following I/O standards:
■ 3.3-V LVTTL
■ 3.3-V LVCMOS
■ 3.0-V LVTTL
■ 3.0-V LVCMOS
■ 2.5-V LVTTL/LVCMOS
■ PCI
■ PCI-X
If the input I/O standard is one of the listed standards, the PCI-clamp diode is
enabled by default in the Quartus II software.
OCT Support
Cyclone IV devices feature OCT to provide I/O impedance matching and termination
capabilities. OCT helps prevent reflections and maintain signal integrity while
minimizing the need for external resistors in high pin-count ball grid array (BGA)
packages. Cyclone IV devices provide I/O driver on-chip impedance matching and
RS OCT for single-ended outputs and bidirectional pins.
Table 6–2 lists the I/O standards that support impedance matching and series
termination.
1 For more details about the differential I/O standards supported in Cyclone IV I/O
banks, refer to “High-Speed I/O Interface” on page 6–24.
The RS shown in Figure 6–2 is the intrinsic impedance of the transistors that make up
the I/O buffer.
VCCIO
RS
ZO
RS
GND
OCT with calibration is achieved using the OCT calibration block circuitry. There is
one OCT calibration block in each of I/O banks 2, 4, 5, and 7 for Cyclone IV E devices
and I/O banks 4, 5, and 7 for Cyclone IV GX devices. Each calibration block supports
each side of the I/O banks. Because there are two I/O banks sharing the same
calibration block, both banks must have the same VCCIO if both banks enable OCT
calibration. If two related banks have different VCCIO, only the bank in which the
calibration block resides can enable OCT calibration.
Figure 6–10 on page 6–18 shows the top-level view of the OCT calibration blocks
placement.
Each calibration block comes with a pair of RUP and RDN pins. When used for
calibration, the RUP pin is connected to VCCIO through an external 25- ±1% or
50- ±1% resistor for an RS OCT value of 25 or 50 , respectively. The RDN pin is
connected to GND through an external 25- ±1% or 50- ±1% resistor for an RS OCT
value of 25 or 50 , respectively. The external resistors are compared with the
internal resistance using comparators. The resultant outputs of the comparators are
used by the OCT calibration block to dynamically adjust buffer impedance.
1 During calibration, the resistance of the RUP and RDN pins varies.
Figure 6–3 shows the external calibration resistors setup on the RUP and RDN pins and
the associated OCT calibration circuitry.
External
Calibration
Resistor
RUP
OCT
Calibration VCCIO
Circuitry
RDN
External
Calibration
Resistor
GND
RUP and RDN pins go to a tri-state condition when calibration is completed or not
running. These two pins are dual-purpose I/Os and function as regular I/Os if you
do not use the calibration circuit.
Figure 6–4 shows the single-ended I/O standards for OCT without calibration. The RS
shown is the intrinsic transistor impedance.
VCCIO
RS
ZO
RS
GND
All I/O banks and I/O pins support impedance matching and series termination.
Dedicated configuration pins and JTAG pins do not support impedance matching or
series termination.
RS OCT is supported on any I/O bank. VCCIO and V REF must be compatible for all I/O
pins to enable RS OCT in a given I/O bank. I/O standards that support different RS
values can reside in the same I/O bank as long as their VCCIO and V REF do not conflict.
Impedance matching is implemented using the capabilities of the output driver and is
subject to a certain degree of variation, depending on the process, voltage, and
temperature.
f For more information about tolerance specification, refer to the Cyclone IV Device
Datasheet chapter.
I/O Standards
Cyclone IV devices support multiple single-ended and differential I/O standards.
Cyclone IV devices support 3.3-, 3.0-, 2.5-, 1.8-, 1.5-, and 1.2-V I/O standards.
Table 6–3 summarizes I/O standards supported by Cyclone IV devices and which
I/O pins support them.
Table 6–3. Cyclone IV Devices Supported I/O Standards and Constraints (Part 1 of 3)
VCCIO Level (in V) Column I/O Pins Row I/O Pins (1)
Standard User
I/O Standard Type CLK, CLK, User I/O
Support Input Output PLL_OUT I/O
DQS DQS Pins
Pins
3.3-V LVTTL, 3.3/3.0/2.5
(2) Single-ended JESD8-B (3) 3.3 v v v v v
3.3-V LVCMOS
3.0-V LVTTL, 3.3/3.0/2.5
(2) Single-ended JESD8-B (3) 3.0 v v v v v
3.0-V LVCMOS
Table 6–3. Cyclone IV Devices Supported I/O Standards and Constraints (Part 2 of 3)
VCCIO Level (in V) Column I/O Pins Row I/O Pins (1)
Standard User
I/O Standard Type CLK, CLK, User I/O
Support Input Output PLL_OUT I/O
DQS DQS Pins
Pins
2.5-V LVTTL / 3.3/3.0/2.5
Single-ended JESD8-5 (3) 2.5 v v v v v
LVCMOS
1.8-V LVTTL /
Single-ended JESD8-7 1.8/1.5 (3) 1.8 v v v v v
LVCMOS
1.5-V LVCMOS Single-ended JESD8-11 1.8/1.5 (3) 1.5 v v v v v
1.2-V LVCMOS (4) Single-ended JESD8-12A 1.2 1.2 v v v v v
SSTL-2 Class I, voltage-
JESD8-9A 2.5 2.5 v v v v v
SSTL-2 Class II referenced
SSTL-18 Class I, voltage-
JESD815 1.8 1.8 v v v v v
SSTL-18 Class II referenced
HSTL-18 Class I, voltage-
JESD8-6 1.8 1.8 v v v v v
HSTL-18 Class II referenced
HSTL-15 Class I, voltage-
JESD8-6 1.5 1.5 v v v v v
HSTL-15 Class II referenced
voltage-
HSTL-12 Class I JESD8-16A 1.2 1.2 v v v v v
referenced
voltage-
HSTL-12 Class II (9) JESD8-16A 1.2 1.2 v v v — —
referenced
PCI and PCI-X Single-ended — 3.0 3.0 v v v v v
Differential SSTL-2 Differential — 2.5 — v — — —
(5) JESD8-9A
Class I or Class II 2.5 — v — — v —
Differential SSTL-18 Differential — 1.8 — v — — —
(5) JESD815
Class I or Class II 1.8 — v — — v —
Differential HSTL-18 Differential — 1.8 — v — — —
(5) JESD8-6
Class I or Class II 1.8 — v — — v —
Differential HSTL-15 Differential — 1.5 — v — — —
(5) JESD8-6
Class I or Class II 1.5 — v — — v —
Differential HSTL-12 Differential — 1.2 — v — — —
(5) JESD8-16A
Class I or Class II 1.2 — v — — v —
PPDS (6) Differential — — 2.5 — v v — v
ANSI/TIA/
LVDS (10) Differential 2.5 2.5 v v v v v
EIA-644
RSDS and
(6) Differential — — 2.5 — v v — v
mini-LVDS
BLVDS (8) Differential — 2.5 2.5 — — v — v
Table 6–3. Cyclone IV Devices Supported I/O Standards and Constraints (Part 3 of 3)
VCCIO Level (in V) Column I/O Pins Row I/O Pins (1)
Standard User
I/O Standard Type CLK, CLK, User I/O
Support Input Output PLL_OUT I/O
DQS DQS Pins
Pins
LVPECL (7) Differential — 2.5 — v — — v —
Notes to Table 6–3:
(1) Cyclone IV GX devices only support right I/O pins.
(2) The PCI-clamp diode must be enabled for 3.3-V/3.0-V LVTTL/LVCMOS.
(3) The Cyclone IV architecture supports the MultiVolt I/O interface feature that allows Cyclone IV devices in all packages to interface with I/O
systems that have different supply voltages.
(4) Cyclone IV GX devices do not support 1.2-V VCCIO in banks 3 and 9. I/O pins in bank 9 are dual-purpose I/O pins that are used as configuration
or GPIO pins. Configuration scheme is not support at 1.2 V, therefore bank 9 can not be powered up at 1.2-V VCCIO.
(5) Differential HSTL and SSTL outputs use two single-ended outputs with the second output programmed as inverted. Differential HSTL and SSTL
inputs treat differential inputs as two single-ended HSTL and SSTL inputs and only decode one of them. Differential HSTL and SSTL are only
supported on CLK pins.
(6) PPDS, mini-LVDS, and RSDS are only supported on output pins.
(7) LVPECL is only supported on clock inputs.
(8) Bus LVDS (BLVDS) output uses two single-ended outputs with the second output programmed as inverted. BLVDS input uses LVDS input
buffer.
(9) 1.2-V HSTL input is supported at both column and row I/Os regardless of Class I or Class II.
(10) True LVDS, RSDS, and mini-LVDS I/O standards are supported in left and right I/O pins, while emulated LVDS, RSDS, and mini-LVDS I/O
standards are supported in the top, bottom, and right I/O pins.
Cyclone IV devices support PCI and PCI-X I/O standards at 3.0-V VCCIO. The 3.0-V
PCI and PCI-X I/O are fully compatible for direct interfacing with 3.3-V PCI systems
without requiring any additional components. The 3.0-V PCI and PCI-X outputs meet
the VIH and V IL requirements of 3.3-V PCI and PCI-X inputs with sufficient noise
margin.
f For more information about the 3.3/3.0/2.5-V LVTTL & LVCMOS multivolt I/O
support, refer to AN 447: Interfacing Cyclone III and Cyclone IV Devices with 3.3/3.0/2.5-V
LVTTL/LVCMOS I/O Systems.
50 Ω 50 Ω 50 Ω
External
On-Board 50 Ω 50 Ω
Termination VREF VREF
50 Ω 50 Ω 50 Ω
External 25 Ω 25 Ω
On-Board 50 Ω 50 Ω
Termination VREF VREF
Figure 6–7. Cyclone IV Devices Differential HSTL I/O Standard Class I and Class II Interface and Termination
50 Ω 50 Ω 50 Ω 50 Ω 50 Ω 50 Ω
50 Ω 50 Ω
External
On-Board
50 Ω 50 Ω
Termination
50 Ω 50 Ω
OCT
50 Ω 50 Ω
Figure 6–8. Cyclone IV Devices Differential SSTL I/O Standard Class I and Class II Interface and Termination (1)
50 Ω 50 Ω 50 Ω 50 Ω 50 Ω 50 Ω
25 Ω 25 Ω
50 Ω
50 Ω
External
On-Board 25 Ω 25 Ω
Termination 50Ω 50 Ω
OCT 50 Ω 50 Ω
50 Ω 50 Ω
I/O Banks
I/O pins on Cyclone IV devices are grouped together into I/O banks. Each bank has a
separate power bus.
Cyclone IV E devices have eight I/O banks, as shown in Figure 6–9. Each device I/O
pin is associated with one I/O bank. All single-ended I/O standards are supported in
all banks except HSTL-12 Class II, which is only supported in column I/O banks. All
differential I/O standards are supported in all banks. The only exception is HSTL-12
Class II, which is only supported in column I/O banks.
Cyclone IV GX devices have up to ten I/O banks and two configuration banks, as
shown in Figure 6–10 on page 6–18 and Figure 6–11 on page 6–19. The Cyclone IV GX
configuration I/O bank contains three user I/O pins that can be used as normal user
I/O pins if they are not used in configuration modes. Each device I/O pin is
associated with one I/O bank. All single-ended I/O standards are supported except
HSTL-12 Class II, which is only supported in column I/O banks. All differential I/O
standards are supported in top, bottom, and right I/O banks. The only exception is
HSTL-12 Class II, which is only supported in column I/O banks.
The entire left side of the Cyclone IV GX devices contain dedicated high-speed
transceiver blocks for high speed serial interface applications. There are a total of 2, 4,
and 8 transceiver channels for Cyclone IV GX devices, depending on the density and
package of the device. For more information about the transceiver channels
supported, refer to Figure 6–10 on page 6–18 and Figure 6–11 on page 6–19.
3.3-V LVTTL/LVCMOS
I/O Bank 6
3.0-V LVTTL/LVCMOS
I/O Bank 1
2.5-V LVTTL/LVCMOS
1.8-V LVTTL/LVCMOS
1.5-V LVCMOS
1.2-V LVCMOS I/O bank with
calibration block
PPDS
LVDS
RSDS I/O bank without
mini-LVDS calibration block
Bus LVDS (7)
LVPECL (3)
SSTL-2 class I and II Calibration block
SSTL-18 CLass I and II coverage
I/O Bank 2
I/O Bank 5
HSTL-18 Class I and II
HSTL-15 Class I and II
HSTL-12 Class I and II (4)
Differential SSTL-2 (5)
Differential SSTL-18 (5)
Differential HSTL-18 (5)
Differential HSTL-15 (5)
Differential HSTL-12 (6)
Figure 6–10 and Figure 6–11 show the overview of Cyclone IV GX I/O banks.
Figure 6–10. Cyclone IV GX I/O Banks for EP4CGX15, EP4CGX22, and EP4CGX30 (1), (2), (9)
Configuration pins
VCCIO9 VCCIO8 VCC_CLKIN8A VCCIO7
3.3-V LVTTL/LVCMOS
3.0-V LVTTL/LVCMOS
2.5-V LVTTL/LVCMOS
I/O Bank 6
1.8-V LVTTL/LVCMOS VCCIO6
1.5-V LVCMOS
1.2-V LVCMOS
Channel 2
I/O Bank 5
HSTL-15 Class I and II
HSTL-12 Class I and II (4) VCCIO5
Differential SSTL-2 (5)
Differential SSTL-18 (5)
Differential HSTL-18 (5)
Channel 0
Figure 6–11. Cyclone IV GX I/O Banks for EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 (1), (2), (9)
3.3-V LVTTL/LVCMOS
3.0-V LVTTL/LVCMOS
Ch2
2.5-V LVTTL/LVCMOS
I/O Bank 6
GXBL1
1.2-V LVCMOS
PPDS I/O bank with
LVDS calibration block
Ch0
RSDS
mini-LVDS
Bus LVDS (7) I/O bank without
LVPECL (3) calibration block
Ch3
I/O Bank 5
HSTL-15 Class I and II
Ch2
VCCIO5
Differential SSTL-2 (5)
Differential SSTL-18 (5)
Ch1
6–20
source for its VREF group. If you use a VREF group for voltage-referenced I/O standards, connect the VREF pin for that group to
the appropriate voltage level. If you do not use all the VREF groups in the I/O bank for voltage-referenced I/O standards, you
can use the VREF pin in the unused voltage-referenced groups as regular I/O pins. For example, if you have SSTL-2 Class I
input pins in I/O bank 1 and they are all placed in the VREFB1N[0] group, VREFB1N[0] must be powered with 1.25 V, and the
remaining VREFB1N[1..3] pins (if available) are used as I/O pins. If multiple VREF groups are used in the same I/O bank, the
VREF pins must all be powered by the same voltage level because the VREF pins are shorted together within the same I/O bank.
1 When VREF pins are used as regular I/Os, they have higher pin capacitance than regular user I/O pins. This has an impact on
the timing if the pins are used as inputs and outputs.
f For more information about VREF pin capacitance, refer to the pin capacitance section in the Cyclone IV Device Datasheet chapter.
f For information about how to identify VREF groups, refer to the Cyclone IV Device Pin-Out files or the Quartus II Pin Planner
tool.
Table 6–4 and Table 6–5 summarize the number of VREF pins in each I/O bank for the Cyclone IV device family.
Table 6–4. Number of VREF Pins Per I/O Bank for Cyclone IV E Devices (Part 1 of 2)
EP4CE115
EP4CE10
EP4CE15
EP4CE22
EP4CE30
EP4CE40
EP4CE55
EP4CE75
EP4CE6
Device
164-MBGA
256-MBGA
256-UBGA
256-UBGA
256-UBGA
256-UBGA
484-UBGA
484-UBGA
484-UBGA
256-FBGA
256-FBGA
256-FBGA
484-FBGA
256-FBGA
324-FBGA
484-FBGA
780-FBGA
324-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
144-EQPF
144-EQPF
144-EQPF
144-EQPF
I/O
Bank
(1)
3 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
4 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
5 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
Altera Corporation
6 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
7 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
I/O Banks
Table 6–4. Number of VREF Pins Per I/O Bank for Cyclone IV E Devices (Part 2 of 2)
March 2016 Altera Corporation
I/O Banks
Chapter 6: I/O Features in Cyclone IV Devices
EP4CE115
EP4CE10
EP4CE15
EP4CE22
EP4CE30
EP4CE40
EP4CE55
EP4CE75
EP4CE6
Device
164-MBGA
256-MBGA
256-UBGA
256-UBGA
256-UBGA
256-UBGA
484-UBGA
484-UBGA
484-UBGA
256-FBGA
256-FBGA
256-FBGA
484-FBGA
256-FBGA
324-FBGA
484-FBGA
780-FBGA
324-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
144-EQPF
144-EQPF
144-EQPF
144-EQPF
I/O
Bank
(1)
8 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 4 4 4 4 4 4 4 2 2 2 3 3 3 3 3
Note to Table 6–4:
(1) User I/O pins are used as inputs or outputs; clock input pins are used as inputs only; clock output pins are used as output only.
Table 6–5. Number of VREF Pins Per I/O Bank for Cyclone IV GX Devices
Device 4CGX15 4CGX22 4CGX30 4CGX50 4CGX75 4CGX110 4CGX150
169-FBGA
169-FBGA
324-FBGA
169-FBGA
324-FBGA
484-FBGA
484-FBGA
672-FBGA
484-FBGA
672-FBGA
484-FBGA
672-FBGA
896-FBGA
484-FBGA
672-FBGA
896-FBGA
I/O Bank
(1)
3 1 1 1 3 3 3 3 3
4 1 1 1 3 3 3 3 3
5 1 1 1 3 3 3 3 3
6 1 1 1 3 3 3 3 3
7 1 1 1 3 3 3 3 3
8 (2) 1 1 1 3 3 3 3 3
Notes to Table 6–5:
(1) User I/O pins are used as inputs or outputs; clock input pins are used as inputs only; clock output pins are used as output only.
(2) Bank 9 does not have VREF pin. If input pins with VREF I/O standards are used in bank 9 during user mode, it shares the VREF pin in bank 8.
Cyclone IV Device Handbook,
Each Cyclone IV I/O bank has its own VCCIO pins. Each I/O bank can support only one VCCIO setting from among 1.2, 1.5, 1.8,
2.5, 3.0, or 3.3 V. Any number of supported single-ended or differential standards can be simultaneously supported in a single
I/O bank, as long as they use the same VCCIO levels for input and output pins.
Volume 1
6–21
6–22 Chapter 6: I/O Features in Cyclone IV Devices
I/O Banks
1 The PCI clamping diode is enabled by default in the Quartus II software for input
signals with bank VCCIO at 2.5, 3.0, or 3.3 V.
f For more information about Cyclone IV devices external memory interface support,
refer to the External Memory Interfaces in Cyclone IV Devices chapter.
Pad Placement
Altera recommends that you create a Quartus II design, enter your device I/O
assignments and compile your design to validate your pin placement. The Quartus II
software checks your pin connections with respect to the I/O assignment and
placement rules to ensure proper device operation. These rules depend on device
density, package, I/O assignments, voltage assignments and other factors that are not
fully described in this chapter.
f For more information about how the Quartus II software checks I/O restrictions, refer
to the I/O Management chapter in volume 2 of the Quartus II Handbook.
DC Guidelines
For the Quartus II software to automatically check for illegally placed pads according
to the DC guidelines, set the DC current sink or source value to Electromigration
Current assignment on each of the output pins that are connected to the external
resistive load.
The programmable current strength setting has an impact on the amount of DC
current that an output pin can source or sink. Determine if the current strength setting
is sufficient for the external resistive load condition on the output pin.
Table 6–6 and Table 6–7 summarize which I/O banks support these I/O standards in
the Cyclone IV device family.
You can use I/O pins and internal logic to implement a high-speed differential
interface in Cyclone IV devices. Cyclone IV devices do not contain dedicated
serialization or deserialization circuitry. Therefore, shift registers, internal
phase-locked loops (PLLs), and I/O cells are used to perform serial-to-parallel
conversions on incoming data and parallel-to-serial conversion on outgoing data. The
differential interface data serializers and deserializers (SERDES) are automatically
constructed in the core logic elements (LEs) with the Quartus II software ALTLVDS
megafunction.
EP4CE115
EP4CE10
EP4CE15
EP4CE22
EP4CE30
EP4CE40
EP4CE55
EP4CE75
EP4CE6
Device
Numbers of Differential
Channels (1), (2)
164-MBGA
256-MBGA
256-UBGA
256-UBGA
256-UBGA
256-UBGA
484-UBGA
484-UBGA
484-UBGA
256-FBGA
256-FBGA
256-FBGA
484-FBGA
256-FBGA
324-FBGA
484-FBGA
780-FBGA
324-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
484-FBGA
780-FBGA
144-EQPF
144-EQPF
144-EQPF
144-EQPF
User
91 179 179 91 179 179 81 89 165 165 165 343 79 153 153 193 328 532 193 328 328 532 324 324 374 292 292 426 280 528
I/O (3)
User I/O
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
Banks
LVDS (4), (
6) 8 23 23 8 23 23 6 8 21 21 21 67 7 20 20 30 60 112 30 60 60 112 62 62 70 54 54 79 50 103
Emulated
LVDS (5), ( 13 43 43 13 43 43 12 13 32 32 32 70 10 32 32 38 64 112 38 64 64 112 70 70 90 56 56 99 53 127
6)
(6) LVDS input and output buffers are sharing the same p and n pins. One LVDS I/O channel can only be either transmitter or receiver at a time.
Volume 1
6–27
6–28 Chapter 6: I/O Features in Cyclone IV Devices
High-Speed I/O Standards Support
Numbers of
169-FBGA
169-FBGA
324-FBGA
169-FBGA
324-FBGA
484-FBGA
484-FBGA
672-FBGA
484-FBGA
672-FBGA
484-FBGA
672-FBGA
896-FBGA
484-FBGA
672-FBGA
896-FBGA
Differential
Channels
(1), (2)
User I/O (3) 72 72 150 72 150 290 290 310 290 310 270 393 475 270 393 475
11 11 11 11 11 11 11 11 11 11
User I/O 11
9 (4) 9 (4) 9 (4) 9 (4) 9 (4) (5)
(5), (5), (5), (5), (5), (5), (5), (5), (5), (5),
banks (6) (6) (6) (6) (6) (6) (6) (6) (6) (6)
Table 6–10. Cyclone IV GX HSSI REFCLK I/O Standard Support Using GPIO CLKIN Pins (1), (2)
Differential Not
LVPECL All Off chip 2.5V Yes No 3A, 3B, 8A, 8B
AC (Need supported
off chip Not
All Off chip 2.5V Yes No 3A, 3B, 8A, 8B
resistor to supported
1.2V, 1.5V, restore Not
All VCM) Off chip 2.5V Yes No 3A, 3B, 8A, 8B
3.3V PCML supported
Not
All Off chip 2.5V Yes No 3A, 3B, 8A, 8B
supported
Differential Not
HCSL PCIe Off chip 2.5V Yes No 3A, 3B, 8A, 8B
DC supported
Notes to Table 6–10:
(1) The EP4CGX15, EP4CGX22, and EP4CGX30 devices have two pairs of dedicated clock input pins in banks 3A and 8A for HSSI input reference
clock. I/O banks 3B and 8B are not available in EP4CGX15, EP4CGX22, and EP4CGX30 devices.
(2) The EP4CGX50, EP4CGX75, EP4CGX110, and EP4CGX150 devices have four pairs of dedicated clock input pins in banks 3A, 3B, 8A, and 8B
for HSSI input or single-ended clock input.
f For more information about the AC-coupled termination scheme for the HSSI
reference clock, refer to the Cyclone IV Transceivers Architecture chapter.
f For LVDS I/O standard electrical specifications in Cyclone IV devices, refer to the
Cyclone IV Device Datasheet chapter.
Figure 6–12. Cyclone IV Devices LVDS Interface with True Output Buffer on the Right I/O Banks
Cyclone IV Device
Figure 6–13 shows a point-to-point LVDS interface with Cyclone IV devices LVDS
using two single-ended output buffers and external resistors.
Figure 6–13. LVDS Interface with External Resistor Network on the Top and Bottom I/O Banks (1)
Cyclone IV Device
Emulated
LVDS Transmitter
Resistor Network LVDS Receiver
RS
50 Ω
RP 100 Ω
50 Ω
RS
Figure 6–14 shows a typical BLVDS topology with multiple transmitter and receiver
pairs.
Figure 6–14. BLVDS Topology with Cyclone IV Devices Transmitters and Receivers
VCC VCC
100 kΩ 100 kΩ
50 Ω 50 Ω 50 Ω 50 Ω
RT RT
50 Ω 50 Ω 50 Ω 50 Ω
100 kΩ 100 k Ω
50 Ω
50 Ω
50 Ω
50 Ω
50 Ω
50 Ω
GND GND
RS
RS
RS
RS
RS
RS
Cyclone IV Device Family
OE
OE
Output Input Output Input Output Input
Data Data Data Data Data Data
The BLVDS I/O standard is supported on the top, bottom, and right I/O banks of
Cyclone IV devices. The BLVDS transmitter uses two single-ended output buffers
with the second output buffer programmed as inverted, while the BLVDS receiver
uses a true LVDS input buffer. The transmitter and receiver share the same pins. An
output-enabled (OE) signal is required to tristate the output buffers when the LVDS
input buffer receives a signal.
1 Altera recommends that you perform simulation using the IBIS model while
considering factors such as bus loading, termination values, and output and input
buffer location on the bus to ensure that the required performance is achieved.
f For more information about BLVDS interface support in Altera devices, refer to
AN 522: Implementing Bus LVDS Interface in Supported Altera Device Families.
f For Cyclone IV devices RSDS, mini-LVDS, and PPDS output electrical specifications,
refer to the Cyclone IV Device Datasheet chapter.
f For more information about the RSDS I/O standard, refer to the RSDS specification
from the National Semiconductor website (www.national.com).
Figure 6–15. Cyclone IV Devices RSDS, Mini-LVDS, or PPDS Interface with True Output Buffer on
the Right I/O Banks
Cyclone IV Device
True RSDS, Mini-LVDS, RSDS, Mini-LVDS,
or PPDS Transmitter or PPDS Receiver
50 Ω
100 Ω
50 Ω
Figure 6–16 shows an RSDS, mini-LVDS, or PPDS interface with two single-ended
output buffers and external resistors.
Figure 6–16. RSDS, Mini-LVDS, or PPDS Interface with External Resistor Network on the Top and
Bottom I/O Banks (1)
Cyclone IV Device
Emulated RSDS,
Mini-LVDS, or PPDS
Transmitter
Resistor Network
RSDS, Mini-LVDS,
RS or PPDS Receiver
50 Ω
RP 100 Ω
50 Ω
RS
Figure 6–16. RSDS, Mini-LVDS, or PPDS Interface with External Resistor Network on the Top and
Bottom I/O Banks (1)
Note to Figure 6–16:
(1) RS and RP values are pending characterization.
A resistor network is required to attenuate the output voltage swing to meet RSDS,
mini-LVDS, and PPDS specifications when using emulated transmitters. You can
modify the resistor network values to reduce power or improve the noise margin.
The resistor values chosen must satisfy Equation 6–1.
RP
R S -------
2-
------------------- = 50
RP
R S + -------
2
1 Altera recommends that you perform simulations using Cyclone IV devices IBIS
models to validate that custom resistor values meet the RSDS, mini-LVDS, or PPDS
requirements.
It is possible to use a single external resistor instead of using three resistors in the
resistor network for an RSDS interface, as shown in Figure 6–17. The external
single-resistor solution reduces the external resistor count while still achieving the
required signaling level for RSDS. However, the performance of the single-resistor
solution is lower than the performance with the three-resistor network.
Figure 6–17 shows the RSDS interface with a single resistor network on the top and
bottom I/O banks.
Figure 6–17. RSDS Interface with Single Resistor Network on the Top and Bottom I/O Banks (1)
Cyclone IV Device
Emulated
RSDS Transmitter
Single Resistor Network RSDS Receiver
50 Ω
RP 100 Ω
50 Ω
f For the LVPECL I/O standard electrical specification, refer to the Cyclone IV Device
Datasheet chapter.
AC coupling is required when the LVPECL common mode voltage of the output
buffer is higher than the Cyclone IV devices LVPECL input common mode voltage.
Figure 6–18 shows the AC-coupled termination scheme. The 50- resistors used at the
receiver are external to the device. DC-coupled LVPECL is supported if the LVPECL
output common mode voltage is in the Cyclone IV devices LVPECL input buffer
specification (refer to Figure 6–19).
0.1 µF
Z0 = 50 Ω
VICM 50 Ω
50 Ω
Z0 = 50 Ω
0.1 µF
50 Ω
100 Ω
50 Ω
1 Figure 6–8 on page 6–15 shows the differential SSTL Class I and Class II interface.
1 Figure 6–7 on page 6–15 shows the differential HSTL Class I and Class II interface.
Programmable Pre-Emphasis
The programmable pre-emphasis boosts the high frequencies of the output signal to
compensate the frequency-dependant attenuation of the transmission line to
maximize the data eye opening at the far-end receiver. Without pre-emphasis, the
output current is limited by the VOD specification and the output impedance of the
transmitter. At high frequency, the slew rate may not be fast enough to reach full VOD
before the next edge; this may lead to pattern-dependent jitter. With pre-emphasis, the
output current is momentarily boosted during switching to increase the output slew
rate. The overshoot produced by this extra switching current is different from the
overshoot caused by signal reflection. This overshoot happens only during switching,
and does not produce ringing.
The Quartus II software allows two settings for programmable pre-emphasis
control—0 and 1, in which 0 is pre-emphasis off and 1 is pre-emphasis on. The default
setting is 1. The amount of pre-emphasis needed depends on the amplification of the
high-frequency components along the transmission line. You must adjust the setting
to suit your designs, as pre-emphasis decreases the amplitude of the low-frequency
component of the output signal.
Figure 6–20 shows the differential output signal with pre-emphasis.
Overshoot
VOD
Negative channel (n)
Undershoot
External
Input Clock
Time Unit Interval (TUI)
Internal Clock
Figure 6–22 shows the Cyclone IV devices high-speed I/O timing budget.
Design Guidelines
This section provides guidelines for designing with Cyclone IV devices.
f For PCB layout guidelines, refer to AN 224: High-Speed Board Layout Guidelines and
AN 315: Guidelines for Designing High-Speed FPGA PCBs.
Software Overview
Cyclone IV devices high-speed I/O system interfaces are created in core logic by a
Quartus II software megafunction because they do not have a dedicated circuit for the
SERDES. Cyclone IV devices use the I/O registers and LE registers to improve the
timing performance and support the SERDES. The Quartus II software allows you to
design your high-speed interfaces using ALTLVDS megafunction. This megafunction
1 When you use Cyclone IV devices with the ALTLVDS megafunction, the interface
always sends the MSB of your parallel data first.
f For more details about designing your high-speed I/O systems interfaces using the
ALTLVDS megafunction, refer to the ALTLVDS Megafunction User Guide and the
Quartus II Handbook.
CYIV-51007-2.6
This chapter describes the memory interface pin support and the external memory
interface features of Cyclone® IV devices.
In addition to an abundant supply of on-chip memory, Cyclone IV devices can easily
interface with a broad range of external memory devices, including DDR2 SDRAM,
DDR SDRAM, and QDR II SRAM. External memory devices are an important system
component of a wide range of image processing, storage, communications, and
general embedded applications.
1 Altera recommends that you construct all DDR2 or DDR SDRAM external memory
interfaces using the Altera® ALTMEMPHY megafunction. You can implement the
controller function using the Altera DDR2 or DDR SDRAM memory controllers,
third-party controllers, or a custom controller for unique application needs.
Cyclone IV devices support QDR II interfaces electrically, but Altera does not supply
controller or physical layer (PHY) megafunctions for QDR II interfaces.
f For more information about supported maximum clock rate, device and pin planning,
IP implementation, and device termination, refer to the External Memory Interface
Handbook.
© 2016 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
7–2 Chapter 7: External Memory Interfaces in Cyclone IV Devices
Cyclone IV Devices Memory Interfaces Pin Support
Figure 7–1 shows the block diagram of a typical external memory interface data path
in Cyclone IV devices.
DQS/CQ/CQn
DQ
OE IOE
OE IOE
Register Register
IOE
IOE
Register
Register
VCC IOE
DataA IOE LE
Register Register Register
GND IOE
Register
DataB IOE LE LE
Register Register Register
System Clock
PLL
f For more information about implementing complete external memory interfaces, refer
to the External Memory Interface Handbook.
f For more information about pin utilization, refer to Volume 2: Device, Pin, and Board
Layout Guidelines of the External Memory Interface Handbook.
1 In QDR II SRAM, the Q read-data group must be placed at a different V REF bank
location from the D write-data group, command, or address pins.
In Cyclone IV devices, DQS is used only during write mode in DDR2 and
DDR SDRAM interfaces. Cyclone IV devices ignore DQS as the read-data strobe
because the PHY internally generates the read capture clock for read mode. However,
you must connect the DQS pin to the DQS signal in DDR2 and DDR SDRAM interfaces,
or to the CQ signal in QDR II SRAM interfaces.
f When you use the Altera Memory Controller MegaCore ® function, the PHY is
instantiated for you. For more information about the memory interface data path,
refer to the External Memory Interface Handbook.
All I/O banks in Cyclone IV devices can support DQ and DQS signals with DQ-bus
modes of ×8, ×9, ×16, ×18, ×32, and ×36 except Cyclone IV GX devices that do not
support left I/O bank interface. DDR2 and DDR SDRAM interfaces use ×8 mode DQS
group regardless of the interface width. For a wider interface, you can use multiple ×8
DQ groups to achieve the desired width requirement.
In the ×9, ×18, and ×36 modes, a pair of complementary DQS pins (CQ and CQ#)
drives up to 9, 18, or 36 DQ pins, respectively, in the group, to support one, two, or four
parity bits and the corresponding data bits. The ×9, ×18, and ×36 modes support the
QDR II memory interface. CQ# is the inverted read-clock signal that is connected to
the complementary data strobe (DQS or CQ#) pin. You can use any unused DQ pins as
regular user I/O pins if they are not used as memory interface signals.
f For more information about unsupported DQS and DQ groups of the Cyclone IV
transceivers that run at 2.97 Gbps data rate, refer to the Cyclone IV Device Family Pin
Connection Guidelines.
Table 7–1 lists the number of DQS or DQ groups supported on each side of the
Cyclone IV GX device.
Table 7–1. Cyclone IV GX Device DQS and DQ Bus Mode Support for Each Side of the Device
Number Number Number Number Number Number
Device Package Side ×8 ×9 ×16 ×18 ×32 ×36
Groups Groups Groups Groups Groups Groups
Right 1 0 0 0 — —
EP4CGX15 169-pin FBGA Top (1) 1 0 0 0 — —
Bottom (2) 1 0 0 0 — —
Right 1 0 0 0 — —
169-pin FBGA Top (1) 1 0 0 0 — —
Bottom (2) 1 0 0 0 — —
Right 2 2 1 1 — —
EP4CGX22
324-pin FBGA Top 2 2 1 1 — —
EP4CGX30
Bottom 2 2 1 1 — —
Right 4 2 2 2 1 1
484-pin FBGA (3) Top 4 2 2 2 1 1
Bottom 4 2 2 2 1 1
Right 4 2 2 2 1 1
484-pin FBGA Top 4 2 2 2 1 1
EP4CGX50 Bottom 4 2 2 2 1 1
EP4CGX75 Right 4 2 2 2 1 1
672-pin FBGA Top 4 2 2 2 1 1
Bottom 4 2 2 2 1 1
Right 4 2 2 2 1 1
484-pin FBGA Top 4 2 2 2 1 1
Bottom 4 2 2 2 1 1
Right 4 2 2 2 1 1
EP4CGX110
672-pin FBGA Top 4 2 2 2 1 1
EP4CGX150
Bottom 4 2 2 2 1 1
Right 6 3 2 2 1 1
896-pin FBGA Top 6 3 3 3 1 1
Bottom 6 3 3 3 1 1
Notes to Table 7–1:
(1) Some of the DQ pins can be used as RUP and RDN pins. You cannot use these groups if you are using these pins as RUP and RDN pins for
OCT calibration.
(2) Some of the DQ pins can be used as RUP pins while the DM pins can be used as RDN pins. You cannot use these groups if you are using the
RUP and RDN pins for OCT calibration.
(3) Only available for EP4CGX30 device.
Table 7–2 lists the number of DQS or DQ groups supported on each side of the
Cyclone IV E device.
Table 7–2. Cyclone IV E Device DQS and DQ Bus Mode Support for Each Side of the Device (Part 1 of 3)
Number Number Number Number Number Number
Device Package Side ×8 ×9 ×16 ×18 ×32 ×36
Groups Groups Groups Groups Groups Groups
Left 0 0 0 0 — —
Right 0 0 0 0 — —
144-pin EQFP
Bottom (1), (3) 1 0 0 0 — —
Top (1), (4) 1 0 0 0 — —
Left (1) 1 1 0 0 — —
EP4CE6 Right (2) 1 1 0 0 — —
256-pin UBGA
EP4CE10 Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left (1) 1 1 0 0 — —
Right (2) 1 1 0 0 — —
256-pin FBGA
Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left 0 0 0 0 — —
Right 0 0 0 0 — —
144-pin EQFP
Bottom (1), (3) 1 0 0 0 — —
Top (1), (4) 1 0 0 0 — —
Left 0 0 0 0 — —
Right 0 0 0 0 — —
164-pin MBGA
Bottom (1), (3) 1 0 0 0 — —
Top (1), (4) 1 0 0 0 — —
Left 1 1 0 0 — —
Right 1 1 0 0 — —
256-pin MBGA
Bottom (1), (3) 2 2 1 1 — —
Top (1), (4) 2 2 1 1 — —
EP4CE15
Left (1) 1 1 0 0 — —
Right (2) 1 1 0 0 — —
256-pin UBGA
Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left (1) 1 1 0 0 — —
Right (2) 1 1 0 0 — —
256-pin FBGA
Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left 4 4 2 2 1 1
Right 4 4 2 2 1 1
484-pin FBGA
Bottom 4 4 2 2 1 1
Top 4 4 2 2 1 1
Table 7–2. Cyclone IV E Device DQS and DQ Bus Mode Support for Each Side of the Device (Part 2 of 3)
Number Number Number Number Number Number
Device Package Side ×8 ×9 ×16 ×18 ×32 ×36
Groups Groups Groups Groups Groups Groups
Left 0 0 0 0 — —
Right 0 0 0 0 — —
144-pin EQFP
Bottom (1), (3) 1 0 0 0 — —
Top (1), (4) 1 0 0 0 — —
Left (1) 1 1 0 0 — —
Right (2) 1 1 0 0 — —
EP4CE22 256-pin UBGA
Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left (1) 1 1 0 0 — —
Right (2) 1 1 0 0 — —
256-pin FBGA
Bottom 2 2 1 1 — —
Top 2 2 1 1 — —
Left (1) 2 2 1 1 0 0
Right (2) 2 2 1 1 0 0
EP4CE30 324-pin FBGA
Bottom 2 2 1 1 0 0
Top 2 2 1 1 0 0
Left 4 4 2 2 1 1
Right 4 4 2 2 1 1
484-pin FBGA
Bottom 4 4 2 2 1 1
EP4CE30 Top 4 4 2 2 1 1
EP4CE115 Left 4 4 2 2 1 1
Right 4 4 2 2 1 1
780-pin FBGA
Bottom 6 6 2 2 1 1
Top 6 6 2 2 1 1
Left 2 2 1 1 0 0
Right 2 2 1 1 0 0
EP4CE40 324-pin FBGA
Bottom 2 2 1 1 0 0
Top 2 2 1 1 0 0
Table 7–2. Cyclone IV E Device DQS and DQ Bus Mode Support for Each Side of the Device (Part 3 of 3)
Number Number Number Number Number Number
Device Package Side ×8 ×9 ×16 ×18 ×32 ×36
Groups Groups Groups Groups Groups Groups
Left 4 4 2 2 1 1
Right 4 4 2 2 1 1
484-pin UBGA
Bottom 4 4 2 2 1 1
Top 4 4 2 2 1 1
Left 4 4 2 2 1 1
EP4CE40
Right 4 4 2 2 1 1
EP4CE55 484-pin FBGA
Bottom 4 4 2 2 1 1
EP4CE75
Top 4 4 2 2 1 1
Left 4 4 2 2 1 1
Right 4 4 2 2 1 1
780-pin FBGA
Bottom 6 6 2 2 1 1
Top 6 6 2 2 1 1
Notes to Table 7–2:
(1) Some of the DQ pins can be used as RUP and RDN pins. You cannot use these groups if you are using these pins as RUP and RDN pins for
OCT calibration.
(2) Some of the DQ pins can be used as RUP pins while the DM pins can be used as RDN pins. You cannot use these groups if you are using the
RUP and RDN pins for OCT calibration.
(3) There is no DM pin support for these groups.
(4) PLLCLKOUT3n and PLLCLKOUT3p pins are shared with the DQ or DM pins to gain ×8 DQ group. You cannot use these groups if you are using
PLLCLKOUT3n and PLLCLKOUT3p.
f For more information about device package outline, refer to the Device Packaging
Specifications webpage.
DQS pins are listed in the Cyclone IV pin tables as DQSXY, in which X indicates the DQS
grouping number and Y indicates whether the group is located on the top (T), bottom
(B), or right (R) side of the device. Similarly, the corresponding DQ pins are marked as
DQXY, in which the X denotes the DQ grouping number and Y denotes whether the
group is located on the top (T), bottom (B), or right (R) side of the device. For example,
DQS2T indicates a DQS pin belonging to group 2, located on the top side of the device.
Similarly, the DQ pins belonging to that group is shown as DQ2T.
1 Each DQ group is associated with its corresponding DQS pins, as defined in the Cyclone
IV pin tables. For example:
■ For DDR2 or DDR SDRAM, ×8 DQ group DQ3B[7..0] pins are associated with
the DQS3B pin (same 3B group index)
■ For QDR II SRAM, ×9 Q read-data group DQ3T[8..0] pins are associated with
DQS0T/CQ0T and DQS1T/CQ0T# pins (same 0T group index)
The Quartus® II software issues an error message if a DQ group is not placed properly
with its associated DQS.
Figure 7–2 shows the location and numbering of the DQS, DQ, or CQ# pins in the
Cyclone IV GX I/O banks.
Figure 7–2. DQS, CQ, or CQ# Pins in Cyclone IV GX I/O Banks (1)
DQS1T/CQ1T#
DQS3T/CQ3T#
DQS5T/CQ5T#
DQS4T/CQ5T
DQS2T/CQ3T
DQS0T/CQ1T
I/O Bank 9 I/O Bank 8B I/O Bank 8 I/O Bank 8A I/O Bank 7
Transceiver Block (QL1)
DQS4R/CQ5R
I/O Bank 6
DQS2R/CQ3R
DQS0R/CQ1R
Cyclone IV GX Device
Transceiver Block (QL0)
DQS1R/CQ1R#
I/O Bank 5
DQS3R/CQ3R#
DQS5R/CQ5R#
DQS3B/CQ3B#
DQS5B/CQ5B#
DQS4B/CQ5B
DQS2B/CQ3B
DQS0B/CQ1B
Note to Figure 7–2:
(1) The DQS, CQ, or CQ# pin locations in this diagram apply to all packages in Cyclone IV GX devices except devices in
169-pin FBGA and 324-pin FBGA.
Figure 7–3 shows the location and numbering of the DQS, DQ, or CQ# pins in I/O banks
of the Cyclone IV GX device in the 324-pin FBGA package only.
Figure 7–3. DQS, CQ, or CQ# Pins for Cyclone IV GX Devices in the 324-Pin FBGA Package
DQS1T/CQ0T#
DQS3T/CQ1T#
DQS2T/CQ1T
DQS0T/CQ0T
I/O Bank 9 I/O Bank 8 I/O Bank 8A I/O Bank 7
DQS2R/CQ1R
I/O Bank 6
Transceiver Block (QL1)
DQS0R/CQ0R
Cyclone IV GX Device
324-pin FBGA Package
DQS1R/CQ0R#
I/O Bank 5
DQS3R/CQ1R#
DQS3B/CQ1B#
DQS2B/CQ1B
DQS0B/CQ0B
Figure 7–4 shows the location and numbering of the DQS, DQ, or CQ# pins in I/O
banks of the Cyclone IV GX device in the 169-pin FBGA package.
Figure 7–4. DQS, CQ, or CQ# Pins for Cyclone IV GX Devices in the 169-Pin FBGA Package
DQS1T/CQ0T#
DQS0T/CQ0T
DQS0R/CQ0R
Transceiver Block (QL1)
Cyclone IV GX Device
169-pin FBGA Package
I/O Bank 5
DQS1R/CQ0R#
DQS0B/CQ0B
Figure 7–5 shows the location and numbering of the DQS, DQ, or CQ# pins in the
Cyclone IV E device I/O banks.
Figure 7–5. DQS, CQ, or CQ# Pins in Cyclone IV E I/O Banks (1)
DQS1T/CQ1T#
DQS3T/CQ3T#
DQS5T/CQ5T#
DQS4T/CQ5T
DQS2T/CQ3T
DQS0T/CQ1T
I/O Bank 8 I/O Bank 7
DQS2L/CQ3L DQS2R/CQ3R
I/O Bank 6
I/O Bank 1
DQS0R/CQ1R
DQS0L/CQ1L
Cyclone IV E Device
DQS1R/CQ1R#
DQS1L/CQ1L#
I/O Bank 2
I/O Bank 5
DQS3L/CQ3L# DQS3R/CQ3R#
DQS4B/CQ5B
DQS2B/CQ3B
DQS0B/CQ1B
DQS1B/CQ1B#
DQS5B/CQ5B#
Figure 7–6 shows the location and numbering of the DQS, DQ, or CQ# pins in I/O
banks of the Cyclone IV E device in the 144-pin EQFP and 164-pin MBGA packages.
Figure 7–6. DQS, CQ, or CQ# Pins for Cyclone IV E Devices in the 144-Pin EQFP and 164-pin
MBGA Packages
DQS1T/CQ1T#
DQS0T/CQ1T
I/O Bank 8 I/O Bank 7
DQS0L/CQ1L DQS0R/CQ1R
I/O Bank 6
I/O Bank 1
Cyclone IV E Devices
in 144-pin EQFP and
164-pin MBGA
I/O Bank 5
I/O Bank 2
DQS1L/CQ1L# DQS1R/CQ1R#
DQS0B/CQ1B
In Cyclone IV devices, the ×9 mode uses the same DQ and DQS pins as the ×8 mode, and
one additional DQ pin that serves as a regular I/O pin in the ×8 mode. The ×18 mode
uses the same DQ and DQS pins as ×16 mode, with two additional DQ pins that serve as
regular I/O pins in the ×16 mode. Similarly, the ×36 mode uses the same DQ and DQS
pins as the ×32 mode, with four additional DQ pins that serve as regular I/O pins in
the ×32 mode. When not used as DQ or DQS pins, the memory interface pins are
available as regular I/O pins.
In Cyclone IV devices, the DM pins are preassigned in the device pinouts. The
Quartus II Fitter treats the DQ and DM pins in a DQS group equally for placement
purposes. The preassigned DQ and DM pins are the preferred pins to use.
Some DDR2 SDRAM and DDR SDRAM devices support error correction coding
(ECC), a method of detecting and automatically correcting errors in data
transmission. In 72-bit DDR2 or DDR SDRAM, there are eight ECC pins and 64 data
pins. Connect the DDR2 and DDR SDRAM ECC pins to a separate DQS or DQ group in
Cyclone IV devices. The memory controller needs additional logic to encode and
decode the ECC data.
1 Cyclone IV devices do not support QDR II SRAM in the burst length of two.
1 CK/CK# pins must be placed on differential I/O pins (DIFFIO in Pin Planner) and in
the same bank or on the same side as the data pins. You can use either side of the
device for wraparound interfaces. As seen in the Pin Planner Pad View, CK0 cannot be
located in the same row and column pad group as any of the interfacing DQ pins.
f For more information about memory clock pin placement, refer to Volume 2: Device,
Pin, and Board Layout Guidelines of the External Memory Interface Handbook.
dataout_h LE DQ
Register
Input Register A I
neg_reg_out
dataout_l LE LE
Register Register
Capture Clock
PLL
These DDR input registers are implemented in the core of devices. The DDR data is
first fed to two registers, input register AI and input register BI.
■ Input register AI captures the DDR data present during the rising edge of the clock
■ Input register BI captures the DDR data present during the falling edge of the clock
■ Register CI aligns the data before it is synchronized with the system clock
The data from the DDR input register is fed to two registers, sync_reg_h and
sync_reg_l, then the data is typically transferred to a FIFO block to synchronize the
two data streams to the rising edge of the system clock. Because the read-capture
clock is generated by the PLL, the read-data strobe signal (DQS or CQ) is not used
during read operation in Cyclone IV devices; hence, postamble is not a concern in this
case.
Output Enable
IOE
Register
Output Enable
Register AOE
data1
data0
IOE
Register
Output Enable
Register BOE
datain_l
IOE
Register
data0 DQ or DQS
Output Register AO
data1
datain_h
IOE
Register
-90° Shifted Clock
®
Output Register BO
The two DDR output registers are located in the I/O element (IOE) block. Two serial
data streams routed through datain_l and datain_h, are fed into two registers,
output register Ao and output register Bo, respectively, on the same clock edge.
The output from output register Ao is captured on the falling edge of the clock, while
the output from output register Bo is captured on the rising edge of the clock. The
registered outputs are multiplexed by the common clock to drive the DDR output pin
at twice the data rate.
The DDR output enable path has a similar structure to the DDR output path in the
IOE block. The second output enable register provides the write preamble for the DQS
strobe in DDR external memory interfaces. This active-low output enable register
extends the high-impedance state of the pin by half a clock cycle to provide the
external memory’s DQS write preamble time specification.
f For more information about Cyclone IV IOE registers, refer to the Cyclone IV Device
I/O Features chapter.
Figure 7–9 illustrates how the second output enable register extends the DQS
high-impedance state by half a clock cycle during a write operation.
Figure 7–9. Extending the OE Disable by Half a Clock Cycle for a Write Transaction (1)
System clock
(outclock for DQS)
Write Clock
(outclock for DQ,
-90o phase shifted
from System Clock)
datain_h D0 D2
(from logic array)
datain_I
D1 D3
(from logic array)
OE for DQ
(from logic array)
DQ D0 D1 D2 D3
f For more information about the Cyclone IV devices OCT calibration block, refer to the
Cyclone IV Device I/O Features chapter.
PLL
When interfacing with external memory, the PLL is used to generate the memory
system clock, the write clock, the capture clock and the logic-core clock. The system
clock generates the DQS write signals, commands, and addresses. The write-clock is
shifted by -90° from the system clock and generates the DQ signals during writes. You
can use the PLL reconfiguration feature to calibrate the read-capture phase shift to
balance the setup and hold margins.
1 The PLL is instantiated in the ALTMEMPHY megafunction. All outputs of the PLL are
used when the ALTMEMPHY megafunction is instantiated to interface with external
memories. PLL reconfiguration is used in the ALTMEMPHY megafunction to
calibrate and track the read-capture phase to maintain the optimum margin.
f For more information about Cyclone IV PLL, refer to the Clock Networks and PLLs in
Cyclone IV Devices chapter.
Revision History
Refer to each chapter for its own specific revision history. For information on when
each chapter was updated, refer to the Chapter Revision Dates section, which appears
in the complete handbook.
CYIV-51008-1.7
This chapter describes the configuration and remote system upgrades in Cyclone® IV
devices. Cyclone IV (Cyclone IV GX and Cyclone IV E) devices use SRAM cells to
store configuration data. You must download the configuration data to Cyclone IV
devices each time the device powers up because SRAM memory is volatile.
Cyclone IV devices are configured using one of the following configuration schemes:
■ Active serial (AS)
■ Active parallel (AP) (supported in Cyclone IV E devices only)
■ Passive serial (PS)
■ Fast passive parallel (FPP) (not supported in EP4CGX15, EP4CGX22, and
EP4CGX30 [except for the F484 package] devices)
■ JTAG
Cyclone IV devices offer the following configuration features:
■ Configuration data decompression (“Configuration Data Decompression” on
page 8–2)
■ Remote system upgrade (“Remote System Upgrade” on page 8–69)
System designers face difficult challenges, such as shortened design cycles, evolving
standards, and system deployments in remote locations. Cyclone IV devices help
overcome these challenges with inherent re-programmability and dedicated circuitry
to perform remote system upgrades. Remote system upgrades help deliver feature
enhancements and bug fixes without costly recalls, reduced time-to-market, and
extended product life.
Configuration
This section describes Cyclone IV device configuration and includes the following
topics:
■ “Configuration Features” on page 8–2
■ “Configuration Requirement” on page 8–3
■ “Configuration Process” on page 8–6
■ “Configuration Scheme” on page 8–8
■ “AS Configuration (Serial Configuration Devices)” on page 8–10
■ “AP Configuration (Supported Flash Memories)” on page 8–21
■ “PS Configuration” on page 8–32
© 2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
8–2 Chapter 8: Configuration and Remote System Upgrades in Cyclone IV Devices
Configuration
Configuration Features
Table 8–1 lists the configuration methods you can use in each configuration scheme.
Table 8–1. Configuration Features in Cyclone IV Devices
Configuration Scheme Configuration Method Decompression Remote System Upgrade (1)
When you enable compression, the Quartus II software generates configuration files
with compressed configuration data. This compressed file reduces the storage
requirements in the configuration device or flash memory and decreases the time
required to send the bitstream to the Cyclone IV device. The time required by a
Cyclone IV device to decompress a configuration file is less than the time required to
send the configuration data to the device. There are two methods for enabling
compression for the Cyclone IV device bitstreams in the Quartus II software:
■ Before design compilation (through the Compiler Settings menu)
■ After design compilation (through the Convert Programming Files dialog box)
To enable compression in the compiler settings of the project in the Quartus II
software, perform the following steps:
1. On the Assignments menu, click Device. The Settings dialog box appears.
2. Click Device and Pin Options. The Device and Pin Options dialog box appears.
Figure 8–1. Compressed and Uncompressed Configuration Data in the Same Configuration File
Serial Data
Serial Configuration
Device
Compressed VCC Uncompressed
Decompression
Controller 10 kΩ
Cyclone IV Cyclone IV
Device Device
nCE nCEO nCE nCEO Not Connected (N.C.)
GND
Configuration Requirement
This section describes Cyclone IV device configuration requirement and includes the
following topics:
■ “Power-On Reset (POR) Circuit” on page 8–4
■ “Configuration File Size” on page 8–4
■ “Power Up” on page 8–6
1 If your system exceeds the fast or standard POR time, you must hold nCONFIG low
until all the power supplies are stable.
f For more information about the POR specifications, refer to the Cyclone IV Device
Datasheet.
f For more information about the wake-up time and POR circuit, refer to the Power
Requirements for Cyclone IV Devices chapter.
Table 8–2. Uncompressed Raw Binary File (.rbf) Sizes for Cyclone IV Devices (Part 1 of 2)
Device Data Size (bits)
EP4CE6 2,944,088
EP4CE10 2,944,088
EP4CE15 4,086,848
EP4CE22 5,748,552
Cyclone IV E EP4CE30 9,534,304
EP4CE40 9,534,304
EP4CE55 14,889,560
EP4CE75 19,965,752
EP4CE115 28,571,696
Table 8–2. Uncompressed Raw Binary File (.rbf) Sizes for Cyclone IV Devices (Part 2 of 2)
Device Data Size (bits)
EP4CGX15 3,805,568
EP4CGX22 7,600,040
7,600,040
EP4CGX30
22,010,888 (1)
Cyclone IV GX
EP4CGX50 22,010,888
EP4CGX75 22,010,888
EP4CGX110 39,425,016
EP4CGX150 39,425,016
Note to Table 8–2:
(1) Only for the F484 package.
Use the data in Table 8–2 to estimate the file size before design compilation. Different
configuration file formats, such as Hexadecimal (.hex) or Tabular Text File (.ttf)
formats, have different file sizes. However, for any specific version of the Quartus II
software, any design targeted for the same device has the same uncompressed
configuration file size. If you use compression, the file size varies after each
compilation, because the compression ratio depends on the design.
0.8Z O R E 1.8Z O
Configuration Process
This section describes Cyclone IV device configuration requirements and includes the
following topics:
■ “Power Up” on page 8–6
■ “Reset” on page 8–6
■ “Configuration” on page 8–6
■ “Configuration Error” on page 8–7
■ “Initialization” on page 8–7
■ “User Mode” on page 8–7
f For more information about the Altera® FPGA configuration cycle state machine, refer
to the Configuring Altera FPGAs chapter in volume 1 of the Configuration Handbook.
Power Up
If the device is powered up from the power-down state, VCCINT, VCCA, and V CCIO (for
the I/O banks in which the configuration and JTAG pins reside) must be powered up
to the appropriate level for the device to exit from POR.
Reset
After power up, Cyclone IV devices go through POR. POR delay depends on the MSEL
pin settings, which correspond to your configuration scheme. During POR, the device
resets, holds nSTATUS and CONF_DONE low, and tri-states all user I/O pins (for PS and
FPP configuration schemes only).
1 To tri-state the configuration bus for AS and AP configuration schemes, you must tie
nCE high and nCONFIG low.
The user I/O pins and dual-purpose I/O pins have weak pull-up resistors, which are
always enabled (after POR) before and during configuration. When the device exits
POR, all user I/O pins continue to tri-state. While nCONFIG is low, the device is in
reset. When nCONFIG goes high, the device exits reset and releases the open-drain
nSTATUS pin, which is then pulled high by an external 10-k pull-up resistor. After
nSTATUS is released, the device is ready to receive configuration data and the
configuration stage starts.
f For more information about the value of the weak pull-up resistors on the I/O pins
that are on before and during configuration, refer to the Cyclone IV Device Datasheet
chapter.
Configuration
Configuration data is latched into the Cyclone IV device at each DCLK cycle. However,
the width of the data bus and the configuration time taken for each scheme are
different. After the device receives all the configuration data, the device releases the
open-drain CONF_DONE pin, which is pulled high by an external 10-kpull-up resistor.
A low-to-high transition on the CONF_DONE pin indicates that the configuration is
complete and initialization of the device can begin.
You can begin reconfiguration by pulling the nCONFIG pin low. The nCONFIG pin must
be low for at least 500 ns. When nCONFIG is pulled low, the Cyclone IV device is reset.
The Cyclone IV device also pulls nSTATUS and CONF_DONE low and all I/O pins are
tri-stated. When nCONFIG returns to a logic-high level and nSTATUS is released by the
Cyclone IV device, reconfiguration begins.
Configuration Error
If an error occurs during configuration, Cyclone IV devices assert the nSTATUS signal
low, indicating a data frame error and the CONF_DONE signal stays low. If the
Auto-restart configuration after error option (available in the Quartus II software in
the General tab of the Device and Pin Options dialog box) is turned on, the
Cyclone IV device releases nSTATUS after a reset time-out period (a maximum of
230 s), and retries configuration. If this option is turned off, the system must monitor
nSTATUS for errors and then pulse nCONFIG low for at least 500 ns to restart
configuration.
Initialization
In Cyclone IV devices, the initialization clock source is either the internal oscillator or
the optional CLKUSR pin. By default, the internal oscillator is the clock source for
initialization. If you use the internal oscillator, the device provides itself with enough
clock cycles for proper initialization. When using the internal oscillator, you do not
have to send additional clock cycles from an external source to the CLKUSR pin during
the initialization stage. Additionally, you can use the CLKUSR pin as a user I/O pin.
You also have the flexibility to synchronize initialization of multiple devices or to
delay initialization with the CLKUSR option. The CLKUSR pin allows you to control
when your device enters user mode for an indefinite amount of time. You can turn on
the Enable user-supplied start-up clock (CLKUSR) option in the Quartus II software
in the General tab of the Device and Pin Options dialog box. When you turn on the
Enable user supplied start-up clock option (CLKUSR) option, the CLKUSR pin is the
initialization clock source. Supplying a clock on the CLKUSR pin does not affect the
configuration process. After the configuration data is accepted and CONF_DONE goes
high, Cyclone IV devices require 3,192 clock cycles to initialize properly and enter
user mode.
1 If you use the optional CLKUSR pin and the nCONFIG pin is pulled low to restart
configuration during device initialization, ensure that the CLKUSR pin continues to
toggle when nSTATUS is low (a maximum of 230 s).
User Mode
An optional INIT_DONE pin is available, which signals the end of initialization and the
start of user mode with a low-to-high transition. The Enable INIT_DONE Output
option is available in the Quartus II software in the General tab of the Device and Pin
Options dialog box. If you use the INIT_DONE pin, it is high due to an external 10-k
pull-up resistor when nCONFIG is low and during the beginning of configuration. After
the option bit to enable INIT_DONE is programmed into the device (during the first
frame of configuration data), the INIT_DONE pin goes low. When initialization is
complete, the INIT_DONE pin is released and pulled high. This low-to-high transition
signals that the device has entered user mode. In user mode, the user I/O pins
function as assigned in your design and no longer have weak pull-up resistors.
Configuration Scheme
A configuration scheme with different configuration voltage standards is selected by
driving the MSEL pins either high or low, as shown in Table 8–3, Table 8–4, and
Table 8–5.
1 Hardwire the MSEL pins to VCCA or GND without pull-up or pull-down resistors to
avoid problems detecting an incorrect configuration scheme. Do not drive the MSEL
pins with a microprocessor or another device.
Table 8–3. Configuration Schemes for Cyclone IV GX Devices (EP4CGX15, EP4CGX22, and EP4CGX30 [except for F484
Package])
Configuration Scheme MSEL2 MSEL1 MSEL0 POR Delay Configuration Voltage Standard (V) (1)
1 0 1 Fast 3.3
0 1 1 Fast 3.0, 2.5
AS
0 0 1 Standard 3.3
0 1 0 Standard 3.0, 2.5
1 0 0 Fast 3.3, 3.0, 2.5
PS 1 1 0 Fast 1.8, 1.5
0 0 0 Standard 3.3, 3.0, 2.5
JTAG-based configuration (2) (3) (3) (3) — —
Notes to Table 8–3:
(1) Configuration voltage standard applied to the VCCIO supply of the bank in which the configuration pins reside.
(2) JTAG-based configuration takes precedence over other configuration schemes, which means the MSEL pin settings are ignored.
(3) Do not leave the MSEL pins floating. Connect them to VCCA or GND. These pins support the non-JTAG configuration scheme used in production.
Altera recommends connecting the MSEL pins to GND if your device is only using JTAG configuration.
Table 8–4. Configuration Schemes for Cyclone IV GX Devices (EP4CGX30 [only for F484 package], EP4CGX50,
EP4CGX75, EP4CGX110, and EP4CGX150) (Part 1 of 2)
Configuration Scheme MSEL3 MSEL2 MSEL1 MSEL0 POR Delay Configuration Voltage Standard (V) (1)
1 1 0 1 Fast 3.3
1 0 1 1 Fast 3.0, 2.5
AS
1 0 0 1 Standard 3.3
1 0 1 0 Standard 3.0, 2.5
1 1 0 0 Fast 3.3, 3.0, 2.5
1 1 1 0 Fast 1.8, 1.5
PS
1 0 0 0 Standard 3.3, 3.0, 2.5
0 0 0 0 Standard 1.8, 1.5
0 0 1 1 Fast 3.3, 3.0, 2.5
0 1 0 0 Fast 1.8, 1.5
FPP
0 0 0 1 Standard 3.3, 3.0, 2.5
0 0 1 0 Standard 1.8, 1.5
Table 8–4. Configuration Schemes for Cyclone IV GX Devices (EP4CGX30 [only for F484 package], EP4CGX50,
EP4CGX75, EP4CGX110, and EP4CGX150) (Part 2 of 2)
Configuration Scheme MSEL3 MSEL2 MSEL1 MSEL0 POR Delay Configuration Voltage Standard (V) (1)
1 Smaller Cyclone IV E devices or package options (E144 and F256 packages) do not
have the MSEL[3]pin. The AS Fast POR configuration scheme at 3.0- or 2.5-V
configuration voltage standard and the AP configuration scheme are not supported in
Cyclone IV E devices without the MSEL[3]pin. To configure these devices with other
supported configuration schemes, select MSEL[2..0]pins according to the MSEL
settings in Table 8–5.
1 1 0 1 Fast 3.3
0 1 0 0 Fast 3.0, 2.5
AS
0 0 1 0 Standard 3.3
0 0 1 1 Standard 3.0, 2.5
0 1 0 1 Fast 3.3
0 1 1 0 Fast 1.8
AP 0 1 1 1 Standard 3.3
1 0 1 1 Standard 3.0, 2.5
1 0 0 0 Standard 1.8
1 1 0 0 Fast 3.3, 3.0, 2.5
PS
0 0 0 0 Standard 3.3, 3.0, 2.5
1 1 1 0 Fast 3.3, 3.0, 2.5
FPP
1 1 1 1 Fast 1.8, 1.5
JTAG-based configuration (3) (3) (3) (3) — —
(2)
1 For Cyclone IV E devices, the Quartus II software prohibits you from using the LVDS
I/O standard in I/O Bank 1 when the configuration device I/O voltage is not 2.5 V. If
you need to assign LVDS I/O standard in I/O Bank 1, navigate to
Assignments>Device>Settings>Device and Pin Option>Configuration to change
the Configuration Device I/O voltage to 2.5 V or Auto.
f For more information about serial configuration devices, refer to the Serial
Configuration Devices (EPCS1, EPCS4, EPCS16, EPCS64, and EPCS128) Datasheet in
volume 2 of the Configuration Handbook.
Serial configuration devices provide a serial interface to access the configuration data.
During device configuration, Cyclone IV devices read the configuration data through
the serial interface, decompress the data if necessary, and configure their SRAM cells.
This scheme is referred to as the AS configuration scheme because the device controls
the configuration interface.
1 If you want to gain control of the EPCS pins, hold the nCONFIG pin low and pull the
nCE pin high to cause the device to reset and tri-state the AS configuration pins.
Single-Device AS Configuration
The four-pin interface of serial configuration devices consists of the following pins:
■ Serial clock input (DCLK)
■ Serial data output (DATA)
■ Active-low chip select (nCS)
■ AS data input (ASDI)
This four-pin interface connects to Cyclone IV device pins, as shown in Figure 8–2.
VCCIO (1)
10 kΩ 10 kΩ
Serial Configuration 10 kΩ
Device Cyclone IV Device
nSTATUS
CONF_DONE
nCONFIG
nCE nCEO N.C. (3)
GND
25 Ω (5)
DATA DATA[0]
DCLK DCLK
CLKUSR (7)
nCS nCSO (6)
ASDI ASDO (6) MSEL[ ] (4)
(2)
1 To tri-state the configuration bus for AS configuration schemes, you must tie nCE high
and nCONFIG low.
1 The 25- resistor at the near end of the serial configuration device for DATA[0] works
to minimize the driver impedance mismatch with the board trace and reduce the
overshoot seen at the Cyclone IV device DATA[0] input pin.
In the single-device AS configuration, the maximum board loading and board trace
length between the supported serial configuration device and the Cyclone IV device
must follow the recommendations in Table 8–7 on page 8–18.
The DCLK generated by the Cyclone IV device controls the entire configuration cycle
and provides timing for the serial interface. Cyclone IV devices use an internal
oscillator or an external clock source to generate the DCLK. For Cyclone IV E devices,
you can use a 40-MHz internal oscillator to generate the DCLK and for Cyclone IV GX
devices you can use a slow clock (20 MHz maximum) or a fast clock
(40 MHz maximum) from the internal oscillator or an external clock from CLKUSR to
generate the DCLK. There are some variations in the internal oscillator frequency
because of the process, voltage, and temperature (PVT) conditions in Cyclone IV
devices. The internal oscillator is designed to ensure that its maximum frequency is
guaranteed to meet EPCS device specifications. Cyclone IV devices offer the option to
select CLKUSR as the external clock source for DCLK. You can change the clock source
option in the Quartus II software in the Configuration tab of the Device and Pin
Options dialog box.
1 EPCS1 does not support Cyclone IV devices because of its insufficient memory
capacity.
In configuration mode, the Cyclone IV device enables the serial configuration device
by driving the nCSO output pin low, which connects to the nCS pin of the configuration
device. The Cyclone IV device uses the DCLK and DATA[1]pins to send operation
commands and read address signals to the serial configuration device. The
configuration device provides data on its DATA pin, which connects to the DATA[0]
input of the Cyclone IV device.
All AS configuration pins (DATA[0], DCLK, nCSO, and DATA[1]) have weak internal pull-
up resistors that are always active. After configuration, these pins are set as input tri-
stated and are driven high by the weak internal pull-up resistors.
The timing parameters for AS mode are not listed here because the tCF2CD, tCF2ST0, tCFG,
tSTATUS, tCF2ST1, and tCD2UM timing parameters are identical to the timing parameters
for PS mode shown in Table 8–12 on page 8–36.
Multi-Device AS Configuration
You can configure multiple Cyclone IV devices with a single serial configuration
device. When the first device captures all its configuration data from the bitstream, it
drives the nCEO pin low, enabling the next device in the chain. If the last device in the
chain is a Cyclone IV device, you can leave the nCEO pin of the last device
unconnected or use it as a user I/O pin after configuration. The nCONFIG, nSTATUS,
CONF_DONE, DCLK, and DATA[0] pins of each device in the chain are connected together
(Figure 8–3).
10 kΩ 10 kΩ 10 kΩ
10 kΩ
Serial Configuration
Device Cyclone IV Master Device Cyclone IV Slave Device
nSTATUS nSTATUS
CONF_DONE CONF_DONE nCEO N.C. (3)
nCONFIG nCONFIG
nCE nCEO nCE
GND
(10)
25 Ω (5)
DATA DATA[0]
(10)
50 Ω (5), (7) DATA[0]
DCLK DCLK CLKUSR (9) DCLK
nCS nCSO (8)
ASDI ASDO (8) MSEL[ ] (4) MSEL[ ] (4)
50 Ω (7)
Buffers (6)
The first Cyclone IV device in the chain is the configuration master and it controls the
configuration of the entire chain. Other Altera devices that support PS configuration
can also be part of the chain as configuration slaves.
1 In the multi-device AS configuration, the board trace length between the serial
configuration device and the master device of the Cyclone IV device must follow the
recommendations in Table 8–7 on page 8–18.
The nSTATUS and CONF_DONE pins on all target devices are connected together with
external pull-up resistors, as shown in Figure 8–3 on page 8–13. These pins are
open-drain bidirectional pins on the devices. When the first device asserts nCEO (after
receiving all its configuration data), it releases its CONF_DONE pin. However, the
subsequent devices in the chain keep this shared CONF_DONE line low until they receive
their configuration data. When all target devices in the chain receive their
configuration data and release CONF_DONE, the pull-up resistor drives a high level on
CONF_DONE line and all devices simultaneously enter initialization mode.
1 Although you can cascade Cyclone IV devices, serial configuration devices cannot be
cascaded or chained together.
1 For both methods, the serial configuration devices cannot be cascaded or chained
together.
four devices. During the first configuration cycle, the master device reads its
configuration data from the serial configuration device while holding nCEO high. After
completing its configuration cycle, the master device drives nCE low and sends the
second copy of the configuration data to all three slave devices, configuring them
simultaneously.
The advantage of the setup in Figure 8–4 is that you can have a different .sof for the
master device. However, all the slave devices must be configured with the same .sof.
You can either compress or uncompress the .sof in this configuration method.
1 You can still use this method if the master and slave devices use the same .sof.
Figure 8–4. Multi-Device AS Configuration in Which Devices Receive the Same Data with Multiple .sof
Cyclone IV Slave Device
VCCIO (1) VCCIO (1) VCCIO (1) VCCIO (2)
nSTATUS
CONF_DONE
nCONFIG
10 kΩ 10 kΩ 10 kΩ 10 kΩ
nCE nCEO N.C. (3)
DATA[0]
DCLK
MSEL[ ] (4)
Serial Configuration
Device Cyclone IV Master Device Cyclone IV Slave Device
nSTATUS nSTATUS
CONF_DONE CONF_DONE
nCONFIG nCONFIG
nCE nCEO nCE nCEO N.C. (3)
GND
(10)
25 Ω (5)
DATA DATA[0]
(10)
50 Ω (5), (7) DATA[0]
DCLK DCLK CLKUSR (9) DCLK
nCS nCSO (8)
ASDI ASDO (8) MSEL[ ] (4) MSEL[ ] (4)
nSTATUS
CONF_DONE
nCONFIG
nCE nCEO N.C. (3)
50 Ω (7)
Buffers (6)
DATA[0]
DCLK
MSEL[ ] (4)
Figure 8–5. Multi-Device AS Configuration in Which Devices Receive the Same Data with a Single .sof
VCCIO (1) VCCIO (1) VCCIO (1)
10 kΩ 10 kΩ 10 kΩ
Serial Configuration
Device Cyclone IV Master Device Cyclone IV Slave Device 1 Cyclone IV Slave Device 2
nSTATUS nSTATUS nSTATUS
CONF_DONE CONF_DONE CONF_DONE
nCONFIG nCONFIG nCONFIG
nCE nCEO N.C. (2) nCE nCEO N.C. (2) nCE nCEO N.C. (2)
50 Ω(7)
Buffers (5)
In this setup, all the Cyclone IV devices in the chain are connected for concurrent
configuration. This reduces the AS configuration time because all the Cyclone IV
devices are configured in one configuration cycle. Connect the nCE input pins of all the
Cyclone IV devices to GND. You can either leave the nCEO output pins on all the
Cyclone IV devices unconnected or use the nCEO output pins as normal user I/O pins.
The DATA and DCLK pins are connected in parallel to all the Cyclone IV devices.
Altera recommends putting a buffer before the DATA and DCLK output from the master
device to avoid signal strength and signal integrity issues. The buffer must not
significantly change the DATA-to-DCLK relationships or delay them with respect to other
AS signals (ASDI and nCS). Also, the buffer must only drive the slave devices to ensure
that the timing between the master device and the serial configuration device is
unaffected.
This configuration method supports both compressed and uncompressed .sof.
Therefore, if the configuration bitstream size exceeds the capacity of a serial
configuration device, you can enable the compression feature in the .sof or you can
select a larger serial configuration device.
Equation 8–3.
Enabling compression reduces the amount of configuration data that is sent to the
Cyclone IV device, which also reduces configuration time. On average, compression
reduces configuration time by 50%.
1 If you want to use the setup shown in Figure 8–6 to perform in-system programming
of a serial configuration device and single- or multi-device AS configuration, you do
not require a series resistor on the DATA line at the near end of the serial configuration
device. The existing diodes and capacitors are sufficient.
f For more information about implementing the SFL with Cyclone IV devices, refer to
AN 370: Using the Serial FlashLoader with the Quartus II Software.
f For more information about the USB-Blaster download cable, refer to the USB-Blaster
Download Cable User Guide. For more information about the ByteBlaster II download
cable, refer to the ByteBlaster II Download Cable User Guide.
Figure 8–6 shows the download cable connections to the serial configuration device.
10 kΩ 10 kΩ 10 kΩ
Cyclone IV Device
nSTATUS
CONF_DONE
nCONFIG
nCE nCEO N.C. (2)
10 kΩ 3.3 V 3.3 V
Serial 3.3 V 3.3 V
Configuration Device
GND
(5)
DATA DATA[0] (6)
DCLK DCLK (6) CLKUSR (8)
nCS nCSO (7)
ASDI ASDO (7) MSEL[ ] (4)
Pin 1
3.3 V (3)
GND
10 pf 10 pf GND
10 pf
ByteBlaster II or USB Blaster
10-Pin Male Header
GND GND
GND
10 pf
(5) GND
You can use the Quartus II software with the APU and the appropriate configuration
device programming adapter to program serial configuration devices. All serial
configuration devices are offered in an 8- or 16-pin small outline integrated circuit
(SOIC) package.
In production environments, serial configuration devices are programmed using
multiple methods. Altera programming hardware or other third-party programming
hardware is used to program blank serial configuration devices before they are
mounted onto PCBs. Alternatively, you can use an on-board microprocessor to
program the serial configuration device in-system by porting the reference C-based
SRunner software driver provided by Altera.
A serial configuration device is programmed in-system by an external microprocessor
with the SRunner software driver. The SRunner software driver is a software driver
developed for embedded serial configuration device programming, which is easily
customized to fit in different embedded systems. The SRunner software driver is able
to read a Raw Programming Data (.rpd) file and write to serial configuration devices.
The serial configuration device programming time, using the SRunner software
driver, is comparable to the programming time with the Quartus II software.
f For more information about the SRunner software driver, refer to AN 418: SRunner:
An Embedded Solution for Serial Configuration Device Programming and the source code
at the Altera website.
During device configuration, Cyclone IV E devices read configuration data using the
parallel interface and configure their SRAM cells. This scheme is referred to as the AP
configuration scheme because the device controls the configuration interface. This
scheme contrasts with the FPP configuration scheme, where an external host controls
the interface.
1 Cyclone IV E devices use a 40-MHz oscillator for the AP configuration scheme. The
oscillator is the same oscillator used in the Cyclone IV E AS configuration scheme.
Table 8–10 lists the supported families of the commodity parallel flash for the AP
configuration scheme.
Table 8–10. Supported Commodity Flash for AP Configuration Scheme for Cyclone IV E
Devices (1)
Flash Memory Density Micron P30 Flash Family (2) Micron P33 Flash Family (3)
64 Mbit v v
128 Mbit v v
256 Mbit v v
Notes to Table 8–10:
(1) The AP configuration scheme only supports flash memory speed grades of 40 MHz and above.
(2) 3.3- , 3.0-, 2.5-, and 1.8-V I/O options are supported for the Micron P30 flash family.
(3) 3.3-, 3.0- and 2.5-V I/O options are supported for the Micron P33 flash family.
Configuring Cyclone IV E devices from the Micron P30 and P33 family 512-Mbit flash
memory is possible, but you must properly drive the extra address and FLASH_nCE
pins as required by these flash memories.
f To check for supported speed grades and package options, refer to the respective flash
datasheets.
f For more information about the operation of the Micron P30 Parallel NOR and P33
Parallel NOR flash memories, search for the keyword “P30” or “P33” on the Micron
website (www.micron.com) to obtain the P30 or P33 family datasheet.
Single-Device AP Configuration
The following groups of interface pins are supported in Micron P30 and P33 flash
memories:
■ Control pins
■ Address pins
■ Data pins
The following control signals are from the supported parallel flash memories:
■ CLK
■ active-low reset (RST#)
■ active-low chip enable (CE#)
■ active-low output enable (OE#)
■ active-low address valid (ADV#)
■ active-low write enable (WE#)
The supported parallel flash memories output a control signal (WAIT) to Cyclone IV E
devices to indicate when synchronous data is ready on the data bus. Cyclone IV E
devices have a 24-bit address bus connecting to the address bus (A[24:1]) of the flash
memory. A 16-bit bidirectional data bus (DATA[15..0]) provides data transfer between
the Cyclone IV E device and the flash memory.
The following control signals are from the Cyclone IV E device to flash memory:
■ DCLK
■ active-low hard rest (nRESET)
■ active-low chip enable (FLASH_nCE)
■ active-low output enable for the DATA[15..0] bus and WAIT pin (nOE)
■ active-low address valid signal and is used to write data into the flash (nAVD)
■ active-low write enable and is used to write data into the flash (nWE)
Figure 8–7 shows the interface for the Micron P30 flash memory and P33 flash
memory to the Cyclone IV E device pins.
Figure 8–7. Single-Device AP Configuration Using Micron P30 and P33 Flash Memory
VCCIO (1) VCCIO (1) VCCIO (1)
nCONFIG
nSTATUS
CONF_DONE
nCEO N.C. (2)
nCE
1 To tri-state the configuration bus for AP configuration schemes, you must tie nCE high
and nCONFIG low.
1 If you use the AP configuration scheme for Cyclone IV E devices, the VCCIO of I/O
banks 1, 6, 7, and 8 must be 3.3, 3.0, 2.5, or 1.8 V. Altera does not recommend using the
level shifter between the Micron P30 or P33 flash and the Cyclone IV E device in the
AP configuration scheme.
Default read mode of the supported parallel flash memory and all writes to the
parallel flash memory are asynchronous. Both the parallel flash families support a
synchronous read mode, with data supplied on the positive edge of DCLK.
The serial clock (DCLK) generated by Cyclone IV E devices controls the entire
configuration cycle and provides timing for the parallel interface.
Multi-Device AP Configuration
You can configure multiple Cyclone IV E devices using a single parallel flash. You can
cascade multiple Cyclone IV E devices using the chip-enable (nCE) and
chip-enable-out (nCEO) pins. The first device in the chain must have its nCE pin
connected to GND. You must connect its nCEO pin to the nCE pin of the next device in
the chain. Use an external 10-k pull-up resistor to pull the nCEO signal high to its
VCCIO level to help the internal weak pull-up resistor. When the first device captures
all its configuration data from the bitstream, it drives the nCEO pin low, enabling the
next device in the chain. You can leave the nCEO pin of the last device unconnected or
use it as a user I/O pin after configuration if the last device in the chain is a
Cyclone IV E device. The nCONFIG, nSTATUS, CONF_DONE, DCLK, DATA[15..8], and
DATA[7..0] pins of each device in the chain are connected (Figure 8–8 on page 8–26
and Figure 8–9 on page 8–27).
The first Cyclone IV E device in the chain, as shown in Figure 8–8 on page 8–26 and
Figure 8–9 on page 8–27, is the configuration master device and controls the
configuration of the entire chain. You must connect its MSEL pins to select the AP
configuration scheme. The remaining Cyclone IV E devices are used as configuration
slaves. You must connect their MSEL pins to select the FPP configuration scheme. Any
other Altera device that supports FPP configuration can also be part of the chain as a
configuration slave.
The following are the configurations for the DATA[15..0] bus in a multi-device AP
configuration:
■ Byte-wide multi-device AP configuration
■ Word-wide multi-device AP configuration
VCCIO (1)
10 kΩ VCCIO (2) VCCIO (2)
10 kΩ
10 kΩ
10 kΩ 10 kΩ
nCONFIG
nSTATUS
CONF_DONE
nCONFIG
nSTATUS
CONF_DONE
nCONFIG
nSTATUS
CONF_DONE
nCE nCEO nCE nCEO nCE nCEO N.C. (3)
GND
CLK DCLK
RST# nRESET
CE# FLASH_nCE
OE# nOE
ADV# nAVD
MSEL[3..0] (4) MSEL[3..0] (4) MSEL[3..0] (4)
WE# nWE
DQ[7..0] DQ[7..0]
WAIT I/O (5) DATA[7..0] DATA[7..0]
DQ[15:0] DATA[15..0] DCLK DCLK
A[24:1] PADD[23..0]
Cyclone IV E
Micron P30/P33 Flash Master Device Cyclone IV E Slave Device Cyclone IV E Slave Device
Buffers (6)
10 k 10 k
nCONFIG
nSTATUS
CONF_DONE
nCONFIG
nSTATUS
CONF_DONE
nCONFIG
nSTATUS
CONF_DONE
nCE nCEO nCE nCEO nCE nCEO N.C. (3)
GND
CLK DCLK
RST# nRESET
CE# FLASH_nCE
OE# nOE
ADV# nAVD
MSEL[3..0] (4) MSEL[3..0] (4) MSEL[3..0] (4)
WE# nWE DQ[7..0] DQ[7..0]
WAIT I/O (5) DATA[7..0] DATA[7..0]
DQ[15:0] DATA[15..0] DCLK DCLK
A[24:1] PADD[23..0]
Cyclone IV E
Micron P30/P33 Flash Master Device Cyclone IV E Slave Device Cyclone IV E Slave Device
VCCIO (1)
Buffers (6)
10 k
nCONFIG
nSTATUS
CONF_DONE
nCONFIG
nSTATUS
CONF_DONE
nCE nCEO nCE nCEO N.C. (3)
DQ[15..8]
1 In a multi-device AP configuration, the board trace length between the parallel flash
and the master device must follow the recommendations listed in Table 8–11.
The nSTATUS and CONF_DONE pins on all target devices are connected together with
external pull-up resistors, as shown in Figure 8–8 on page 8–26 and Figure 8–9 on
page 8–27. These pins are open-drain bidirectional pins on the devices. When the first
device asserts nCEO (after receiving all its configuration data), it releases its CONF_DONE
pin. However, the subsequent devices in the chain keep this shared CONF_DONE line
low until they receive their configuration data. When all target devices in the chain
receive their configuration data and release CONF_DONE, the pull-up resistor drives a
high level on this line and all devices simultaneously enter initialization mode.
nCONFIG (8)
V (1)
CCIO
V (1) V (1)
DQ[15:0]
A[24:1]
CCIO CCIO
I/O (7)
RST#
ADV#
WAIT
WE#
OE#
CLK
CE#
10 k
10 k 10 k
nCONFIG
nSTATUS
CONF_DONE
nCE
10 k
nCEO (2)
GND
CLK DCLK (5)
RST# nRESET
CE# FLASH_nCE
OE# nOE
ADV# nAVD
MSEL[3..0] (3)
WE# nWE
WAIT I/O (4)
DQ[15:0] DATA[15..0] (5)
A[24:1] PADD[23..0]
Cyclone IV E
Micron P30/P33 Flash Master Device
Figure 8–11 shows the recommended balanced star routing for multiple bus master
interfaces to minimize signal integrity issues.
External
Master Device
N (2)
DCLK
M (1) N (2)
Cyclone IV E
Master Device
Micron Flash
Equation 8–4.
Equation 8–5.
f For more information about using the JTAG pins on Cyclone IV E devices to program
the parallel flash in-system, refer to AN 478: Using FPGA-Based Parallel Flash Loader
(PFL) with the Quartus II Software.
1 The Quartus II software uses byte addressing for the default configuration boot
address. You must set the start address field to 0×020000.
The default configuration boot address allows the system to use special parameter
blocks in the flash memory map. Parameter blocks are at the top or bottom of the
memory map. Figure 8–12 shows the configuration boot address in the AP
configuration scheme. You can change the default configuration default boot address
0×010000 to any desired address using the APFC_BOOT_ADDR JTAG instruction. For
more information about the APFC_BOOT_ADDR JTAG instruction, refer to “JTAG
Instructions” on page 8–57.
128-Kbit
Other data/code parameter area
Other data/code
Cyclone IV E Cyclone IV E
Default Default
Boot Boot
Address Configuration Address
Data
Configuration
Data
x010000 (1) x010000 (1)
x00FFFF x00FFFF
PS Configuration
You can perform PS configuration on Cyclone IV devices with an external intelligent
host, such as a MAX® II device, microprocessor with flash memory, or a download
cable. In the PS scheme, an external host controls the configuration. Configuration
data is clocked into the target Cyclone IV device through DATA[0] at each rising edge
of DCLK.
If your system already contains a common flash interface (CFI) flash memory, you can
use it for Cyclone IV device configuration storage as well. The MAX II PFL feature
provides an efficient method to program CFI flash memory devices through the JTAG
interface and the logic to control the configuration from the flash memory device to
the Cyclone IV device.
f For more information about the PFL, refer to AN 386: Using the Parallel Flash Loader
with the Quartus II Software.
Memory Cyclone IV
VCCIO (1) VCCIO (1) Device
ADDR DATA[0]
10 kΩ 10 kΩ
MSEL[ ] (3)
CONF_DONE
nSTATUS
External Host nCE nCEO N.C. (2)
(MAX II Device or GND
Microprocessor) DATA[0] (4)
nCONFIG
DCLK (4)
To begin the configuration, the external host device must generate a low-to-high
transition on the nCONFIG pin. When nSTATUS is pulled high, the external host device
must place the configuration data one bit at a time on DATA[0]. If you use
configuration data in .rbf, .ttf, or .hex, you must first send the LSB of each data byte.
For example, if the .rbf contains the byte sequence 02 1B EE 01 FA, the serial bitstream
you must send to the device is:
0100-0000 1101-1000 0111-0111 1000-0000 0101-1111
Cyclone IV devices receive configuration data on DATA[0] and the clock is received on
DCLK. Data is latched into the device on the rising edge of DCLK. Data is continuously
clocked into the target device until CONF_DONE goes high and the device enters
initialization state.
1 Two DCLK falling edges are required after CONF_DONE goes high to begin the
initialization of the device.
INIT_DONE is released and pulled high when initialization is complete. The external
host device must be able to detect this low-to-high transition which signals the device
has entered user mode. When initialization is complete, the device enters user mode.
In user mode, the user I/O pins no longer have weak pull-up resistors and function as
assigned in your design.
To ensure DCLK and DATA[0] are not left floating at the end of configuration, the
MAX II device must drive them either high or low, whichever is convenient on your
board. The DATA[0] pin is available as a user I/O pin after configuration. In the PS
scheme, the DATA[0] pin is tri-stated by default in user mode and must be driven by
the external host device. To change this default option in the Quartus II software,
select the Dual-Purpose Pins tab of the Device and Pin Options dialog box.
The configuration clock (DCLK) speed must be below the specified system frequency to
ensure correct configuration. No maximum DCLK period exists, which means you can
pause configuration by halting DCLK for an indefinite amount of time.
The external host device can also monitor CONF_DONE and INIT_DONE to ensure
successful configuration. The CONF_DONE pin must be monitored by the external device
to detect errors and to determine when programming is complete. If all configuration
data is sent, but CONF_DONE or INIT_DONE has not gone high, the external device must
reconfigure the target device.
Figure 8–14 shows how to configure multiple devices using an external host device.
This circuit is similar to the PS configuration circuit for a single device, except that
Cyclone IV devices are cascaded for multi-device configuration.
Buffers (5)
Figure 8–15. Multi-Device PS Configuration When Both Devices Receive the Same Data
Memory
VCCIO (1) VCCIO (1) Cyclone IV Master Device Cyclone IV Slave Device
ADDR DATA[0]
10 k 10 k (3)
MSEL[ ] MSEL[ ] (3)
CONF_DONE CONF_DONE
nSTATUS nSTATUS
External Host nCE nCEO N.C. (2) nCE nCEO N.C. (2)
(MAX II Device or GND GND
Microprocessor) DATA[0] (4) DATA[0] (4)
nCONFIG nCONFIG
DCLK (4) DCLK (4)
Buffers (4)
PS Configuration Timing
A PS configuration must meet the setup and hold timing parameters and the
maximum clock frequency. When using a microprocessor or another intelligent host
to control the PS interface, ensure that you meet these timing requirements.
Figure 8–16 shows the timing waveform for PS configuration when using an external
host device.
tCF2ST1
tCFG
nCONFIG tCF2CK
DCLK (4)
tDH
DATA[0] Bit 0 Bit 1 Bit 2 Bit 3 Bit n (5)
tDSU
User I/O User mode Tri-stated with internal pull-up resistor User Mode
INIT_DONE
tCD2UM
Table 8–12 lists the PS configuration timing parameters for Cyclone IV devices.
nCONFIG low to
tCF2CD — 500 ns
CONF_DONE low
nCONFIG low to
tCF2ST0 — 500 ns
nSTATUS low
nCONFIG low pulse
tCFG 500 — ns
width
nSTATUS low pulse
tSTATUS 45 230 (3) µs
width
nCONFIG high to
tCF2ST1 — 230 (4) µs
nSTATUS high
nCONFIG high to first (3)
tCF2CK 230 — µs
rising edge on DCLK
nSTATUS high to first
tST2CK 2 — µs
rising edge of DCLK
Data hold time after
tDH 0 — ns
rising edge on DCLK
CONF_DONE high to
tCD2UM 300 650 µs
user mode (5)
CONF_DONE high to
tCD2CU 4 × maximum DCLK period — —
CLKUSR enabled
CONF_DONE high to
tCD2UMC user mode with tCD2CU + (3,192 × CLKUSR period) — —
CLKUSR option on
Data setup time before
tDSU 5 8 — — ns
rising edge on DCLK
tCH DCLK high time 3.2 6.4 — — ns
tCL DCLK low time 3.2 6.4 — — ns
tCLK DCLK period 7.5 15 — — ns
fMAX DCLK frequency (6) — — 133 66 MHz
Notes to Table 8–12:
(1) Applicable for Cyclone IV GX and Cyclone IV E devices with 1.2-V core voltage.
(2) Applicable for Cyclone IV E devices with 1.0-V core voltage.
(3) This value is applicable if you do not delay configuration by extending the nCONFIG or nSTATUS low pulse width.
(4) This value is applicable if you do not delay configuration by externally holding the nSTATUS low.
(5) The minimum and maximum numbers apply only if you choose the internal oscillator as the clock source for starting the device.
(6) Cyclone IV E devices with 1.0-V core voltage have slower FMAX when compared with Cyclone IV GX devices with 1.2-V core voltage.
The programming hardware or download cable then places the configuration data
one bit at a time on the DATA[0] pin of the device. The configuration data is clocked
into the target device until CONF_DONE goes high. The CONF_DONE pin must have an
external 10-k pull-up resistor for the device to initialize.
When you use a download cable, setting the Auto-restart configuration after error
option does not affect the configuration cycle because you must manually restart
configuration in the Quartus II software if an error occurs. Additionally, the Enable
user-supplied start-up clock (CLKUSR) option has no effect on device initialization,
because this option is disabled in the .sof when programming the device with the
Quartus II Programmer and download cable. Therefore, if you turn on the CLKUSR
option, you do not have to provide a clock on CLKUSR when you configure the device
with the Quartus II Programmer and a download cable.
Figure 8–17 shows PS configuration for Cyclone IV devices with a download cable.
(2) 10 kΩ
MSEL[ ] (5)
Download Cable 10-Pin Male
nCE nCEO N.C. (4) Header (Top View)
GND
DCLK
DATA[0] Pin 1 VCCA (6)
nCONFIG
GND
VIO (3)
Shield
GND
You can use a download cable to configure multiple Cyclone IV device configuration
pins. nCONFIG, nSTATUS, DCLK, DATA[0], and CONF_DONE are connected to every device in
the chain. All devices in the chain utilize and enter user mode at the same time
because all CONF_DONE pins are tied together.
In addition, the entire chain halts configuration if any device detects an error because
the nSTATUS pins are tied together. Figure 8–18 shows the PS configuration for
multiple Cyclone IV devices using a MasterBlaster, USB-Blaster, ByteBlaster II, or
ByteBlasterMV cable.
10 kΩ Download Cable
VCCA (1) (2) 10-Pin Male Header
Cyclone IV Device 2
CONF_DONE
nSTATUS
MSEL[ ] DCLK
(6)
DATA[0]
nCONFIG
FPP Configuration
The FPP configuration in Cyclone IV devices is designed to meet the increasing
demand for faster configuration time. Cyclone IV devices are designed with the
capability of receiving byte-wide configuration data per clock cycle.
You can perform FPP configuration of Cyclone IV devices with an intelligent host,
such as a MAX II device or microprocessor with flash memory. If your system already
contains a CFI flash memory, you can use it for the Cyclone IV device configuration
storage as well. The MAX II PFL feature in MAX II devices provides an efficient
method to program CFI flash memory devices through the JTAG interface and the
logic to control configuration from the flash memory device to the Cyclone IV device.
f For more information about the PFL, refer to AN 386: Using the Parallel Flash Loader
with the Quartus II Software.
the device, must be stored in the external host device. Figure 8–19 shows the
configuration interface connections between the Cyclone IV devices and an external
device for single-device configuration.
Memory
VCCIO(1) VCCIO(1) Cyclone IV Device
ADDR DATA[7..0]
10 k 10 k
MSEL[3..0] (3)
CONF_DONE
nSTATUS
External Host nCE nCEO N.C. (2)
(MAX II Device or GND
Microprocessor) DATA[7..0] (4)
nCONFIG
DCLK (4)
After nSTATUS is released, the device is ready to receive configuration data and the
configuration stage begins. When nSTATUS is pulled high, the external host device
places the configuration data one byte at a time on the DATA[7..0]pins.
Cyclone IV devices receive configuration data on the DATA[7..0] pins and the clock is
received on the DCLK pin. Data is latched into the device on the rising edge of DCLK.
Data is continuously clocked into the target device until CONF_DONE goes high. The
CONF_DONE pin goes high one byte early in FPP configuration mode. The last byte is
required for serial configuration (AS and PS) modes.
1 Two DCLK falling edges are required after CONF_DONE goes high to begin initialization
of the device.
Supplying a clock on CLKUSR does not affect the configuration process. After the
CONF_DONE pin goes high, CLKUSR is enabled after the time specified as tCD2CU. After
this time period elapses, Cyclone IV devices require 3,192 clock cycles to initialize
properly and enter user mode. For more information about the supported CLKUSR fMAX
value for Cyclone IV devices, refer to Table 8–13 on page 8–44.
The INIT_DONE pin is released and pulled high when initialization is complete. The
external host device must be able to detect this low-to-high transition, which signals
the device has entered user mode. When initialization is complete, the device enters
user mode. In user mode, the user I/O pins no longer have weak pull-up resistors and
function as assigned in your design.
To ensure that DCLK and DATA[0] are not left floating at the end of the configuration,
the MAX II device must drive them either high or low, whichever is convenient on
your board. The DATA[0] pin is available as a user I/O pin after configuration. When
you choose the FPP scheme in the Quartus II software, the DATA[0] pin is tri-stated by
default in user mode and must be driven by the external host device. To change this
default option in the Quartus II software, select the Dual-Purpose Pins tab of the
Device and Pin Options dialog box.
The DCLK speed must be below the specified system frequency to ensure correct
configuration. No maximum DCLK period exists, which means you can pause
configuration by halting DCLK for an indefinite amount of time.
The external host device can also monitor the CONF_DONE and INIT_DONE pins to ensure
successful configuration. The CONF_DONE pin must be monitored by the external device
to detect errors and to determine when programming is complete. If all configuration
data is sent, but CONF_DONE or INIT_DONE has not gone high, the external device must
reconfigure the target device.
Figure 8–20 shows how to configure multiple devices with a MAX II device. This
circuit is similar to the FPP configuration circuit for a single device, except the
Cyclone IV devices are cascaded for multi-device configuration.
Buffers (5)
DCLK, DATA[7..0], and CONF_DONE) are connected to every device in the chain.
Configuration signals may require buffering to ensure signal integrity and prevent
clock skew problems. Ensure that the DCLK and DATA lines are buffered. All devices
initialize and enter user mode at the same time, because all device CONF_DONE pins are
tied together.
All nSTATUS and CONF_DONE pins are tied together and if any device detects an error,
configuration stops for the entire chain and the entire chain must be reconfigured. For
example, if the first device flags an error on nSTATUS, it resets the chain by pulling its
nSTATUS pin low. This behavior is similar to a single device detecting an error.
Figure 8–21 shows multi-device FPP configuration when both Cyclone IV devices are
receiving the same configuration data. Configuration pins (nCONFIG, nSTATUS, DCLK,
DATA[7..0], and CONF_DONE) are connected to every device in the chain. Configuration
signals may require buffering to ensure signal integrity and prevent clock skew
problems. Ensure that the DCLK and DATA lines are buffered. Devices must be of the
same density and package. All devices start and complete configuration at the same
time.
Figure 8–21. Multi-Device FPP Configuration Using an External Host When Both Devices Receive
the Same Data
Memory
VCCIO (1) VCCIO (1) Cyclone IV Device 1 Cyclone IV Device 2
ADDR DATA[7..0]
10 k 10 k (3)
MSEL[3..0] MSEL[3..0] (3)
CONF_DONE CONF_DONE
nSTATUS nSTATUS
External Host nCE nCEO N.C. (2) nCE nCEO N.C. (2)
(MAX II Device or GND GND
Microprocessor) DATA[7..0] (4) DATA[7..0] (4)
nCONFIG nCONFIG
DCLK (4) DCLK (4)
Buffers (4)
You can use a single configuration chain to configure Cyclone IV devices with other
Altera devices that support FPP configuration. To ensure that all devices in the chain
complete configuration at the same time or that an error flagged by one device starts
reconfiguration in all devices, tie all the CONF_DONE and nSTATUS pins together.
f For more information about configuring multiple Altera devices in the same
configuration chain, refer to Configuring Mixed Altera FPGA Chains in volume 2 of the
Configuration Handbook.
tCF2ST1
tCFG
nCONFIG tCF2CK
User I/O User mode Tri-stated with internal pull-up resistor User Mode
INIT_DONE
tCD2UM
Table 8–13 lists the FPP configuration timing parameters for Cyclone IV devices.
nCONFIG low to
tCF2CD — 500 ns
CONF_DONE low
nCONFIG low to
tCF2ST0 — 500 ns
nSTATUS low
nCONFIG low pulse
tCFG 500 — ns
width
nSTATUS low pulse (3)
tSTATUS 45 230 µs
width
nCONFIG high to (4)
tCF2ST1 — 230 µs
nSTATUS high
nCONFIG high to
tCF2CK 230 (3) — µs
first rising edge on
DCLK
nSTATUS high to
tST2CK first rising edge of 2 — µs
DCLK
Data hold time after
tDH rising edge on 0 — ns
DCLK
CONF_DONE high to
tCD2UM 300 650 µs
user mode (5)
CONF_DONE high to
tCD2CU 4 × maximum DCLK period — —
CLKUSR enabled
CONF_DONE high to
tCD2UMC user mode with tCD2CU + (3,192 × CLKUSR period) — —
CLKUSR option on
Data setup time
tDSU before rising edge 5 8 — — ns
on DCLK
tCH DCLK high time 3.2 6.4 — — ns
tCL DCLK low time 3.2 6.4 — — ns
tCLK DCLK period 7.5 15 — — ns
fMAX DCLK frequency (6) — — 133 66 MHz
Notes to Table 8–13:
(1) Applicable for Cyclone IV GX and Cyclone IV E with 1.2-V core voltage.
(2) Applicable for Cyclone IV E with 1.0-V core voltage.
(3) This value is applicable if you do not delay configuration by extending the nCONFIG or nSTATUS low pulse width.
(4) This value is applicable if you do not delay configuration by externally holding the nSTATUS low.
(5) The minimum and maximum numbers apply only if you choose the internal oscillator as the clock source for starting the device.
(6) Cyclone IV E devices with 1.0-V core voltage have slower FMAX when compared with Cyclone IV GX devices with 1.2-V core voltage.
JTAG Configuration
JTAG has developed a specification for boundary-scan testing (BST). The BST
architecture offers the capability to efficiently test components on PCBs with tight
lead spacing. The BST architecture can test pin connections without using physical
test probes and capture functional data while a device is normally operating. You can
also use the JTAG circuitry to shift configuration data into the device. The Quartus II
software automatically generates .sof for JTAG configuration with a download cable
in the Quartus II software Programmer.
f For more information about the JTAG boundary-scan testing, refer to the JTAG
Boundary-Scan Testing for Cyclone IV Devices chapter.
JTAG instructions have precedence over any other configuration modes. Therefore,
JTAG configuration can take place without waiting for other configuration modes to
complete. For example, if you attempt JTAG configuration in Cyclone IV devices
during PS configuration, PS configuration terminates and JTAG configuration begins.
If the MSEL pins are set to AS mode, the Cyclone IV device does not output a DCLK
signal when JTAG configuration takes place.
The four required pins for a device operating in JTAG mode are TDI, TDO, TMS, and TCK.
All the JTAG input pins are powered by the VCCIO pin and support the LVTTL I/O
standard only. All user I/O pins are tri-stated during JTAG configuration. Table 8–14
explains the function of each JTAG pin.
You can download data to the device through the USB-Blaster, MasterBlaster,
ByteBlaster II, or ByteBlasterMV download cable, or the EthernetBlaster
communications cable during JTAG configuration. Configuring devices with a cable is
similar to programming devices in-system. Figure 8–23 and Figure 8–24 show the
JTAG configuration of a single Cyclone IV device.
For device using VCCIO of 2.5, 3.0, and 3.3 V, refer to Figure 8–23. All I/O inputs must
maintain a maximum AC voltage of 4.1 V because JTAG pins do not have the internal
PCI clamping diodes to prevent voltage overshoot when using VCCIO of 2.5, 3.0, and
3.3 V. You must power up the VCC of the download cable with a 2.5-V supply from
VCCA. For device using VCCIO of 1.2, 1.5, and 1.8 V, refer to Figure 8–24. You can power
up the VCC of the download cable with the supply from VCCIO.
Figure 8–23. JTAG Configuration of a Single Device Using a Download Cable (2.5, 3.0, and 3.3-V
VCCIO Powering the JTAG Pins)
VCCA
(7)
VCCIO (1)
VCCA
VCCIO (1) 10 kΩ
Cyclone IV Device (7)
10 kΩ nCE (4) TCK
TDO
GND
N.C. (5) nCEO
TMS Download Cable 10-Pin Male
nSTATUS TDI Header (Top View)
CONF_DONE
(2) nCONFIG
(2) Pin 1 VCCA (6)
MSEL[ ]
(2) DATA[0]
(2) DCLK
GND
VIO (3)
1 kΩ
GND GND
Figure 8–24. JTAG Configuration of a Single Device Using a Download Cable (1.5-V or 1.8-V VCCIO
Powering the JTAG Pins)
VCCIO
(7)
VCCIO (1)
VCCIO
VCCIO (1) 10 kΩ
Cyclone IV Device (7)
10 kΩ nCE (4) TCK
TDO
GND
N.C. (5) nCEO
TMS Download Cable 10-Pin Male
nSTATUS TDI Header (Top View)
CONF_DONE
(2) nCONFIG
(2) Pin 1 VCCIO (6)
MSEL[ ]
(2) DATA[0]
(2) DCLK
GND
VIO (3)
1 kΩ
GND GND
To configure a single device in a JTAG chain, the programming software places all
other devices in bypass mode. In bypass mode, devices pass programming data from
the TDI pin to the TDO pin through a single bypass register without being affected
internally. This scheme enables the programming software to program or verify the
target device. Configuration data driven into the device appears on the TDO pin one
clock cycle later.
The Quartus II software verifies successful JTAG configuration after completion. At
the end of configuration, the software checks the state of CONF_DONE through the JTAG
port. When Quartus II generates a .jam for a multi-device chain, it contains
instructions so that all the devices in the chain are initialized at the same time. If
CONF_DONE is not high, the Quartus II software indicates that configuration has failed.
If CONF_DONE is high, the software indicates that configuration was successful. After
the configuration bitstream is serially sent using the JTAG TDI port, the TCK port
clocks an additional clock cycles to perform device initialization.
You can perform JTAG testing on Cyclone IV devices before, during, and after
configuration. Cyclone IV devices support the BYPASS, IDCODE, and SAMPLE
instructions during configuration without interrupting configuration. All other JTAG
instructions can only be issued by first interrupting configuration and
reprogramming I/O pins with the ACTIVE_DISENGAGE and CONFIG_IO instructions.
The CONFIG_IO instruction allows you to configure the I/O buffers through the JTAG
port and interrupts configuration when issued after the ACTIVE_DISENGAGE
instruction. This instruction allows you to perform board-level testing prior to
configuring the Cyclone IV device or waiting for a configuration device to complete
configuration. Prior to issuing the CONFIG_IO instruction, you must issue the
ACTIVE_DISENGAGE instruction. This is because in Cyclone IV devices, the CONFIG_IO
instruction does not hold nSTATUS low until reconfiguration, so you must disengage
the active configuration mode controller when active configuration is interrupted.
The ACTIVE_DISENGAGE instruction places the active configuration mode controllers in
an idle state prior to JTAG programming. Additionally, the ACTIVE_ENGAGE instruction
allows you to re-engage a disengaged active configuration mode controller.
1 You must follow a specific flow when executing the ACTIVE_DISENGAGE, CONFIG_IO,
and ACTIVE_ENGAGE JTAG instructions in Cyclone IV devices.
The chip-wide reset (DEV_CLRn) and chip-wide output enable (DEV_OE) pins in
Cyclone IV devices do not affect JTAG boundary-scan or programming operations.
Toggling these pins do not affect JTAG operations (other than the usual
boundary-scan operation).
When designing a board for JTAG configuration of Cyclone IV devices, consider the
dedicated configuration pins. Table 8–15 describes how you must connect these pins
during JTAG configuration.
Figure 8–25. JTAG Configuration of Multiple Devices Using a Download Cable (2.5, 3.0, and 3.3-V V CCIO Powering the
JTAG Pins)
Download Cable VCCIO (1)
VCCA VCCIO(1) VCCIO (1) VCCIO (1) VCCIO (1) VCCIO (1)
10-Pin Male Header
1 kΩ
Figure 8–26. JTAG Configuration of Multiple Devices Using a Download Cable (1.2, 1.5, and 1.8-V V CCIO Powering the
JTAG Pins)
Download Cable VCCIO VCCIO VCCIO (1) VCCIO (1) VCCIO (1) VCCIO (1) VCCIO (1)
10-Pin Male Header
10 kΩ 10 kΩ Cyclone IV Device 10 kΩ 10 kΩ 10 kΩ
Pin 1 (6) Cyclone IV Device 10 kΩ Cyclone IV Device
VCCIO (5)
VCCIO (1) nSTATUS nSTATUS nSTATUS
(2) DATA[0] (2) DATA[0] (2) DATA[0]
(6) (2) DCLK (2) DCLK (2) DCLK
(2) nCONFIG CONF_DONE (2) nCONFIG CONF_DONE (2) nCONFIG CONF_DONE
(2) MSEL[ ] (2) MSEL[ ] (2) MSEL[ ]
(2) nCEO (2) nCEO (2) nCEO
VIO nCE (4) nCE (4) nCE (4)
(3)
1 kΩ
The CONF_DONE and nSTATUS signals are shared in multi-device AS, AP, PS, and FPP
configuration chains to ensure that the devices enter user mode at the same time after
configuration is complete. When the CONF_DONE and nSTATUS signals are shared among
all the devices, you must configure every device when JTAG configuration is
performed.
If you only use JTAG configuration, Altera recommends that you connect the circuitry
as shown in Figure 8–25 or Figure 8–26, in which each of the CONF_DONE and nSTATUS
signals are isolated so that each device can enter user mode individually.
After the first device completes configuration in a multi-device configuration chain,
its nCEO pin drives low to activate the nCE pin of the second device, which prompts the
second device to begin configuration. Therefore, if these devices are also in a JTAG
chain, ensure that the nCE pins are connected to GND during JTAG configuration or
that the devices are JTAG configured in the same order as the configuration chain. As
long as the devices are JTAG configured in the same order as the multi-device
configuration chain, the nCEO of the previous device drives the nCE pin of the next
device low when it has successfully been JTAG configured. You can place other Altera
devices that have JTAG support in the same JTAG chain for device programming and
configuration.
f For more information about configuring multiple Altera devices in the same
configuration chain, refer to the Configuring Mixed Altera FPGA Chains chapter in
volume 2 of the Configuration Handbook.
f For more information about JTAG and Jam STAPL in embedded environments, refer
to AN 425: Using Command-Line Jam STAPL Solution for Device Programming. To
download the Jam Player, visit the Altera website (www.altera.com).
1 The .rbf used by the JRunner software driver cannot be a compressed .rbf because the
JRunner software driver uses JTAG-based configuration. During JTAG-based
configuration, the real-time decompression feature is not available.
f For more information about the JRunner software driver, refer to AN 414: JRunner
Software Driver: An Embedded Solution for PLD JTAG Configuration and the source files
on the Altera website at (www.altera.com).
10 kΩ 10 kΩ 10 kΩ
Cyclone IV Device VCCA
nSTATUS
CONF_DONE nCEO N.C.
(8)
nCONFIG
nCE (9)
CLKUSR VCCA
3.3 V 3.3 V (4)
Serial 10kΩ 3.3 V 3.3 V MSEL[ ]
Configuration (8)
Device GND
(6) Download Cable
DATA DATA[0] TCK (JTAG Mode)
DCLK 10-Pin Male Header
DCLK TDO
(top view)
nCS nCSO (7) TMS
ASDI ASDO (7) TDI Pin 1 VCCA (5)
1 kΩ
10 pf 10 pf GND
Download Cable 10 pf
(AS Mode) GND GND
10-Pin Male Header
10 pf GND
(6) GND
If you configure a master device with an SFL design, the master device enters user
mode even though the slave devices in the multiple device chain are not being
configured. The master device enters user mode with a SFL design even though the
CONF_DONE signal is externally held low by the other slave devices in chain.
Figure 8–29 shows the JTAG configuration of a single Cyclone IV device with a SFL
design.
Figure 8–29. Programming Serial Configuration Devices In-System Using the JTAG Interface
VCCA
CLKUSR (10)
1 kΩ
GND GND
Reconfiguration
After the configuration data is successfully written into the serial configuration
device, the Cyclone IV device does not automatically start reconfiguration. The
intelligent host issues the PULSE_NCONFIG JTAG instruction to initialize the
reconfiguration process. During reconfiguration, the master device is reset and the
SFL design no longer exists in the Cyclone IV device and the serial configuration
device configures all the devices in the chain with the user design.
f For more information about the SFL, refer to AN 370: Using the Serial FlashLoader with
Quartus II Software.
JTAG Instructions
f For more information about the JTAG binary instruction code, refer to the JTAG
Boundary-Scan Testing for Cyclone IV Devices chapter.
I/O Reconfiguration
Use the CONFIG_IO instruction to reconfigure the I/O configuration shift register
(IOCSR) chain. This instruction allows you to perform board-level testing prior to
configuring the Cyclone IV device or waiting for a configuration device to complete
configuration. After the configuration is interrupted and JTAG testing is complete,
you must reconfigure the part through the PULSE_NCONFIG JTAG instruction or by
pulsing the nCONFIG pin low.
You can issue the CONFIG_IO instruction any time during user mode.
You must meet the following timing restrictions when using the CONFIG_IO
instruction:
■ The CONFIG_IO instruction cannot be issued when the nCONFIG pin is low
■ You must observe a 230 s minimum wait time after any of the following
conditions:
■ nCONFIG pin goes high
■ Issuing the PULSE_NCONFIG instruction
■ Issuing the ACTIVE_ENGAGE instruction, before issuing the CONFIG_IO instruction
■ You must wait 230 s after power up, with the nCONFIG pin high before issuing the
CONFIG_IO instruction (or wait for the nSTATUS pin to go high)
The CONFIG_IO instruction does not hold nSTATUS low until reconfiguration. You must
disengage the AS or AP configuration controller by issuing the ACTIVE_DISENGAGE and
ACTIVE_ENGAGE instructions when active configuration is interrupted. You must issue
the ACTIVE_DISENGAGE instruction alone or prior to the CONFIG_IO instruction if the
JTAG_PROGRAM instruction is to be issued later (Table 8–17). This puts the active
configuration controllers into the idle state. The active configuration controller is re-
engaged after user mode is reached through JTAG programming (Table 8–17).
1 While executing the CONFIG_IO instruction, all user I/Os are tri-stated.
ACTIVE_DISENGAGE
The ACTIVE_DISENGAGE instruction places the active configuration controller (AS and
AP) into an idle state prior to JTAG programming. The two purposes of placing the
active controller in an idle state are:
■ To ensure that it is not trying to configure the device during JTAG programming
■ To allow the controllers to properly recognize a successful JTAG programming
that results in the device reaching user mode
The ACTIVE_DISENGAGE instruction is required before JTAG programming regardless
of the current state of the Cyclone IV device if the MSEL pins are set to an AS or AP
configuration scheme. If the ACTIVE_DISENGAGE instruction is issued during a passive
configuration scheme (PS or FPP), it has no effect on the Cyclone IV device. Similarly,
the CONFIG_IO instruction is issued after an ACTIVE_DISENGAGE instruction, but is no
longer required to properly halt configuration. Table 8–17 lists the required,
recommended, and optional instructions for each configuration mode. The ordering
of the required instructions is a hard requirement and must be met to ensure
functionality.
ACTIVE_ENGAGE
The ACTIVE_ENGAGE instruction allows you to re-engage a disengaged active controller.
You can issue this instruction any time during configuration or user mode to re-
engage an already disengaged active controller, as well as trigger reconfiguration of
the Cyclone IV device in the active configuration scheme.
The ACTIVE_ENGAGE instruction functions as the PULSE_NCONFIG instruction when the
device is in the PS or FPP configuration schemes. The nCONFIG pin is disabled when
the ACTIVE_ENGAGE instruction is issued.
1 Altera does not recommend using the ACTIVE_ENGAGE instruction, but it is provided as
a fail-safe instruction for re-engaging the active configuration controller (AS and AP).
Normally, a test instrument uses the CLKUSR pin when it wants to drive its own clock
to control the AS state machine.
To revert the clock source back to the configuration oscillator, issue the
DIS_ACTIVE_CLK instruction. After you issue the DIS_ACTIVE_CLK instruction, you
must continue to clock the CLKUSR pin for 10 clock cycles. Otherwise, even toggling the
nCONFIG pin does not revert the clock source and reconfiguration does not occur. A
POR reverts the clock source back to the configuration oscillator. Toggling the nCONFIG
pin or driving the JTAG state machine to reset state does not revert the clock source.
EN_ACTIVE_CLK
The EN_ACTIVE_CLK instruction causes the CLKUSR pin signal to replace the internal
oscillator as the clock source. When using the EN_ACTIVE_CLK instruction, you must
enable the internal oscillator for the clock change to occur. After this instruction is
issued, other JTAG instructions can be issued while the CLKUSR pin signal remains as
the clock source. The clock source is only reverted back to the internal oscillator by
issuing the DIS_ACTIVE_CLK instruction or a POR.
DIS_ACTIVE_CLK
The DIS_ACTIVE_CLK instruction breaks the CLKUSR enable latch set by the
EN_ACTIVE_CLK instruction and causes the clock source to revert back to the internal
oscillator. After the DIS_ACTIVE_CLK instruction is issued, you must continue to clock
the CLKUSR pin for 10 clock cycles.
APFC_BOOT_ADDR
The APFC_BOOT_ADDR instruction is for Cyclone IV E devices only and allows you to
define a start boot address for the parallel flash memory in the AP configuration
scheme.
This instruction shifts in a start boot address for the AP flash. When this instruction
becomes the active instruction, the TDI and TDO pins are connected through a 22-bit
active boot address shift register. The shifted-in boot address bits get loaded into the
22-bit AP boot address update register, which feeds into the AP controller. The content
of the AP boot address update register can be captured and shifted-out of the active
boot address shift register from TDO.
The boot address in the boot address shift register and update register are shifted to
the right (in the LSB direction) by two bits versus the intended boot address. The
reason for this is that the two LSB of the address are not accessible. When this boot
address is fed into the AP controller, two 0s are attached in the end as LSB, thereby
pushing the shifted-in boot address to the left by two bits, which become the actual
AP boot address the AP controller gets.
If you have enabled the remote update feature, the APFC_BOOT_ADDR instruction sets
the boot address for the factory configuration only.
Table 8–20 describes the dedicated configuration pins. You must properly connect
these pins on your board for successful configuration. You may not need some of
these pins for your configuration schemes.
PS, FPP, AS, In AP mode, DCLK is an output from the Cyclone IV E device
DCLK (1) that provides timing for the configuration interface. (2)
AP (2) Output (AS,
I/O In AS or AP configuration schemes, this pin is driven into
AP)
an inactive state after configuration completes.
Alternatively, in active schemes, you can use this pin as a
user I/O during user mode. In PS or FPP schemes that use
a control host, you must drive DCLK either high or low,
whichever is more convenient. In passive schemes, you
cannot use DCLK as a user I/O in user mode. Toggling this
pin after configuration does not affect the configured
device.
Data input. In serial configuration modes, bit-wide
configuration data is presented to the target Cyclone IV
device on the DATA[0] pin.
In AS mode, DATA[0] has an internal pull-up resistor that
Input (PS, is always active. After AS configuration, DATA[0] is a
PS, FPP, AS, FPP, AS). dedicated input pin with optional user control.
DATA[0] (1) I/O
AP (2) Bidirectional
(AP) (2) After PS or FPP configuration, DATA[0] is available as a
user I/O pin. The state of this pin depends on the
Dual-Purpose Pin settings.
After AP configuration, DATA[0]is a dedicated bidirectional
pin with optional user control. (2)
The DATA[1] pin functions as the ASDO pin in AS mode.
Data input in non-AS mode. Control signal from the
Cyclone IV device to the serial configuration device in AS
mode used to read out configuration data.
In AS mode, DATA[1] has an internal pull-up resistor that
is always active. After AS configuration, DATA[1] is a
dedicated output pin with optional user control.
Input (FPP). In a PS configuration scheme, DATA[1] functions as a user
DATA[1]/ FPP, AS, AP Output (AS). I/O pin during configuration, which means it is tri-stated.
I/O
ASDO (1) (2) Bidirectional After FPP configuration, DATA[1] is available as a user I/O
(AP) (2) pin and the state of this pin depends on the Dual-Purpose
Pin settings.
In an AP configuration scheme, for Cyclone IV E devices
only, the byte-wide or word-wide configuration data is
presented to the target Cyclone IV E device on DATA[7..0]
or DATA[15..0], respectively. After AP configuration,
DATA[1]is a dedicated bidirectional pin with optional user
control. (2)
Table 8–21 lists the optional configuration pins. If you do not enable these optional
configuration pins in the Quartus II software, they are available as general-purpose
user I/O pins. Therefore, during configuration, these pins function as user I/O pins
and are tri-stated with weak pull-up resistors.
Functional Description
The dedicated remote system upgrade circuitry in Cyclone IV devices manages
remote configuration and provides error detection, recovery, and status information.
A Nios® II processor or a user logic implemented in the Cyclone IV device logic array
provides access to the remote configuration data source and an interface to the
configuration memory.
The remote system upgrade process of the Cyclone IV device consists of the following
steps:
1. A Nios II processor (or user logic) implemented in the Cyclone IV device logic
array receives new configuration data from a remote location. The connection to
the remote source is a communication protocol, such as the transmission control
protocol/Internet protocol (TCP/IP), peripheral component interconnect (PCI),
user datagram protocol (UDP), universal asynchronous receiver/transmitter
(UART), or a proprietary interface.
2. The Nios II processor (or user logic) writes this new configuration data into a
configuration memory.
3. The Nios II processor (or user logic) starts a reconfiguration cycle with the new or
updated configuration data.
4. The dedicated remote system upgrade circuitry detects and recovers from any
error that might occur during or after the reconfiguration cycle and provides error
status information to the user design.
Figure 8–30 shows the steps required for performing remote configuration updates
(the numbers in Figure 8–30 coincide with steps 1–3).
Data Cyclone IV
Development Configuration
Device
Location Data Memory
Control Module
Data
Device Configuration
3
Figure 8–31 shows the block diagrams to implement remote system upgrade in
Cyclone IV devices.
Figure 8–31. Remote System Upgrade Block Diagrams for AS and AP Configuration Schemes
Serial Configuration Device Parallel Flash Memory
The MSEL pin setting in the remote system upgrade mode is the same as the standard
configuration mode. Standard configuration mode refers to normal Cyclone IV device
configuration mode with no support for remote system upgrades (the remote system
upgrade circuitry is disabled). When using remote system upgrade in Cyclone IV
devices, you must enable the remote update mode option setting in the Quartus II
software.
Figure 8–32 shows the transitions between the factory configuration and application
configuration in remote update mode.
Configuration Error
Application 1
Power Up Configuration
Set Control Register
and Reconfigure
Application n
Set Control Register Configuration
and Reconfigure
Configuration Error
After power up or a configuration error, the factory configuration logic writes the
remote system upgrade control register to specify the address of the application
configuration to be loaded. The factory configuration also specifies whether or not to
enable the user watchdog timer for the application configuration and, if enabled,
specifies the timer setting.
1 Only valid application configurations designed for remote update mode include the
logic to reset the timer in user mode. For more information about the user watchdog
timer, refer to the “User Watchdog Timer” on page 8–79.
If there is an error while loading the application configuration, the remote system
upgrade status register is written by the dedicated remote system upgrade circuitry of
the Cyclone IV device to specify the cause of the reconfiguration.
The following actions cause the remote system upgrade status register to be written:
■ nSTATUS driven low externally
■ Internal cyclical redundancy check (CRC) error
■ User watchdog timer time-out
■ A configuration reset (logic array nCONFIG signal or external nCONFIG pin assertion)
The Cyclone IV device automatically loads the factory configuration when an error
occurs. This user-designed factory configuration reads the remote system upgrade
status register to determine the reason for reconfiguration. Then the factory
configuration takes the appropriate error recovery steps and writes to the remote
system upgrade control register to determine the next application configuration to be
loaded.
When Cyclone IV devices successfully load the application configuration, they enter
user mode. In user mode, the soft logic (the Nios II processor or state machine and the
remote communication interface) assists the Cyclone IV device in determining when a
remote system update is arriving. When a remote system update arrives, the soft logic
receives the incoming data, writes it to the configuration memory device and triggers
the device to load the factory configuration. The factory configuration reads the
remote system upgrade status register, determines the valid application configuration
to load, writes the remote system upgrade control register accordingly, and starts
system reconfiguration.
Logic
Update Register
Bit [38..0] update
RSU
Master
State
Logic Machine
RSU
Shift Register Reconfiguration timeout User
State Watchdog
din dout din dout Timer
Machine
Bit [40..39] Bit [38..0]
capture
Logic Array
The control and status registers of the remote system upgrade are clocked by the
10-MHz internal oscillator (the same oscillator that controls the user watchdog timer)
or the CLKUSR. However, the shift and update registers of the remote system upgrade
are clocked by the maximum frequency of 40-MHz user clock input (RU_CLK). There is
no minimum frequency for RU_CLK.
Figure 8–34 shows the control register bit positions. Table 8–23 defines the control
register bit contents. The numbers in Figure 8–34 show the bit position of a setting in a
register. For example, bit number 35 is the enable bit for the watchdog timer.
38 37 36 35 34 33 12 11 0
When enabled, the early CONF_DONE check (Cd_early) option bit ensures that there is a
valid configuration at the boot address specified by the factory configuration and that
it is of the proper size. If an invalid configuration is detected or the CONF_DONE pin is
asserted too early, the device resets and then reconfigures the factory configuration
image. The internal oscillator (as the startup state machine clock [Osc_int] option bit)
ensures a functional startup clock to eliminate the hanging of startup. When all option
bits are turned on, they provide complete coverage for the programming and startup
portions of the application configuration. Altera recommends turning on both the
Cd_early and Osc_int option bits.
1 The Cd_early and Osc_int option bits for the application configuration must be
turned on by the factory configuration.
Table 8–24. Remote System Upgrade Current State Logic Contents In Status Register
Remote System Upgrade Status
Definition Description
Master State Machine Register Bit
Master state machine The current state of the remote system upgrade
31:30
current state master state machine
(1) 29:24 Reserved bits Padding bits that are set to all 0’s
Factory information
The current 24-bit boot address that was used by
23:0 Boot address the configuration scheme as the start address to
load the current configuration.
Master state machine The current state of the remote system upgrade
31:30
current state master state machine
User watchdog timer The current state of the user watchdog enable,
Application information 1 (2) 29
enable bit which is active high
User watchdog timer The current entire 29-bit watchdog time-out
28:0
time-out value value.
Master state machine The current state of the remote system upgrade
31:30
current state master state machine
Application information 2 (2) 29:24 Reserved bits Padding bits that are set to all 0’s
The current 24-bit boot address that was used as
23:0 Boot address
the start address to load the current configuration
Notes to Table 8–24:
(1) The remote system upgrade master state machine is in factory configuration.
(2) The remote system upgrade master state machine is in application configuration.
The previous two application configurations are available in the previous state
registers (previous state register 1 and previous state register 2), but only for
debugging purposes.
Table 8–25 lists the contents of previous state register 1 and previous state register 2 in
the status register. The status register bit in Table 8–25 shows the bit positions in a
3-bit register. The previous state register 1 and previous state register 2 have the same
bit definitions. The previous state register 1 reflects the current application
configuration and the previous state register 2 reflects the previous application
configuration.
Table 8–25. Remote System Upgrade Previous State Register 1 and Previous State Register 2 Contents in Status
Register
Status Register Bit Definition Description
30 nCONFIG source
One-hot, active-high field that describes the reconfiguration source
29 CRC error source that caused the Cyclone IV device to leave the previous application
28 nSTATUS source configuration. If there is a tie, the higher bit order indicates
27 User watchdog timer source precedence. For example, if nCONFIG and remote system upgrade
nCONFIG reach the reconfiguration state machine at the same time,
Remote system upgrade the nCONFIG precedes the remote system upgrade nCONFIG.
26
nCONFIG source
Master state machine The state of the master state machine during reconfiguration causes
25:24
current state the Cyclone IV device to leave the previous application configuration.
The address used by the configuration scheme to load the previous
23:0 Boot address
application configuration.
If a capture is inappropriately done while capturing a previous state before the system
has entered remote update application configuration for the first time, a value outputs
from the shift register to indicate that the capture is incorrectly called.
1 To ensure the successful reconfiguration between the pages, assert the RU_nCONFIG
signal for a minimum of 250 ns. This is equivalent to strobing the reconfig input of
the ALTREMOTE_UPDATE megafunction high for a minimum of 250 ns.
The remote system upgrade status register is updated by the dedicated error
monitoring circuitry after an error condition, but before the factory configuration is
loaded.
Table 8–26. Control Register Contents After an Error or Reconfiguration Trigger Condition
Reconfiguration Error/Trigger Control Register Setting In Remote Update
nCONFIG reset All bits are 0
nSTATUS error All bits are 0
CORE triggered reconfiguration Update register
CRC error All bits are 0
Wd time out All bits are 0
The user watchdog timer begins counting after the application configuration enters
device user mode. This timer must be periodically reloaded or reset by the application
configuration before the timer expires by asserting RU_nRSTIMER. If the application
configuration does not reload the user watchdog timer before the count expires, a
time-out signal is generated by the remote system upgrade dedicated circuitry. The
time-out signal tells the remote system upgrade circuitry to set the user watchdog
timer status bit (Wd) in the remote system upgrade status register and reconfigures the
device by loading the factory configuration.
1 To allow the remote system upgrade dedicated circuitry to reset the watchdog timer,
you must assert the RU_nRSTIMER signal active for a minimum of 250 ns. This is
equivalent to strobing the reset_timer input of the ALTREMOTE_UPDATE
megafunction high for a minimum of 250 ns.
Errors during configuration are detected by the CRC engine. Functional errors must
not exist in the factory configuration because it is stored and validated during
production and is never updated remotely.
1 The user watchdog timer is disabled in factory configurations and during the
configuration cycle of the application configuration. It is enabled after the application
configuration enters user mode.
CYIV-51009-1.3
This chapter describes the cyclical redundancy check (CRC) error detection feature in
user mode and how to recover from soft errors.
Dedicated circuitry built into Cyclone IV devices consists of a CRC error detection
feature that can optionally check for a single-event upset (SEU) continuously and
automatically.
In critical applications used in the fields of avionics, telecommunications, system
control, medical, and military applications, it is important to be able to:
■ Confirm the accuracy of the configuration data stored in an FPGA device
■ Alert the system to an occurrence of a configuration error
Using the CRC error detection feature for Cyclone IV devices does not impact fitting
or performance.
This chapter contains the following sections:
■ “Configuration Error Detection” on page 9–1
■ “User Mode Error Detection” on page 9–2
■ “Automated SEU Detection” on page 9–3
■ “CRC_ERROR Pin” on page 9–3
■ “Error Detection Block” on page 9–4
■ “Error Detection Timing” on page 9–5
■ “Software Support” on page 9–6
■ “Recovering from CRC Errors” on page 9–9
© 2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
9–2 Chapter 9: SEU Mitigation in Cyclone IV Devices
User Mode Error Detection
Soft errors are changes in a configuration random-access memory (CRAM) bit state
due to an ionizing particle. Cyclone IV devices have built-in error detection circuitry
to detect data corruption by soft errors in the CRAM cells.
This error detection capability continuously computes the CRC of the configured
CRAM bits based on the contents of the device and compares it with the
pre-calculated CRC value obtained at the end of the configuration. If the CRCs match,
there is no error in the current configuration CRAM bits. The process of error
detection continues until the device is reset (by setting nCONFIG to low).
The Cyclone IV device error detection feature does not check memory blocks and I/O
buffers. These device memory blocks support parity bits that are used to check the
contents of memory blocks for any error. The I/O buffers are not verified during error
detection because the configuration data uses flip-flops as storage elements that are
more resistant to soft errors. Similar flip-flops are used to store the pre-calculated CRC
and other error detection circuitry option bits.
The error detection circuitry in Cyclone IV devices uses a 32-bit CRC IEEE 802
standard and a 32-bit polynomial as the CRC generator. Therefore, a single 32-bit CRC
calculation is performed by the device. If a soft error does not occur, the resulting
32-bit signature value is 0x00000000, that results in a 0 on the CRC_ERROR output
signal. If a soft error occurs in the device, the resulting signature value is non-zero and
the CRC_ERROR output signal is 1.
You can inject a soft error by changing the 32-bit CRC storage register in the CRC
circuitry. After verifying the induced failure, you can restore the 32-bit CRC value to
the correct CRC value with the same instruction and inserting the correct value.
1 Before updating it with a known bad value, Altera recommends reading out the
correct value.
In user mode, Cyclone IV devices support the CHANGE_EDREG JTAG instruction, that
allows you to write to the 32-bit storage register. You can use Jam™ STAPL files (.jam)
to automate the testing and verification process. You can only execute this instruction
when the device is in user mode, and it is a powerful design feature that enables you
to dynamically verify the CRC functionality in-system without having to reconfigure
the device. You can then use the CRC circuit to check for real errors induced by an
SEU.
Table 9–1 describes the CHANGE_EDREG JTAG instructions.
1 After the test completes, Altera recommends that you power cycle the device.
CRC_ERROR Pin
A specific CRC_ERROR error detection pin is required to monitor the results of the error
detection circuitry during user mode. Table 9–2 describes the CRC_ERROR pin.
f The CRC_ERROR pin information for Cyclone IV devices is reported in the Cyclone IV
Devices Pin-Outs on the Altera® website.
This section focuses on the first type—the 32-bit CRC when the device is in user
mode.
32
32
32
Register Function
This register contains the CRC signature. The signature register contains the result of the user
mode calculated CRC value compared against the pre-calculated CRC value. If no errors are
32-bit signature detected, the signature register is all zeros. A non-zero signature register indicates an error in the
register configuration CRAM contents.
The CRC_ERROR signal is derived from the contents of this register.
This register is loaded with the 32-bit pre-computed CRC signature at the end of the configuration
stage. The signature is then loaded into the 32-bit CRC circuit (called the Compute and Compare
CRC block, as shown in Figure 9–1) during user mode to calculate the CRC error. This register
forms a 32-bit scan chain during execution of the CHANGE_EDREG JTAG instruction. The
32-bit storage register
CHANGE_EDREG JTAG instruction can change the content of the storage register. Therefore, the
functionality of the error detection CRC circuitry is checked in-system by executing the instruction
to inject an error during the operation. The operation of the device is not halted when issuing the
CHANGE_EDREG instruction.
Table 9–5. Minimum and Maximum Error Detection Frequencies for Cyclone IV Devices
You can set a lower clock frequency by specifying a division factor in the Quartus II
software (for more information, refer to “Software Support”). The divisor is a power
of two (2), where n is between 0 and 8. The divisor ranges from one through 256. Refer
to Equation 9–1.
Equation 9–1.
80 MH
rror detection frequency = -------------------
n
2
CRC calculation time depends on the device and the error detection clock frequency.
Table 9–6 lists the estimated time for each CRC calculation with minimum and
maximum clock frequencies for Cyclone IV devices.
Software Support
Enabling the CRC error detection feature in the Quartus II software generates the
CRC_ERROR output to the optional dual purpose CRC_ERROR pin.
To enable the error detection feature using CRC, perform the following steps:
1. Open the Quartus II software and load a project using Cyclone IV devices.
2. On the Assignments menu, click Settings. The Settings dialog box appears.
3. In the Category list, select Device. The Device page appears.
4. Click Device and Pin Options. The Device and Pin Options dialog box appears as
shown in Figure 9–2.
5. In the Device and Pin Options dialog box, click the Error Detection CRC tab.
6. Turn on Enable error detection CRC.
7. In the Divide error check frequency by box, enter a valid divisor as documented
in Table 9–5 on page 9–5.
8. Click OK.
Figure 9–2. Enabling the Error Detection CRC Feature in the Quartus II Software
Figure 9–3 shows the error detection block diagram in FPGA devices and shows the
interface that the WYSIWYG atom enables in your design.
Clock Divider
(1 to 256 Factor)
VCC
CRC_ERROR
Pre-Computed CRC (Shown in BIDIR Mode)
(Saved in the Option Register)
Error Detection
Logic
CRC_ERROR
SRAM CRC
REGOUT
Bits Computation
SHIFTNLD
LDSRC
CLK
Logic Array
1 The user logic is affected by the soft error failure, so reading out the 32-bit CRC
signature through the regout should not be relied upon to detect a soft error. You
should rely on the CRC_ERROR output signal itself, because this CRC_ERROR output
signal cannot be affected by a soft error.
To enable the cycloneiv_crcblock WYSIWYG atom, you must name the atom for
each Cyclone IV device accordingly.
Example 9–1 shows an example of how to define the input and output ports of a
WYSIWYG atom in a Cyclone IV device.
Example 9–1. Error Detection Block Diagram
cycloneiv_crcblock<crcblock_name>
.clk(<clock source>),
.shiftnld(<shiftnld source>),
.ldsrc(<ldsrc source>),
.regout(<output destination>),
);
Table 9–7 lists the input and output ports that you must include in the atom.
Table 9–7. CRC Block Input and Output Ports
CYIV-51010-1.3
This chapter describes the boundary-scan test (BST) features that are supported in
Cyclone IV devices. The features are similar to Cyclone III devices, unless stated in
this chapter.
Cyclone IV devices (Cyclone IV E devices and Cyclone IV GX devices) support IEEE
Std. 1149.1. Cyclone IV GX devices also support IEEE Std. 1149.6. The IEEE Std. 1149.6
(AC JTAG) is only supported on the high-speed serial interface (HSSI) transceivers in
Cyclone IV GX devices. The purpose of IEEE Std. 1149.6 is to enable board-level
connectivity checking between transmitters and receivers that are AC coupled.
This chapter includes the following sections:
■ “IEEE Std. 1149.6 Boundary-Scan Register” on page 10–2
■ “BST Operation Control” on page 10–3
■ “I/O Voltage Support in a JTAG Chain” on page 10–5
■ “Boundary-Scan Description Language Support” on page 10–6
f For more information about the JTAG instructions code with descriptions and IEEE
Std.1149.1 BST guidelines, refer to the IEEE 1149.1 (JTAG) Boundary-Scan Testing for
Cyclone III Devices chapter.
f For more information about the following topics, refer to AN 39: IEEE 1149.1 (JTAG)
Boundary-Scan Testing in Altera Devices:
© 2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
10–2 Chapter 10: JTAG Boundary-Scan Testing for Cyclone IV Devices
IEEE Std. 1149.6 Boundary-Scan Register
Figure 10–1. HSSI Transmitter BSC with IEEE Std. 1149.6 BST Circuitry for Cyclone IV GX Devices
BSCAN PMA
SDOUT
AC JTAG
Output
0 BSTX1 Buffer
0 OE
D Q D Q 1
1
Pad
Mission
0 (DATAOUT)
D Q D Q 0 Tx Output
Buffer
1 BS0EB nOE
1
Pad
OE Logic
M0 RHZ
0
0 OE
BSTX0
D Q D Q AC JTAG
1 Output
1 Buffer
Capture Update
Registers
Figure 10–2. HSSI Receiver BSC with IEEE Std. 1149.6 BST Circuitry for the Cyclone IV GX Devices
BSCAN PMA
Hysteretic
Memory
0
BSOUT1
D Q Pad
Mission
1 (DATAIN) Rx Input
Optional INTEST/RUNBIST Buffer
not supported Pad
Capture Update
Registers
f For more information about Cyclone IV devices user I/O boundary-scan cells, refer to
the IEEE 1149.1 (JTAG) Boundary-Scan Testing for Cyclone III Devices chapter.
IEEE Std.1149.6 mandates the addition of two new instructions: EXTEST_PULSE and
EXTEST_TRAIN. These two instructions enable edge-detecting behavior on the signal
path containing the AC pins.
EXTEST_PULSE
The instruction code for EXTEST_PULSE is 0010001111. The EXTEST_PULSE instruction
generates three output transitions:
■ Driver drives data on the falling edge of TCK in UPDATE_IR/DR.
■ Driver drives inverted data on the falling edge of TCK after entering the
RUN_TEST/IDLE state.
■ Driver drives data on the falling edge of TCK after leaving the RUN_TEST/IDLE
state.
1 If you use DC-coupling on HSSI signals, you must execute the EXTEST instruction. If
you use AC-coupling on HSSI signals, you must execute the EXTEST_PULSE
instruction. AC-coupled and DC-coupled HSSI are only supported in
post-configuration mode.
EXTEST_TRAIN
The instruction code for EXTEST_TRAIN is 0001001111. The EXTEST_TRAIN instruction
behaves the same as the EXTEST_PULSE instruction with one exception. The output
continues to toggle on the TCK falling edge as long as the test access port (TAP)
controller is in the RUN_TEST/IDLE state.
1 These two instruction codes are only supported in post-configuration mode for
Cyclone IV GX devices.
1 When you perform JTAG boundary-scan testing before configuration, the nCONFIG pin
must be held low.
1 For multiple devices in a JTAG chain with the 3.0-V/3.3-V I/O standard, you must
connect a 25- series resistor on a TDO pin driving a TDI pin.
You can also interface the TDI and TDO lines of the devices that have different VCCIO
levels by inserting a level shifter between the devices. If possible, the JTAG chain
should have a device with a higher V CCIO level driving a device with an equal or
lower VCCIO level. This way, a level shifter may be required only to shift the TDO level
to a level acceptable to the JTAG tester.
Figure 10–3 shows the JTAG chain of mixed voltages and how a level shifter is
inserted in the chain.
Tester
f For more information about how to download BSDL files for IEEE Std.
1149.1-compliant Cyclone IV E devices, refer to IEEE Std. 1149.1 BSDL Files.
f For more information about how to download BSDL files for IEEE Std.
1149.6-compliant Cyclone IV GX devices, refer to IEEE Std. 1149.6 BSDL Files.
f You can also generate BSDL files (pre-configuration and post-configuration) for
IEEE Std. 1149.1/IEEE Std. 1149.6-compliant Cyclone IV devices with the Quartus® II
software version 9.1 SP1 and later. For more information about the procedure to
generate BSDL files using the Quartus II software, refer to BSDL Files Generation in
Quartus II.
CYIV-51011-1.3
f For each Altera recommended power supply’s operating conditions, refer to the
Cyclone IV Device Datasheet chapter.
f For power supply pin connection guidelines and power regulator sharing, refer to the
Cyclone IV Device Family Pin Connection Guidelines.
Table 11–1. Power Supply Descriptions for the Cyclone IV GX Devices (Part 1 of 2)
Power Supply Pin Nominal Voltage Level (V) Description
Core voltage, PCI Express (PCIe) hard IP block, and
VCCINT 1.2 transceiver physical coding sublayer (PCS) power
supply
VCCA (1) 2.5 PLL analog power supply
VCCD_PLL 1.2 PLL digital power supply
VCCIO (2) 1.2, 1.5, 1.8, 2.5, 3.0, 3.3 I/O banks power supply
VCC_CLKIN (3), (4) 1.2, 1.5, 1.8, 2.5, 3.0, 3.3 Differential clock input pins power supply
VCCH_GXB 2.5 Transceiver output (TX) buffer power supply
Transceiver physical medium attachment (PMA) and
VCCA_GXB 2.5
auxiliary power supply
© 2013 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its ISO
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and 9001:2008
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service Registered
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Feedback Subscribe
11–2 Chapter 11: Power Requirements for Cyclone IV Devices
Hot-Socketing Specifications
Table 11–1. Power Supply Descriptions for the Cyclone IV GX Devices (Part 2 of 2)
Power Supply Pin Nominal Voltage Level (V) Description
VCCL_GXB 1.2 Transceiver PMA and auxiliary power supply
Notes to Table 11–1:
(1) You must power up VCCA even if the phase-locked loop (PLL) is not used.
(2) I/O banks 3, 8, and 9 contain configuration pins. You can only power up the VCCIO level of I/O banks 3 and 9 to 1.5 V, 1.8 V, 2.5 V, 3.0 V, or 3.3 V.
For Fast Passive Parallel (FPP) configuration mode, you must power up the VCCIO level of I/O bank 8 to 1.5 V, 1.8 V, 2.5 V, 3.0 V, or 3.3 V.
(3) All device packages of EP4CGX15, EP4CGX22, and device package F169 and F324 of EP4CGX30 devices have two VCC_CLKIN dedicated clock
input I/O located at Banks 3A and 8A. Device package F484 of EP4CGX30, all device packages of EP4CGX50, EP4CGX75, EP4CGX110, and
EP4CGX150 devices have four VCC_CLKIN dedicated clock input I/O bank located at banks 3A, 3B, 8A, and 8B.
(4) You must set VCC_CLKIN to 2.5V if the CLKIN is used as a high-speed serial interface (HSSI) transceiver refclk. When not used as a transceiver
refclk, VCC_CLKIN supports 1.2 V/ 1.5 V/ 1.8 V/ 2.5 V/ 3.0 V/ 3.3V voltages.
Hot-Socketing Specifications
Cyclone IV devices are hot-socketing compliant without the need for any external
components or special design requirements. Hot-socketing support in Cyclone IV
devices has the following advantages:
■ You can drive the device before power up without damaging the device.
■ I/O pins remain tri-stated during power up. The device does not drive out before
or during power-up. Therefore, it does not affect other buses in operation.
1 The user I/O pins and dual-purpose I/O pins have weak pull-up resistors, which are
always enabled (after POR) before and during configuration. The weak pull up
resistors are not enabled prior to POR.
f For more information about the hot-socketing specification, refer to the Cyclone IV
Device Datasheet chapter and the Hot-Socketing and Power-Sequencing Feature and Testing
for Altera Devices white paper.
1 Altera uses GND as reference for hot-socketing operation and I/O buffer designs. To
ensure proper operation, Altera recommends connecting the GND between boards
before connecting the power supplies. This prevents the GND on your board from
being pulled up inadvertently by a path to power through other components on your
board. A pulled up GND can otherwise cause an out-of-specification I/O voltage or
current condition with the Altera device.
f For more information about the MSEL pin settings, refer to the Configuration and
Remote System Upgrades in Cyclone IV Devices chapter.
f For more information about the POR specifications, refer to the Cyclone IV Device
Datasheet chapter.