如何在 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 文档以了解它如何对总线的各个位进行编号..
如何将 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 文档以了解它如何对总线的各个位进行编号..