求助---关于CPLD采集图象信号时序的问题

[复制链接]
 楼主| 阿西西里 发表于 2007-4-10 15:12 | 显示全部楼层 |阅读模式
用CPLD采集图象时序<br />采用VHDL语言<br />(第一次VHDL写程)<br />程序如下:<br />LIBRARY&nbsp;IEEE;<br />USE&nbsp;IEEE.Std_Logic_1164.ALL;<br />USE&nbsp;IEEE.Std_Logic_Arith.ALL;<br />USE&nbsp;IEEE.Std_Logic_Unsigned.ALL;<br /><br />entity&nbsp;SAA7111A&nbsp;is&nbsp;<br />&nbsp;&nbsp;port&nbsp;(&nbsp;<br />-------SAA7111A_interface------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LLC2&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HREF&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VREF&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HS&nbsp;&nbsp;&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VS&nbsp;&nbsp;&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTS0&nbsp;:&nbsp;in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VPO&nbsp;&nbsp;:&nbsp;in&nbsp;std_logic_vector(15&nbsp;downto&nbsp;0);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TAKE&nbsp;:&nbsp;in&nbsp;std_logic;<br />-------------------------------------------------<br />-------SRAM_interface----------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr&nbsp;:&nbsp;out&nbsp;std_logic_vector(18&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;:&nbsp;out&nbsp;std_logic_vector(15&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCE&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nWE&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nOE&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nUB&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nLB&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />-------------------------------------------------<br />-------interrupt_line----------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;:&nbsp;out&nbsp;std_logic<br />-------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;);<br />end&nbsp;SAA7111A;<br /><br />ARCHITECTURE&nbsp;SAA7111A_ac&nbsp;OF&nbsp;SAA7111A&nbsp;IS<br /><br />&nbsp;&nbsp;SIGNAL&nbsp;TempAddr&nbsp;:&nbsp;STD_LOGIC_VECTOR(18&nbsp;DOWNTO&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;SIGNAL&nbsp;couter&nbsp;:&nbsp;INTEGER&nbsp;range&nbsp;0&nbsp;TO&nbsp;576;<br />&nbsp;&nbsp;<br />BEGIN&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;couter&nbsp;&lt=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempAddr&nbsp;&lt=&nbsp;&quot;0000000000000000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr&nbsp;&lt=&nbsp;&quot;0000000000000000000&quot;;<br />A:&nbsp;&nbsp;&nbsp;&nbsp;PROCESS(LLC2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------------sample,VREF<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;variable&nbsp;YUV422&nbsp;:&nbsp;STD_LOGIC_VECTOR(15&nbsp;DOWNTO&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;LLC2'event&nbsp;AND&nbsp;LLC2='1'&nbsp;THEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YUV422&nbsp;:=&nbsp;VPO;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;VREF='1'&nbsp;AND&nbsp;HREF='1'&nbsp;AND&nbsp;TAKE='1'&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;&lt=&nbsp;YUV422;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr&nbsp;&lt=&nbsp;TempAddr+1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCE&nbsp;&lt=&nbsp;'0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nWE&nbsp;&lt=&nbsp;'0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nOE&nbsp;&lt=&nbsp;'0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nUB&nbsp;&lt=&nbsp;'0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nLB&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCE&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nWE&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nOE&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nUB&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nLB&nbsp;&lt=&nbsp;'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;&lt=&nbsp;&quot;0000000000000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;<br />&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;PROCESS;<br /><br />B:PROCESS(VREF)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;VREF'event&nbsp;AND&nbsp;VREF='0'&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;RTS0='1'&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempAddr&nbsp;&lt=&nbsp;&quot;0000000000000000000&quot;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;&lt=&nbsp;'1'&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;<br />&nbsp;END&nbsp;PROCESS;<br /><br />END&nbsp;SAA7111A_ac;&nbsp;<br /><br /><br />编译的时候出现<br />Error:Line&nbsp;35&nbsp;&nbsp;&nbsp;signal&quot;TempAddr&quot;has&nbsp;multiple&nbsp;sources<br />Error:Line&nbsp;19&nbsp;&nbsp;&nbsp;signal&quot;addr&quot;has&nbsp;multiple&nbsp;sources<br /><br />望高手指点啊
yangkui 发表于 2007-4-10 16:08 | 显示全部楼层

回复主题:求助---关于CPLD采集图象信号时序的问题

TempAddr的作用是什么&nbsp;?
 楼主| 阿西西里 发表于 2007-4-10 20:10 | 显示全部楼层

谢谢

TempAddr的作用做地址线的暂储<br />要把读得的数据写到SRAM中去<br />对特定的数据要给地址<br />通过检测到HREF和VREF和LCC2相关的时序采集VPO口传到CPLD<br />的数据<br />再给地址并将得到的数据传输给SRAM<br /><br />谢谢啊<br />
laner214 发表于 2007-4-12 08:36 | 显示全部楼层

其实很简单

你的这两个信号在并行语句和process中都有定义,编译时就会出现多个源的提示,建议改成在进程里赋初值就对了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部