Vhdl 如何为Xilinx中的自然类型端口分配管脚

Vhdl 如何为Xilinx中的自然类型端口分配管脚,vhdl,fpga,xilinx,Vhdl,Fpga,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

如何将
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;
);

不幸的是,唯一不能使用type
natural
的地方是顶级端口,在那里它们被映射到物理设备引脚。这是因为您需要将信号的每个位连接到它自己的管脚上,所以您需要某种类型,将信号表示为一个位数组

为此,我的选择是将
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);
...
ieee库;
使用ieee.numeric_std.all;
...
港口(
sel1:无符号(nr_位-1降到0);
...

sel_1在顶级实体中使用时,IDE不会自动将
natural
转换为
std_logic\u vector
。@Brian,谢谢你的有用回答。Qui,我认为不会,IDE不会自动转换它。