早教吧作业答案频道 -->其他-->
VHDL中出现以下错误是什么原因ELSECLAUSEFOLLOWINGCLOCKEDGEMUSTHOLDTHESTATEOFSIGNAL以下是源程序LIBRARYIEEE;USEIEEE.STDLOGIC1164.ALL;USEIEEE.STDLOGICUNSIGNED.ALL;ENTITYKUOPIN1ISPORT(EN,CLK,SIN:INSTDLOGIC;SIGOUT:OUT
题目详情
VHDL中出现以下错误是什么原因ELSE CLAUSE FOLLOWING CLOCK EDGE MUST HOLD THE STATE OF SIGNAL
以下是源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY KUOPIN1 IS
PORT(EN,CLK,SIN:IN STD_LOGIC;
SIG_OUT:OUT STD_LOGIC);
END;
ARCHITECTURE ONE OF KUOPIN1 IS
SIGNAL TEMP:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
PROCESS(EN,SIN)
CONSTANT PN63:STD_LOGIC_VECTOR(62 DOWNTO
0):="110010010101001101000010001011011111101011100011001110110000011";
CONSTANT PN63_NOT:STD_LOGIC_VECTOR(62 DOWNTO
0):="001101101010110010111101110100100000010100011100110001001111100";
VARIABLE TEMP1:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
IF EN='1' THEN
TEMP1:=(OTHERS=>'0');
ELSE
IF SIN='1' THEN
TEMP1:=PN63_NOT;
ELSE
TEMP1:=PN63;
END IF;
TEMP
以下是源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY KUOPIN1 IS
PORT(EN,CLK,SIN:IN STD_LOGIC;
SIG_OUT:OUT STD_LOGIC);
END;
ARCHITECTURE ONE OF KUOPIN1 IS
SIGNAL TEMP:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
PROCESS(EN,SIN)
CONSTANT PN63:STD_LOGIC_VECTOR(62 DOWNTO
0):="110010010101001101000010001011011111101011100011001110110000011";
CONSTANT PN63_NOT:STD_LOGIC_VECTOR(62 DOWNTO
0):="001101101010110010111101110100100000010100011100110001001111100";
VARIABLE TEMP1:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
IF EN='1' THEN
TEMP1:=(OTHERS=>'0');
ELSE
IF SIN='1' THEN
TEMP1:=PN63_NOT;
ELSE
TEMP1:=PN63;
END IF;
TEMP
▼优质解答
答案和解析
一个if就要对应一个end if
或者你不想写end if 就要把else 和if连起来写成elsif,这样只要写一个end if就行了.
还有一些其他错误,已改好且编译通过
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY KUOPIN1 IS
PORT(EN,CLK,SIN:IN STD_LOGIC;
SIG_OUT:OUT STD_LOGIC);
END KUOPIN1;
ARCHITECTURE ONE OF KUOPIN1 IS
SIGNAL TEMP:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
PROCESS(EN,SIN)
CONSTANT PN63:STD_LOGIC_VECTOR(62 DOWNTO 0):="110010010101001101000010001011011111101011100011001110110000011";
CONSTANT PN63_NOT:STD_LOGIC_VECTOR(62 DOWNTO 0):="001101101010110010111101110100100000010100011100110001001111100";
VARIABLE TEMP1:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
IF EN='1' THEN
TEMP1:=(OTHERS=>'0');
ELSE
IF SIN='1' THEN
TEMP1:=PN63_NOT;
ELSE
TEMP1:=PN63;
END IF;
TEMP
或者你不想写end if 就要把else 和if连起来写成elsif,这样只要写一个end if就行了.
还有一些其他错误,已改好且编译通过
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY KUOPIN1 IS
PORT(EN,CLK,SIN:IN STD_LOGIC;
SIG_OUT:OUT STD_LOGIC);
END KUOPIN1;
ARCHITECTURE ONE OF KUOPIN1 IS
SIGNAL TEMP:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
PROCESS(EN,SIN)
CONSTANT PN63:STD_LOGIC_VECTOR(62 DOWNTO 0):="110010010101001101000010001011011111101011100011001110110000011";
CONSTANT PN63_NOT:STD_LOGIC_VECTOR(62 DOWNTO 0):="001101101010110010111101110100100000010100011100110001001111100";
VARIABLE TEMP1:STD_LOGIC_VECTOR(62 DOWNTO 0);
BEGIN
IF EN='1' THEN
TEMP1:=(OTHERS=>'0');
ELSE
IF SIN='1' THEN
TEMP1:=PN63_NOT;
ELSE
TEMP1:=PN63;
END IF;
TEMP
看了 VHDL中出现以下错误是什么...的网友还看了以下:
弹性常数G,E,u三者间的关系是什么 2020-05-14 …
关于Excel:求C列数除以E列数的商乘以D列数的积的函数公式.注:1、C、E列有单位,如g、U、 2020-05-16 …
看图,根据图意把所给字母组成单词.1、OurP.E.teacherisvery(g,n,u,o,y 2020-05-19 …
关于高中对数函数的有关问题设g(x)=e(x)(x≤0)=lnx(x>0)1.求g(g(-2))g 2020-06-03 …
A.根据释义,拼写单词.1.costingalotofmoneyx,p,s,i,e,e,e,n,v 2020-06-10 …
e^x^2求导看成f'(u)f(u)=u^2u=e^x------>f'(u)=2u*u'=2e^ 2020-06-12 …
maple不等方程组solve({-(-u^3/3-e*u^2/2+u)>-(e^2+4)^(3/2 2020-10-31 …
电场中U=Ed,U我们学习的时候类比为高度h,E我们类比为g,有E=U/d,那么h/g等于什么?写错 2020-11-29 …
以DNA的一条链“…-A-T-C-…”为模板,经转录以后形成的mRNA是()A.…-T-A-G-…B 2020-12-14 …
英语单词排列以下字母排列成一个单词,1.e,n,a,l,r2.a,o,o,l,l,b,f,t3.i, 2020-12-24 …