以下是一个计数器程序,C7,..C0为变量,第二个进程中把该计数好值在时钟锁存脉冲STROBE下,锁存到Q7..Q0中,<br /><br />程序如下:<br />library ieee;<br />use ieee.std_logic_1164.all;<br />use ieee.std_logic_unsigned.all;<br /><br />entity corna is<br /> port(clr,clk,door:in std_logic;<br /> strobe:in std_logic;<br /> q7,q6,q5,q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0));<br /> end corna;<br /><br />architecture behav of corna is<br />begin<br /> process(door,clk)<br /> variable c0,c1,c2,c3,c4,c5,c6,c7:std_logic_vector(3 downto 0);<br />begin<br /> if clk'event and clk='1' then<br /> if door='1' and clr='0' then --door=1,clr='0'计数<br /> if c0<"1001" then --c0<9,加1计数<br /> c0:=c0+1;<br /> else<br /> c0:="0000";<br /> if c1<"1001" then --c1<9,加1计数<br /> c1:=c1+1;<br /> <br /> else<br /> c1:="0000";<br /> if c2<"1001" then --c2<9,加1计数<br /> c2:=c2+1;<br /><br /> else<br /> c2:="0000";<br /> if c3<"1001" then --c3<9,加1计数<br /> c3:=c3+1;<br /><br /> else<br /> c3:="0000";<br /> if c4<"1001" then --c4<9,加1计数<br /> c4:=c4+1;<br /><br /> else<br /> c4:="0000";<br /> if c5<"1001" then --c5<9,加1计数<br /> c5:=c5+1;<br /><br /> else<br /> c5:="0000";<br /> if c6<"1001" then --c6<9,加1计数<br /> c6:=c6+1;<br /> else<br /> c6:="0000";<br /> if c7<"1001" then --c7<9,加1计数<br /> c7:=c7+1;<br /> else<br /> c7:="0000";<br /> --alm<='1'; --超量程报警<br /> end if;<br /> end if;<br /> end if;<br /> end if;<br /> end if;<br /> end if;<br /> end if;<br /> end if;<br /> else ---clr='1',清0<br /> c7:="0000";<br /> c6:="0000";<br /> c5:="0000"; <br /> c4:="0000";<br /> c3:="0000";<br /> c2:="0000";<br /> c1:="0000";<br /> c0:="0000";<br /> end if;<br />end if; <br />end process;<br /> <br />process(strobe,c7,c6,c5,c4,c3,c2,c1,c0)<br />begin<br /> if strobe'event and strobe='1' then<br /> q7<=c7;<br /> q6<=c6;<br /> q5<=c5;<br /> q4<=c4;<br /> q3<=c3;<br /> q2<=c2;<br /> q1<=c1;<br /> q0<=c0;<br /> end if;<br /> end if;<br />end process;<br />end behav;<br /><br /><br />错误如下:identifier"c7" has not been declared....<br />如何定义C7...C0?<br />谢谢<br /><br /><br /> |
|