编译错误:重复赋值

[复制链接]
 楼主| huanan 发表于 2008-7-2 10:26 | 显示全部楼层 |阅读模式
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;test_ram&nbsp;is<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;port<br />&nbsp;&nbsp;&nbsp;&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_out:&nbsp;out&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wraddr&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic_vector(9&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wr_en&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_in&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;in&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdaddr&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic_vector(9&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rd_en&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk,reset:&nbsp;in&nbsp;&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;out&nbsp;std_logic<br />&nbsp;&nbsp;&nbsp;&nbsp;);<br />end&nbsp;test_ram;<br /><br /><br />architecture&nbsp;a&nbsp;of&nbsp;test_ram&nbsp;is<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;data_temp:std_logic_vector(7&nbsp;downto&nbsp;0):=&quot;00000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;addr_temp:std_logic_vector(9&nbsp;downto&nbsp;0):=&quot;0000000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;write_en:std_logic:='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;read_en:std_logic:='0';&nbsp;&nbsp;&nbsp;&nbsp;<br />begin<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />--&nbsp;write&nbsp;or&nbsp;read&nbsp;judge&nbsp;process<br />&nbsp;&nbsp;&nbsp;&nbsp;process(reset,clk)&nbsp;is&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;Declaration(s)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(reset&nbsp;=&nbsp;'1')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_temp&lt=&quot;00000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr_temp&lt=&quot;0000000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(data_temp&gt100)&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(write_en='1')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_en&lt='0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read_en&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif(read_en='1')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_en&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read_en&lt='0';&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;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;process;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />--&nbsp;data&nbsp;and&nbsp;addr&nbsp;product&nbsp;process<br />&nbsp;&nbsp;&nbsp;&nbsp;process(reset,&nbsp;clk)&nbsp;is&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(reset&nbsp;=&nbsp;'0')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(write_en='1')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_temp&lt=data_temp+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr_temp&lt=addr_temp+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif(read_en='1')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr_temp&lt=addr_temp+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_temp&lt=&quot;00000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr_temp&lt=&quot;0000000000&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;process;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />--&nbsp;out&nbsp;process<br />&nbsp;&nbsp;&nbsp;&nbsp;process(reset,&nbsp;clk)&nbsp;is&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;Declaration(s)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(reset&nbsp;=&nbsp;'0')&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(rising_edge(clk))&nbsp;then<br />--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wr_en&lt=write_en;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;data_out&lt=data_temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;wraddr&lt=addr_temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rdaddr&lt=addr_temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;process;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />end&nbsp;a;<br /><br />编译环境:quartus&nbsp;7.2<br />我想用单独的一个进程专门做输出、输入信号的处理。但是已编译就出现这个错误如下(请高人指点,如何在多进程间传递信号):<br />Error&nbsp;(10028):&nbsp;Can't&nbsp;resolve&nbsp;multiple&nbsp;constant&nbsp;drivers&nbsp;for&nbsp;net&nbsp;&quot;addr_temp[0]&quot;&nbsp;at&nbsp;test_ram.vhd(57)<br /><br /><br /> 相关链接:<a href='duanjinzhenhttp://'>duanjinzhenhttp://</a>
 楼主| huanan 发表于 2008-7-2 16:54 | 显示全部楼层

谢谢

谢谢,知道了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

1

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