如何使用Vivado的I / O规划工具将端口设置为接地

时间:2015-08-31 23:03:01

标签: vhdl xilinx vivado

所以,我设计了一个2位全加器,由全加器和半加器组成。我刚开始使用Vivado的I / O规划工具来进行端口分配,但我遇到了一个问题。我的一个输入,第一位的初始carry_in,我想设置为ground,因为它应该始终为0.我知道我可以在我的VHDL代码中强制它为0,但我被告知这不是真正的正确方法去做吧。我试图将该端口设置为i / o规划器中的一个接地引脚,但Vivado只是告诉我我不能将一个端子放在空引脚位置。有谁知道怎么做?

作为一个临时解决方案,我只是将carry_in端口分配给一个按钮输入,我将保留未按下状态,因此它总是为0.当它被编程到电路板上时,一切正常。

*使用Vivado 2015.2并在ZYBO开发板上工作。

这是顶级2位全加器代码:

library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity full_adder_2bit is
     port(
         a : in STD_LOGIC_VECTOR (1 downto 0);
         b : in STD_LOGIC_VECTOR (1 downto 0);
         carry_in : in STD_LOGIC;
         sum : out STD_LOGIC_VECTOR (1 downto 0);
         carry_out : out STD_LOGIC
         );
end full_adder_2bit;

architecture structural of full_adder_2bit is

component full_adder is
     port(
         a : in STD_LOGIC;
         b : in STD_LOGIC;
         carry_in : in STD_LOGIC;
         sum : out STD_LOGIC;
         carry_out : out STD_LOGIC
         );
end component;

signal cin_fa1 : std_logic;

begin

    fa0: full_adder port map (a => a(0), b => b(0), carry_in => carry_in, sum => sum(0), carry_out => cin_fa1); 

    fa1: full_adder port map (a => a(1), b => b(1), carry_in => cin_fa1, sum => sum(1), carry_out => carry_out);

end structural;

这就是我从I / O规划者那里得到的限制。一切正常,我只想将carry_in设置为地面而不是未使用的按钮。

set_property IOSTANDARD LVCMOS33 [get_ports {a[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {a[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sum[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sum[0]}]
set_property PACKAGE_PIN T16 [get_ports {a[1]}]
set_property PACKAGE_PIN P15 [get_ports {a[0]}]
set_property PACKAGE_PIN W13 [get_ports {b[1]}]
set_property PACKAGE_PIN G15 [get_ports {b[0]}]
set_property PACKAGE_PIN M15 [get_ports {sum[1]}]
set_property PACKAGE_PIN M14 [get_ports {sum[0]}]
set_property PACKAGE_PIN D18 [get_ports carry_out]
set_property IOSTANDARD LVCMOS33 [get_ports carry_out]
set_property PACKAGE_PIN Y16 [get_ports carry_in]
set_property IOSTANDARD LVCMOS33 [get_ports carry_in]

1 个答案:

答案 0 :(得分:2)

您可以将其分配给未使用的未连接引脚,并激活其上的内部下拉。

但是,最好将它绑定到VHDL文件中的'0'。评论“这不是正确的方式”,这有点值得商榷。完整的加法器实体应该具有carry_in输入。但是,FPGA顶层应该只有它所需的引脚。

更好的方法是拥有一个文件(比方说,toplevel.vhd)实例化一个full_adder_2bit将进位绑定到'0'。这样,full_adder_2bit保持有用的carry_in位,你的顶层摆脱了不必要的引脚。