VHDL 错误!请帮忙,谢谢!

[复制链接]
2287|1
 楼主| zxq916 发表于 2007-4-14 11:43 | 显示全部楼层 |阅读模式
library&nbsp;IEEE;&nbsp;<br />use&nbsp;IEEE.STD_LOGIC_1164.ALL;&nbsp;<br />use&nbsp;IEEE.STD_LOGIC_ARITH.ALL;&nbsp;<br />use&nbsp;IEEE.STD_LOGIC_UNSIGNED.ALL;&nbsp;<br /><br />--&nbsp;Uncomment&nbsp;the&nbsp;following&nbsp;lines&nbsp;to&nbsp;use&nbsp;the&nbsp;declarations&nbsp;that&nbsp;are&nbsp;<br />--&nbsp;provided&nbsp;for&nbsp;instantiating&nbsp;Xilinx&nbsp;primitive&nbsp;components.&nbsp;<br />--library&nbsp;UNISIM;&nbsp;<br />--use&nbsp;UNISIM.VComponents.all;&nbsp;<br /><br />entity&nbsp;topmoudel&nbsp;is&nbsp;<br />Port&nbsp;(&nbsp;clk&nbsp;:&nbsp;in&nbsp;std_logic;&nbsp;<br />a&nbsp;:&nbsp;in&nbsp;std_logic;&nbsp;<br />b&nbsp;:&nbsp;in&nbsp;std_logic;&nbsp;<br />reset:in&nbsp;std_logic;&nbsp;<br />output&nbsp;:&nbsp;out&nbsp;std_logic_vector(7&nbsp;downto&nbsp;0));&nbsp;<br />end&nbsp;topmoudel;&nbsp;<br /><br />architecture&nbsp;Behavioral&nbsp;of&nbsp;topmoudel&nbsp;is&nbsp;<br />--signal&nbsp;bclk:std_logic;&nbsp;<br />type&nbsp;states&nbsp;is(statt1,statt2,statt3,statt4);&nbsp;<br />signal&nbsp;state:states:=statt1;&nbsp;<br />signal&nbsp;sum1:std_logic_vector(3&nbsp;downto&nbsp;0):=&quot;0000&quot;;<br />signal&nbsp;sum2:std_logic_vector(2&nbsp;downto&nbsp;0):=&quot;000&quot;;&nbsp;<br />signal&nbsp;sum3:std_logic_vector(1&nbsp;downto&nbsp;0):=&quot;00&quot;;&nbsp;<br />signal&nbsp;sum4:std_logic_vector(1&nbsp;downto&nbsp;0):=&quot;00&quot;;&nbsp;<br /><br />--component&nbsp;testtt&nbsp;<br />--Port&nbsp;(&nbsp;clk&nbsp;:&nbsp;in&nbsp;std_logic;&nbsp;<br />--reset&nbsp;:&nbsp;in&nbsp;std_logic;&nbsp;<br />--dout&nbsp;:&nbsp;out&nbsp;std_logic);&nbsp;<br />--end&nbsp;component;&nbsp;<br /><br />begin&nbsp;<br />--u1:testtt&nbsp;<br />--port&nbsp;map(clk=&gtclk,reset=&gtreset,dout=&gtbclk);&nbsp;<br />process(reset,state,clk,a,b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />begin&nbsp;<br />if&nbsp;reset='1'then&nbsp;<br />case&nbsp;state&nbsp;is&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;statt1=&gt&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a='0'and&nbsp;b='0')&nbsp;then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(clk'event&nbsp;and&nbsp;clk='1')&nbsp;then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sum1&nbsp;&lt=&nbsp;sum1+'1';<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;statt2=&gt&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a='0'and&nbsp;b='1')then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;clk'event&nbsp;and&nbsp;clk='1'then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sum2&lt=sum2+'1';&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;statt3=&gt&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a='1'and&nbsp;b='0')then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;clk'event&nbsp;and&nbsp;clk='1'then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sum3&lt=sum3+'1';&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;statt4=&gt&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a='1'and&nbsp;b='1')then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;clk'event&nbsp;and&nbsp;clk='1'then&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sum4&lt=sum4+'1';&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;&nbsp;<br /><br /><br />end&nbsp;case;&nbsp;<br />end&nbsp;if;&nbsp;<br />end&nbsp;process;&nbsp;<br /><br /><br />process(sum1)<br />begin<br />case&nbsp;sum1&nbsp;is&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0001&quot;=&gtoutput&lt=&quot;01000000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0010&quot;=&gtoutput&lt=&quot;00100000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0011&quot;=&gtoutput&lt=&quot;00010000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0100&quot;=&gtoutput&lt=&quot;00001000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0101&quot;=&gtoutput&lt=&quot;00000100&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0110&quot;=&gtoutput&lt=&quot;00000010&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;0111&quot;=&gtoutput&lt=&quot;00000001&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1000&quot;=&gtoutput&lt=&quot;00000010&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1001&quot;=&gtoutput&lt=&quot;00000100&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1010&quot;=&gtoutput&lt=&quot;00001000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1011&quot;=&gtoutput&lt=&quot;00010000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1100&quot;=&gtoutput&lt=&quot;00100000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1101&quot;=&gtoutput&lt=&quot;01000000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&quot;1110&quot;=&gtoutput&lt=&quot;10000000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;others=&gtoutput&lt=&quot;10000000&quot;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;case;<br />end&nbsp;process;<br /><br /><br />process(sum2)<br />begin<br />case&nbsp;sum2&nbsp;is&nbsp;<br />when&nbsp;&quot;001&quot;=&gtoutput&lt=&quot;10000001&quot;;&nbsp;<br />when&nbsp;&quot;010&quot;=&gtoutput&lt=&quot;01000010&quot;;&nbsp;<br />when&nbsp;&quot;011&quot;=&gtoutput&lt=&quot;00100100&quot;;&nbsp;<br />when&nbsp;&quot;100&quot;=&gtoutput&lt=&quot;00011000&quot;;&nbsp;<br />when&nbsp;&quot;101&quot;=&gtoutput&lt=&quot;00100100&quot;;&nbsp;<br />when&nbsp;&quot;110&quot;=&gtoutput&lt=&quot;01000010&quot;;&nbsp;<br />when&nbsp;&quot;111&quot;=&gtoutput&lt=&quot;10000001&quot;;&nbsp;<br />when&nbsp;others=&gt&nbsp;output&lt=&quot;00000000&quot;;&nbsp;<br />end&nbsp;case;<br />end&nbsp;process;<br /><br /><br />process(sum3)<br />begin<br />case&nbsp;sum3&nbsp;is&nbsp;<br />when&nbsp;&quot;01&quot;=&gtoutput&lt=&quot;11000011&quot;;&nbsp;<br />when&nbsp;&quot;10&quot;=&gtoutput&lt=&quot;00111100&quot;;&nbsp;<br />when&nbsp;&quot;11&quot;=&gtoutput&lt=&quot;11000011&quot;;&nbsp;<br />when&nbsp;others=&gtoutput&lt=&quot;11111111&quot;;&nbsp;<br />end&nbsp;case;&nbsp;<br />end&nbsp;process;<br /><br /><br />process(sum4)<br />begin<br />case&nbsp;sum4&nbsp;is&nbsp;<br />when&nbsp;&quot;01&quot;=&gtoutput&lt=&quot;11111111&quot;;&nbsp;<br />when&nbsp;&quot;10&quot;=&gtoutput&lt=&quot;11110000&quot;;&nbsp;<br />when&nbsp;&quot;11&quot;=&gtoutput&lt=&quot;00001111&quot;;&nbsp;<br />when&nbsp;others=&gtoutput&lt=&quot;00000000&quot;;&nbsp;<br />end&nbsp;case;<br />end&nbsp;process;<br /><br />end&nbsp;Behavioral;&nbsp;<br /><br />
弄月书生 发表于 2007-4-17 11:06 | 显示全部楼层

???

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

1

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