1

我正在为一个班级做一个项目,我遇到了问题。我的任务是绘制一个注册表方案。我这样做了,但我收到警告并且我的测试结果是错误的。我得到的警告是:

  1. 2019993 警告 - MT420 |发现推断时钟 SCHEMA1|C 周期为 1000.00ns。请在对象“p:C”上声明一个用户定义的时钟

  2. 2019991 警告 - MT529:“c:\”|发现推断时钟 SCHEMA1|C,它控制包括 I25 在内的 8 个顺序元素。该时钟没有指定的时序约束,这可能会阻止门控时钟或生成时钟的转换,并可能对设计性能产生不利影响。

  3. 信号 gnd 和 vcc 未驱动。

我的 vhd 代码是这样的。

library IEEE;
use IEEE.std_logic_1164.all;
library xp2;
use xp2.components.all;

entity SCHEMA1 is
      Port (       C : In    std_logic;
                 rst : In    std_logic;
                  DR : In    std_logic;
                  Q7 : Out   std_logic;
                  D7 : In    std_logic;
                  A0 : In    std_logic;
                  A1 : In    std_logic;
                  Q6 : Out   std_logic;
                  D6 : In    std_logic;
                  Q5 : Out   std_logic;
                  D5 : In    std_logic;
                  Q4 : Out   std_logic;
                  D4 : In    std_logic;
                  Q3 : Out   std_logic;
                  D3 : In    std_logic;
                  Q2 : Out   std_logic;
                  D2 : In    std_logic;
                  Q1 : Out   std_logic;
                  D1 : In    std_logic;
                  DL : In    std_logic;
                  Q0 : Out   std_logic;
                  D0 : In    std_logic );

end SCHEMA1;

architecture SCHEMATIC of SCHEMA1 is

   SIGNAL gnd : std_logic := '0';
   SIGNAL vcc : std_logic := '1';

   signal     N_17 : std_logic;
   signal     N_16 : std_logic;
   signal Q0_DUMMY : std_logic;
   signal Q1_DUMMY : std_logic;
   signal Q2_DUMMY : std_logic;
   signal Q3_DUMMY : std_logic;
   signal Q4_DUMMY : std_logic;
   signal Q5_DUMMY : std_logic;
   signal Q6_DUMMY : std_logic;
   signal Q7_DUMMY : std_logic;
   signal      N_1 : std_logic;
   signal      N_2 : std_logic;
   signal      N_3 : std_logic;
   signal      N_4 : std_logic;
   signal      N_5 : std_logic;
   signal      N_6 : std_logic;
   signal      N_7 : std_logic;
   signal      N_8 : std_logic;
   signal      N_9 : std_logic;
   signal     N_10 : std_logic;
   signal     N_11 : std_logic;
   signal     N_12 : std_logic;
   signal     N_13 : std_logic;
   signal     N_15 : std_logic;

   component fd1s3ax
      Port (      CK : In    std_logic;
                   D : In    std_logic;
                   Q : Out   std_logic );
   end component;

   component mux41
      Port (      D0 : In    std_logic;
                  D1 : In    std_logic;
                  D2 : In    std_logic;
                  D3 : In    std_logic;
                 SD1 : In    std_logic;
                 SD2 : In    std_logic;
                   Z : Out   std_logic );
   end component;

   component and2
      Port (       A : In    std_logic;
                   B : In    std_logic;
                   Z : Out   std_logic );
   end component;

begin

   Q7 <= Q7_DUMMY;
   Q6 <= Q6_DUMMY;
   Q5 <= Q5_DUMMY;
   Q4 <= Q4_DUMMY;
   Q3 <= Q3_DUMMY;
   Q2 <= Q2_DUMMY;
   Q1 <= Q1_DUMMY;
   Q0 <= Q0_DUMMY;

   I25 : fd1s3ax
      Port Map ( CK=>C, D=>N_17, Q=>Q7_DUMMY );
   I7 : fd1s3ax
      Port Map ( CK=>C, D=>N_12, Q=>Q6_DUMMY );
   I6 : fd1s3ax
      Port Map ( CK=>C, D=>N_10, Q=>Q5_DUMMY );
   I5 : fd1s3ax
      Port Map ( CK=>C, D=>N_16, Q=>Q4_DUMMY );
   I4 : fd1s3ax
      Port Map ( CK=>C, D=>N_7, Q=>Q3_DUMMY );
   I3 : fd1s3ax
      Port Map ( CK=>C, D=>N_5, Q=>Q2_DUMMY );
   I2 : fd1s3ax
      Port Map ( CK=>C, D=>N_3, Q=>Q1_DUMMY );
   I1 : fd1s3ax
      Port Map ( CK=>C, D=>N_1, Q=>Q0_DUMMY );
   I24 : mux41
      Port Map ( D0=>Q7_DUMMY, D1=>DR, D2=>Q6_DUMMY, D3=>D7, SD1=>A0,
                 SD2=>A1, Z=>N_15 );
   I23 : mux41
      Port Map ( D0=>Q6_DUMMY, D1=>Q7_DUMMY, D2=>Q5_DUMMY, D3=>D6,
                 SD1=>A0, SD2=>A1, Z=>N_13 );
   I22 : mux41
      Port Map ( D0=>Q5_DUMMY, D1=>Q6_DUMMY, D2=>Q4_DUMMY, D3=>D5,
                 SD1=>A0, SD2=>A1, Z=>N_11 );
   I21 : mux41
      Port Map ( D0=>Q4_DUMMY, D1=>Q5_DUMMY, D2=>Q3_DUMMY, D3=>D4,
                 SD1=>A0, SD2=>A1, Z=>N_9 );
   I20 : mux41
      Port Map ( D0=>Q3_DUMMY, D1=>Q4_DUMMY, D2=>Q2_DUMMY, D3=>D3,
                 SD1=>A0, SD2=>A1, Z=>N_8 );
   I19 : mux41
      Port Map ( D0=>Q2_DUMMY, D1=>Q3_DUMMY, D2=>Q1_DUMMY, D3=>D2,
                 SD1=>A0, SD2=>A1, Z=>N_6 );
   I18 : mux41
      Port Map ( D0=>Q1_DUMMY, D1=>Q2_DUMMY, D2=>Q0_DUMMY, D3=>D1,
                 SD1=>A0, SD2=>A1, Z=>N_4 );
   I17 : mux41
      Port Map ( D0=>Q0_DUMMY, D1=>Q1_DUMMY, D2=>DL, D3=>D0, SD1=>A0,
                 SD2=>A1, Z=>N_2 );
   I16 : and2
      Port Map ( A=>N_15, B=>rst, Z=>N_17 );
   I15 : and2
      Port Map ( A=>N_13, B=>rst, Z=>N_12 );
   I14 : and2
      Port Map ( A=>N_11, B=>rst, Z=>N_10 );
   I13 : and2
      Port Map ( A=>N_9, B=>rst, Z=>N_16 );
   I12 : and2
      Port Map ( A=>N_6, B=>rst, Z=>N_5 );
   I11 : and2
      Port Map ( A=>N_4, B=>rst, Z=>N_3 );
   I10 : and2
      Port Map ( A=>N_2, B=>rst, Z=>N_1 );
   I9 : and2
      Port Map ( A=>N_8, B=>rst, Z=>N_7 );

end SCHEMATIC;

我没有更改任何此代码。我只是画了一个方案并为我得到了这些奇怪的错误......到目前为止我发现的任何解决方案都建议在 sdc 文件或其他东西上写一些东西,但我们的任务不需要这个,它应该在不更改代码的情况下工作。此外,我什至没有使用它们为我创建的 gnd 和 vcc 信号,并且它们已经完成了我完成的任何其他任务,并且以前从未收到过此警告。

4

0 回答 0