用CPLD采集图象时序<br />采用VHDL语言<br />(第一次VHDL写程)<br />程序如下:<br />LIBRARY IEEE;<br />USE IEEE.Std_Logic_1164.ALL;<br />USE IEEE.Std_Logic_Arith.ALL;<br />USE IEEE.Std_Logic_Unsigned.ALL;<br /><br />entity SAA7111A is <br /> port ( <br />-------SAA7111A_interface------------------------<br /> LLC2 : in std_logic;<br /> HREF : in std_logic;<br /> VREF : in std_logic;<br /> HS : in std_logic;<br /> VS : in std_logic;<br /> RTS0 : in std_logic;<br /> VPO : in std_logic_vector(15 downto 0); <br /> TAKE : in std_logic;<br />-------------------------------------------------<br />-------SRAM_interface----------------------------<br /> addr : out std_logic_vector(18 downto 0);<br /> data : out std_logic_vector(15 downto 0);<br /> nCE : out std_logic;<br /> nWE : out std_logic;<br /> nOE : out std_logic;<br /> nUB : out std_logic;<br /> nLB : out std_logic;<br />-------------------------------------------------<br />-------interrupt_line----------------------------<br /> line : out std_logic<br />-------------------------------------------------<br /> );<br />end SAA7111A;<br /><br />ARCHITECTURE SAA7111A_ac OF SAA7111A IS<br /><br /> SIGNAL TempAddr : STD_LOGIC_VECTOR(18 DOWNTO 0); <br /> SIGNAL couter : INTEGER range 0 TO 576;<br /> <br />BEGIN <br /> couter <= 0;<br /> TempAddr <= "0000000000000000000";<br /> addr <= "0000000000000000000";<br />A: PROCESS(LLC2) -------------sample,VREF<br /><br /> variable YUV422 : STD_LOGIC_VECTOR(15 DOWNTO 0);<br /> <br /> BEGIN <br /> <br /><br /> IF LLC2'event AND LLC2='1' THEN <br /> YUV422 := VPO; <br /> IF VREF='1' AND HREF='1' AND TAKE='1' THEN<br /> <br /> data <= YUV422;<br /> addr <= TempAddr+1;<br /><br /> nCE <= '0';<br /> nWE <= '0';<br /> nOE <= '0';<br /> nUB <= '0';<br /> nLB <= '1';<br /> ELSE<br /> nCE <= '1';<br /> nWE <= '1';<br /> nOE <= '1';<br /> nUB <= '1';<br /> nLB <= '1';<br /> data <= "0000000000000000";<br /> <br /> END IF; <br /> END IF;<br /> END PROCESS;<br /><br />B:PROCESS(VREF)<br /> BEGIN<br /> IF VREF'event AND VREF='0' THEN<br /> IF RTS0='1' THEN<br /> TempAddr <= "0000000000000000000" ; <br /> line <= '1' ; <br /> END IF; <br /> END IF;<br /> END PROCESS;<br /><br />END SAA7111A_ac; <br /><br /><br />编译的时候出现<br />Error:Line 35 signal"TempAddr"has multiple sources<br />Error:Line 19 signal"addr"has multiple sources<br /><br />望高手指点啊 |
|