Altera PHYLite for Parallel Interfaces IP Core User Guide

Altera PHYLite for Parallel Interfaces IP Core User
Guide
2015.06.12
ug_altera_phylite
Send Feedback
Subscribe
The Altera PHYLite for Parallel Interfaces IP core controls the strobe-based capture I/O elements in
Arria® 10 devices. Use each instance of the IP core to support an interface with up to 18 individual data/
strobe capture groups. Each group can contain up to 48 data I/Os as well as the strobe capture logic.
Device Family Support
The Altera PHYLite for Parallel Interfaces IP core supports Arria 10 devices only.
®
For Arria V, Cyclone V, and Stratix V devices, use the ALTDQ_DQS2 IP core instead.
®
®
Related Information
• ALTDQ_DQS2 IP Core User Guide
For more information about the ALTDQ_DQS2 IP core
Features
The Altera PHYLite for Parallel Interfaces IP core:
• Supports input, output, and bidirectional data channels
• Supports DQS-group based data capture, with up to 48 I/Os (including strobes) per group and DQS
gating/ungating circuitry for strobe-based interfaces
• Supports output delays via interpolator
• Supports dynamic on-chip termination (OCT) control
• Supports quarter-rate to half-rate and half-rate to full-rate conversions. Also supports input, output,
and read/DQS/OCT enable paths
• Supports single data rate (SDR) and double data rate (DDR) at the I/Os
• Supports PHY clock tree
• Supports dynamically reconfigurable delay chains using Avalon interface
• Supports process, voltage, and temperature (PVT) or non-PVT compensated input and DQS delay
chains
Note: The non-PVT compensated component of the input delay is not set in the Quartus II software
version 14.1 and will only be set in a future release of the Quartus II software.
© 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, 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 semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and 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 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.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
2
ug_altera_phylite
2015.06.12
Overview
Overview
The Arria 10 I/O subsystem is located in the I/O columns. Each column consists of up to 13 I/O banks
and one I/O aux.
Figure 1: I/O Column for Arria 10 Devices
I/O Bank
I/O Bank
I/O Bank
I/O AUX
Each bank is a group of 48 I/O pins, organized into four I/O lanes with 12 pins for each lane.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Clocks
3
Figure 2: I/O Banks in Arria 10 Devices
This figure shows a detailed view of the I/O bank in Arria 10 devices.
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
Individual
I/O Banks
3H
2K
3G
2J
3F
Transceiver Block
2I
Transceiver
Block
3E
2H
3D
2G
3C
2F
3B
2A
3A
I/O
Column
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
I/O Center
Transceiver Block
2L
I/O
Column
I/O PLL
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
LVDS I/O Buffer Pair
I/O Lane
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
I/O Lane
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
I/O DLL
I/O CLK
OCT
VR
Hard Memory Controller
and
PHY Sequencer
I/O Lane
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
I/O Lane
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
SERDES & DPA
Bank
Control
Each I/O lane contains the DDR-PHY input and output path logic for 12 I/Os as well as a DQS logic
block. All four lanes in a bank can be combined to form a single data/strobe group or up to four groups in
the same interface. Under certain conditions, two groups from different interfaces can also be supported
in the same bank.
Related Information
• Placement Restrictions on page 15
For more information about placement restrictions
• Functional Description—Arria 10 EMIF
For more information about the architecture
Clocks
The Altera PHYLite for Parallel Interfaces IP core uses four clock domains for the output and input paths.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
4
ug_altera_phylite
2015.06.12
Clock Frequency Relationships
Table 1: Altera PHYLite IP Core Clock Domains
Clock Domain
Description
Core clock
This clock is generated internally by the IP core and it is used for all transfers
between the FPGA core fabric and I/O banks.
PHY clock
This clock is used internally by the IP core for PHY circuitry running at the same
frequency as the core clock. The PHY circuitry ensures that this clock is kept in phase
with the core clock for core-to-periphery and periphery-to-core transfers.
VCO clock
This clock is generated internally by the PLL. It is used by both the input and output
paths to generate PVT compensated delays.
External Memory
clock
This is the user specified frequency at which the FPGA I/Os connected to the
external device operate.
Related Information
Interface on page 5
Clock Frequency Relationships
Figure 3: Clock Frequency Relationships
VCO Clock Frequency : External Memory Clock Frequency : Core/PHY Clock Frequency
VCO Frequency Multiplier
User Specified Core Clock Rate
VCO Frequency Multiplication Factor
Table 2: VCO Frequency Multiplication Factor
The relationship between the VCO clock frequency and the user specified external memory clock frequency is
calculated during generation of the IP core based on the this table.
VCO
Frequency
Multiplication
Factor
Minimum
Frequency
Maximum
Frequency
Minimum
Frequency
Maximum
Frequency
Minimum
Frequency
Maximum Frequency
1
600
1333.33
600
1333.33
600
1250
2
300
600
300
600
300
600
4
150
300
150
300
150
300
8
100
150
100
150
100
150
Altera Corporation
Speed Grade -1
Speed Grade -2
Speed Grade -3
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Interface
5
Interface
Figure 4: Top-Level Interface
This figure shows the top-level diagram of the Altera PHYLite for Parallel Interfaces IP core interface.
Group
ref_clk
PLL
phy_clk_phs
phy_clk
I/O Lane
core_clk_out
Tile Control
Data to/from Core
Legend
Reference Clock
Core Clock
I/O Lane
I/O Lane
VCO/Interpolator
I/O Lane
data_in/out/io
data_in/out/io
PHY Clock
ExternalClock
The Altera PHYLite for Parallel Interfaces IP core consists of the following interfaces:
•
•
•
•
Clocks and reset
Core data and control (broken down into input and output paths)
I/O (broken down into input and output paths)
Avalon configuration bus
Related Information
• Output Path on page 5
For more information about the output path
• Input Path on page 8
For more information about the input path
• Signals on page 38
For more information about core data, control, and I/O interfaces signals
Output Path
The output path consists of a FIFO and an interpolator.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
6
ug_altera_phylite
2015.06.12
Output Path
Figure 5: Output Path
This figure shows the output path for the Altera PHYLite for Parallel Interfaces IP core.
output_strobe_in
output_strobe_en
strobe_out
strobe_io
Write FIFO
data_from_core
oe_from_core
data_io
data_out
oct_out
oe_out
phy_clk
interpolator_clk
VCO clock
Interpolator
Table 3: Blocks in Output Path
This table lists the blocks in the output path.
Block
Description
FIFO
Serializes the output data from the core with a serialization factor of up to 8
(in DDR quarter-rate).
Interpolator
Works with the FIFO block to generate the desired output delay. You can
dynamically configure the delay through the Avalon interface. For more
information, refer to Dynamic Reconfiguration section.
The following figures show the waveform diagrams for the output path.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Output Path Data Alignment
7
Figure 6: Output Path ─ Write Latency 0
Figure 7: Output Path ─ Write Latency 3
Related Information
• Output Path Signals on page 38
For more information about output path signals
• Dynamic Reconfiguration on page 20
Output Path Data Alignment
The data_from_core and oe_from_core signals are arranged in time slices, which are broken down into
the individual pins in the group. The first time slice is on the LSBs of the buses, which matches the Altera
PHY interface (AFI) bus ordering of the Arria 10 External Memory Interfaces IP core.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
8
ug_altera_phylite
2015.06.12
Input Path
Example of time slices with individual pins correlation:
{...,time2,time1,time0}
Where time0 = {...,pin1,pin0}
Figure 8: Example Output for Quarter Rate DDR
Related Information
Dynamic Reconfiguration on page 20
External Memory Interface Handbook
For more information about the AFI 3.0 specification
Input Path
Figure 9: Input Path
This figure shows the input path of the IP core.
data_to_core
Read FIFO
DDIO
5
6
5
phy_clk
dqs
read_enable
pstamble_reg dqs_clean
3
rdata_valid
rdata_en
Delay Chain
(PVT)
data_in
data_io
strobe_in
strobe_io
strobe_in_n
Delay Chain
(PVT)
6
4
dqs_enable
2
1
VFIFO
dqs_enable
FIFO
phy_clk
interpolator_clk
phy_clk_phs
Altera Corporation
Interpolator
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Input Path
9
The input path of the IP core consists of a data path, a strobe path, and read enable path.
Table 4: Blocks in Data, Strobe, and Read Enable Paths
This table lists the information about these paths.
Path
Data Path
Description
Consists of a PVT compensated delay chain, a DDIO and a read FIFO.
• PVT compensated delay chain—Allows per-bit deskew. You can only control the
PVT compensated delay chain over Avalon-MM interface. For more information,
refer to Dynamic Reconfiguration.
• DDIO and read FIFO—Responsible for deserialization with a factor of up to 8 (in
DDR quarter-rate). The transfer between the DDIO and the read FIFO is a zerocycle transfer.
The IP core supports SDR input by dropping every other bit of data going to the core.
Strobe Path
Consists of pstamble_reg (a gating component) and a PVT compensated delay chain.
• pstamble_reg—This gating circuitry ensures that only clock edges associated with
valid input data are used.
• PVT compensated delay chain—Provides a phase offset between the strobe and the
data (for example, center aligning edge-aligned inputs).
Read Enable Path Consists of VFIFO, FIFO, and an interpolator.
• VFIFO—takes the rdata_en signal from the core and delays it separately for two
outputs, one for the read enable on the read FIFO, and one for the strobe enable.
These delays are calculated at generation time based on the read latency that you
provide. Individual control is not necessary, but if you are modifying these delays
you can do so individually using dynamic reconfiguration.
• FIFO and interpolator—used for the strobe enable delay, the FIFO and interpo‐
lator are identical to the FIFO and interpolator circuitry in the output path. The
FIFO and interpolator are configured to match the output delay for a group with
no additional output delay (Write latency = 0). During dynamic reconfiguration,
the FIFO and interpolator can be used for fine grained control of the strobe enable
signal. Both of these delays are controlled by the Read latency parameter for the
group.
Table 5: Read Operation Sequence
A read operation is performed as listed in this table.
Legend in Figure 9
Operation
1
The core asserts the read_en signal (and the external device is issued a read
command)
2
The strobe enable is delayed through the two FIFOs by the programmed read latency
(which should match the latency of the external device)
3
The strobe signal is ungated by the strobe enable signal as valid data enters the read
path
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
10
ug_altera_phylite
2015.06.12
Input Path Data Alignment
Legend in Figure 9
Operation
4
The strobe is optionally delayed to create a phase offset between the strobe and the
input data (for example, 90° phase shift for DDR center-alignment)
5
The data is clocked into the DDIO and read FIFO by the strobe
6
The VFIFO asserts the read enable on the read FIFO and the rdata_valid signal to
the core simultaneously. This outputs the captured data and the associated valid signal
to the core.
Figure 10: Input Path Waveform
This figure shows a waveform diagram of the input path.
Related Information
Input Path Signals on page 40
For more information about input path signals
Input Path Data Alignment
The bus ordering of data_to_core, rdata_en, and rdata_valid is identical to the ordering of the output
path. That is, the LSBs of the bus hold the first time slice of data received.
The rdata_valid delay is always set by the IP core to match the rdata_en alignment. For example,
quarter-rate delays are multiples of four external memory clock cycles (one quarter rate clock cycle).
Unaligned reads will result in unaligned rdata_valid and data_to_core with data and valid signals
packed to the LSBs.
Figure 11: Example Input (Quarter Rate DDR) - Aligned
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
I/O Standards
11
Figure 12: Example Input (Quarter Rate DDR) - Unaligned
I/O Standards
The Altera PHYLite for Parallel Interfaces IP core allows you to set I/O standards on the pins associated
with the generated configuration. The I/O standard controls the available strobe configurations and OCT
settings for all groups.
When you select an I/O standard in the I/O standard parameter, the reference clock assigns the I/O
standard as a single-ended input. For a differential reference clock, override the single-ended Quartus II
IP File (.qip) setting in the .qsf.
If you want to assign I/O standards manually at the system level (in the .qsf), then set the I/O standard to
none, which will not output any I/O standard related .qip assignments from the IP generation.
Table 6: I/O Standards
I/O Standard
(1)
Valid Input
Valid Output
Terminations (Ω) (1) Terminations
(Ω)(1)
RZQ
(Ω)
Differential/Complementary I/O
Support
SSTL-12
60, 120
40, 60
240
Yes
SSTL-125
20, 30, 40, 60, 120
34, 40
240
Yes
SSTL-135
20, 30, 40, 60, 120
34, 40
240
Yes
SSTL-15
20, 30, 40, 60, 120
34, 40
240
Yes
SSTL-15 Class I
0, 50
0, 50
100
Yes
SSTL-15 Class II
0, 50
0, 25
100
Yes
SSTL-18 Class I
0, 50
0, 50
100
Yes
SSTL-18 Class II
0, 50
0, 25
100
Yes
1.2-V HSTL Class I
0, 50
0, 50
100
Yes
1.2-V HSTL Class II
0, 50
0, 25
100
Yes
1.5-V HSTL Class I
0, 50
0, 50
100
Yes
1.5-V HSTL Class II
0, 50
0, 25
100
Yes
1.8-V HSTL Class I
0, 50
0, 50
100
Yes
1.8-V HSTL Class II
0, 50
0, 25
100
Yes
0 is equivalent to none.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
12
ug_altera_phylite
2015.06.12
Input Buffer Reference Voltage (VREF)
I/O Standard
Valid Input
Valid Output
Terminations (Ω) (1) Terminations
(Ω)(1)
1.2-V POD
RZQ
(Ω)
Differential/Complementary I/O
Support
34, 40, 48, 60, 80,
120, 240
34, 40, 48, 60
240
Yes
1.2-V
—
—
—
No
1.5-V
—
—
—
No
1.8-V
—
—
—
No
Input Buffer Reference Voltage (VREF)
The 1.2-V POD I/O standard allows a configurable VREF. By default, the externally provided VREF is
used and using an internal VREF requires the following .qsf assignments:
set_instance_assignment -name VREF_MODE <mode> -to <pin_name>
Note: The VREF settings are at the lane level, so all pins using a lane must have the same VREF settings
(including GPIOs).
Table 7: VREF_MODE Description
VREF Mode
(1)
Description
EXTERNAL
Use the external VREF. This is the default.
CALIBRATED
Use internal VREF generated using VREF codes from the Avalon reconfiguration bus.
VCCIO_45
Use internal VREF generated using static VREF code. VREF is 45% of VCCN
VCCIO_50
Use internal VREF generated using static VREF code. VREF is 50% of VCCN
VCCIO_55
Use internal VREF generated using static VREF code. VREF is 55% of VCCN
VCCIO_65
Use internal VREF generated using static VREF code. VREF is 65% of VCCN
VCCIO_70
Use internal VREF generated using static VREF code. VREF is 70% of VCCN
VCCIO_75
Use internal VREF generated using static VREF code. VREF is 75% of VCCN
0 is equivalent to none.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Calibrated VREF Settings
13
Figure 13: VREF
Input Buffer
VCCN
Rt
+
Vref -
VREF Calibration Block
External VREF
R
VCCN
Internal VREF
+
-
Resistor
Ladder
R
6 bits calibrated VREF code from Avalon bus
6 bits Static VREF Code
6 bits binary weighted resistors dividor
Calibrated VREF Settings
Table 8: Calibrated VREF Settings
This table lists the calibrated VREF settings that you can set over the Avalon calibration bus.
avl_writedata[5:0]
% of VCCN
000000
60.00%
000001
60.64%
000010
61.28%
000011
61.92%
000100
62.56%
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
14
ug_altera_phylite
2015.06.12
Calibrated VREF Settings
Altera Corporation
avl_writedata[5:0]
% of VCCN
000101
63.20%
000110
63.84%
000111
64.48%
001000
65.12%
001001
65.76%
001010
66.40%
001011
67.04%
001100
67.68%
001101
68.32%
001110
68.96%
001111
69.60%
010000
70.24%
010001
70.88%
010010
71.52%
010011
72.16%
010100
72.80%
010101
73.44%
010110
74.08%
010111
74.72%
011000
75.36%
011001
76.00%
011010
76.64%
011011
77.28%
011100
77.92%
011101
78.56%
011110
79.20%
011111
79.84%
100000
80.48%
100001
81.12%
100010
81.76%
100011
82.40%
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Placement Restrictions
avl_writedata[5:0]
% of VCCN
100100
83.04%
100101
83.68%
100110
84.32%
100111
84.96%
101000
85.60%
101001
86.24%
101010
86.88%
101011
87.52%
101100
88.16%
101101
88.80%
101110
89.44%
101111
90.08%
110000
90.72%
110001
91.36%
110010
92.00%
110011 -> 111111
Reserved
15
Related Information
Dynamic Reconfiguration on page 16
For more information on the Avalon bus usage
Placement Restrictions
Group Pin Placement
Place each group in the interface into a set of lanes in the same bank, the number of which depends on the
number of pins used by the group. All groups in an interface must be placed across a contiguous set of
banks.
Table 9: Group Pin Placement
Number of Pins in Group
Valid DQS Group in a Bank
Valid Indices in a Bank
1-12
DQS for X8/X9
{0-11}/{12-23}/{24-35}/{36-47}
13-24
DQS for X16/X18
{0-23}/{24-47}
24-48
DQS for X32/X36
{0-47}
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
16
ug_altera_phylite
2015.06.12
Reference Clock
Related Information
• Device Pin-Out File
For specific DQS group numbers refer to the specific device Pin-Out file
Reference Clock
The reference clock must be placed on a clock input in one of the banks used by the interface. If the
reference clock is used for multiple interfaces (consisting of a combination of EMIF and Altera PHYLite
for Parallel Interfaces IPs), it can be placed in any bank used by any of the interfaces, but the banks for all
interfaces must be contiguous.
Constraining Multiple Altera PHYLite for Parallel Interfaces to One I/O Bank
To constrain groups from separate Altera PHYLite for Parallel Interfaces IP core instances into the same
I/O bank, the instances must share the same reference clock and reset sources, the same external memory
frequencies and the same voltage settings.
Dynamic Reconfiguration
If you are using the dynamic reconfiguration feature, all interfaces of the Arria 10 External Memory
Interfaces and Altera PHYLite for Parallel Interfaces IP cores in the same I/O column must share the
reset signal. Multiple IP cores requiring Avalon core access require daisy chain connectivity.
Related Information
Daisy Chain on page 20
Describes the daisy chain connectivity
Timing
The Quartus II software version 14.1 generates the required timing constraints to analyze the timing of
the Altera PHYLite for Parallel Interfaces IP core on the Arria 10 device.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Timing Components
17
Timing Components
Table 10: Timing Components
Circuit Category
Timing
Paths
Source
Source Synchronous
and optionally
calibrated (2)
Read Path
Memory
Device
Core to
PHYLite
Path
Core
Registers
Source Synchronous
and optionally
calibrated (2)
Internal FPGA
Internal FPGA
Destination
Description
DQ Capture Source synchronous timing paths—
Register
paths where clock and data signals are
passed from the transmitting devices
to the receiving devices.
Write Path FPGA DQ/ Memory
DQS
Device
Optionally calibrated paths—paths
with delay elements that are
dynamically reconfigurable to achieve
timing closure, especially at higher
frequency, and to maximize the
timing margins. You can calibrate
these paths by implementing an
algorithm and turning on the
optional dynamic reconfiguration
feature. An example of the calibrated
path is the FPGA to memory device
write path, in which you can
dynamically reconfigure the delay
elements to, for instance, compensate
the skew due to process voltage
temperature variation.
PHYLite to Read FIFO
Core
Write FIFO
Core
Registers
The internal FPGA paths are paths in
the FPGA fabric. The TimeQuest
timing analyzer reports the
corresponding timing margins.
Timing Constraints and Files
To enable you to successfully timing constrain the Altera PHYLite for Parallel Interfaces IP core, the IP
core generates a set of timing files. You can locate these timing files in the <variation_name> directory:
• <variation_name> .sdc
• <variation_name> _ip_parameters.tcl
• <variation_name> _pin_map.tcl
(2)
Can be optionally calibrated by using dynamic reconfiguration.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
18
ug_altera_phylite
2015.06.12
<variation_name>.sdc
<variation_name>.sdc
You can find the location of the <variation_name>.sdc file in the .qip, which is generated during the IP
generation. The <variation_name>.sdc allows the Fitter to optimize timing margins with timing driven
compilation and allows the TimeQuest timing analyzer to analyze the timing of your design.
The IP core uses <variation_name>.sdc for the following operations:
•
•
•
•
Creating clocks on PLL inputs
Creating generated clocks
Calling derive_clock_uncertainty
Creating set_output_delay and set_input_delay constraints to analyze the timing of the read and
write paths
<variation_name>_ip_parameters.tcl
The <variation_name>_ip_parameters.tcl file lists the Altera PHYLite for Parallel Interfaces IP core
parameters and is read by the <variation_name>.sdc.
<variation_name>_pin_map.tcl
The <variation_name>_pin_map.tcl is a TCL library of functions and procedures that
<variation_name>.sdc uses.
Timing Analysis
Table 11: Timing Analysis
This table lists the timing analysis performed in the I/O and FPGA for the Altera PHYLite for Parallel Interfaces
IP core.
Location
I/O
Description
The Altera PHYLite for Parallel Interfaces IP core generation creates the appropriate
generated clock settings for the read strobe on the read path and the write strobe of the write
path, according to their strobe type (singled-ended, complementary, or differential) and their
interface type (SDR or DDR) in the following format:
• Clock name for read strobe—<pin_name>_IN.
• Clock name for the write path—<pin_name> for positive strobe.
• Clock name for the write path—<pin_name>_neg for negative strobe.
The set_false_path, set_input_delay and set_output_delay constraints are also
generated to ensure proper timing analysis of the Altera PHYLite for Parallel Interfaces IP
core.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Timing Closure Guidelines
Location
FPGA
19
Description
The Altera PHYLite for Parallel Interfaces IP core generation creates the clock settings for the
user core clock and the periphery clock in the following formats:
• user core clock—<variation_name>_usr_clk
• periphery clock— <variation_name>_phy_clk*
The user core clock is for user core logic and the periphery clock is the clock for the PHYLite
periphery hardware. With these clock settings, the TimeQuest Timing Analyzer analyzes the
timing of the Altera PHYLite for Parallel Interfaces IP core interface transfer and within core
transfer correctly.
Timing Closure Guidelines
Timing Closure: Dynamic Reconfiguration
You can dynamically reconfigure the delay elements in the I/O to optimize process, voltage, temperature
variations by implementing a calibration algorithm that modifies the input and output delays (refer to
Dynamic Reconfiguration on page 20).
The SDC cuts the I/O transfer paths and you must verify the reconfiguration algorithm to ensure that
your I/O transfers are working. The Quartus II software issues the following critical warning:
Dynamic Reconfiguration is ON but user has not set var(dynamic_reconfiguration_algorithm_verified) to 1. Please set to 1 after calibration algorithm is
extensively verified. I/O timing analysis may not represent the system.
After verifying the algorithm, you can disable the critical warning by editing the .sdc file and set the
following variable to 1:
var(dynamic_reconfiguration_algorithm_verified)
Timing Closure: Non Edge-Aligned Input Data
If the input data is not edge-aligned, modify the timing settings of the group to match the system. Convert
input strobe phase shift to nanosecond and subtract it from Input Strobe Setup Delay Constrain and
Input Strobe Hold Delay Constrain parameters.
If the input data is center-aligned with the input strobe, subtract the 90° phase shift from the Input Strobe
Setup Delay Constrain and Input Strobe Hold Delay Constrain parameters in the
<variation_name>.sdc. For example, if the memory speed is 800 MHz and the value of the Input Strobe
Setup Delay Constrain parameter is 0.1, change the value to 0.1-1.25*(90/360) = -0.2125.
Note: Ensure that you make the changes in the Input Strobe Setup Delay Constrain and Input Strobe
Hold Delay Constrain parameters.
I/O Timing Violation
At high frequency configuration, it is difficult to achieve timing closure at I/O. Consider using the Arria
10 External Memory Interface IP core or the dynamic reconfiguration feature to calibrate the I/O path.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
20
Internal FPGA Path Timing Violation
ug_altera_phylite
2015.06.12
Related Information
Dynamic Reconfiguration on page 20
For more information about using the dynamic reconfiguration feature to calibrate the I/O path
Internal FPGA Path Timing Violation
If timing violations are reported at the internal FPGA paths (such as <instance_name>_usr_clk or
<instance_name>_phy_clk_*), consider the following guidelines:
If setup time violation is reported, lower the clock rate of the user logic from full-rate to half-rate, or from
half-rate to quarter-rate. This reduces the frequency requirement of the IP core-to-core data transfer.
If hold time violation is observed, overconstrain the hold uncertainty in the .sdc to force the Fitter to fix
the hold time violation. Under normal circumstances, the Fitter should already attempt to avoid hold time
violation. It is possible that the Fitter may think adding more delay to avoid hold time at the fast timing
corner may cause setup time violation at the slow corner.
Dynamic Reconfiguration
Due to the asynchronous nature of the PHY, you must perform calibration to achieve timing closure at a
high frequency. At a high level, calibration involves reconfiguring input and output delays in the PHY to
align data and strobes. Enabling dynamic reconfiguration in the Altera PHYLite for Parallel Interfaces IP
core provides allows you to modify these delays using an Avalon-MM interface.
RTL Connectivity
When generating the Altera PHYLite for Parallel Interfaces IP core with the dynamic reconfiguration
feature enabled, the Altera PHYLite for Parallel Interfaces IP core exposes the Avalon-MM master and
Avalon-MM slave interfaces. If the generated IP core is the only Altera PHYLite for Parallel Interfaces IP
core (with dynamic reconfiguration) or Arria 10 External Memory Interfaces IP core in the I/O column,
then only the slave interface needs to be used with a master in the core. Otherwise, both interfaces must be
connected as described in the following section.
Daisy Chain
The I/O column provides a single physical Avalon-MM interface. All IP cores in the I/O column that
require Avalon access from the core use the same physical Avalon-MM interface. The system level RTL
for the column reflects this resource limitation by using a daisy chain to connect all dynamically reconfig‐
urable IP cores in an I/O column.
The Altera PHYLite for Parallel Interfaces IP core exposes a 28-bit Avalon-MM address, where the top 4bits are the ID of the interface to be addressed in the daisy chain. These bits are only required for the daisy
chain arbitration in RTL simulation, so they are synthesized away during compilation. If only one
interface is addressed from the core, it is sufficient to tie these bits off to the interface’s ID.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Addressing
21
Figure 14: Logical RTL View to Physical Column Placement
This figure shows an example of a daisy chain consisting of the Arria 10 External Memory Interfaces and
Altera PHYLite for Parallel Interfaces IP cores before and after placement.
Notice that all core controllers must go through the arbitration logic that you created in the FPGA core
logic to connect to an interface on the daisy chain. The end of the daisy chain should have its master
output interface tied off.
Note: The prefit netlist of a design using the daisy chain will not simulate correctly due to the rearrange‐
ment of the Avalon address pins, which is done by the Fitter. The postfit netlist will properly
simulate the merged I/O column.
Addressing
Each reconfigurable feature of the interface has an associated memory address. However, this address is
placement dependent so addresses of the interface lanes, as well as the pins must be tracked in order to
use the IP in a column that can be shared with other Altera PHYLite for Parallel Interfaces and the Arria
10 External Memory Interfaces IP cores, which also use the Avalon Bus.
Note: Addressing is done at the 32-bit word boundary; avl_address[1:0] = 00
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
22
ug_altera_phylite
2015.06.12
Addressing
Table 12: Address Map
Feature
Avalon Address R/
W
Address CSR R
Control
Value
Field
Range
Phase Value
12..0
Reserved
31..13
Minimum Setting: Refer
to Table 13
Maximum Setting: Refer
to Table 13
Incremental Delay: 1/
128th VCO clock period
Pin Output
Phase
{id[3:0],
3'h4,lane_
addr[7:0],pin{4
:0],8'D0}
{id[3:0],
3'h4,lane_
addr[7:0],
4'hC,lgc_
sel[1:0],pin_
off[2:0],4'h0}
Pin PVT
Compensa
ted Input
Delay
The pin
output phase
switches
from the CSR
value to the
Avalon value
Note: after the first
Avalon write.
It is only
reset to the
CSR value on
a reset of the
interface.
{id[3:0],
3'h1,lane_
addr[7:0],pi
n{4:0],8'E8}
Delay Value
8..0
Reserved
11..9
Enable
12
Reserved
31..13
• lgc_sel[1:0] is:
Minimum Setting: 0
• 2'b01 for pin
<=5
Not supported
• 2'b10 for pin
>5
• pin_off[2:0] is:
Maximum Setting: 511
VCO clock periods
Incremental Delay: 1/
256th VCO clock period
• pin[2:0] for
pin <= 5
• pin[2:0] 3'h6 for pin
>5
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Feature
Addressing
Avalon Address R/
W
{id[3:0],
3'h4,lane_
addr[7:0],
4'hC,lgc_
sel[1:0],
3'h6,4'h0}
Strobe
PVT
compensat
ed input
• lgc_sel[1:0] =
delay (3)
• 2'b01 for a
• 2'b10 for b
Address CSR R
Not supported
Control
23
Value
Field
Range
Delay Value
9..0
Reserved
11..10
Enable
12
Reserved
31..13
Minimum Setting: 0
Maximum Setting: 1023
VCO clock periods
Incremental Delay: 1/
256th VCO clock period
(4)
Strobe
enable
phase (3)
{id[3:0],
3'h4,lane_
addr[7:0],
4'hC,lgc_
sel[1:0],
3'h7,4'h0}
• lgc_sel[1:0]
is:
• 2'b01 for a
• 2'b10 for b
Phase Value
• {id[3:0],
3'h1,lane_
addr[7:0],
4'hC,
9'h194}
12..0
Reserved
14..13
Enable
15
Reserved
31..16
• {id[3:0],
3'h1,lane_
addr[7:0],
4'hC,
9'h198}
Minimum Setting: Refer
to Table 13
Maximum Setting: Refer
to Table 13
Incremental Delay: 1/
128th VCO clock period
(4)
Delay Value
Strobe
enable
delay (3)
(3)
(4)
{id[3:0],
3'h4,lane_
addr[7:0],4'hC,
9'h008}
{id[3:0],
3'h1,lane_
addr[7:0],
4'hC,9'h1A8}
5..0
Reserved
14..6
Enable
15
Reserved
31..16
Minimum Setting: 0
external clock cycles
Maximum Setting: 63
external memory clock
cycles
Incremental Delay: 1
external memory clock
cycle
Modifying these values must be done on all lanes in a group.
Strobe logic b is only used by the negative pin of complementary strobes.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
24
ug_altera_phylite
2015.06.12
Output and Strobe Enable Minimum and Maximum Phase Settings
Feature
Avalon Address R/
W
{id[3:0],
Address CSR R
{id[3:0],
Read valid 3'h4,lane_
3'h1,lane_
delay (3)
addr[7:0],4'hC, addr[7:0],
9'h00C}
Internal
VREF
Code
Control
Value
Field
Range
Delay Value
6..0
Reserved
14..7
Enable
15
Reserved
31..16
4'hC,9'h1A4}
{id[3:0],
3'h4,lane_
addr[7:0],4'hC,
9'h014}
Not supported
Minimum Setting: 0
external clock cycles
Maximum Setting: 127
external memory clock
cycles
Incremental Delay: 1
external memory clock
cycle
VREF Code
5..0
Reserved (5)
31..6(5)
Refer to Table 8
Where:
• id[3:0] refers to the Interface ID parameter
• lane_addr[7:0] refers to the address of a given lane in an interface. This is set by the Fitter and can be
queried in the parameter table as described in the Address Look-Up on page 25.
• pin[4:0] refers to the physical location of the pin in a lane. A pin location is either determined by the
Fitter or through a .qsf assignment and can be queried in the parameter table as described in the
Address Look-Up on page 25.
Output and Strobe Enable Minimum and Maximum Phase Settings
When dynamically reconfiguring the interpolator phase settings, the values must be kept within the
ranges below to ensure proper operation of the circuitry.
Table 13: Output and Strobe Enable Minimum and Maximum Phase Settings
VCO Multiplication
Factor
1
2
(5)
Core Rate
Minimum Interpolator
Phase
Maximum Interpolator Phase
Full
0x100
0xA80
Half
0x280
0xBC0
Quarter
0x180
0xA00
Full
0x180
0xFFF
Half
0x100
0xFFF
Quarter
0x380
0xFFF
Reserved bit ranges must be zero
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Address Look-Up
VCO Multiplication
Factor
4
8
Core Rate
Minimum Interpolator
Phase
25
Maximum Interpolator Phase
Full
0x200
0xFFF
Half
0x100
0xFFF
Quarter
0x280
0xFFF
Full
0x200
0xFFF
Half
0x000
0xFFF
Quarter
0x380
0xFFF
Address Look-Up
You must know the lane addresses and the pin placement to address an interface correctly. Because these
values are placement dependent, these values will be different before and after placement. The Altera
PHYLite for Parallel Interfaces IP core is generated as if the IP core is the only IP core in a column, with
lane addresses starting from 0. If the IP core is placed in a column containing Arria 10 External Memory
Interfaces or Altera PHYLite for Parallel Interfaces IP cores (with dynamic reconfiguration), then the
addressing of the I/O lanes in the interfaces must be modified to avoid conflicts. A pin can also be moved
into any lane within a group. In general, even if the Altera PHYLite for Parallel Interfaces IP core interface
is the only IP in the column, the Fitter will still modify the addresses.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
26
ug_altera_phylite
2015.06.12
Address Look-Up
Figure 15: Lane and Pin Placement Dependent Addresses
This figure shows an example of a placed group with two lanes, 16 data pins and a differential strobe.
In order to provide a unified way to look up reconfigurable feature addresses for a specific interface both
before and after placement, the address information is stored in memory in the I/O column. This memory
is addressable over the same Avalon-MM bus as is used for feature reconfiguration.
Table 14: Memory Look Up Components
This table lists the two main components to the memory look-up.
Component
Description
Global parameter table
Stores pointers to the individual interface parameter tables. The
global parameter table lists all interfaces in the column (both
the Arria 10 External Memory Interfaces and Altera PHYLite
for Parallel Interfaces IP cores).
Set of individual interface parameter
tables
Contain interface specific information. This is where pin and
lane level address look-ups are performed.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Address Look-Up
27
Figure 16: Memory Overview
32-bits (4 Byte Addresses)
{id[3:0],24’h00E000}
Global Parameter Table
(One per column, same as EMIF)
{id[3:0],24'00E018}
{4’b1000,id[3:0], pt_ptr[23:0]
A
{id[3:0],24’h00E000} + pt_ptr
{id[3:0],24’h00E000} + pt_ptr 28’d4
Parameter Table
(PHYLite Specific)
{id[3:0],24’h00E000} + pt_ptr +
{22’d0,num_grps[7:2],2’b00} + 28 d8
1
{4'h8,id[3:0],8'h00,interface_table_ptr[15:0]}
PT_VER[15:0],IP_VER[15:0]
Number of Groups
2
3
Number of Groups
Number of Groups
lane_ptr[15:0],pin_ptr[15:0]
B
num_lanes[1:0],num_pins[5:0]
4
One per Interface
C
Group 0 Lane 0
{id[3:0],24’h00E000} + lane_ptr
Lane Address Table
(PHYLite Specific)
5
Needed for simplifying
strobe feature logic
address lookups
D
{id[3:0],24’h00E000} + pin_ptr
Group 0 Pin 1
Group 0 Pin 0
6
Needed for pin
address lookups
Pin Address Table
(PHYLite Specific)
A
The MSB of the interface pointer entry in the global parameter table is 1 for PHYLite interfaces.
B
num_lanes[1:0] starts counting at 0. For example, 0 = 1 lane, 1 = 2 lanes, 2 = 3 lanes, 3 = 4 lanes
C
Lane address table information: Group X Lane Y = lane_addr[7:0]
D
Pin address table information: Group X Pin Y = {lane_addr[7:0],0xF,pin[3:0]} for data and
{lane_addr[7:0],0xE,pin[3:0]} for strobe
The Parameter table look-ups are used as follows (the sequence corresponds to the sequence in Figure
16):
Table 15: Parameter Table Lookup Operation Sequence
Legend in Figure 16
1
Description
Search for Interface Parameter Table in Global Parameter Table (cache once per
interface)
• {id{3:0],24'h00E000} + 28'h18 to {id{3:0],24'h00E0000} + 28'h2C
• 1 to 11 look-ups
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
28
ug_altera_phylite
2015.06.12
Strobes
Legend in Figure 16
2
Description
Retrieve number of groups in the interface (cache once per interface)
• {id[3:0],24'h00E000} + {4'h0,pt_ptr[23:0]} + 4'h4
• You can skip this if it saved in the core during compilation (for example, hard
coded in RTL logic)
3
Retrieve group information (cache once per group)
• {id[3:0],24'h00E000} + {4'h0,pt_ptr[23:0]} + 24'h4 + grp_num
• Not always necessary
4
Retrieve Lane/Pin Address Offsets for group (cache once per group)
• {id[3:0],24'h00E000} + pt_ptr + {22'd0,num_grps[7:2],2'b00} + 28'd8
5
Perform lane/pin address translation (cache once per pin)
• {id[3:0],24'h00E000} + {12'h000,lane_ptr[15:0]} + lane_num
• {id[3:0],24'h00E000} + {12'h000,pin_ptr[15:0]} + {17'h0,pin_num[5:0], 1'b0}
6
Read/Write Avalon Calibration Bus
• {id[3:0],24'h800000} + read_from_step_4 + intra_lane_addr
Caching look-ups 1-4 (8-bytes of information) allows for pin and lane translations in one look-up.
Strobes
The first pins listed in the pin address look-up table are the strobes. They are also identified by bits[7:4]
= 0xE. For separate strobes, the input strobe is always first. For differential and complementary strobes,
the positive pin is the lower index.
Note: The output phase of differential strobes can be modified by writing to either the positive or
negative pin. Only one write is necessary. This is also the case for output only complementary
strobes.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Parameter Table Example
29
Parameter Table Example
Figure 17: Parameter Table Example
This figure shows an example of a design containing two Altera PHYLite interfaces, each with one
bidirectional group composed of 4 data bits and one strobe. Both interfaces are in the same I/O
column and therefore their tables must be merged.
1 group with 5
pins and 1
lane in the
interface
strobe_io = lane 0x39, pin 4
data_io[0] = lane 0x39,pin 3
data_io[1] = lane 0x39, pin 11
data_io[2] = lane 0x39, pin 7
data_io[3] = lane 0x39, pin 10
Pin
Pointer
Lane
Pointer
strobe_io = lane 0x00, pin 0
data_io[0] = lane 0x00, pin 1
data_io[1] = lane 0x00, pin 2
data_io[2] = lane 0x00, pin 3
data_io[3] = lane 0x00, pin 4
strobe_io = lane 0x00, pin 0
data_io[0] = lane 0x00,pin 1
data_io[1] = lane 0x00, pin 2
data_io[2] = lane 0x00, pin 3
data_io[3] = lane 0x00, pin 4
3AF13AE4
3AFA3AF9
strobe_io = lane 0x3A, pin 4
data_io[0] = lane 0x3A, pin 1
data_io[1] = lane 0x3A, pin 9
data_io[2] = lane 0x3A, pin 10
data_io[3] = lane 0x3A, pin 8
Note: Note there is no guarantee of the ordering of the interface parameter tables in the
merged table, so a specific interface will have to be searched for.
For more information about the contents of the parameter table, refer to Figure 16.
Example Design Avalon Controller
An addressing operation can be complicated and error prone. Accidentally addressing the wrong interface
of the IP cores may result in debugging runtime errors difficulties. Therefore, the example design provides
an Avalon controller to simplify the dynamic control of an interface. Altera recommends you to simply
integrate the provided example controller into a dynamic reconfiguration design.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
30
ug_altera_phylite
2015.06.12
Example Design Avalon Controller
Figure 18: Avalon Controller
Avalon Interface Input
(from user logic)
Avalon Interface Output
(to Altera PHYLite
instance daisy chain)
Avalon Controller
The input interface is as follows:
avl_in_address[31:0] =
{8'h00,interface_id[3:0],grp[4:0],pin[5:0],csr[0],register[7:0]}
Note: There is no look-up stage here. All necessary data is automatically looked-up and
cached by the Avalon controller.
Note: A single controller can support multiple interfaces in an I/O column.
Table 16: Avalon Controller Registers
This table lists the available registers in the Avalon controller. For more information, refer to Table 12.
Register[7:0]
Pin[5:0
]
Csr[0]
Avalon
Register
Access
Type
CSR
Register
Access
Type
R/W Data on avl_
readdata/avl_writedata
AVL_CTRL_REG_NUM_
GROUPS
0
0: Access to
Avalon
register.
R
N/A
{24'h000000,num_
grps[7:0]}
AVL_CTRL_REG_GROUP_
INFO
0
0: Access to
Avalon
register.
R
N/A
{16'h0000,num_
lanes[7:0],num_
pins[7:0]}
AVL_CTRL_REG_IDELAY
0-47
0: Access to
Avalon
register.
R/W
N/A
{23'h000000,dq_
delay[8:0]}
AVL_CTRL_REG_ODELAY
0-47
0: Access to
Avalon
register.
R/W
R
{19'h00000,output_
phase[12:0]}
1: Access to
CSR
register.
Only read
operation
is allowed.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Example Design Avalon Controller
Register[7:0]
Avalon
Register
Access
Type
CSR
Register
Access
Type
R/W
N/A
{22'h000000,dqs_
delay[9:0]}
R/W
R
{26'h0000000,dqs_
en_delay[5:0]}
AVL_CTRL_REG_DQS_EN_ 0: DQS 0: Access to
PHASE_SHIFT
A
Avalon
1: DQS register.
B
1: Access to
(6)
CSR
register.
Only read
operation
is allowed.
R/W
R
{19'h00000,phase[12:
0]}
AVL_CTRL_REG_RD_
VALID_DELAY
R/W
R
{25'h0000000,rd_
vld_delay[6:0]}
AVL_CTRL_REG_DQS_
DELAY
Pin[5:0
]
Csr[0]
0: DQS 0: Access to
A
Avalon
register.
1: DQS
B
31
R/W Data on avl_
readdata/avl_writedata
(6)
AVL_CTRL_REG_DQS_EN_
DELAY
0
0: Access to
Avalon
register.
1: Access to
CSR
register.
Only read
operation
is allowed.
0
0: Access to
Avalon
register.
1: Access to
CSR
register.
Only read
operation
is allowed.
The interface_id[3:0] and grp[4:0] components of the input address are always used.
Note: VREF reconfiguration is not currently supported by the example design Avalon
controller.
(6)
Strobe logic B is only used by the negative pin of complementary strobes
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
32
ug_altera_phylite
2015.06.12
Calibration Guidelines
Calibration Guidelines
The Altera PHYLite for Parallel Interfaces IP core allows you to dynamically reconfigure the features of
the interface. However, performing calibration is an application specific process. This section provides
some general guidelines for calibrating the Arria 10 I/O architecture.
Strobe Enable Windowing
The read FIFO has the read pointer reset when reads are far apart (80 core clock cycles). However, the
data inside the FIFO is not cleared. Therefore, an alternating pattern should be used to find the end to the
strobe enable window to avoid erroneous correct reads due to stale data in the FIFO.
The strobe enable turns itself off on the last negative edge of the strobe. Therefore, while finding the
enable window, use extra dummy pulses (either extended strobe or reads from memory without asserting
the rdata_en signal) to clear the strobe enable.
Altera PHYLite for Parallel Interfaces IP Core Reference
Parameter Settings
Table 17: Altera PHYLite for Parallel Interfaces IP Core Parameter Settings
This table lists the parameter settings for the Altera PHYLite for Parallel Interfaces IP core.
GUI Name
Values
Description
Parameter
Number of groups
1 to 18
Number of data/strobe groups in the interface.
The value is set to 1 by default.
General Tab- these parameters are set on a per interface basis
Clocks
Memory clock frequency
100 MHz - 1333.333
MHz
External memory clock frequency. The value is set
to 533 MHz by default.
Note: To achieve timing closure at 800 MHz
and above, use dynamic reconfigura‐
tion to calibrate the interface.
Use core PLL reference clock
connection
—
Enables reference clock source supplied by the
core. By default, the PLL reference clock source is
a dedicated clock pin.
Use recommended PLL
reference clock frequency
—
If you want to calculate the PLL reference clock
frequency automatically for best performance,
then turn on this option.
If you want to specify your own PLL reference
clock frequency, then turn off this option.
This option is enabled by default.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Parameter Settings
GUI Name
PLL reference clock
frequency
Values
33
Description
Dependent on desired PLL reference clock frequency. You must feed a
memory clock
clock of this frequency to the PLL reference clock
frequency
input of the memory interface. The default value is
dependent on recommended clock frequency and
user clock rate.
Note: There is no minimum range, but the
maximum output frequency is 1600
MHz limited by the clock network. The
minimum range for the ref_clk signal
is 10 MHz but the maximum is
dependent on the speed grade.
Clock rate of user logic
Full, Half, Quarter
Determines the clock frequency of user logic in
relation to the memory clock frequency. For
example, if the memory clock sent from the FPGA
to the memory device is toggling at 800 MHz, a
"Quarter rate" interface means that the user logic
in the FPGA runs at 200 MHz.
The value is set to Quarter by default.
Specify additional output
clocks based on existing PLL
—
Number of additional clocks
0 to 4
Exposes additional output clocks from the existing
PLL.
Specifies the number of additional clocks to be
exposed.
Desired Frequency
—
Specifies the output clock frequency of the
corresponding output clock port, outclk[], in
MHz. The default value is 100.0 MHz. The
minimum and maximum values depend on the
device used. The PLL only reads the numerals in
the first six decimal places.
Actual Frequency
—
Allows you to select the actual output clock
frequency from a list of achievable frequencies.
The default value is the closest achievable
frequency to the desired frequency.
Phase Shift units
ps or degrees
Specifies the phase shift unit for the corresponding
output clock port, outclk[] , in picoseconds (ps)
or degrees.
Phase Shift
—
Specifies the requested value for the phase shift.
The default value is 0 ps.
Actual Phase Shift
—
Allows you to select the actual phase shift from a
list of achievable phase shift values. The default
value is the closest achievable phase shift to the
desired phase shift.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
34
ug_altera_phylite
2015.06.12
Parameter Settings
GUI Name
Values
Description
Desired Duty Cycle
0.0–100.0
Specifies the requested value for the duty cycle.
The default value is 50.0%
Actual Duty Cycle
—
Allows you to select the actual duty cycle from a
list of achievable duty cycle values. The default
value is the closest achievable duty cycle to the
desired duty cycle.
Use dynamic reconfigura‐
tion
—
Exposes an Avalon-MM interface, allowing you to
control the configuration of the Altera PHYLite
for Parallel Interfaces IP core settings.
Interface ID
0
The ID used to identify this interface in the
column over the Avalon-MM bus.
Dynamic Reconfiguration
I/O Settings
I/O standard
SSTL-12
SSTL-125
SSTL-135
Specifies the I/O standard of the interface's strobe
and data pins written to the .qip of the IP instance.
When you choose None, the I/O standard is
unspecified in the generated IP.
SSTL-15
SSTL-15 Class I
SSTL-15 Class II
SSTL-18 Class I
SSTL-18 Class II
1.2-V-HSTL Class I
1.2-V-HSTL Class II
1.5-V-HSTL Class I
1.5-V-HSTL Class II
1.8-V-HSTL Class I
1.8-V-HSTL Class II
1.2-V POD
1.2-V
1.5-V
1.8-V
None
Group <x> - these parameters are set on a per group basis
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Parameter Settings
GUI Name
Values
35
Description
Group <x> Pin Settings
Pin type
Input, Output,
Bidirectional
Pin width
1 to 48
Direction of data pins. This value is set to Bidirec‐
tional by default.
Number of pins in this data/strobe group. The
value is set to 9 by default.
A data width of 48 is only achievable if no strobe is
used in the group. The number of strobes is
controlled by the Use output strobe, Strobe
configuration and Use separate capture strobe
parameters.
DDR/SDR
DDR, SDR
Double/single data rate. The value is set to DDR by
default.
Group <x> Input Path Settings
Read latency
1 to 63 external
interface clock cycles
Expected read latency of the external device in
memory clock cycles. The value is set to 4 by
default.
For example, a design with an external clock
frequency of 533 MHz in half-rate has a valid read
latency range of 5 to 63 external interface clock
cycles.
Refer to Table 18.
Swap capture strobe polarity
—
Capture strobe phase shift
0,45,90,135, 180
Internally swap the negative and positive capture
strobe input pins. This feature is only available for
complementary strobe configurations.
Phase shift of input strobe relative to input data.
The value is set to 90° by default.
Group <x> Output Path Settings
Write latency
0 to 3 (maximum
Additional delay added to the output data in
value is dependent on memory clock cycles.
the rate)
Use output strobe
Output strobe phase
—
0,45,90,135,180
Use an output strobe. This option is enabled by
default.
Phase shift of the output strobe relative to the
output data. The value is set to 90° by default.
Group <x> General Data Settings
Data configuration
Single ended,
Differential
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Selects the type of data. Single ended data type
uses one pin. Differential data type uses 2 pins. By
default, the value is set to single ended.
Altera Corporation
36
ug_altera_phylite
2015.06.12
Parameter Settings
GUI Name
Values
Description
Group <x> General Strobe Settings
Strobe configuration
Single ended,
Differential,
Complementary
Select the type of strobe. A single ended strobe
uses one pin, which will reduce the maximum
possible number of data pins in the group to 47.
Differential/complementary strobe types use 2
pins, which will reduce the maximum possible
number of data pins in the group to 46.
The value is set to Single ended by default.
Note: The differential strobe configuration
uses a differential input buffer, which
produces a single clock for the capture
DDIO and read FIFO. The complemen‐
tary strobe configuration uses two
single-ended input buffers and clocks
the data into the capture DDIO and
read FIFO using both clocks (as
required by protocols such as QDRII).
The output path functionality is the
same.
Use separate strobes
—
Separate the bidirectional strobe into input and
output strobe pins. Using separate strobes is only
available for a bidirectional data group with the
output strobe enabled.
—
Use default OCT values based on the I/O standard
parameter setting.
No termination, 50
ohm with calibration
Specifies the group's data and strobe input
termination values to be written to the .qip of the
IP instance. The list of legal values is dependent on
the I/O standard parameter setting. Refer to Table
6.
Group <x> OCT Settings
Use Default OCT Values
Input OCT Value
This option is available when the Use Default
OCT Values option is disabled.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Read Latencies
GUI Name
Values
Output OCT Value
37
Description
No termination, 50
ohm with calibration
Specifies the group's data and strobe input
termination values to be written to the .qip of the
IP instance. The list of legal values is dependent on
the I/O standard parameter setting. Refer to Table
6.
This option is available when the Use Default
OCT Values option is disabled.
Group <x> Timing Settings
Generate Input Delay
Constraints for this group
—
Instructs SDC to generate set_input_delay
constraints for this group.
Input Strobe Setup Delay
Constrain
Constraint in ns
Specifies the group's input setup delay constraint
against the input strobe.
Input Strobe Hold Delay
Constrain
Constraint in ns
Specifies the group's input hold delay constraint
against the input strobe.
Generate Output Delay
Constraints for this group
—
Output Strobe Setup Delay
Constrain
Constraint in ns
Specifies the group's output setup delay constraint
against the input strobe.
Output Strobe Hold Delay
Constrain
Constraint in ns
Specifies the group's output hold delay constraint
against the input strobe.
Instructs SDC to generate set_output_delay
constraints for this group.
Read Latencies
Table 18: Read Latencies
This table list the read latencies.
VCO Frequency
Multiplication
Factor
Core Clock Rate Setting
Full-Rate
Half-Rate
Quarter-Rate
1
4
5
7
2
4
5
7
4
3
4
7
8
3
4
7
Related Information
VCO Frequency Multiplication Factor on page 4
Provides information for going from speed grade and external memory frequency to VCO multiplication
factor
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
38
ug_altera_phylite
2015.06.12
Signals
Signals
Clock and Reset Interface Signals
Table 19: Clock and Reset Interface Signals
Signal Name
Direction
Width
Description
ref_clk
Input
1
Reference clock for the PLL. The reference clock must be
the same frequency as specified in the parameter.
reset_n
Input
1
Resets the interface. This signal is asynchronous.
interface_locked
Output
1
Interface locked signal from core. This signal indicates
that the PLL and PHY circuitry are locked.
core_clk_out
Output
1
Use this core clock in the core-to-periphery transfer of
soft logic data and control signals.
The core_clk_out frequency depends on the interface
frequency and clock rate of user logic parameter.
Output Path Signals
Table 20: Output Path Signals
Output path signals are signals that are available when you set the Pin Type parameter to either Output or
Bidirectional.
Signal Name
oe_from_core
Direction
Input
Width
Description
Quarter-rate: 4 x PIN_WIDTH
Half-rate: 2 x PIN_WIDTH
Full-rate: 1 x PIN_WIDTH
Core rate data enable to be
output. Synchronous to the
core_clk output from the IP
core.
Quarter rate-DDR: 8 x PIN_WIDTH
Half-rate DDR: 4 x PIN_WIDTH
data_from_core
Input
Full-rate DDR: 2 x PIN_WIDTH
Quarter-rate SDR: 4 x PIN_WIDTH
Core rate data to be output.
Synchronous to the core_clk
output from the IP core.
Half-rate SDR: 2 x PIN_WIDTH
Full-rate SDR: 1 x PIN_WIDTH
strobe_out_in
Input
Quarter-rate: 8
Half-rate: 4
Full-rate: 2
Altera Corporation
Strobe pattern to be output.
Synchronous to the core_clk
output from the IP core.
Note: This path is always
DDR.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Output Path Signals
Signal Name
Direction
strobe_out_en
Input
Width
39
Description
Enable output strobe. Synchro‐
nous to the core_clk output
from the IP core.
Quarter-rate: 4
Half-rate: 2
Full-rate: 1
data_out/data_io
Output/
•
Bidirectional
•
1 to 48 if data configuration is
Single Ended
1 to 24 if data configuration is
Differential
Data output to pin. Synchro‐
nous to the strobe_out or
strobe_io output from the IP
core.
If the Pin Type parameter is set
to Output, the data_out
signals are used. If the Pin
Type parameter is set to
Bidirectional, the data_io
signals are used.
data_out_n/data_
io_n
Output/
Bidirectional
1 to 24
Negative data output from pin
enabled when data configura‐
tion is set to Differential. Data
is synchronous to the strobe_
out or strobe_io output from
the IP core. If the pin type is set
to Output, the data_out_n
ports are used. If the pin type is
set to bidirectional, the data_
io_n ports are used.
strobe_out/
strobe_io
Output/
Bidirectional
1
Positive output strobe to pin. If
the Pin Type is set to Output,
the strobe_out signal is used.
If the Pin Type is set to
Bidirectional the strobe_io
signal is used. The Use
Separate Strobes parameter
forces the use of the strobe_
out signal with a Bidirectional
Pin Type.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
40
ug_altera_phylite
2015.06.12
Input Path Signals
Signal Name
Direction
Width
strobe_out_n/
strobe_io_n
Output/
Bidirectional
1
Description
Negative output strobe to pin.
This is used if the Strobe
Configuration is set to
Differential or Complemen‐
tary.
If the Pin Type is set to
Output, the strobe_out_n
signal is used. If the Pin Type
is set to Bidirectional, the
strobe_io_n signal is used.
The Use Separate Strobes
parameter forces the use of the
strobe_out_n signal with a
Bidirectional Pin Type.
Input Path Signals
Table 21: Input Path Signals
Input path signals are signals that are available when you set the Pin Type parameter to Input or Bidirectional.
Signal Name
data_to_core
Direction
Output
Width
Description
Quarter-rate DDR: 8 x PIN_WIDTH
Half-rate DDR: 4 x PIN_WIDTH
Valid on rdata_valid. Synchro‐
nous to the core_clk output from
the IP core.
Full-rate DDR: 2 x PIN_WIDTH
Quarter-rate SDR: 4 x PIN_WIDTH
Half-rate SDR: 2 x PIN_WIDTH
Full-rate SDR: 1 x PIN_WIDTH
Quarter-rate: 4
rdata_en
Input
Half-rate: 2
Full-rate: 1
rdata_valid
Output
Quarter-rate: 4
Half-rate: 2
Full-rate: 1
Held high for the number of
expected read words after a read
command. Synchronous to the
core_clk output from the IP core.
Delayed by READ_LATENCY with
margin and aligned to the core
clock rate. For example, in
quarter-rate, the delay will be a
multiple of 4 external clock cycles.
Synchronous to the core_clk
output from the IP core.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Avalon Configuration Bus Interface Signals
Signal Name
data_in/
data_io
data_in_n/
data_io_n
strobe_in/
strobe_io
strobe_in_n/
strobe_io_n
Direction
Width
Input/
•
Bidirectiona
l
•
1 to 48 if data configuration is
Single Ended
1 to 24 if data configuration is
Differential
41
Description
Data input from pin. Synchronous
to the strobe_in or strobe_io
input.
If the pin type is set to Input, the
data_in ports are used. If the pin
type is set to bidirectional, the
data_io ports are used.
Input/
Bidirectiona
l
1 to 24
Negative data input from pin
enabled when data configuration
is set to Differential. Data is
synchronous to the strobe_in or
strobe_io input. If the pin type is
set to Input, the data_in_n ports
are used. If the pin type is set to
bidirectional, the data_io_n
ports are used.
Input/
Bidirectiona
l
1
Positive strobe from pin. If the pin
type is set to Input, the strobe_in
signal is used. If the pin type is set
to Bidirectional, the strobe_io
signal is used.
Input/
Bidirectiona
l
1
Negative strobe from pin. This is
used if the Strobe Configuration
parameter is set to Differential or
Complementary. If the pin type is
set to Input, the strobe_in_n
signal is used. If the pin type is set
to Bidirectional, the strobe_io_n
signal is used.
Avalon Configuration Bus Interface Signals
The Altera PHYLite for Parallel Interfaces IP core exposes the Avalon-MM slave and Avalon-MM master
interfaces when you perform dynamic reconfiguration. Connect the Avalon-MM slave to either a master
in the core or the master interface of either an Altera PHYLite for Parallel Interfaces IP core or the Arria
10 External Memory Interfaces IP core to be placed in the same column. You can only connect the master
interface to the slave interface of an Altera PHYLite for Parallel Interfaces IP core or an Arria 10 External
Memory Interfaces IP core to be placed in the same column.
Table 22: Avalon-MM Master Interface Signals
Signal Name
Direction
Width
avl_clk
Input
1
Avalon interface clock.
avl_reset_n
Input
1
Reset input synchronous to avl_clk.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Description
Altera Corporation
42
ug_altera_phylite
2015.06.12
Avalon Configuration Bus Interface Signals
Signal Name
Direction
Width
avl_read
Input
1
Read request from io_aux. This signal is synchronous to
the avl_clk input.
avl_write
Input
1
Write request from io_aux. This signal is synchronous to
the avl_clk input.
avl_byteenable
Input
4
Controls which bytes should be written on avl_
writedata.
avl_writedata
Input
32
Write data from io_aux. This signal is synchronous to the
avl_clk input.
avl_address
Input
28
Address from io_aux. This signal is synchronous to the
avl_clk input.
Output
32
Read data to io_aux. This signal is synchronous to the
avl_clk input.
Input
32
Write data from io_aux. This signal is synchronous to
the avl_clk input.
avl_readdata_valid
Output
1
Indicates that read data has returned.
avl_waitrequest
Output
1
Stalls upstream logic when it is asserted.
avl_readdata
avl_writedata
Description
Table 23: Avalon-MM Slave Interface Signals
Signal Name
Direction
Width
avl_out_clk
Output
1
Connect this signal to the input Avalon interface of
another Altera PHYLite for Parallel Interfaces IP core or
the Arria 10 External Memory Interfaces IP.
avl_out_reset_n
Output
1
Connect this signal to the input Avalon interface of
another Altera PHYLite for Parallel Interfaces IP core or
the Arria 10 External Memory Interfaces IP.
avl_out_read
Output
1
Indicates read transaction.
avl_out_write
Output
1
Indicates write transaction.
avl_out_byteenable
Output
4
Controls which bytes should be written on avl_out_
writedata.
avl_out_writedata
Output
32
The data packet associated with the write transaction.
avl_out_address
Output
28
Avalon address (in byte granularity). Value is identical to
avl_address but with zeroes padded on the LSBs.
avl_out_readdata
Input
32
The data packet associated with avl_out_readdata_
valid.
Input
1
Indicates that read data has returned.
avl_out_readdata_
valid
avl_out_waitrequest
Altera Corporation
Input
1
Description
Stalls upstream logic when it is asserted.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Example Design
43
Related Information
Dynamic Reconfiguration on page 20
For more information about connecting these signals
Example Design
The Altera PHYLite for Parallel Interfaces IP core is able to generate an example design that matches the
same configuration chosen for the IP. The example design is a simple design that does not target any
specific application; however you can use the example design as a reference on how to instantiate the IP
core and what behavior to expect in a simulation.
Note: The .qsys files are for internal use during example design generation only. You should not edit the
files.
Generating Example Design
You can generate a example design by clicking Example Design in the IP Parameter Editor.
The software generates a user defined directory in which the example design files reside.
The <instance>_example_design directory contains two TCL scripts:
• - make_qii_design.tcl
• - make_sim_design.tcl
Generating Quartus Example Design
The make_qii_design.tcl generates a synthesizable example design along with a Quartus project, ready
for compilation.
To generate synthesizable example design, run the following script at the end of IP generation:
quartus_sh -t make_qii_design.tcl
To specify an exact device to use, run the following script:
quartus_sh -t make_qii_design.tcl [device_name]
This script generates a qii directory containing a project called ed_synth.qpf. You can open and compile
this project with the Quartus II software.
Generating Simulation Example Design
The make_sim_design.tcl generates a simulation example design along with tool-specific scripts to
compile and elaborate the necessary files.
To generate a simulation example design for a Verilog or a mixed-language simulator, run the following
script at the end of IP generation:
quartus_sh -t make_sim_design.tcl VERILOG
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
44
ug_altera_phylite
2015.06.12
Dynamic Reconfiguration Example Design
To generate simulation example design for a VHDL-only simulator, run the following script:
quartus_sh -t make_sim_design.tcl VHDL
This script generates a sim directory containing one subdirectory for each supported simulation tools.
Each subdirectory contains the specific scripts to run simulation with the corresponding tool.
The simulation example design provides a generic example of the core and I/O connectivity for your IP
configuration. Functionally, the simulation will iterate over each group in your configured IP and
performs basic reads/writes to an associated agent (one per group) in the testbench. A simple one group
Altera PHYLite instantiation in the testbench is used for basic address and command outputs to the agent.
A side bus between the sim_ctrl and the agents is used to check that the reads and writes are valid.
Figure 19: High-Level View of the Simulation Example Design with One Group
This figure shows a high-level view of the simulation example design with one group.
Side read/write command
Side read/write data
sim_ctrl
DRAM clock
Core clock
Read/Write
command
PHYLite ADDR/CMD
Core clock
DRAM clock
Agent (one per group
in DUT)
DRAM clock
Write command
Read command
Agent select
Core clock
PHYLite DUT
Read/Write
enable
data
Core clock
Reconfiguration
Flow Control
Dynamic Reconfiguration Only
cfg_ctrl
Avalon Bus
Latency Delays
data
DRAM clock
strobe
DRAM clock
Avalon Bus
avl_ctrl
Dynamic Reconfiguration Example Design
When you select the dynamic reconfiguration option, the example design introduces the cfg_ctrl and
avl_ctrl blocks, which work with the sim_ctrl module to demonstrate the basic functionality of the
Altera PHYLite IPs Avalon-MM based reconfiguration. The agent is also modified to insert delays on the
data and clocks, which the new modules will compensate for.
Before sending test data, the sim_ctrl module first asks the cfg_ctrl to sweep for working delay values.
While sweeping over the values, the cfg_ctrl module requests the sim_ctrl to perform writes and reads
and return the results. The setting of the delays is simplified by the avl_ctrl module, which is described
in detail in Example Design Avalon Controller on page 29.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
IP Migration for Arria V, Cyclone V, and Stratix V
45
NOTE: The cfg_ctrl module performs a simplistic reconfiguration of the interface that stops at the first
working delay values. This works in simulation but will likely fail in a hardware scenario, as the initial
working delay will be marginal. A robust calibration algorithm should sweep over the entire valid range of
delays to choose the correct value for the application.
IP Migration for Arria V, Cyclone V, and Stratix V
In Arria 10 devices, you can instantiate the Altera PHYLite for Parallel Interfaces IP core on its own
because the IP core contains the OCT and PLL. However, in Arria V, Cyclone V, and Stratix V devices,
you must instantiate the ALTDQ_DQS2 IP core with the ALTERA_PLL, ALTDLL and ALTOCT IP cores.
Therefore, when migrating from the ALTDQ_DQS2 IP core to the Altera PHYLite for Parallel Interfaces
IP core, you must:
• Configure the Altera PHYLite for Parallel Interfaces IP core settings.
• Manually remove the ALTERA_PLL, ALTOCT and ALTDLL IP cores and their connections from the
rest of the design at the top level.
• Connect extra ports to and from the Altera PHYLite for Parallel Interfaces IP core in the top level
design.
Parameter Commonalities and Differences
To ease the manual migration process from the ALTDQ_DQS2 IP core to the Altera PHYLite for Parallel
Interfaces IP core, understanding the parameter commonalities and differences of the IP cores is crucial.
These figures and table show the ALTDQ_DQS2 IP core parameters.
Note: For the Altera PHYLite for Parallel Interfaces IP core parameters, refer to Parameter Settings on
page 32
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
46
ug_altera_phylite
2015.06.12
Parameter Commonalities and Differences
Figure 20: ALTDQ_DQS2 IP Core Parameter for Arria V and Cyclone V Devices
Figure 21: ALTDQ_DQS2 IP Core Parameter for Stratix V Devices
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Common Parameters
47
Common Parameters
Table 24: Common Parameters
This table lists the common parameters for the Altera PHYLite for Parallel Interfaces and ALTDQ_DQS2 IP
cores.
ALTDQ_DQS2 IP core
Altera PHYLite for Parallel Interfaces IP core
Pin Width
Pin Width
Pin Type
Pin Type
Memory frequency
Memory clock frequency
Use dynamic configuration scan chains
Use dynamic reconfiguration
Use half-rate output path.
Clock rate of user logic
Note: Supports only full or half-rate.
Note: Supports only full, half, or quarter-rate.
Capture strobe type
Strobe configuration
Note: Supports single, complementary, and
differential strobes.
Note: Supports single ended, complementary,
and differential strobes.
DQS phase shift
Capture strobe phase shift
Generate Output strobe
Use Output strobe
Differential/Complementary output strobe
Strobe configuration
Note: Supports single, complementary, and
differential strobes.
Note: Supports single ended, complementary,
and differential strobes.
Make capture strobe bidirectional.
Pin type
Note: In the Altera PHYLite for Parallel Interfaces
IP core, the strobe is bidirectional when the
data is bidirectional.
Note: The Use separate strobes parameter can
be used for separate input and output
strobes with bidirectional data.
Additional Parameter for the Altera PHYLite for Parallel Interfaces IP core
The following figures and table show the additional parameters of the Altera PHYLite for Parallel
Interfaces IP core as a result of IP enhancement.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
48
Additional Parameter for the Altera PHYLite for Parallel Interfaces IP...
ug_altera_phylite
2015.06.12
Figure 22: Additional Parameter in General Tab
Figure 23: Additional Parameter in Group Tab
Table 25: Additional Parameters in the Altera PHYLite for Parallel Interfaces IP Core
Parameter
Description
PLL reference clock frequency Because PLL is available in each I/O bank, you only need to specify the
reference clock frequency for the PLL. No PLL instantiation is required.
Clock rate of user logic
The setting (full/half/quarter) is applicable for all groups in the IP core. In
the ALTDQ_DQS2 IP core, only full and half rate are supported.
DDR/SDR
This setting is applicable to the respective group only. In the ALTDQ_
DQS2 IP core, the default setting is DDR. For Altera PHYLite for Parallel
Interfaces IP core, if you need to implement SDR, then in the DDR/SDR
parameter, select SDR.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Parameters for ALTDQ_DQS2 IP Core Only
Parameter
49
Description
Read latency
The latency between a read command sent to the external device and the
first read data returned to the FPGA. This feature internally controls the
strobe enable gating.
Write Latency
This is the latency between the write command and the first written data.
Output Strobe Phase
Enables you to set the phase shift between the output strobe and output
data. In the ALTDQ_DQS2 IP core, you must ensure phase shifts by
generating two clocks with different phases, or manipulating some
dynamic reconfiguration settings.
Parameters for ALTDQ_DQS2 IP Core Only
The following figures and table show the parameters supported in the ALTDQ_DQS2 IP core but not in
Altera PHYLite for Parallel Interfaces IP core in the Quartus II software version 14.0a10:
Figure 24: ALTDQ_DQS2 IP Core Specific Parameters for Stratix V Devices
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
50
ug_altera_phylite
2015.06.12
Parameters for ALTDQ_DQS2 IP Core Only
Figure 25: ALTDQ_DQS2 IP Core Specific Parameters for Arria V Devices
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Parameters for ALTDQ_DQS2 IP Core Only
51
Table 26: ALTDQ_DQS2 IP Core Specific Parameters
Section
Parameter
Extra output-only pins
Description
This option is commonly used as datamask pins
in the ALTDQ_DQS2 IP core. In the Altera
PHYLite for Parallel Interfaces IP core, you may
implement this as part of the data group.
Note: An I/O bank comprises of 48 I/O
pins (up to 48 data I/Os as well as the
strobe capture logic).
Use DLL Offset Control
You cannot access the DLL because the DLL is
an internal block in Arria 10 devices.
Note: This feature is only for testing
purposes in the ALTDQ_DQS2 IP
core.
General Settings
Output Path
Enable hard FIFOs
In Arria 10 devices, the FIFOs are built-in and
is always enabled. But you can decide on the
full/half/quarter rate conversion to achieve the
equivalent data width and rate with the
ALTDQ_DQS2 IP core.
Enable dual write clocks
Enabled the use of separate output clocks for
data and strobe in the ALTDQ_DQS2 IP core.
Equivalent implementation is available in the
Altera PHYLite for Parallel Interfaces IP core.
You can control the phase shift with the Output
Strobe Phase parameter in the Altera PHYLite
for Parallel Interfaces IP core.
Use capture clock to clock the read
side of the Hard FIFO (For Arria V
and Cyclone V devices only)
This feature is not supported in the Altera
PHYLite for Parallel Interfaces IP core. This
parameter is only available for Arria V and
Cyclone V devices.
Use output phase alignment blocks
Arria 10 devices have different architecture.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
52
ug_altera_phylite
2015.06.12
Example Design: Manual IP Migration from ALTDQ_DQS2 IP Core to the...
Section
Parameter
Use capture strobe enable block
Treat the capture strobe enable as
a half-rate signal
DQS enable phase setting
Description
You cannot access the capture strobe in the
Altera PHYLite for Parallel Interfaces IP core
because the DQS enable control is an internal
block controlled by the read/write latency
settings.
In Arria 10 devices, the capture strobe enable
block is used for input/bidirectional applica‐
tions. It is controlled by the group's rdata_en
input port and read latency settings.
Capture Strobe
Use inverted capture strobe
This feature is necessary for QDR protocols.
This parameter is only available for Arria V and
Cyclone V devices.
The Swap capture strobe polarity parameter is
available for complementary strobe configura‐
tions.
Output Strobe
Use reset signal to stop output strobe
There is a reset pin generated in ALTERA_
PHYlite instantiation, except that it is for the
entire ALTERA_PHYlite reset, rather than
allowing stopping of the uni-directional output
strobe using this parameter in the ALTDQ_
DQS2 IP core.
OCT source
The OCTs in Arria 10 devices are built-in. You
do not need to manually instantiate the OCTs.
Preamble type
This option is not necessary in the Altera
PHYLite for Parallel Interfaces IP core because
you can control and customize the output
strobe pattern from the core logic using group_
x_strobe_out_in signal.
Example Design: Manual IP Migration from ALTDQ_DQS2 IP Core to the Altera
PHYLite for Parallel Interfaces IP Core
This example design demonstrates how to migrate from the ALTDQ_DQS2 IP core to the Altera PHYLite
for Parallel Interfaces IP core on a simple PHY-only design targeting external NAND Flash device. This
example design targets a Stratix V device. In Arria V, Cyclone V, and Stratix V devices, a PHY system
design that uses the ALTDQ_DQS2 IP core requires other IP cores such as the ALTERA_PLL, ALTDLL,
and ALTOCT IP cores.
Note: A proper NAND Flash external memory interface does not require any OCT. However, for general
migration illustration purposes, ALTOCT is instantiated in this example design.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Example Design: Manual IP Migration from ALTDQ_DQS2 IP Core to the...
53
To begin, follow these steps:
1. In the Quartus II software version 14.0a10, open the nand_flash_example_14.0a10.qar.
2. In the Quartus II dialog box, click Yes.
3. Run Analysis and Synthesis. The following figure shows the generated error messages, indicating that
there is no direct migration support from the ALTDQ_DQS2 IP core to the Altera PHYLite for Parallel
Interfaces IP core. To manually migrate to the Altera PHYLite for Parallel Interfaces IP core,
understanding the ALTDQ_DQS2 design is crucial.
Figure 26: Error Message
Basic NAND Flash Protocol
Table 27: Details of the Micron MT29F NAND Flash Memory Datasheet
This table lists the details of the Micron MT29F NAND Flash memory datasheet (focusing on synchronous
mode):
Synchronous Signals
Description
Memory frequency
100MHz
Data pin width
8-bit
Data Mode
DDR
DQx and DQS
Signal
Description
DQx
I/O
Data inputs/outputs. The bidirectional I/Os
transfer address, data, and command
information.
DQS
I/O
Data strobe. Provides a synchronous
reference for data input and output.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Type
Altera Corporation
54
ug_altera_phylite
2015.06.12
Implementation Using the ALTDQ_DQS2 IP Core
Synchronous Signals
CMD/ADDR signals (output
from FPGA, input to memory)
R/B# (output from memory,
input to the FPGA.)
Description
Signal
Type
Description
ALE
Input
Address latch enable. Loads an address
from DQx into the address register.
CE#
Input
Chip enable. Enables or disables one or
more die (LUNs) in a target.
CLE
Input
Command latch enable. Loads a command
from DQx into the command register.
W/R#
Input
Read enable and write/read enable. RE#
transfers serial data from the NAND Flash
to the host system when the asynchronous
interface is active. When the synchronous
interface is active, WR# controls the
direction of DQx and DQS.
CLK
Input
Write enable and clock. WE# transfers
commands, addresses, and serial data from
the host system to the NAND Flash when
the asynchronous interface is active. When
the synchronous interface is active, CLK
latches command and address cycles.
WP#
Input
Write protect. Enables and disables array
PROGRAM and ERASE operations.
Ready/Busy. This signal is an open-drain, active-low output that requires
an external pull-up resistor. This signal indicates target array activity.
Implementation Using the ALTDQ_DQS2 IP Core
The following lists the possible implementations when you target Arria V, Cyclone V, and Stratix V
devices:
• Instantiates two ALTDQ_DQS2 IP cores.
• Bidirectional type for DQ and DQS (Figure 27)
• Output type for Addr/Cmd (Figure 28)
• Instantiates a ALTIOBUF (input) for the ready signal
• Connects the ALTERA_PLL, ALTDLL, and ALTOCT IP cores to complete the PHY-only design.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Implementation Using the ALTDQ_DQS2 IP Core
55
Figure 27: ALTDQ_DQS2 Settings for Bidirectional Type DQ and DQS
Note: The DQS enable block must be enabled for NAND Flash, which has bidirectional strobe.
Note: DQS phase shift is set to 135° to gain maximum margin (due to the memory clock is slower than
the DLL’s minimum frequency)
Figure 28: ALTDQ_DQS2 settings for output type (Addr/Cmd)
Note: The settings in the figure are for the address/command lines.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
56
Implementation using the Altera PHYLite for Parallel Interfaces IP Core
ug_altera_phylite
2015.06.12
The following figure shows the RTL viewer for a NAND Flash simple design based on the ALTDQ_DQS2
IP core from this implementation.
Figure 29: RTL viewer for a NAND Flash simple design based on ALTDQ_DQS2
Implementation using the Altera PHYLite for Parallel Interfaces IP Core
You can configure the IP in a single Altera PHYLite for Parallel Interfaces IP core for multiple groups
(maximum 48 I/O pins each), instead of instantiating multiple ALTDQ_DQS2 configurations for various
settings/group.
The following lists the possible implementations when you target Arria 10 devices:
• Instantiates one Altera PHYLite for Parallel Interfaces IP core with three groups
• Bidirectional type for DQ and DQS
• Output type for Addr/Cmd
• Input type for the Ready signal
Note: Each group in the Altera PHYLite for Parallel Interfaces IP core can have 48 I/Os, and the IP
supports up to 18 groups.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Implementation using the Altera PHYLite for Parallel Interfaces IP Core
57
Figure 30: General Tab Settings
Figure 31: Group 0 settings (Bidirectional type for DQ and DQS)
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
58
Implementation using the Altera PHYLite for Parallel Interfaces IP Core
ug_altera_phylite
2015.06.12
Figure 32: Group 1 settings (Output type for Addr/Cmd)
Figure 33: Group 2 settings (Input type for the Ready signal)
The following figure shows the RTL viewer for a NAND Flash simple design based on the Altera PHYLite
for Parallel Interfaces IP core implementation above.
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Implementation using the Altera PHYLite for Parallel Interfaces IP Core
59
Figure 34: RTL Viewer for a NAND Flash Simple Design Based on the Altera PHYLite for Parallel
Interfaces IP Core
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
60
ug_altera_phylite
2015.06.12
Manual Migration between ALTDQ_DQS2 and Altera PHYLite for Parallel...
Manual Migration between ALTDQ_DQS2 and Altera PHYLite for Parallel Interfaces IP Cores
Figure 35: Migration Process Overview for the NAND Flash Simple Design
1. After generating and instantiating the equivalent Altera PHYLite for Parallel Interfaces IP core, delete
the ALTERA_PLL, ALTDLL and ALTOCT IP cores.
2. Remove the connections between the ALTERA_PLL, ALTDLL, ALTOCT IP cores and the rest of the
design in the RTL.
Table 28: List of Signals for Connection Removal
Signal
oct_ena_in
strobe_ena_clock_in
strobe_ena_hr_clock_in
capture_strobe_out
Description
Remove this connection. The OCT is built-in in Altera PHYLite for
Parallel Interfaces IP core.
Remove this connection. The DQS enable is built-in in Altera PHYLite
for Parallel Interfaces IP core.
Remove this connection. The DQS enable is built-in in Altera PHYLite
for Parallel Interfaces IP core.
Remove this connection. This signal is not available for Arria 10
devices.
3. Connect the Altera PHYLite for Parallel Interfaces IP core signals appropriately to the design in the
RTL. The core_clock and rdata_valid signals are examples of additional signal from the
Altera Corporation
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
ug_altera_phylite
2015.06.12
Manual Migration between ALTDQ_DQS2 and Altera PHYLite for Parallel...
61
ALTERA_PHYlite which will be feeding the core logic. The following table lists information about
connecting similar or new signals.
Table 29: Connecting Similar or New Signals
Signal
rdata_en
Description
In the Altera PHYLite for Parallel Interfaces IP core, this signal is similar but
not exactly the same as the capture_strobe_ena in the ALTDQ_DQS2 IP
core.
Connect this signal to the core. This signal must be held high for the number
of expected read words after a read command.
rzqin
You must manually create this signal in the Altera PHYLite for Parallel
Interfaces IP core using the QSF assignments in Arria 10 devices.
Refer to QSF Assignments and Design Example sections in Altera OCT
Megafunction User Guide for more information on how to create rzqin
signal.
core_clk_out
rdata_valid
A new signal for the Altera PHYLite for Parallel Interfaces IP core. This signal
was created because the PLL is built-in for Arria 10 devices.
This signal is a delayed rdata_en signal by READ_LATENCY + 6. Because
the data_to_core signal is valid on rdata_valid, feed the rdata_valid
signal to the core appropriately to know when the correct data_to_core is
expected.
Always matches the rdata_en alignment. Refer to Input Path on page 8
section.
strobe_out_in
Use this signal to send customized strobe data pattern.
This signal is synchronous to the core_clk output from the IP core.
This signal is controlled from the core.
strobe_out_en
This signal enables the output strobe.
This signal is controlled from the core.
4. Run Analysis and Elaboration to confirm that the manual IP migration is successful.
Related Information
Altera OCT Megafunction User Guide
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback
Altera Corporation
62
ug_altera_phylite
2015.06.12
Document Revision History
Document Revision History
Table 30: Document Revision History
Date
Version
Changes
June 2015
2015.06.12
• Updated Avalon Address R/W from 3'h2 to 3'h4 for all features in
Address Map table.
• Added new parameter Use core PLL reference clock connection
and Data configuration in Altera PHYLite for Parallel Interfaces IP
Core Parameter Settings table.
• Updated values in VCO Frequency Multiplication Factor table.
January 2015
2015.01.28
Updated related information link to Functional Description for
External Memory Interfaces in Arria 10 Devices.
December, 2014 2014.12.30
• Updated the name of the IP core from Altera PHYLite for Memory
to Altera PHYLite for Parallel Interfaces.
• Updated the maximum clock frequency from 800 MHz to 1333.333
MHz.
• Clarified that to achieve timing closure at 800 MHz and above, you
must use dynamic reconfiguration to calibrate the interface.
• Added data_out_n/data_io_n signals to the Output Path Signals
table.
• Added data_in_n/data_io_n signals to the Input Path Signals
table.
• Updated data_out/data_io and data_in/data_io signals in the
Input Path Signals and Output Path Signals tables.
• Updated Parameter Settings table to include Group <x> Timing
Settings information.
• Updated Timing section to include Input Strobe Setup Delay
Constrain and Input Strobe Hold Delay Constrain parameters
information.
August, 2014
• Renamed the term megafunction to IP core.
• Added information about output path data alignment, input path
data alignment, OCT, I/O standards, placement restrictions, timing,
dynamic reconfiguration.
• Added the PHYLite_delay_calculations.xlsx file.
• Replaced ALTERA_PHYLite_nand_flash_example_131a10.qar
file with nand_flash_example_14.0a10.qar file.
2014.08.18
November, 2013 2013.11.29
Altera Corporation
Initial release.
Altera PHYLite for Parallel Interfaces IP Core User Guide
Send Feedback