Math Xst:647带顶部模块的Shift6合成期间的警告

Math Xst:647带顶部模块的Shift6合成期间的警告,math,warnings,vhdl,shift,xilinx-ise,Math,Warnings,Vhdl,Shift,Xilinx Ise,我已经为6的算术移位编写了VHDL代码。代码运行良好。但是,当我将其用作顶部模块的组件时,输入b6有一些未使用的位。所以它在合成过程中发出警告 Xst:647 - Input <b6<9...14>> is never used. 此警告是否会影响性能期间顶部模块的电源?我可以避免这些警告吗? 算术移位6的代码如下所示 entity shift6 is Port ( b6 : in STD_LOGIC_VECTOR(

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

        Xst:647 - Input <b6<9...14>> is never used.
此警告是否会影响性能期间顶部模块的电源?我可以避免这些警告吗? 算术移位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;
实体移位6为
港口(
b6:标准逻辑向量(15到0);
o6:输出标准逻辑向量(15到0);
末端移位6;
shift6的架构是
开始
过程(b6)
开始

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

考虑到您发布的代码,很明显这些位是未使用的,可以从电路中删除,警告只是证实了这一点

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

在更复杂的设计中,值得浏览警告列表,以防在硬件中出现问题,或者在硬件中出现问题时更加注意,但通常不值得大量重写以避免出现一些警告,只要您已经在模拟器中验证了设计的正确性。

作为Brian答案的延伸

大多数XST警告都是非关键性的,但有些是。例如,“已使用但从未分配”或“已找到闩锁”警告。其他一些警告对于合成是可以接受的,但在以后的步骤中可能会变得致命,例如,如果网络列表文件(*.ngc)丢失,“blackbox found”

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

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

我编写了一个脚本来扫描合成报告(*.syr)中的这些警告和ID。不幸的是,这个脚本有一些bug,所以我现在不会发布它。也许您可以更快地实现这种关键警告扫描仪。

只是为了跟进Brian的答案。修剪逻辑是合成过程的正常部分。然而,合成器不知道什么是,也不应该被修剪掉,所以它会发出这些警告,让您知道在设计错误导致删除过多内容的情况下会发生什么。
 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;