我有两个文件,master.vhd和slave.vhd,两者都合成没有错误或警告。我想创建一个结构顶部模块并连接它们。我正在使用Xilinx 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;
当我这样做时,我无法合成它并得到很多警告,例如:警告:Xst:647 - 从不使用输入。这个端口将被保留并保持不连接......等等等等
但是如果我在顶级实体中添加了一些不受欢迎的端口,那么它就合成了,但是我不需要额外的端口,它们只是杂乱无章!
我的问题是如何使用顶部结构文件(或任何其他有效的方式)连接这两个模块并保持设计的合成性?
答案 0 :(得分:2)
如果它没有输出那么它就不能以任何方式产生任何结果或影响世界,因此它可以安全地被优化掉。这是一个哲学而非技术点,但是,如果没有输出,它实际上能做什么?
除此之外,您可以从块中提供足够的输出以保持其内部优化,但不能将它们带到外部FPGA引脚。有一个“禁用IOB插入”合成选项,允许这样做。正常用于创建HDL IP,稍后将其集成到另一个顶级设计中,但据我所知,它可能符合您的目的。