ECP5 and ECP5-5G sysIO Usage Guide

ECP5 and ECP5-5G
sysIO Usage Guide
November 2015
Technical Note TN1262
Introduction
The sysIO buffers in the ECP5TM and ECP5-5GTM device give the designer the ability to easily interface with other
devices using advanced system I/O standards. This technical note describes the sysIO standards available and
how to implement them using Lattice Diamond® design software.
sysIO Buffer Overview
The ECP5 and ECP5-5G sysIO interface contains multiple Programmable I/O Cell (PIC) blocks. The primary building block is a quad or pair of GPIO depending on the side of the I/O. The GPIO functions are available on every PIO
of all devices. The quad is built of four GPIOs (PIOA, PIOB, PIOC and PIOD) or two GPIOs (PIOA, PIOB). Two
adjacent PIOs can be joined to provide a differential I/O pair (labeled as ‘T’ and ‘C’). PIOA and PIOB comprise a
differential pair and PIOC and PIOD comprise another pair. One true LVDS driver is connected only to the A/B pair.
Each PIO includes a sysIO buffer and I/O logic (IOLOGIC). The ECP5 and ECP5-5G sysIO buffers support a variety of single-ended and differential signaling standards. The sysIO buffer also supports the DQS strobe signal that
is required for interfacing with the DDR memory. The DQS signal from the bus is used to strobe the DDR data from
the memory into input register blocks.
The top and bottom sides are grouped into eight IOs with the pitch matches to nine PLC from the core. These IOs
will support hot socket with IO standards from 3.3 V to 1.2 V and mainly used for 3.3 V domain IOs. The left and
right sides are grouped into 16 IOs that support one DQS group and pitch matches to 12PLC + EBR/DSP from the
core. The left/right side IOs will support IO standard from 3.3 V to 1.2 V with no hot socket capability. The left/right
side also have one LVDS output driver per four IOs and one differential termination resistor per two IOs. For more
information on the architecture of the sysIO buffer, refer to DS1044, ECP5 and ECP5-5G Family Data Sheet.
The IOLOGIC includes input, output and tri-state registers that implement both single data rate (SDR) and double
data rate (DDR) applications along with the necessary clock and data selection logic. Programmable delay lines
and dedicated logic within the IOLOGIC are used to provide the required shift to incoming clock and data signals
and the delay required by DQS inputs in DDR memory. The DDR implementation in the IOLOGIC and the DDR
memory interface support are discussed in more detail in TN1265, ECP5 and ECP5-5G High-Speed I/O Interface.
Supported sysIO Standards
The ECP5 and ECP5-5G sysIO buffer supports both single-ended and differential standards. Single-ended standards can be further subdivided into internally ratioed standards such as LVCMOS, LVTTL; and externally referenced standards such as HSUL and SSTL. The buffers support the LVTTL, LVCMOS 1.2 V, 1.5 V, 1.8 V, 2.5 V and
3.3 V standards. In LVCMOS and LVTTL modes, the buffer has individually-configurable options for drive strength,
bus maintenance (weak pull-up, weak pull-down). Differential standards supported include LVDS, BLVDS, LVPECL,
MLVDS, SLVS (Rx only), differential LVCMOS, differential SSTL and differential HSUL. For better support of video
standards, subLVDS and MIPI (Rx only) are also supported. Table 1 and Table 2 list the sysIO standards supported
in ECP5 and ECP5-5G devices.
© 2015 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand
or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
www.latticesemi.com
1
TN1262_1.1
ECP5 and ECP5-5G sysIO Usage Guide
Table 1. Single-Ended I/O Standards
Standard
LVTTL33
VREF
VCCIO
—
Input
Output
Bi-Directional
3.3
2
Yes
Yes
Yes
LVCMOS33
—
3.3
2
Yes
Yes
Yes
LVCMOS25
—
2.5
2
Yes
Yes
Yes
LVCMOS18
—
1.8
Yes
Yes
Yes
LVCMOS15
—
1.5
Yes
Yes
Yes
LVCMOS12
—
1.22
Yes
Yes
Yes
1
Yes
Yes1
SSTL18 Class I, II
0.9
—
Yes
SSTL15 Class I, II
0.75
—
Yes1
Yes
Yes1
SSTL135 Class I, II
0.675
—
Yes1
Yes
Yes1
0.6
—
Yes1
Yes
Yes1
HSUL12
1. Left and right side I/O only.
2. Required for output only.
Table 2. Differential I/O Standards
Standard
SSTL18D I, II
VREF
Input
Output
Bi-Directional
Yes
A/B pair
Yes
—
SSTL135D I, II
—
SSTL15D I, II
—
HSUL12D
—
LVTTL33D
—
LVCMOS33D
—
LVCMOS25D
—
LVCMOS18D
—
LVDS
—
LVDS25E
—
No
Yes
No
BLVDS25
—
Yes
No
No
BLVDS25E
—
No
Yes
Yes
MLVDS25
—
Yes
No
No
MLVDS25E
—
No
Yes
Yes
LVPECL33
—
Yes
No
No
LVPECL33E
—
No
Yes
No
SLVS
—
Yes
No
No
SUBLVDS
—
Yes
No
No
MIPI D-PHY HS Mode
—
C/D Pair
No
No
sysIO Banking Scheme
ECP5 and ECP5-5G devices have general-purpose programmable sysIO banks and a configuration bank. Each of
the general-purpose sysIO banks has a VCCIO supply voltage and one reference voltage, VREF1. Every device has
two banks on the left, right and top side.
The bottom side implements SERDES channels and only the biggest device 85K has one sysIO bank.
Every ECP5 and ECP5-5G device has a TAP controller interface bank in the lower left corner of the device. This
Bank 8 has four signal pins (TCK, TMS, TDI and TDO) and is powered by VCCIO8, located on the lower left side of
the device, has shared I/O for configuration.
2
ECP5 and ECP5-5G sysIO Usage Guide
Figure 1. ECP5 and ECP5-5G sysIO Banking
TOP
VREF1(1)
VCCIO1
GND
VREF1(0)
VCCIO0
GND
Bank 0
Bank 1
GND
VCCIO2
VREF1(2)
RIGHT
LEFT
Bank 7
Bank 2
VREF1(7)
VCCIO7
GND
Bank 6
Bank 3
VREF1(6)
VCCIO6
GND
Bank 41
Bank 8
CONFIG BANK
GND
VCCIO3
VREF1(3)
SERDES
GND
VCCIO4
VCCIO8
GND
BOTTOM
1. Only 85K device has this bank.
VCC (1.1 V)
The core power supply, VCC, is used to power the device internally before data is captured by the I/O buffers. VCC
is also used to power the 1.2V (LVCMOS12) ratioed buffers so these can be captured independently of VCCIO.
VCCIO (1.2 V/1.35 V/1.5 V/1.8 V/2.5 V/3.3 V)
Each bank has a separate VCCIO supply that powers the single-ended output drivers in a bank. The bank VCCIO is
also used to power ratioed input buffers such as LVCMOS15 and LVCMOS18, as well as extended threshold
ratioed buffers.
For unused banks, it is recommended to set VCCIO to 0V to minimize power and hold the bank in hot socket.
VCCAUX (2.5V)
In addition the VCCIO supply, every bank also has an auxiliary global supply called VCCAUX. The bank VCCAUX supply is used to power the differential and referenced (SSTL) input buffer. Bank VCCAUX is also used to power the
push-pull output pre-driver sections.
3
ECP5 and ECP5-5G sysIO Usage Guide
VCCIO8 (1.2 V/1.5 V/1.8 V/2.5 V/3.3 V)
The JTAG pins share power supply of Bank 8 VCCIO supplies. VCCIO8 determines the electrical characteristics of
the LVCMOS JTAG pins, both the output high level and the input threshold. Table 3 contains a summary of the
required power supplies.
Table 3. Power Supplies
Power Supply
Value1
Description
VCC
Core power supply
1.1 V
VCCIO
Power supply for the I/O banks
1.2 V/1.35 V/1.8 V/2.5 V/3.3 V
VCCAUX
Auxiliary power supply
2.5 V
VCCIO8
Power supply for JTAG pins and configuration bank I/O
1.2 V/1.5 V/1.8 V/2.5 V/3.3 V
1. Refer to DS1044, ECP5 and ECP5-5G Family Data Sheet for recommended minimum and maximum values.
VREF1
Each bank can support one separate VREF input voltage, VREF1, which is used to set the threshold for the referenced input buffers. A dedicated I/O in each bank can be used to drive the VREF1 bank reference voltage. An I/O
used as a VREF1 input is also called a VREF1_DRIVER. A conceptual block diagram is shown in Figure 2.
Figure 2. Bank VREF from One Specific Pad
PAD
BANK VREF
To assign a VREF driver, use IO_TYPE=VREF1_DRIVER. To assign a VREF to a buffer, use VREF=VREF1_LOAD.
Hot Socketing Support
The I/Os located on the top and bottom sides are fully hot socketable
See DS1044, ECP5 and ECP5-5G Family Data Sheet for hot socketing (IDK) requirements.
Standby
Using the Standby modes is a way to dynamically power-down the bank. It disables the differential/reference
receiver, true differential driver, current mirrors and bias circuits.
In Standby mode, differential drivers and differential input buffers can be powered down to save power.
The Standby modes are enabled on a bank-by-bank basis. Each bank has user-routed input signals to enable the
Standby (dynamic power-down) modes.
Refer to TN1266, Power Consumption and Management for ECP5 and ECP5-5G Devices for detailed information.
LVDS sysIO Buffer Pairs (A/B and C/D on Left and Right Sides)
The GPIO are grouped as a quad building block, GPIOA, GPIOB, GPIOC and GPIOD. Each pair consists of two
single-ended output drivers and two sets of single-ended input buffers (both ratioed and referenced). One referenced input buffer, per pair, can also be configured as a differential input. In addition to these buffers and drivers,
each I/O has a weak pull-up and weak pull-down resistor. The programmability for these ‘weak’ features is limited
to ON and OFF programmability on each I/O independently. The pull modes are always disabled in output mode.
Left and right side GPIO has clamp always on. The two pads in the pair are described as ‘true’ and ‘comp’, where
the true pad is associated with the positive side of the differential I/O, and the comp (complementary) pad is asso4
ECP5 and ECP5-5G sysIO Usage Guide
ciated with the negative side of the differential I/O. The sysIO buffers pairs are grouped as A/B pad pairs or C/D pad
pairs. Each sysIO pad pair will support programmable on/off differential input termination of 100 Ohms. There is an
added LVDS output driver in the A/B pad pairs of all arrays. The C/D pad pairs do not have the true LVDS differential output driver. The LVDS output driver does support tri-state. LVDS can be BIDI.
Figure 5 describes the detail of the sysIO Buffer Pairs on left and right sides.
sysIO Buffer Pair (A/B Pair on Top and Bottom Sides)
The GPIO are grouped as a pair building block, GPIOA and GPIOB. Each pair consists of two single-ended output
drivers and two sets of single-ended input buffers (ratioed only). In addition to these buffers and drivers, each I/O
has a weak pull-up and weak pull-down resistor. The programmability for these ‘weak’ features is limited to ON and
OFF programmability on each I/O independently. The pull modes are always disabled in output mode. All GPIO on
top and bottom side support a clamp that is programmable on or off.
Figure 5 describes the detail of the sysIO Buffer Pair on the top and bottom sides.
Figure 3. sysIO Buffer Pair for Left and Right Sides
TRUE
Pad
TRUE
Pad
The PAD C and PAD D
pio pair have the same
configuration logic as
PAD A and PAD B, with
the exception, they do not
have a true differential
output driver.
B
VCCIO
Clamp
ON
Weak
Pulldown
(default)
GND
GND
Weak
Pullup
Weak
Pullup
Weak
Pulldown
(default)
VCCIO
A
Clamp
ON
Programmable (on, off)
100 Ohm differential
input termination
Complementary
circuitry located in
IO logic bocks
5
+
Ratioed
Ref/diff
Ratioed
VCCAUX
-
VCC
VCCIO
VCCAUX
TSB
OUTB
TSA
OUTA
INA
Programmable
static/dynamic
Thevenin
termination
50/75/150 Ohm
to VCCIO/2
INB
VCCIO
Programmable
static/dynamic
Thevenin
termination
50/75/150 Ohm
to VCCIO/2
SE Driver
Diff
Driver
on AB
pairs
VCCIO
SE Driver
VCCAUX
VCCIO
Ratioed
Ref/diff
+
-
VCC
True differential drivers only on
AB pins
Ratioed
VCCIO
VCCAUX
Bank VREF
ECP5 and ECP5-5G sysIO Usage Guide
Figure 4. sysIO Buffer Pair for Top and Bottom Sides
TRUE
Pad
A
Clamp
Off, on
The PAD C and PAD D
pio pair have the same
configuration logic as
PAD A and PAD B.
B
Ratioed
INA
TOB
OUTB
TOA
OUTA
INA
Programmable
static/dynamic
Thevenin
termination
50/75/150 Ohm to
VCCIO/2
Ratioed
Programmable
static/dynamic
Thevenin
termination
50/75/150 Ohm to
VCCIO/2
VCC
GND
VCCIO
VCCIO
Ratioed
VCCIO
VCCAUX
GND
Weak
Pullup
Weak
Pullup
VCC
Ratioed
VCCIO
VCCAUX
Weak
Pulldown
(default)
VCCIO
Clamp
Off, on
Weak
Pulldown
(default)
VCCIO
TRUE
Pad
Complementary
circuitry located in
IO logic blocks
Mixed Voltage Support in a Bank
ECP5 and ECP5-5G devices support mixed mode inputs in a given bank on all sides of the device. All differential
and referenced inputs are supported independent of VCCIO. When output is configured as an open drain it can be
placed independent of VCCIO. Some of the ratioed buffers are powered by VCCAUX and VCC and can therefore be
placed independently of VCCIO.
ECP5 and ECP5-5G devices support numerous mixed input voltage combinations by using a combination of three
ratio receivers. The first receiver is powered by VCCIO and uses overdrive/underdrive threshold adjustments to support 1.8 V and 1.5 V signaling. The second is a fixed threshold 1.2 V ratio receiver powered by VCC that supports
1.2 V signaling. The third is powered with VCCAUX (2.5 V), supports hysteresis, and is used for 3.3 V and 2.5 V signaling.
Table 4 lists the ratioed sysIO standards that can be mixed in the same bank.
6
ECP5 and ECP5-5G sysIO Usage Guide
Table 4. Mixed Voltage I/O Support
For TOP/BOTTOM BANKS
Input SysIO Standards
VCCIO (V)
1.2 V
1.5 V
1.8 V
Output SysIO Standards
2.5 V
3.3 V
1.2 V
Yes
1.2 V
Yes
Yes
Yes
1.35 V
Yes
Yes
Yes
1.5 V
Yes
1.8 V
Yes
2.5 V
3.3 V
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
1.5 V
1.8 V
2.5 V
3.3 V
Yes
Yes
Yes
Yes
For LEFT/RIGHT BANKS
Input Signal
VCCIO (V)
1.2 V
1.5 V
1.8 V
Output SysIO Standards
2.5 V
1.2 V
Yes
1.35 V
Yes
1.5 V
Yes
1.8 V
Yes
2.5 V
Yes
Yes
3.3 V
Yes
Yes
3.3 V
1.2 V
1.5 V
1.8 V
2.5 V
3.3 V
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
sysIO Buffer Configurations
This section describes the various sysIO features available on the ECP5 and ECP5-5G FPGA.
Programmable Drive Strength
The single-ended driver has programmable drive strength. The LVCMOS/LVTTL drive strength available at each
value of VCCIO is shown in Table 5. The ECP5 and ECP5-5G single-ended driver is a process, voltage and temperature compensating driver. Therefore, there will be a good tolerance of drive strength. For LVCMOS and LVTTL I/O
standards, guaranteed minimum drive strength is listed.
The user must consider the maximum allowable current per bank and the package thermal limit current when
selecting the drive strength. Table 5 shows the available drive settings for each of the output standards.
Table 5. Programmable Drive Values for LVCMOS/LVTTL
1.2 V
1.5 V
1.8 V
2.5 V
3.3 V
IOLmin
IOHmin
IOLmin
IOHmin
IOLmin
IOHmin
IOLmin
IOHmin
IOLmin
IOHmin
Units
4
–4
4
–4
4
–4
4
–4
4
–4
mA
8
–8
8
–8
8
12
–8
1
–12
–8
8
1
1
12
–8
8
1
–12
1
12
1
16
mA
1
mA
1
mA
–12
–16
1. Automotive device may not support drive setting.
The SSTL and HSUL nominal drive strengths are optimized for the performance and signal integrity of the I/O interface.
7
ECP5 and ECP5-5G sysIO Usage Guide
Programmable Slew Rate
The single-ended output buffer for each device I/O pin has programmable output slew rate control that can be configured for either low-noise (SLEWRATE=SLOW) or high-speed (SLEWRATE=FAST) performance. Each I/O pin
has an individual slew rate control that allows designers to specify slew rate control on a pin-by-pin basis. Slew rate
control affects both the rising and falling edges. Slew rates vary as a function of drive and PVT conditions. Slow
slew rate reduces SSO noise. The software default for slew rate is SLEWRATE=SLOW.
Differential standards are not impacted by slew rate settings. However, slew rate settings have some impact on
emulated differential standards, as they use single-ended output buffers and complementary outputs.
Tri-state Control
On the output side, each single-ended driver has a separate tri-state control. The differential driver has tri-state
control as well.
Open Drain Control
In addition to tri-state control, single-ended drivers also support open drain operation on each I/O independently.
Unlike non-open drain outputs that consist of both source and sink components, an open drain output is composed
of only the sink section of the output driver.
All LVCMOS and LVTTL output buffers can be configured to function as open drain outputs. The user can implement an open drain output by turning on the OPENDRAIN attribute in the software.
Complementary Outputs
The single-ended driver associated with the complementary pad can optionally be driven by the complement of the
data that drives the single-ended driver associated with the true pad. ECP5 and ECP5-5G devices use pads A and
C as true pads and pads B and D as complement pads. This allows a pair of single-ended drivers to be used to
drive complementary outputs. Pads A and B from a PIO pair and pads C and D from another PIO pair. This is used
for driving complementary SSTL signals (as required by the differential SSTL clock inputs on synchronous DRAM
and synchronous SRAM devices, respectively). It can also be used in conjunction with off-chip resistors to emulate
LVPECL33, MLVDS, LVDS25E and BLVDS output drivers. When this option is selected, the tri-state control for the
driver associated with the complement pad is driven by the same signal as the tri-state control for the driver associated with the true pad.
Differential I/O Supported
Differential inputs LVDS, SUBLVDS, MLVDS25, BLVDS, SLVS, MIPI are supported with differential receivers on
both A/B pair and C/D pair PIOs and on left and right sides only. 50% of the sysIO buffer pairs on the left and right
sides only are true differential outputs. LVDS is supported with a dedicated differential output driver on the A/B PIO
pair. The C/D pair pins do not support true differential outputs.
LVDS25E, LVPECL33E, MLVDS25E, and BLVDS25E outputs can be implemented via emulation on all A/B and
C/D pin output pairs. These emulated differential outputs require external resistors. Refer to DS1044, ECP5 and
ECP5-5G Family Data Sheet for detailed information.
Complementary SSTL Output Support
Differential SSTL outputs do not use external resistors, they use the complementary mux contained within each
pair of single-ended output drivers.
8
ECP5 and ECP5-5G sysIO Usage Guide
Differential Input Termination
The ECP5 and ECP5-5G device supports on-chip 100 Ohm input differential termination between all pairs of all
banks on left and right sides. The only value supported is 100 Ohm. It is programmable as on and off. When it is on
and the I/O type is MIPI or a BIDI, it is dynamic.
Figure 5 shows the discrete off-chip and on-chip solutions for dedicated, differential input termination. The differential termination is implemented using parallel legs that turn on and off to compensate for PVT variation. The termination also applies to input termination and is dynamic (enabled when output buffer is put in tri-state) or static
(always on) to support MIPI and BIDI applications.
Figure 5. Differential Input Termination
Zo = 50 Ohms
Zo = 50 Ohms
100
Ohms
100
Ohms
Zo = 50 Ohms
Zo = 50 Ohms
Off-Chip Solution
On-Chip Solution
Single-Ended Input Termination
ECP5 and ECP5-5G devices support single-ended input parallel termination to VCCIO/2. This is done by using output driver legs to emulate termination between the pad and VCCIO as well as between the pad and VSS. Both static
and dynamic termination are supported. Dynamic termination is used to support the DDR2 and DDR3 interface
standards. Values of termination are 50 Ohms, 75 Ohms and 150 Ohms. All input parallel terminations use a
Thevenin termination scheme. As an example, 50Ohms to VCCIO/2 is created by the Thevenin combination of 100
Ohms between the pad and VCCIO and 100 Ohms between the pad and VSS.
Figure 6 shows the various off-chip, single-ended input termination schemes.
Figure 6. Single-Ended Input Termination
Off-Chip Solution
Termination Type
On-Chip Solution
VCCIO/2
VCCIO/2
Parallel to VCCIO/2 at
Receiving end.
Thevenin
Zo
Zo
Zo
Zo
VREF
VREF
VCCIO/2
Tri-state
Parallel to VCCIO/2 at
Receiving end with
Bidirectional Enable/Disable
for DDR2 and DDR3
N/A
Zo
Zo
VREF
9
ECP5 and ECP5-5G sysIO Usage Guide
Programmable CLAMP
The buffers on top and bottom sysIO have optional clamp diodes that may optionally be specified in the Lattice Diamond design software. The programmable CLAMP can be turned ON or OFF.
Differential SSTL and HSUL
The single-ended driver associated with the complementary pad can optionally be driven by the complement of the
data that drives the single-ended driver associated with the true pad. This allows a pair of single-ended drivers to
be used to drive complementary outputs with the lowest possible skew between the signals. This is used for driving
complementary SSTL and HSUL signals (as required by the differential SSTL and HSUL clock inputs on synchronous DRAM and synchronous SRAM devices, respectively).
Refer to the DS1044, ECP5 and ECP5-5G Family Data Sheet for a detailed description of the differential HSUL and
SSTL implementations.
MIPI D-PHY Interface
The MIPI D-PHY Interface is used only in input mode and only on the C/D pad pair. The differential C/D pad pair
high-speed and pad C single-ended low-power inputs are handled through the pad C I/O logic. The pad D singleended low-power inputs are handled through the pad D I/O logic.
• HS mode: 100 Ohm differential termination is enabled with a differential receiver
• LP mode: HS mode is disabled and ratio receiver is enabled on pad C
The primitive shown in Figure 7 should be used when implementing the MIPI interface.
Figure 7. MIPI Primitive
IMIPI
Pad C
A
Pad D
AN
High-Speed Select
OHSLS
HSSEL
OLS
High/Low-Speed Output
Low-Speed Output
Table 6. IMIPI Port List
Port
I/O
A
I
Pad C input
Description
AN
I
Pad D input
High-speed select signal. This is shared with the tri-state input of the buffer.
HSSEL
I
HSSEL=1: High-speed mode, 100 Ohm differential termination is on. Pad C logic select differential
signal to IOL for gearing.
HSSEL=0: Low-speed mode, 100 Ohm termination is turned off.
OHSLS selected as ratioed LVCMOS input buffer from the I input (pad C), OLS selected as LVCMOS
input from the IN input (pad D).
OHSLS
O
High-speed or low-speed output, depending on HSSEL
OLS
O
Low-speed output
MIPI is supported via the IMIPI primitive instead of IO_TYPE in the front-end RTL and simulation.
10
ECP5 and ECP5-5G sysIO Usage Guide
Software sysIO Attributes
sysIO attributes can be specified in the HDL, using the Preference Editor GUI or in the ASCII Preference file (.prf)
directly. The appendices of this document provide examples of how these can be assigned using each of the methods described above. This section describes each of the attributes in detail.
IO_TYPE
The IO_TYPE is used to set the sysIO standard for an I/O. The VCCIO required to set these I/O standards are
embedded in the attribute names. The BANK VCCIO attribute is used to specify allowed VCCIO combinations for
each IO_TYPE.
Default: LVCMOS25
Table 7. IO_TYPE Attribute Values
sysIO Signaling Standard
IO_TYPE
DEFAULT
LVCMOS25
LVDS 2.5 V
LVDS
Emulated LVDS 2.5 V
LVDS25E
Bus LVDS 2.5 V
BLVDS25
Emulated Bus LVDS 2.5 V
BLVDS25E
LVPECL 3.3 V
LVPECL33
Emulated LVPECL 3.3 V
LVPECL33E
MLVDS
MLVDS
Emulated MLVDS
MLVDS25E
SLVS
SLVS
Sub_LVDS
SUBLVDS
HSUL 1.2 V
HSUL12
Differential HSUL
HSUL12D
SSTL15 Class I and II
SSTL15_I, SSTL15_II
Differential SSTL15 Class I and II
SSTL15D_I, SSTL15D_II
SSTL135 Class I and II
SSTL135_I, SSTL135_II
Differential SSTL135 Class I and II
SSTL135D_I, SSTL135D_II
SSTL18 Class I and II
SSTL18_I, SSTL18_II
Differential SSTL18 Class I and II
SSTL18D_I, SSTL18D_II
Differential LVTTL
LVTTL33D
LVTTL
LVTTL33
LVCMOS 3.3 V
LVCMOS33
LVCMOS 2.5 V
LVCMOS25
LVCMOS 1.8 V
LVCMOS18
LVCMOS 1.5 V
LVCMOS15
LVCMOS 1.2 V
LVCMOS12
Differential LVCMOS 3.3 V
LVCMOS33D
Differential LVCMOS 2.5 V
LVCMOS25D
Differential LVCMOS 1.8 V
LVCMOS18D
11
ECP5 and ECP5-5G sysIO Usage Guide
OPENDRAIN
An I/O can be assigned independently to be an open drain when this attribute is turned on.
Values: ON, OFF
Default: OFF
DRIVE
The drive strength attribute is available for output standards that support programmable drive strength. The default
depends on the I/O standard used.
Table 8. Programmable Output Drive
Output Standard
DRIVE
Single-Ended Interfaces
LVTTL33
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS33
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS25
4 mA, 8 mA, 12 mA
LVCMOS18
4 mA, 8 mA, 12 mA
LVCMOS15
4 mA, 8 mA
LVCMOS12
4 mA, 8 mA
LVTTL33 (open drain)
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS33 (open drain)
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS25 (open drain)
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS18 (open drain)
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS15 (open drain)
4 mA, 8 mA, 12 mA1, 16 mA
LVCMOS12 (open drain)
4 mA, 8 mA, 12 mA1, 16 mA
HSUL12
4 mA, 8 mA
SSTL135 I
8 mA
SSTL135 II
10 mA
SSTL18 I
8 mA
SSTL18 II
16 mA
SSTL15 I
8 mA
SSTL15 II
10 mA
Differential Interfaces
LVTTL33D
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS33D
4 mA, 8 mA, 12 mA, 16 mA
LVCMOS25D
4 mA, 8 mA, 12 mA
SSTL1.35D I
8 mA
SSTL1.35D II
10 mA
SSTL18D I
8 mA
SSTL18D II
16 mA
SSTL15D I
8 mA
SSTL15D II
10 mA
HSUL12D
4 mA, 8 mA
LVDS
—
LVDS25E1
8 mA
BLVDS25E1
16 mA
MLVDS25E1
16 mA
LVPECL33E1
16 mA
1. Emulated with LVCMOS drivers and external resistors.
2. Independent of VCCIO.
12
DIFFDRIVE
VCCIO
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
3.3
3.3
2.5
1.8
1.5
1.2
Note2
Note2
Note2
Note2
Note2
Note2
1.2
1.35
1.35
1.8
1.8
1.5
1.5
—
—
—
—
—
—
—
—
—
—
3.5
—
—
—
—
3.3
3.3
2.5
1.35
1.35
1.8
1.8
1.5
1.5
1.2
2.5
2.5
2.5
2.5
3.3
ECP5 and ECP5-5G sysIO Usage Guide
DIFFDRIVE
DIFFDRIVE attribute is available for the LVDS output standard. The default value is set to 3.5 mA.
Values: 3.5 mA
Default: 3.5 mA
TERMINATION
This attribute sets the on-chip input parallel termination to VCCIO/2. Parallel termination is achieved using a Thevenin termination scheme. This programmable option can be set for each I/O individually. Both static and dynamic terminations are available.
Values: OFF, 50, 75, 150
Default: OFF
DIFFRESISTOR
This attribute is used to provide differential termination (dynamic differential). It is available only for differential
IO_TYPES.
Values: OFF, 100
Default: OFF
CLAMP
The CLAMP options can be enabled for each I/O independently. CLAMP is available on only top and bottom sysIO
banks. CLAMP is not available when an output is set to open drain.
Values: ON, OFF
Default: OFF
PULLMODE
The PULLMODE options can be enabled for each I/O pin independently. The PULLMODE settings are not available when I/O pins are programmed output-only. It is available for I/O pins in Input mode and Bidi mode.
Values: UP, DOWN, NONE
Default: DOWN
SLEWRATE
Each I/O pin has an individual slew rate control. This allows designers to specify slew rate control on a pin-by-pin
basis. This is not a valid attribute for inputs.
Values: FAST, SLOW, NA
Default: SLOW
Note: LVTTL and LVCMOS support fast and slow slew rates.
13
ECP5 and ECP5-5G sysIO Usage Guide
HYSTERESIS
The ratioed input buffers have an input hysteresis option. The HYSTERESIS option can be used to change the
amount of hysteresis for the LVTTL33, LVCMOS33 and LVCMOS25 input and bi-directional I/O standards.
The HYSTERESIS option for each of the input pins can be set independently.
Values: ON, OFF
Default: Default for LVCMOS33, LVCMOS25 and LVTTL33 is ON. Default for all other IO_TYPES is OFF.
VREF
The VREF option must be enabled for referenced input buffers (HSUL and SSTL). The VREF can be specified in the
HDL or in the Design Planner GUI.
Values: OFF, VREF1_LOAD
Default: VREF1_LOAD (software assigns the dedicated pin to be VREF).
DIN/DOUT
This attribute can be used when an I/O register needs to be assigned. Using DIN asserts an input register and
using DOUT asserts an output register in the design. By default, the software will attempt to assign the I/O registers if applicable. Users can turn this OFF by using a synthesis attribute or the Preference Editor. These attributes
can only be applied on registers.
LOC
This attribute can be used to make pin assignments to the I/O ports in the design. This attribute is used only when
the pin assignments are made in HDL source code. Pins can also be assigned directly using the GUI in the Preference Editor. See the appendices of this document for further information.
14
ECP5 and ECP5-5G sysIO Usage Guide
Technical Support Assistance
Submit a technical support case via www.latticesemi.com/techsupport.
Revision History
Date
Version
November 2015
1.1
Change Summary
Added support for ECP5-5G.
Changed document title to ECP5 and ECP5-5G sysIO Usage Guide.
Updated sysIO Buffer Pair (A/B Pair on Top and Bottom Sides) section.
Revised the following figures:
— Figure 3, sysIO Buffer Pair for Left and Right Sides
— Figure 4, SysIO Buffer Pair for Top and Bottom Sides
Updated Technical Support Assistance section.
August 2013
01.0
Initial release
15
ECP5 and ECP5-5G sysIO Usage Guide
Appendix A. sysIO Primitive Symbols and Instance Examples
Primitive Symbols
IB: Input Buffer
OBCO: Output Complementary Buffer
I
O
BBPD: Bi-directional Buffer with Pull-down
T
OT
I
I
IB
OC
INPUT: I
OUTPUT: O
OBCO
OB
INPUT: I
OUTPUTS: OT, OC
BBPD
INPUTS: I, T
OUTPUT: O
INOUT: B
IBPD: Input Buffer with Pull-down
I
O
OBZ: Output Buffer with Tristate
BBPU: Bi-directional Buffer with Pull-up
T
T
O
I
I
IBPD
OBZ
VSS
OB
INPUTS: I, T
OUTPUT: O
INPUT: I
OUTPUT: O
BBPU
INPUTS: I, T
OUTPUT: O
INOUT: B
IBPU: Input Buffer with Pull-up
VDD
I
O
OBZPU: Output Buffer with Tristate and Pull-up
BBW: Bi-directional Buffer with Keeper Mode
T
T
I
O
I
OBZPU
IBPU
OB
INPUTS: I, T
OUTPUT: O
INPUT: I
OUTPUT: O
BBW
INPUTS: I, T
OUTPUT: O
INOUT: B
OB: Output Buffer
I
O
MIPI
BB: Bi-directional Buffer
T
A
I
OB
INPUT: I
OUTPUT: O
OHSLS
AN
HSSEL
OLS
IMIPI
OB
INPUTS: A, AN, HSSEL
OUTPUTS: OHSLS, OLS
BB
INPUTS: I, T
OUTPUT: O
INOUT: B
16
ECP5 and ECP5-5G sysIO Usage Guide
Instance Examples
Input Buffer (IB)
VHDL:
component IB
port (I: in
end component;
std_logic; O: out
std_logic);
Inst_IB: IB
port map (I=>clk, O=>buf_clk);
Verilog:
IB IB_inst (.I(Data[7]), .O(buf_Data7));
Output Buffer (OB)
VHDL:
component OB
port (I: in
std_logic; O: out
std_logic);
Inst_OB0: OB
port map (I=>buf_qo0, O=>q(0));
Verilog:
IB IB_inst (.I(Data[7]), .O(buf_Data7));
Bi-directional Buffer (BB)
VHDL:
component BB
port (I: in std_logic; T: in std_logic; O: out std_logic;
B: inout std_logic);
end component;
buf7: BB
port map (I=>Q_out7, T=>Q_tri7, O=>buf_Data7, B=>Data(7));
Verilog:
BB buf7 (.I(Q_out7), .T(Q_tri7), .O(buf_Data7), .B(Data[7]));
17
ECP5 and ECP5-5G sysIO Usage Guide
Appendix B. sysIO Attribute Examples
IO_TYPE
VHDL:
ATTRIBUTE
ATTRIBUTE
ATTRIBUTE
ATTRIBUTE
ATTRIBUTE
IO_TYPE: string;
IO_TYPE OF portA:
IO_TYPE OF portB:
IO_TYPE OF portC:
IO_TYPE OF portD:
SIGNAL
SIGNAL
SIGNAL
SIGNAL
IS
IS
IS
IS
"LVCMOS18";
"LVCMOS33";
"SSTL33_II";
"LVCMOS25";
Verilog
output [4:0] portA /* synthesis IO_TYPE="LVTTL33" DRIVE="16" PULLMODE="UP" SLEWRATE="FAST"*/;
OPENDRAIN
VHDL:
ATTRIBUTE OPENDRAIN: string;
ATTRIBUTE OPENDRAIN OF q_lvttl33_17: SIGNAL IS "ON";
Verilog:
output [4:0] portA /* synthesis attribute OPENDRAIN of q_lvttl33_17 is ON */;
DRIVE
VHDL:
ATTRIBUTE DRIVE: string;
ATTRIBUTE DRIVE OF portD: SIGNAL IS "8";
Verilog:
output [4:0] portA /* synthesis DRIVE = "8" */;
DIFFDRIVE
VHDL:
ATTRIBUTE DIFFDRIVE: string;
ATTRIBUTE DIFFDRIVE OF portF: SIGNAL IS "3.5";
Verilog:
output [4:0] portF/* synthesis
IO_TYPE="LVDS" DIFFDRIVE="3.5" */;
TERMINATION
VHDL:
ATTRIBUTE TERMINATION: string;
ATTRIBUTE TERMINATION OF portF: SIGNAL IS "50";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="SSTL18_I" TERMINATION = "50"*/;
18
ECP5 and ECP5-5G sysIO Usage Guide
DIFFRESISTOR
VHDL:
ATTRIBUTE DIFFRESISTOR: string;
ATTRIBUTE DIFFERESISTOR OF portF: SIGNAL IS "100";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="LVDS"
DIFFRESISTOR = "100"*/;
PULLMODE
VHDL:
ATTRIBUTE PULLMODE: string;
ATTRIBUTE PULLMODE OF portF: SIGNAL IS "PULLUP";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="LVCMOS33"
PULLMODE = "PULLUP"*/;
SLEWRATE
VHDL:
ATTRIBUTE SLEWRATE: string;
ATTRIBUTE SLEWRATE OF portF: SIGNAL IS "FAST";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="LVCMOS33"
SLEWRATE = "FAST"*/;
CLAMP
VHDL:
ATTRIBUTE CLAMP: string;
ATTRIBUTE CLAMP OF portF: SIGNAL IS "ON";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="LVCMOS33" CLAMP = "ON"*/;
HYSTERESIS
VHDL:
ATTRIBUTE HYSTERESIS: string;
ATTRIBUTE HYSTERESIS OF portF: SIGNAL IS "ON";
Verilog:
output [4:0] portA /* synthesis IO_TYPE="LVCMOS25"
19
HYSTERESIS = "ON"*/;
ECP5 and ECP5-5G sysIO Usage Guide
Appendix C. sysIO Buffer Design Rules
1. Only one VCCIO level is allowed in a given bank.
a.
If VCCIO for any bank is set to 2.5 V, it is recommended that it be connected to the same power supply as
VCCAUX, thus minimizing leakage. The software will issue a message in the .pad file to the user about this
if the VCCIO of a bank is set to 2.5 V.
2. When an output is configured as an OPENDRAIN, the PULLMODE is set to NONE and the CLAMP setting is
set to OFF.
a.
When an output is configured as an OPENDRAIN, it can be placed independent of VCCIO.
3. When a ratioed input buffer is placed in a bank with a different VCCIO (mixed mode), the Pull mode options of Up
are no longer available
4. Left and right banks can support LVDS input buffers. True LVDS outputs are supported on 50% of the sysIO
pins of left and right banks. True LVDS outputs are available only on the A and B pairs of the I/O pairs of left and
right banks. Emulated differential outputs are available on every output pair. Pad information can be found in the
data sheet of the pad file.
a.
The IO_TYPE attribute for a differential buffer can only be assigned to the TRUE pad. The Lattice Diamond
design tool will automatically assign the other I/O of the differential pair to the complementary pad.
5. DIFFRESISTOR termination is available on all sysIO pairs of left and right banks.
6. If none of the pins is used for a given bank, the VCCIO of the bank should be grounded except the JTAG bank.
20
ECP5 and ECP5-5G sysIO Usage Guide
Appendix D. sysIO Attributes Using the Diamond Spreadsheet View User
Interface
sysIO buffer attributes can be assigned using the Spreadsheet View in Lattice Diamond design software. The Port
Assignments Sheet lists all the ports in a design and all the available sysIO attributes in multiple columns. Click on
each of these cells for a list of all the valid I/O preferences for that port. Each column takes precedence over the
next. Therefore, when you choose a particular IO_TYPE, the columns for the PULLMODE, DRIVE, SLEWRATE
and other attributes will only list the valid entries for that IO_TYPE.
Pin locations can be locked using the Pin column of the Port Assignments Sheet or using the Pin Assignments
Sheet. You can right-click on a cell and go to Assign Pins to see a list of available pins.
In Spreadsheet View, go to Design > Preference PIO DRC to look for incorrect pin assignments.
You can enter the DIN/DOUT preferences using the Cell Mapping tab. All the preferences assigned using the
Spreadsheet view are written into the logical preference file (.lpf).
Figure 8 shows the Port Assignments Sheet of the Spreadsheet View. For further information on how to use the
Spreadsheet View, refer to the Diamond Help documentation, available in the Help menu option of the software.
Figure 8. Port Attributes Tab of Spreadsheet View
21