VHDL的计数器

[复制链接]
 楼主| 小李志 发表于 2007-4-1 12:54 | 显示全部楼层 |阅读模式
LIBRARY&nbsp;IEEE;<br />USE&nbsp;IEEE.STD_LOGIC_1164.ALL;<br />USE&nbsp;IEEE.STD_LOGIC_UNSIGNED.ALL;<br />ENTITY&nbsp;COUNTER&nbsp;IS<br />&nbsp;PORT(&nbsp;CLK:IN&nbsp;STD_LOGIC;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EN:&nbsp;IN&nbsp;STD_LOGIC;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S:&nbsp;IN&nbsp;STD_LOGIC;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOAD:&nbsp;IN&nbsp;STD_LOGIC_VECTOR(3&nbsp;DOWNTO&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:&nbsp;OUT&nbsp;STD_LOGIC;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JISHU:&nbsp;OUT&nbsp;STD_LOGIC_VECTOR(3&nbsp;DOWNTO&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />END&nbsp;ENTITY;<br />&nbsp;ARCHITECTURE&nbsp;BHV&nbsp;OF&nbsp;COUNTER&nbsp;IS<br />&nbsp;&nbsp;&nbsp;SIGNAL&nbsp;TEMP:STD_LOGIC_VECTOR(3&nbsp;DOWNTO&nbsp;0);<br />BEGIN<br />&nbsp;&nbsp;&nbsp;PROCESS(EN,CLK,S,LOAD)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;CLK'EVENT&nbsp;AND&nbsp;CLK='1'&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF(EN='1')&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THEN&nbsp;IF(S='1')&nbsp;THEN&nbsp;TEMP&lt=LOAD;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSIF(TEMP&lt10)&nbsp;THEN&nbsp;TEMP&lt=TEMP+1;&nbsp;C&lt='0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE&nbsp;TEMP&lt=&quot;0000&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;C&lt='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;IF;<br />&nbsp;&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;END&nbsp;PROCESS;<br />&nbsp;&nbsp;&nbsp;&nbsp;JISHU&lt=TEMP;<br />END&nbsp;BHV;<br />其中EN是使能端,如果是1的话就计数,否则就不计,<br />S是置位端,如果是1的话就把LOAD的值赋给TEMP<br />但是编译通不过,不知错在哪?<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
yinlu 发表于 2007-4-2 13:29 | 显示全部楼层

是不是文件名的问题

看看文件名是不是counter.vhd,如果不是的话改成这个试试
hideid 发表于 2007-4-4 00:46 | 显示全部楼层

估计是你的文件名不对

我把你的程序直接复制了,放到quartus2下面编译,没有任何问题。<br /><br />就跟楼上说的,把文件改了试试看。
 楼主| 小李志 发表于 2007-4-5 13:56 | 显示全部楼层

谢了

哦,我用的是MAXPLUS 2,不过谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

727

帖子

3

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

151

主题

727

帖子

3

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