2013-05-11 70 views
1

我有两个文件,master.vhd和slave.vhd,都合成没有错误或警告。我想创建一个结构顶层模块并连接它们。我正在使用Xilinx ISE 14.2。顶级模块VHDL没有输入和输出

我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 - 输入从未使用。这个端口将被保留并保持未连接状态......等等等等

但是,如果我在顶层实体中添加一些不需要的端口,那么它会合成好,但我不需要额外的端口,它们只是混乱!

我的问题是如何将两个模块与顶层结构文件(或任何其他工作方式)连接起来并保持设计合成?

回答

1

如果它没有输出,那么它不能产生任何结果或以任何方式影响世界,因此它可以安全地进行优化。这是一个哲学问题而不是技术问题,但是没有产出,它究竟能做什么?除此之外,您可以从模块提供足够的输出以保持其内部结构不受优化,但不会将其输出至外部FPGA引脚。有一个“禁用IOB插入”综合选项,允许这一点。正常的用途是创建HDL IP,稍后将其集成到另一个顶级设计中,但据我了解,它可能会用于您的目的。