Vivado 2015.1 VHDL 输入/输出违规

Vivado 2015.1 VHDL Input/ Output Violation

我正在学习 Nexys 4 DDR 的教程,我正在实现一个简单的 MUX

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

library UNISIM;
use UNISIM.VComponents.all;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx leaf cells in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity lab1_2_1 is
    Port ( SW0 : in STD_LOGIC;
           SW1 : in STD_LOGIC;
           SW2 : in STD_LOGIC;
           LED0 : out STD_LOGIC);
end lab1_2_1;

architecture Behavioral of lab1_2_1 is

            Signal SW2_bar : STD_LOGIC;
            Signal SW0_int : STD_LOGIC;
            Signal SW1_int : STD_LOGIC;


begin
            SW2_bar <= not SW2;
            SW0_int <= SW0 and SW2_bar;
            SW1_int <= SW1 and SW2;
            LED0 <= SW0_int or SW1_int;

end Behavioral;

当我到达生成比特流的部分时,我收到了这个严重警告

NSTD #1 严重警告 1 个逻辑端口中有 1 个使用 I/O 标准 (IOSTANDARD) 值 'DEFAULT',而不是用户指定的特定值。这可能会导致 I/O 与电路板电源或连接性发生争用或不兼容,从而影响性能、信号完整性,或者在极端情况下导致设备或其连接的组件损坏。要更正此违规行为,请指定所有 I/O 标准。除非所有逻辑端口都定义了用户指定的 I/O 标准值,否则此设计将无法生成比特流。要允许使用未指定的 I/O 标准值(不推荐)创建比特流,请使用此命令:set_property SEVERITY {Warning} [get_drc_checks NSTD-1]。注意:使用 Vivado Runs 基础架构(例如 launch_runs Tcl 命令)时,将此命令添加到 .tcl 文件并将该文件添加为 write_bitstream 实施步骤的预挂钩 运行.问题端口:LED0.

UCIO #1 严重警告 1 个逻辑端口中有 1 个没有用户分配的特定位置约束 (LOC)。这可能会导致 I/O 与电路板电源或连接性发生争用或不兼容,从而影响性能、信号完整性,或者在极端情况下导致设备或其连接的组件损坏。要更正此违规,请指定所有引脚位置。除非所有逻辑端口都定义了用户指定站点 LOC 约束,否则此设计将无法生成比特流。要允许使用未指定的引脚位置创建比特流(不推荐),请使用此命令:set_property SEVERITY {Warning} [get_drc_checks UCIO-1]。注意:使用 Vivado Runs 基础架构(例如 launch_runs Tcl 命令)时,将此命令添加到 .tcl 文件并将该文件添加为 write_bitstream 实施步骤的预挂钩 运行.问题端口:LED0.

有什么想法吗?

Vivado 希望您定义 IOs 和 IO 标准的物理位置。 IO 标准取决于电压电平和 pull-up/pull-down 连接到 FPGA 引脚的电阻。

您可以将它们添加到约束文件中(例如 SDC 或 XDC)。例如,我将输出LED0分配给FPGA的引脚A1,并将IO标准定义为2.5V LVCMOS。可以在您的 FPGA 板手册中找到正确的值。

set_property PACKAGE_PIN A1       [get_ports {LED0}];
set_property IOSTANDARD  LVCMOS25 [get_ports {LED0}];