Lattice diamond 晶格钻石:发现推断时钟
我正在为一个班级做一个项目,我遇到了这个问题。我的任务是绘制一个注册表方案。我这样做了,但我得到警告,我的测试结果是错误的。我得到的警告是:Lattice diamond 晶格钻石:发现推断时钟,lattice-diamond,Lattice Diamond,我正在为一个班级做一个项目,我遇到了这个问题。我的任务是绘制一个注册表方案。我这样做了,但我得到警告,我的测试结果是错误的。我得到的警告是: 2019993警告-MT420发现周期为1000.00ns的推断时钟模式1 | C。请在对象“p:C”上声明用户定义的时钟 2019991警告-MT529:“c:\”|发现推断时钟模式1 | c,该模式控制8个顺序元素,包括I25。该时钟没有指定的定时约束,这可能会阻止选通或生成时钟的转换,并可能对设计性能产生不利影响 信号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;
IEEE库;
使用IEEE.std_logic_1164.all;
图书馆xp2;
使用xp2.components.all;
实体SCHEMA1是
端口(C:std_逻辑中;
rst:标准逻辑中;
DR:标准逻辑;
Q7:输出标准逻辑;
D7:标准逻辑中;
A0:标准逻辑中;
A1:标准逻辑中;
Q6:输出标准逻辑;
D6:标准逻辑中;
Q5:输出标准逻辑;
D5:标准逻辑中;
Q4:输出标准逻辑;
D4:标准逻辑中;
Q3:输出标准逻辑;
D3:标准逻辑中;
Q2:输出标准_逻辑;
D2:标准逻辑中;
Q1:输出标准逻辑;
D1:标准逻辑中;
DL:标准逻辑中;
Q0:输出标准逻辑;
D0:标准逻辑中);
结束方案1;
SCHEMA1的架构示意图如下所示
信号接地:标准逻辑:='0';
信号vcc:std_逻辑:='1';
信号N_17:标准逻辑;
信号N_16:标准逻辑;
信号Q0_虚拟:标准_逻辑;
信号Q1_虚拟:标准_逻辑;
信号Q2_虚拟:标准_逻辑;
信号Q3_虚拟:标准_逻辑;
信号Q4_虚拟:标准_逻辑;
信号Q5_虚拟:标准_逻辑;
信号Q6_虚拟:标准_逻辑;
信号Q7_虚拟:标准_逻辑;
信号N_1:标准逻辑;
信号N_2:标准逻辑;
信号N_3:标准逻辑;
信号N_4:标准逻辑;
信号N_5:标准逻辑;
信号N_6:标准逻辑;
信号N_7:标准逻辑;
信号N_8:标准逻辑;
信号N_9:标准逻辑;
信号N_10:标准逻辑;
信号N_11:标准逻辑;
信号N_12:标准逻辑;
信号N_13:标准逻辑;
信号N_15:标准逻辑;
元件fd1s3ax
端口(CK:std_逻辑中;
D:在标准逻辑中;
Q:输出标准(U逻辑);
端部元件;
组件mux41
端口(D0:标准_逻辑中;
D1:标准逻辑中;
D2:标准逻辑中;
D3:标准逻辑中;
SD1:标准逻辑中;
SD2:标准逻辑中;
Z:输出标准(U逻辑);
端部元件;
组件和2
端口(A:标准_逻辑中;
B:标准逻辑;
Z:输出标准(U逻辑);
端部元件;
开始
Q7 N_10,Q=>Q5_假人);
I5:fd1s3ax
端口映射(CK=>C,D=>N_16,Q=>Q4_虚拟);
I4:fd1s3ax
端口映射(CK=>C,D=>N_7,Q=>Q3_虚拟);
I3:fd1s3ax
端口映射(CK=>C,D=>N_5,Q=>Q2_虚拟);
I2:fd1s3ax
端口映射(CK=>C,D=>N_3,Q=>Q1_虚拟);
I1:fd1s3ax
端口映射(CK=>C,D=>N_1,Q=>Q0_虚拟);
I24:mux41
端口映射(D0=>Q7_虚拟,D1=>DR,D2=>Q6_虚拟,D3=>D7,SD1=>A0,
SD2=>A1,Z=>N_15);
I23:mux41
端口映射(D0=>Q6_虚拟,D1=>Q7_虚拟,D2=>Q5_虚拟,D3=>D6,
SD1=>A0,SD2=>A1,Z=>N_13);
I22:mux41
端口映射(D0=>Q5_虚拟,D1=>Q6_虚拟,D2=>Q4_虚拟,D3=>D5,
SD1=>A0,SD2=>A1,Z=>N_11);
I21:mux41
端口映射(D0=>Q4\u虚拟,D1=>Q5\u虚拟,D2=>Q3\u虚拟,D3=>D4,
SD1=>A0,SD2=>A1,Z=>N_9);
I20:mux41
端口映射(D0=>Q3\u虚拟,D1=>Q4\u虚拟,D2=>Q2\u虚拟,D3=>D3,
SD1=>A0,SD2=>A1,Z=>N_8);
I19:mux41
端口映射(D0=>Q2\U虚拟,D1=>Q3\U虚拟,D2=>Q1\U虚拟,D3=>D2,
SD1=>A0,SD2=>A1,Z=>N_6);
I18:mux41
端口映射(D0=>Q1\u虚拟,D1=>Q2\u虚拟,D2=>Q0\u虚拟,D3=>D1,
SD1=>A0,SD2=>A1,Z=>N_4);
I17:mux41
端口映射(D0=>Q0_虚拟,D1=>Q1_虚拟,D2=>DL,D3=>D0,SD1=>A0,
SD2=>A1,Z=>N_2);
I16:和2
端口映射(A=>N_15,B=>rst,Z=>N_17);
I15:和2
端口映射(A=>N_13,B=>rst,Z=>N_12);
I14:和2
端口映射(A=>N_11,B=>rst,Z=>N_10);
I13:和2
端口映射(A=>N_9,B=>rst,Z=>N_16);
I12:和2
端口映射(A=>N_6,B=>rst,Z=>N_5);
I11:和2
端口映射(A=>N_4,B=>rst,Z=>N_3);
I10:和2
端口映射(A=>N_2,B=>rst,Z=>N_1);
I9:和2
端口映射(A=>N_8,B=>rst,Z=>N_7);
末端示意图;
我没有更改任何代码。我只是画了一个方案,得到了这些奇怪的错误。。。到目前为止,我发现的任何解决方案都建议在sdc文件或其他文件上编写一些东西,但我们的任务不需要这样做,它应该在不更改代码的情况下工作。此外,我甚至没有使用gnd和vcc信号,它们是为我创建的,它们在我做过的任何其他任务中,以前从未出现过此警告。我删除了“scheme”标签。“scheme”标签仅指编程语言scheme。好的,我知道了,我的错。我删除了“scheme”标签。“scheme”标签仅指编程语言scheme。好吧,我明白了,我的错。