集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2486|回复: 2

VHDL编写的60进制计数器,编译出错。

[复制链接]
FFT 发表于 2010-6-27 23:00:43 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-11 11:02 编辑

初学vhdl,在某书上看到六十进制计数器程序如下。但编译出错。
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity counter60 is
port(cp,rd,en:in std_logic;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
LD:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
CO:OUT STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
end counter60;
architecture one of counter60 is
signal qn:std_logic_vector(7 downto 0);
begin
co<='1' when (qn=x"59"and en='1') else'0';
process(cp,rd)
if(rd='0') then --错误提示此处 found illegal use of a statement in a declarative part
qn<=X"00";
elsif(cp'EVENT and cp='1')then
if (ld="00")then qn<=d;
elsif (ld(0)='0')then --ld=10
qn(3 downto 0)<=d(3 downto 0);
elsif (ld(1)='0')then  --ld=01  
qn(7 downto 4)<=d(7 downto 4);
elsif (en='1')then --ld=11
if (qn(3 downto 0)="1001") then
qn(3 downto 0)<="0000";
if (qn(7 downto 4)="0101") then
qn(7 downto 4)<="0000"
else qn(7 downto 4)<=qn(7 downto 4)+1;
end if;
else qn(3 downto0)<=qn(3 downto 0)+1;
end if;
end if;
end if;
end process;
qlt;=qn
end one;
AAT 发表于 2010-6-27 23:55:11 | 显示全部楼层
************************************************************
inter 发表于 2010-6-28 00:58:06 | 显示全部楼层
不好意思<br>
没钱了
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 04:33 , Processed in 0.061154 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表