如何在 Xilinx 中将引脚分配给自然类型的端口

How to assign pins to natural type of ports in Xilinx

如何将 natural 类型的端口分配给 XILINX UCF 文件中的引脚?

Generic (
    nr_ro     : natural := 32
);            

Port (  
    clk_i     : in  STD_LOGIC;
    rst_i     : in  STD_LOGIC;
    sel1_i    : in  natural range 0 to nr_ro-1;
    sel2_i    : in  natural range 0 to nr_ro-1;
    bit_o     : out std_logic;
);

不幸的是,您不能使用类型 natural 的地方是顶级端口,它们映射到物理设备引脚。这是因为您需要将信号的每个单独位连接到其自己的引脚,因此您需要某种类型将信号表示为位数组。

为此,我的选择是将 to/from natural 转换为 unsigned。无符号数将有 5 位从 0 到 31 计数。

library ieee;
use ieee.numeric_std.all;
...

Port (  
          sel1    : in unsigned(nr_bits-1 downto 0);
...

sel_1 <= to_unsigned(sel1_i,nr_bits);
...

现在您将 sel_1 的每一位连接到 UCF 文件中它自己的引脚。在 VHDL 中,您可以访问各个位 sel1(4)sel1(0)

在 UCF 文件中,语法可能略有不同' sel1_4 等等,请参阅 UCF 文档以了解它如何对总线的各个位进行编号..