IOSTANDARD specifies which programmable I/O Standard to use to configure input, output, or bidirectional ports on the target device.
IMPORTANT: You must explicitly define an IOSTANDARD on all ports in an I/O Bank before Vivado Design Suite will create a bitstream from the design. However, IOSTANDARDs cannot be applied to GTs or XADCs.
You can mix different IOSTANDARDs in a single I/O Bank, however, the IOSTANDARDs must be compatible. The following rules must be followed when combining different input, output, and bidirectional I/O standards in a single I/O bank:
1.Output standards with the same output VCCO requirement can be combined in the same bank.
2.Input standards with the same VCCO and VREF requirements can be combined in the same bank.
3.Input standards and output standards with the same VCCO requirement can be combined in the same bank.
4.When combining bidirectional I/O with other standards, make sure the bidirectional standard can meet the first three rules.
Architecture Support
All architectures.
Applicable Objects
•Ports (get_ports)
°Any port - Define the IOSTANDARD in the RTL source of I/O Ports, or as XDC constraints for port cells.
Values
There are many different valid I/O Standards for the target Xilinx FPGA. Refer to the 7 Series FPGAs SelectIO Resources User Guide (UG471) [Ref 2] and the UltraScale Architecture SelectIO Resources User Guide (UG571) [Ref 8] for device specific IOSTANDARD values.
Syntax
Verilog Syntax
To set this parameter, place the proper Verilog syntax before the top-level port declaration.
(* IOSTANDARD = "value" *)
Verilog Syntax Example
// Sets the I/O Standard on the STATUS output to LVCMOS12
(* IOSTANDARD = "LVCMOS12" *) output STATUS,
VHDL Syntax
Place the proper VHDL attribute syntax before the top-level port declaration.
Declare and specify the VHDL attribute as follows:
attribute IOSTANDARD : string;
attribute IOSTANDARD of <port_name>: signal is "<standard>";
Where:
•port_name is a top-level port.
VHDL Syntax Example
STATUS : out std_logic;
attribute IOSTANDARD : string;
-- Sets the I/O Standard on the STATUS output to LVCMOS12
attribute IOSTANDARD of STATUS: signal is "LVCMOS12";
XDC Syntax
The IOSTANDARD can also be defined as an XDC constraint on port objects in the design.
set_property IOSTANDARD value [get_ports port_name]
Where
•port_name is a top-level port.
XDC Syntax Example
# Sets the I/O Standard on the STATUS output to LVCMOS12
set_property IOSTANDARD LVCMOS12 [get_ports STATUS]
Affected Steps
•I/O Planning
•Report Noise
•Report Power
•Report DRC
•Place Design
See Also
Refer to the following design elements in the Vivado Design Suite 7 Series FPGA and Zynq-7000 SoC Libraries Guide (UG953) [Ref 25], or the UltraScale Architecture Libraries Guide (UG974) [Ref 26]:
•OBUF
•OBUFT
•IOBUF