【问题标题】:How to assign pins to natural type of ports in Xilinx如何在 Xilinx 中将引脚分配给自然类型的端口
【发布时间】:2015-05-27 18:08:10
【问题描述】:

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

【问题讨论】:

    标签: vhdl fpga xilinx


    【解决方案1】:

    不幸的是,您不能使用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);
    ...
    

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

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

    【讨论】:

    • 在顶级实体中使用时,IDE 不会自动将natural 转换为std_logic_vector
    • @Brian,感谢您提供有用的答案。 Qui,我认为不会,IDE 不会自动转换它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2018-05-30
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多