2

我已经为算术移位编写了 VHDL 代码 6。代码运行良好。但是当我将它用作顶部模块中的组件时,输入 b6 有一些未使用的位。所以它在合成过程中给出警告

        Xst:647 - Input <b6<9...14>> is never used.

在 ASIC 实施期间,它会发出警告:

        O6(0),O(1)...O(5) is connected to same logic(ground).

此警告是否会在性能期间影响我的顶级模块的功率?我可以避免这些警告吗?算术移位 6 的代码如下。

 entity shift6 is 
    Port ( 
           b6 : in  STD_LOGIC_VECTOR(15 downto 0);
           o6 : out  STD_LOGIC_VECTOR(15 downto 0));
   end shift6;

architecture Behavioral of shift6 is

begin
process(b6) 
begin
   o6(15)<=b6(15);
   o6(14 downto 6)<=b6(8 downto 0);
   o6(0)<='0';
   o6(1)<='0';
   o6(2)<='0';
   o6(3)<='0';
   o6(4)<='0';
   o6(5)<='0';
end process;

end Behavioral;
4

2 回答 2

4

不,它们不会影响此设计,而且 Xilinx 自己的 IP 通常会生成数百个此类警告,因此警告通常并不意味着设计损坏。

鉴于您发布的代码,您已经很明显这些位未使用并且可以从电路中修剪出来,警告只是证实了这一点。

必须修复错误,警告通常无关紧要。

在更复杂的设计中,值得浏览一下警告列表,以防错误导致整个设计被修剪,或者如果它似乎无法在硬件中工作,请多加注意,但通常不值得大量重写以避免一些警告,只要您已经在模拟器中验证了设计工作正常。

于 2015-02-16T12:13:02.793 回答
3

延伸到布赖恩的回答。

大多数 XST 警告是非关键的,但有些是非关键的。例如“使用但从未分配”或“发现闩锁”警告。其他一些警告对于综合来说是可以接受的,但在后面的步骤中可能会变得致命,例如,如果缺少网表文件 (*.ngc),则会出现“找到黑盒”。

以下是正确设计应解决的严重警告列表:

  • HDLCompiler - 警告 ID 89、92、321、634、797、871
  • Xst - 警告 ID 653、737、1415、2935、3210

我编写了一个脚本来扫描综合报告 (*.syr) 中的这些警告和 ID。不幸的是,这个脚本有一些错误,所以我暂时不会发布它。也许您在实施此类扫描仪以获取严重警告方面更快。

于 2015-02-16T18:28:33.300 回答