2

我有两个文件,master.vhd 和 slave.vhd,它们都在没有错误或警告的情况下合成。我想创建一个结构顶部模块并将它们连接起来。我正在使用赛灵思 ISE 14.2。

我的 top.vhd 文件如下所示:

library ieee;
use ieee.std_logic_1164.all;

entity top is
end top;

architecture structural of top is

signal reset, clk : std_logic;
signal req, ack, sig : std_logic;

begin

    master : entity work.master_v10_zad1(rtl)
    port map(
        reset => reset,
        clk => clk,
        req => req,
        ack => ack,
        sig => sig
    );

    slave : entity work.slave_v10_zad1(rtl)
    port map(
        reset => reset,
        clk => clk,
        req => req,
        ack => ack,
        sig => sig
    );

end structural;

当我这样做时,我无法合成它并收到很多警告,例如:WARNING:Xst:647 - Input is never used。该端口将被保留并保持未连接状态......等等等等

但是如果我在顶部实体中添加一些不需要的端口,那么它可以合成,但我不需要额外的端口,它们只是杂乱无章!

我的问题是如何将两个模块与顶级结构文件(或任何其他有效的方式)连接并保持设计可综合?

4

1 回答 1

2

如果它没有输出,那么它就不能产生任何结果或以任何方式影响世界,因此它可以安全地被优化掉。这是一个哲学点而不是技术点,但是,如果没有输出,它实际上能做什么?

除此之外,您可以从模块中提供足够的输出来保护其内部不被优化,但根本不将它们带到外部 FPGA 引脚。有一个“禁用 IOB 插入”综合选项允许这样做。正常用途是创建 HDL IP,稍后将集成到另一个顶级设计中,但据我了解,它可能符合您的目的。

于 2013-05-11T21:20:02.597 回答