MachXO3 sysIO Usage Guide

MachXO3 sysIO Usage Guide
April 2015
Technical Note TN1280
Introduction
The MachXO3™ PLD family sysIO™ buffers are designed to meet the needs of flexible I/O standards in today’s
fast-paced design world. The supported I/O standards range from single-ended I/O standards to differential I/O
standards so that users can easily interface their designs to standard buses, memory devices, video applications
and emerging standards. This technical note provides a description of the supported I/O standards and the banking scheme for the MachXO3L/LF PLD family, specifically the L version. The sysIO architecture and the software
usage are also discussed to provide a better understanding of the I/O functionality and placement rules.
sysIO Buffer Overview
The basic building block of the MachXO3L/LF sysIO is the Programmable I/O Cell (PIC) block. There are four types
of PIC blocks in the MachXO3L/LF device architecture. These include the basic PIC block, the memory PIC block
for DDR memory support, the receiving PIC block with gearing, and the transmitting PIC block with gearing. The
PIC blocks with gearing are used for video and high-speed applications. The PIC blocks with gearing have a built-in
control module for word alignment. The details of the gearing PIC block can be found in TN1281, Implementing
High-Speed Interfaces with MachXO3 Devices.
A common feature of all four types of PIC blocks is that each PIC block consists of four programmable I/Os (PIOs).
Each PIO includes a sysIO buffer and an I/O logic block. A simplified sysIO block diagram is shown in Figure 1. The
I/O logic block consists of an input block, an output block, and a tri-state block. These blocks have registers, input
delay cells, and the necessary control logic to support various operational modes. The sysIO buffer determines the
compliance to the supported I/O standards. It also supports features like hysteresis to meet common design needs.
The I/O logic block and the sysIO buffer are designed with a minimal use of die area; providing easy bus interfacing, and pin out efficiency.
Two adjacent PIOs can form a pair of complementary output drivers. In addition, PIOA and PIOB of the PIC block
form the primary pair of the buffer, while PIOC and PIOD form the alternate pair of the buffer. The primary pairs
have additional capability that is not available on the alternate pair. The sysIO buffers of the PIC block are equivalent when implemented as the single-ended I/O standards.
Figure 1. PIC Block Diagram
Primary PIO Pair
Alternate PIO Pair
PAD A
(T)
PAD B
(C)
PAD C
(T)
PAD D
(C)
sysIO
Buffer A
sysIO
Buffer B
sysIO
Buffer C
sysIO
Buffer D
IOLogic A
IOLogic B
IOLogic C
IOLogic D
© 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
TN1280_1.4
MachXO3 sysIO Usage Guide
Supported sysIO Standards
The Lattice MachXO3L/LF sysIO buffer supports both single-ended and differential standards. The internally
ratioed standards support individually configurable drive strength and bus maintenance circuits (weak pull-up,
weak pull-down, or bus keeper).
All banks of the MachXO3L/LF devices support true differential inputs, and emulated differential outputs using
external resistors and the complementary LVCMOS outputs. The true-LVDS differential outputs and LVDS input termination are supported in specific banks as described in the sysIO Banking Scheme section of this document.
Table 1. Supported Input Standards
VREF (Nominal)
VCCIO1 (Nominal)
LVTTL33
—
—
LVCMOS33
—
—
LVCMOS25
—
—
LVCMOS18
—
—
LVCMOS15
—
—
LVCMOS12
—
—
LVDS25
—
—
LVPECL33
—
—
MLVDS25
—
—
Input Standard
Single-Ended Interfaces
Differential Interfaces
BLVDS25
—
—
LVTTL33D
—
—
LVCMOS33D
—
—
MIPI2
—
—
1. If not specified, refer to mixed voltage support in the VCCIO Requirement section.
2. This interface can be emulated with external resistors.
2
MachXO3 sysIO Usage Guide
Table 2. Supported Output Standards
Output Standards
Drive (mA)
VCCIO (Nominal)
LVTTL33
4, 8, 12, 16
3.3
LVCMOS33
4, 8, 12, 16
3.3
LVCMOS25
4, 8, 12
2.5
LVCMOS18
4, 8, 12
1.8
LVCMOS15
4, 8
1.5
LVCMOS12
2, 6
1.2
3.5
2.5, 3,3
Single-Ended Interfaces
Differential Interfaces
LVDS25
LVDS25E
8
2.5
LVPECL33E
16
3.3
MLVDS25E
16
2.5
BLVDS25E
16
2.5
LVTTL33 Differential
4, 8, 12, 16
3.3
LVCMOS33 Differential
4, 8, 12, 16
3.3
LVCMOS25 Differential
4, 8, 12
2.5
2
2.5
MIPI1
1. This interface can be emulated with external resistors.
Note: Refer to RD1182, MIPI D-PHY Interface IP for information on support for MIPI Input and Output.
sysIO Banking Scheme
The MachXO3L/LF family has a non-homogeneous I/O banking structure. MachXO3L/LF-640 and MachXO3L/LF1300 have four I/O banks each with one I/O bank per side. MachXO3L/LF-1300, MachXO3L/LF-2100,
MachXO3L/LF-4300, and MachXO3L/LF-6900 devices have six I/O banks each, with one I/O bank on each of the
top, bottom and right sides, and three banks on the left side.
The MachXO3L/LF devices support true LVDS differential outputs through the primary pairs on the top bank (Bank
0). These devices also support 100 Ohm differential input termination on every I/O pair on the bottom I/O bank.
Each of the I/O pins on all MachXO3L/LF PLDs has a clamp feature which can be disabled or enabled. This clamp
is similar to the PCI clamp but it is not PCI compliant. The arrangements of the I/O banks are shown in Figure 2 and
Figure 3.
3
MachXO3 sysIO Usage Guide
Figure 2. MachXO3L/LF-640 and MachXO3L/LF-1300 I/O Banking Arrangement
Base I/O Buffer
Plus: 1 pair of LVDS differential outputs
for every four PIO (3.5 mA)
Base I/O Buffer
Bank 1
Bank 3
Base I/O Buffer
Bank 0
Bank 2
Base I/O Buffer
Plus: 100 Ohm differential input termination
on every pair
Figure 3. MachXO3L/LF-1300, MachXO3L/LF-2100, MachXO3L/LF-4300, and MachXO3L/LF-6900 I/O Banking Arrangement
Base I/O Buffer
Plus: 1 pair of LVDS differential outputs
for every four PIO (3.5 mA)
Bank 2
Base I/O Buffer
Plus: 100 Ohm differential input termination
on every pair
4
Base I/O Buffer
Bank 1
Bank 4
Bank 3
Base I/O Buffer
Bank 5
Bank 0
MachXO3 sysIO Usage Guide
sysIO Standards Supported by I/O Banks
All banks can support multiple I/O standards under the VCCIO rules discussed above. Table 3 and Table 4 summarize the I/O standards supported on various sides of the MachXO3L/LF device.
Table 3. Single-Ended I/O Standards Supported on Various Sides
Top
Bottom
Left
Right
LVTTL33
Standard
Yes
Yes
Yes
Yes
LVCMOS33
Yes
Yes
Yes
Yes
LVCMOS25
Yes
Yes
Yes
Yes
LVCMOS18
Yes
Yes
Yes
Yes
LVCMOS15
Yes
Yes
Yes
Yes
LVCMOS12
Yes
Yes
Yes
Yes
Table 4. Differential I/O Standards Supported on Various Sides
Standard
LVDS output
LVPECL33E
2
Top
Bottom
Left
Right
Yes1
—
—
—
Yes
Yes
Yes
Yes
MLVDS25E2
Yes
Yes
Yes
Yes
2
BLVDS25E
Yes
Yes
Yes
Yes
LVDS25E2
Yes
Yes
Yes
Yes
LVTTL33D output
Yes
Yes
Yes
Yes
LVCMOS33D output
Yes
Yes
Yes
Yes
LVCMOS25D output
Yes
Yes
Yes
Yes
LVDS input
Yes
Yes
Yes
Yes
LVPECL33 input
Yes
Yes
Yes
Yes
MLVDS25 input
Yes
Yes
Yes
Yes
BLVDS25 input
Yes
Yes
Yes
Yes
LVTTL33D input
Yes
Yes
Yes
Yes
LVCMOS33D input
Yes
Yes
Yes
Yes
LVCMOS25D input
Yes
Yes
Yes
Yes
MIPI
Yes
Yes
Yes
Yes
1. True LVDS output is supported at the top bank.
2. Emulated output standards are denoted with a trailing “E” in the name of the standard.
5
MachXO3 sysIO Usage Guide
Power Supply Requirements
The MachXO3L/LF device family has a simplified power supply scheme for sysIO buffers. The core power VCC and
the bank power VCCIO are the two main power supplies. A MachXO3L/LF device can be powered and operated
with a single power supply by connecting VCC and VCCIO to nominal voltages of 1.2 V. The JTAG programming pins
are powered by VCCIO in bank 0 where the JTAG pins reside. All the user sysIOs have a weak pull-down after
power-up is complete and before the device configuration is done.
VCCIO Requirement for I/O Standards
Each I/O bank of a MachXO3L/LF device has a separate VCCIO supply pin that can be connected to 1.2 V, 1.5 V,
1.8 V, 2.5 V or 3.3 V. This voltage is used to power the output I/O standard and source the drive strength for the output. In addition to this, VCCIO also powers the ratioed input buffers such as LVTTL and LVCMOS. This ensures that
the threshold of the input buffers tracking the VCCIO voltage level.
Input buffer set up to be a 1.2 V ratioed input can used on bank set to any VCCIO. This is possible because the
MachXO3L/LF sysIO buffer has two ratioed input buffers connected to VCCIO and VCC in parallel.
Table 5. Mixed Voltage Support for LVCMOS and LVTTL I/O Types
VCCIO
Inputs
1.2 V
1.2 V
YES
1.5 V
YES1
1.8 V
YES1
2.5 V
YES
1
3.3 V
YES1
1.5 V
1.8 V
Outputs
2.5 V
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
YES
1. Leakage will occur if bus hold or weak pull-up is turned on.
For differential input standards, certain mixed voltage support is allowed in the architecture as shown in Figure 6.
Table 6. Mixed Voltage Support for Differential Input Standards
Vccio
Differential Inputs
LVDS
LVTTL33D
LVCMOS25D
LVPECL33
LVCMOS33D
MLVDS25
BLVDS25
1.2 V
1.5 V
1.8 V
2.5 V
YES
3.3 V
YES
YES
YES
6
YES
MachXO3 sysIO Usage Guide
sysIO Buffer Configuration
Each sysIO buffer pair is made of two PIO buffers. PIO A and B pads form the primary pair, and PIO C and D pads
form the alternate pair. Pads A and C of the pair are considered the “true” pad, while pads B and D are considered
the “comp” pad. The “true” pad is associated with the positive side of the differential signal, while the “comp” pad is
associated with the negative side of the differential signal.
All the PIOs support bus maintenance circuitry to allow a weak pull-up, or a weak pulldown, or a weak bus keeper.
The LVDS sysIO buffer pairs have additional LVDS output drivers in the primary PIO and are available on the top
side of the device. The bottom sysIO buffer pairs have additional 100 Ohm termination resistors between the “true”
and “comp” pads.
LVCMOS Buffer Configurations
The LVCMOS buffers can be configured in a variety of modes to support common circuit design needs.
Bus Maintenance circuit
Each pad has a weak pull-up, weak pull-down, and weak bus-keeper capability. These are selected with ON and
OFF programmability. The pull-up and pull-down settings offer a fixed characteristic, which is useful in creating
wired logic such as wired ORs. The bus-keeper option latches the signal in the last driven state, holding it at a valid
level with minimal power dissipation. Input leakage can be minimized by turning off the bus maintenance circuitry.
However, it is important to ensure that inputs are driven to a known state to avoid unnecessary power dissipation in
the input buffer. The bus maintenance circuit is available for single-ended ratioed I/O standards.
Programmable Drive Strength
All single-ended drivers have programmable drive strength. This option can be set for each I/O independently. The
drive strengths available for each I/O standard can be found in Table 8. The MachXO3L/LF programmable drive
architecture is guaranteed with minimum drive strength for each drive setting. The V/I curves in the data sheet provide details of output driving capability versus the output load. This information, together with the current per bank
and the package thermal limit current, should be taken into consideration when selecting the drive strength.
Input Hysteresis
VIH is the trip point for a low-to-high transition and VIL is the trip point for a high-to-low transition, hysteresis voltage
is the difference between VIH and VIL. Hysteresis is used to prevent several quick successive changes if the input
signal contains some noise, for example. The noise could mean that you cross the trip point more than just once,
which causes a glitch in the system.
All ratioed input receivers, except LVCMOS12, support input hysteresis. The input hysteresis for the LVCMOS33,
LVCMOS25, LVCMOS18 and LVCMOS15 have two settings for flexibility. The ratioed input receivers have no input
hysteresis when they are operated in under-drive or over-drive input conditions as shown in Table 7.
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. This slew rate control affects both the rising edge and the falling edges. The rise
and fall ramp rates for each I/O standard can be found in the in the device IBIS file for a given I/O configuration.
Tri-state and Open Drain Control
Each single-ended output driver has a separate tri-state control in addition to the global tri-state control for the
device. The single-ended output drivers also support open drain operation on each I/O independently. The open
drain output is typically pulled up externally and only the sink current specification is maintained.
7
MachXO3 sysIO Usage Guide
Differential Buffer Configurations
The sysIO buffer pair supports differential input standards. The top and bottom edges support some additional
functions over those supported by the base sysIO buffer pairs.
Differential Receivers
All the sysIO buffer pairs support differential input on all edges of the device. When a sysIO buffer pair is configured
as differential receiver, the input hysteresis and the bus maintenance capabilities will be disabled for the buffer.
On-Chip Input Termination
The MachXO3L/LF device supports on-chip 100 Ohm (nominal) input differential termination on the bottom edge.
The termination is available on all input PIO pairs of the bottom edge and is programmable.
Emulated Differential Outputs
All sysIO buffer pairs support complementary outputs as described above. This feature can be used to drive complementary LVCMOS signals. It can also be used together with off-chip resistor networks for emulating the differential output standards such as LVPECL, MLVDS, MIPI and BLVDS differential standards. When a sysIO buffer pair is
configured as differential transmitter, the bus maintenance and open drain capabilities will be disabled. All singleended sysIO buffers pairs in the MachXO3L/LF family can support emulated differential output standards.
True Differential Output And Output Drive
MachXO3L/LF devices support true differential output drivers on the top edge of these devices. These true differential outputs are only available on the primary PIO pairs. The output driver has a fixed common mode of 1.2 V and
a programmable drive current of 3.5 mA. The bank VCCIO for true differential output can be 2.5 V or 3.3 V.
Software sysIO Attributes
The sysIO attributes or primitives must be used in the Lattice development software to control the functions and
capabilities of the sysIO buffers. sysIO attributes or primitives can be specified in the HDL source code, in the Lattice Diamond™ Spreadsheet View GUI, or in the ASCII preference file (.lpf) file directly. Appendices A, B and C list
examples of using such attributes in different environments. This section describes each of these attributes in
detail.
HDL Attributes
All the attributes discussed in this section, except two, can be used in the HDL source code to direct the sysIO buffer functionality.
IO_TYPE
This attribute 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 I/O type. Table 7 shows the valid I/O types for the MachXO3L/LF family.
8
MachXO3 sysIO Usage Guide
Table 7. Supported I/O Types
sysIO Signaling Standard
IO_TYPE
LVDS 2.5 V
LVDS25
Emulated LVDS 2.5 V1
LVDS25E
Bus LVDS 2.5 V
BLVDS25
Emulated Bus LVDS 2.5 V
1
BLVDS25E
MLVDS 2.5 V
MLVDS25
1
Emulated MLVDS 2.5 V
MLVDS25E
LVPECL 3.3 V
LVPECL33
1
Emulated LVPECL 3.3 V
LVPECL33E
LVTTL 3.3 V
LVTTL33
LVTTL 3.3 V differential2
LVTTL33D
LVCMOS 3.3 V
LVCMOS33
2
LVCMOS 3.3 V differential
LVCMOS33D
LVCMOS 2.5 V (default)
LVCMOS25
2
LVCMOS 2.5 V differential
LVCMOS25D
LVCMOS 1.8 V
LVCMOS18
LVCMOS 1.5 V
LVCMOS15
LVCMOS 1.2 V
LVCMOS12
MIPI
MIPI
1. These differential output standards are emulated by using a complementary LVCMOS driver pair together with an external resistor pack.
2. These differential standards are implemented by using a complementary LVCMOS driver pair.
DRIVE
The DRIVE strength attribute is available for the output and bidirectional I/O standards. The default drive value
depends on the I/O standard used. Table 8 shows the supported drive strength for the single-ended I/O types
under designated VCCIO conditions.
Table 8. Output Drive Capability for Ratioed sysIO Standards
I/O Type
Drive Strength
(mA)
LVCMOS12
2
YES
4
6
8
12
LVCMOS15
LVCMOS18
LVCMOS25
LVCMOS33
LVTTL33
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
16
DIFFDRIVE
The DIFFDRIVE strength attribute is available for the true LVDS output standard. All true LVDS differential drivers
on the top edge is set to 3.5 mA setting. This is not programmable on the MachXO3L/LF device.
Values: 3.5
Default: 3.5
PULLMODE
The PULLMODE option can be enabled or disabled independently for each I/O. When the user selects OPENDRAIN=ON, the PULLMODE for the output standard is default to NONE.
Values: UP, DOWN, NONE, KEEPER
Default: DOWN for LVTTL, and LVCMOS; all others NONE
9
MachXO3 sysIO Usage Guide
CLAMP
The CLAMP option can be enabled or disabled independently for each I/O. The available settings on the bottom
edge. All other I/O have ON or OFF settings for this attribute.
Values: OFF, ON
Default: OFF
HYSTERESIS
The ratioed input buffers have two input hysteresis settings. The HYSTERESIS option can be used to change the
amount of hysteresis for the LVTTL and LVCMOS input and bidirectional I/O standards, except for the LVCMOS12
inputs. The LVCMOS12 inputs do not support HYSTERESIS.
Values: SMALL, LARGE, NA
Default: SMALL
OPENDRAIN
The OPENDRAIN option is available for all LVTTL and LVCMOS output and bidirectional I/O standards. Each sysIO
can be assigned independently to be open drain. When the OPENDRAIN attribute is used, the PULLMODE must
be NONE and the CLAMP must be OFF.
Values: OFF, ON
Default: OFF
SLEWRATE
Each I/O pin has an individual slew rate control. This allows the designer to specify slew rate control on a pin-by-pin
basis for outputs and bidirectional I/O pins. This is not a valid attribute for inputs or true differential outputs.
Values: FAST, SLOW, NA
Default: SLOW
DIFFRESISTOR
The bottom side I/O pins support on-chip differential input termination resistors. The termination resistor is available for both the primary pair and the alternate pair of a sysIO. The values supported are zero (OFF) or 100 Ohm.
Values: OFF, 100
Default: OFF
DIN/DOUT
The DIN/DOUT option is available for each I/O and can be configured independently. An input register is used for
the input if the DIN attribute is assigned. Similarly, the software assigns an output register when the DOUT attribute
is specified. By default, the software automatically assigns DIN or DOUT to input or output registers if possible.
LOC
This attribute specifies the site location for the component after the mapping process. When attached to multiple
components, it indicates that these blocks are to be mapped together in the specified site. It specifies the PIC site
for the pad when it is assigned to a pad. The LOC attribute can be attached to components that will end up on an
I/O cell, clocks, and internal flip-flops, but it should not be attached to combinational logic that will end up on a logic
cell; doing so could fail to generate a locate preference. The LOC attribute overrides register ordering.
Bank VCCIO
This attribute is necessary to verify the valid I/O types for a bank, to determine which input buffer to use, and to set
the correct drive strength for the applicable I/O types. Since the I/O bank information is not required at the HDL
level, this attribute is available through either the Diamond software’s Spreadsheet View or in the ASCII preference
file. Values: AUTO, 3.3, 2.5, 1.8, 1.5, 1.2. Default: AUTO.
10
MachXO3 sysIO Usage Guide
sysIO Primitives
There are many sysIO primitives in the software library. A few are selected to be discussed in this section because
some sysIO capabilities can only be utilized through instantiating the primitives in the HDL source code.
Tri-State All (TSALL)
The MachXO3L/LF device supports the TSALL function that is used to enable or disable the tristate control to all
the output buffers. The user can choose to assign any general purpose I/O pin to control the TSALL function since
there is no dedicated TSALL pin. The TSALL primitive must be instantiated in the source code in order to enable
the TSALL function. The input of the primitive can be assigned to an input pin or to an internal signal.
A value of TSALL=1 will tri-state all outputs but the outputs will be under individual OE control when TSALL=0.
Figure 4. TSALL Primitive
TSALL
TSALL
Fixed Data Delay (DELAYE)
This primitive supports up to 32 steps of static delay for all sysIO buffers in all banks of a MachXO3L/LF device.
Refer to the MachXO3 Family Data Sheet External Switching Characteristics table for delay step values. Although
users can choose USER_DEFINED mode to set input delay, this primitive is primarily used by pre-defined source
synchronous interfaces as described in TN1203, Implementing High-Speed Interfaces with MachXO2 Devices.
Figure 5. DELAYE Primitive and Associated Attributes
A
Attribute
DELAYE
Description
Z
Value
DEL_MODE
Fixed delay value depending
on interface or user-defined
delay values
SCLK_ZEROHOLD
ECLK_ALIGNED
ECLK_CENTERED
SCLK_ALIGNED
SCLK_CENTERED
USER_DEFINED
DEL_VALUE
User-defined value
DELAY0…DELAY31
Software Default
USER_DEFINED
DELAY0
Dynamic Data Delay (DELAYD)
This primitive supports dynamic delay for the sysIO buffers in the bottom bank (Bank 2) of the MachXO3L/LF
device only. The 5-bit inputs can be controlled by user logic to modify the delay during the device operation.
Figure 6. DELAYD Primitive
A
Z
DEL4
DEL3
DEL2
DELAYD
DEL1
DEL0
11
MachXO3 sysIO Usage Guide
Design Consideration and Usage
This section summarizes the MachXO3L/LF designs rules and considerations that have been discussed in detail in
previous sections. Table 9 lists the miscellaneous I/O features on each side of a MachXO3L/LF device.
sysIO Buffer Features Common to All MachXO3L/LF Devices
1. All banks support true differential inputs.
2. All banks support emulated differential outputs using external resistors and complementary LVCMOS outputs. Emulated differential output buffers are supported on both primary and alternate pairs.
3. All banks have programmable I/O clamps.
4. All banks support weak pull-up, pull-down, and bus-keeper (bus hold latch) settings on each I/O independently.
5. VCCIO voltage levels, together with the selected I/O types, determine the characteristics of an I/O, such as
the pull mode, hysteresis, clamp behavior, and drive strength, supported in a bank. Each bank can support
1.2 V inputs regardless of the VCCIO setting of the bank.
6. Each bank supports one VCCIO signal.
sysIO Buffer Rules
1. Only Bank 0 (top side) supports true differential output buffers with programmable drive strengths. Only the
primary pair supports true differential output buffers.
2. Only Bank 2 (bottom side) supports internal 100 Ohm differential input terminations.
Table 9. Miscellaneous I/O Features on Each Device Edge
Top
Bottom
Left
Right
100 Ohm Differential Resister
Feature
—
Yes
—
—
Hot Socket
Yes
Yes
Yes
Yes
Clamp2
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Weak Pull-up
2
Weak Pull-down1
Bus Keeper
2
Input Hysteresis2
Slew Rate Control
Yes
Yes
Yes
Yes
Open Drain
Yes
Yes
Yes
Yes
1. Software default setting
2. I/O characteristic under special conditions
a. HYSTERESIS option is not available for LVCMOS12.
b. HYSTERESIS option and BUS KEEPER option are not available for referenced input standards.
c. When using the ratioed input buffers in under-drive or over-drive conditions, the HYSTERESIS setting shall be
NA, the CLAMP setting shall be OFF, and the UP and KEEPER PULLMODE settings are not supported.
d. HYSTERESIS and the bus maintenance capabilities are disabled for differential receivers.
12
MachXO3 sysIO Usage Guide
Technical Support Assistance
Submit a technical support case via www.latticesemi.com/techsupport.
Revision History
Date
Version
April 2015
1.4
Change Summary
Included MachXO3LF device.
Updated Input Hysteresis section. Added information.
Updated Technical Support Assistance section.
February 2015
1.3
Updated the following sections to add MIPI information:
— Supported sysIO Standards. Updated Table 1, Supported Input
Standards (also added footnote) and Table 2, Supported Output Standards.
— sysIO Standards Supported by I/O Banks. Updated Table 4, Differential I/O Standards Supported on Various Sides
— Software sysIO Attributes. Updated Table 7, Supported I/O Types.
Updated the VCCIO Requirement for I/O Standards section.
— Updated Table 5, Mixed Voltage Support for LVCMOS and LVTTL
I/O Types. Revised information for Inputs and removed footnotes on
over drive and under drive conditions.
— Removed the VCCIO for Same Bank LVCMOS/LVTTL Input/Output
Requirements table.
Updated Emulated Differential Outputs section. Added MIPI to examples of output standards.
August 2014
1.2
Updated Table 10-6, Mixed Voltage Support for LVCMOS and LVTTL I/O
Types. Revised data on VCCIO 1.2 V.
May 2014
01.1
Product name/trademark adjustment.
Updated Table 10-1, Supported Input Standards. Removed LVTTL /
LVCMOS Differential and added input standards.
Updated Table 10-2, Supported Output Standards. Removed LVCMOS
Differential output standards.
Updated Table 10-4, Differential I/O Standards Supported on Various
Sides. Removed LVCMOS input and output standards.
Added Table 10-6, Mixed Voltage Support for LVCMOS and LVTTL I/O
Types and Table 10-7, Mixed Voltage Support for Differential Input Standards.
Updated Table 10-8, Supported I/O Types. Removed LVCMOS differential standards.
February 2014
01.0
Initial release.
13
MachXO3 sysIO Usage Guide
Appendix A. sysIO HDL Attributes
The sysIO attributes can be used directly in the HDL source codes. This section provides a list of sysIO attributes
supported by the MachXO3L/LF PLD family. The correct syntax and examples for the Synplify® synthesis tool are
provided here for reference.
Attributes in VHDL Language
Syntax
Table 10. VHDL Attribute Syntax
Attribute
Syntax
IO_TYPE
attribute IO_TYPE: string;
attribute IO_TYPE of Pinname: signal is “IO_TYPE Value”;
DRIVE
attribute DRIVE: string;
attribute DRIVE of Pinname: signal is “Drive Value”;
DIFFDRIVE
attribute DRIVE: string;
attribute DRIVE of Pinname: signal is “Diffdrive Value”;
DIFFRESISTOR
attribute DIFFRESISTOR: string;
attribute DIFFRESISTOR of Pinname: signal is “DIFFRESISTOR Value”;
CLAMP
attribute CLAMP: string;
attribute CLAMP of Pinname: signal is “Clamp Value”;
HYSTERESIS
attribute HYSTERESIS: string;
attribute HYSTERESIS OF Pinname: signal is “Hysteresis Value”;
VREF
NA
PULLMODE
attribute PULLMODE: string;
attribute PULLMODE of Pinname: signal is “Pullmode Value”;
OPENDRAIN
attribute OPENDRAIN: string;
attribute OPENDRAIN of Pinname: signal is “OpenDrain Value”;
SLOWSLEW
attribute PULLMODE: string;
attribute PULLMODE of Pinname: signal is “Slewrate Value”;
DIN
attribute DIN: string;
attribute DIN of Pinname: signal is “value “;
DOUT
attribute DOUT: string;
attribute DOUT of Pinname: signal is “value “;
LOC
attribute LOC: string;
attribute LOC of Pinname: signal is “Pin locations”;
BANK VCCIO
NA
Examples
IO_TYPE
--***Attribute Declaration***
ATTRIBUTE IO_TYPE: string;
--***IO_TYPE assignment for I/O Pin***
ATTRIBUTE IO_TYPE OF portB: SIGNAL IS "LVCMOS33";
ATTRIBUTE IO_TYPE OF portD: SIGNAL IS "LVDS25";
14
MachXO3 sysIO Usage Guide
DRIVE
--***Attribute Declaration***
ATTRIBUTE DRIVE: string;
--***DRIVE assignment for I/O Pin***
ATTRIBUTE DRIVE OF portB: SIGNAL IS “8”;
DIFFDRIVE
--***Attribute Declaration***
ATTRIBUTE DIFFDRIVE: string;
--*** DIFFDRIVE assignment for I/O Pin***
ATTRIBUTE DIFFDRIVE OF portD: SIGNAL IS “2.0”;
DIFFRESISTOR
--***Attribute Declaration***
ATTRIBUTE DIFFRESISTOR: string;
--*** DIFFRESISTOR assignment for I/O Pin***
ATTRIBUTE DIFFRESISTOR OF portD: SIGNAL IS "100";
CLAMP
--***Attribute Declaration***
ATTRIBUTE CLAMP: string;
--*** CLAMP assignment for I/O Pin***
ATTRIBUTE CLAMP OF portA: SIGNAL IS “PCI33”;
HYSTERESIS
--***Attribute Declaration***
ATTRIBUTE HYSTERESIS: string;
--*** HYSTERESIS assignment for Input Pin***
ATTRIBUTE HYSTERESIS OF portA: SIGNAL IS " LARGE ";
PULLMODE
--***Attribute Declaration***
ATTRIBUTE PULLMODE : string;
--***PULLMODE assignment for I/O Pin***
ATTRIBUTE PULLMODE OF portA: SIGNAL IS “DOWN”;
ATTRIBUTE PULLMODE OF portB: SIGNAL IS “UP”;
OPENDRAIN
--***Attribute Declaration***
ATTRIBUTE OPENDRAIN: string;
--***Open Drain assignment for I/O Pin***
ATTRIBUTE OPENDRAIN OF portB: SIGNAL IS “ON”;
SLEWRATE
--***Attribute Declaration***
ATTRIBUTE SLEWRATE : string;
--*** SLEWRATE assignment for I/O Pin***
ATTRIBUTE SLEWRATE OF portB: SIGNAL IS “FAST”;
DIN/DOUT
--***Attribute Declaration***
ATTRIBUTE din : string; ATTRIBUTE dout : string;
--*** din/dout assignment for I/O Pin***
ATTRIBUTE din OF input_vector: SIGNAL IS “TRUE “;
ATTRIBUTE dout OF output_vector: SIGNAL IS “TRUE “;
15
MachXO3 sysIO Usage Guide
LOC
--***Attribute Declaration***
ATTRIBUTE LOC : string;
--*** LOC assignment for I/O Pin***
ATTRIBUTE LOC OF input_vector: SIGNAL IS “E3,B3,C3 “;
Attributes in Verilog Language
Syntax
Table 11. Verilog Attribute Syntax
Attribute
Syntax
IO_TYPE
PinType PinName /* synthesis IO_Type=”IO_Type Value”*/;
DRIVE
PinType PinName /* synthesis DRIVE=”Drive Value”*/;
DIFFDRIVE
PinType PinName /* synthesis DIFFDRIVE =” DIFFDRIVE Value”*/;
DIFFRESISTOR
PinType PinName /* synthesis DIFFRESISTOR =” DIFFRESISTOR Value”*/;
CLAMP
PinType PinName /* synthesis CLAMP =” Clamp Value”*/;
HYSTERESIS
PinType PinName /*synthesis HYSTERESIS = “Hysteresis Value” */;
VREF
N/A
PULLMODE
PinType PinName /* synthesis PULLMODE=”Pullmode Value”*/;
OPENDRAIN
PinType PinName /* synthesis OPENDRAIN =”OpenDrain Value”*/;
SLOWSLEW
PinType PinName /* synthesis SLEWRATE=”Slewrate Value”*/;
DIN
PinType PinName /* synthesis DIN= “value” */;
DOUT
PinType PinName /* synthesis DOUT= “value” */;
LOC
PinType PinName /* synthesis LOC=”pin_locations “*/;
Bank VCCIO
N/A
Examples
//IO_TYPE, PULLMODE, SLEWRATE and DRIVE assignment
output portB /*synthesis IO_TYPE=”LVCMOS33”
PULLMODE =”UP” SLEWRATE =”FAST” DRIVE =”20”*/;
output portC /*synthesis IO_TYPE=”LVDS25” */;
//DIFFDRIVE
output portD /* synthesis IO_TYPE="LVDS25" DIFFDRIVE="2.0"*/;
//DIFFRESISTOR
output [4:0] portA /* synthesis IO_TYPE="LVDS25" DIFFRESISTOR ="100"*/;
//CLAMP
output portA /*synthesis IO_TYPE=”LVCMOS33” CLAMP =”ON” */;
//HYSTERESIS
input mypin /* synthesis HYSTERESIS = “LARGE” */;
//OPENDRAIN
output portA /*synthesis OPENDRAIN =”ON”*/;
// DIN Place the flip-flops near the load input
input load /* synthesis din=”” TRUE */;
16
MachXO3 sysIO Usage Guide
// DOUT Place the flip-flops near the outload output
output outload /* synthesis dout=”TRUE” */;
//LOC pin location
input [3:0] DATA0 /* synthesis loc=”E3,B1,F3”*/;
//LOC Register pin location
reg data_in_ch1_buf_reg3 /* synthesis loc=”R10C16” */;
//LOC Vectored internal bus
reg [3:0] data_in_ch1_reg /*synthesis loc =”R10C16,R10C15,R10C14,R10C9” */;
17
MachXO3 sysIO Usage Guide
Appendix B. sysIO Attributes Using the Spreadsheet View
The sysIO buffer attributes can be assigned using the Spreadsheet View available in the Diamond design tool. The
attributes that are not available as HDL attributes, such as VREF and Bank VCCIO, are available in the Spreadsheet View GUI.
The Port Assignment tab lists all the ports in a design and all the available sysIO attributes as preferences. 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 a particular IO_TYPE is chosen, the columns for the DRIVE, PULL-MODE, SLEW-RATE
and other attributes will list the valid combinations for that IO_TYPE. Pin locations can be locked using the Pin column of the Port Assignment tab. Right-clicking on a cell will list all the available pin locations. The Spreadsheet
View can run a DRC check to check for incorrect sysIO attribute assignments.
All the preferences assigned using the Spreadsheet View are written into the logical preference file (.lpf).
Figure 7. Port Assignment Tab of Spreadsheet View
18
MachXO3 sysIO Usage Guide
Figure 8. VREF Name and Location Pop-up Window of the Spreadsheet View
VREF Assignment in the Spreadsheet View
The VREF attribute can be assigned in the Spreadsheet View by clicking on the Vref Location(s) button on the left
hand side. It is required to use this button only if a specific location for the VREF driver is desired. Otherwise the
software will assign the VREF driver signal to any location that does not violate the sysIO bank rules.
When the VREF_NAME is assigned to a specific pin, the software will list VREF_NAME in the VREF column of the
Port Assignments tab. Both VREF_NAME and pin location will be reflected in the VREF column of the Pin Attribute
sheet.
Bank VCCIO Setting in the Spreadsheet View
Bank VCCIO is editable in the Global tab of the Spreadsheet View. The value of the Bank VCCIO can be chosen by
the users to determine the value of VCCIO of a specific bank.
19
MachXO3 sysIO Usage Guide
Figure 9. Bank VCCIO in Global Preference Tab
20
MachXO3 sysIO Usage Guide
Appendix C. sysIO Attributes Using Preference File (ASCII File)
Designers can enter sysIO attributes directly in the preference (.lpf) file as sysIO buffer preferences. The LPF file is
a post-synthesis FPGA constraint file that stores logical preferences that have been created or modified in the
Spreadsheet View or directly in a text editor. It also contains logical preferences originating in the HDL source.
Modifying the Spreadsheet View in the Diamond software will automatically update the content of the LPF file and
vice versa. The settings in the Spreadsheet View are reflected in the preference file once they are saved. Details of
the supported preferences and their corresponding syntax can be found in the Diamond Help System.
21