我正在为一个班级做一个项目,我遇到了问题。我的任务是绘制一个注册表方案。我这样做了,但我收到警告并且我的测试结果是错误的。我得到的警告是:
2019993 警告 - MT420 |发现推断时钟 SCHEMA1|C 周期为 1000.00ns。请在对象“p:C”上声明一个用户定义的时钟
2019991 警告 - MT529:“c:\”|发现推断时钟 SCHEMA1|C,它控制包括 I25 在内的 8 个顺序元素。该时钟没有指定的时序约束,这可能会阻止门控时钟或生成时钟的转换,并可能对设计性能产生不利影响。
信号 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 信号,并且它们已经完成了我完成的任何其他任务,并且以前从未收到过此警告。