问一个vhdl的问题!
各位高手,请看一下小弟编的一个特别小vhdl的程序(在maxplus2环境下)
程序的功能是按下key1键(使key1端口为0)则显示数码管,放下(使key1端口为1)则熄灭数码管;
library IEEE;
use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
ENTITY rh1 IS
PORT( key1: IN std_logic;--定义一个输入
digital8: OUT std_logic_vector(7 downto 0)--8个输出
);
END rh1;
ARCHITECTURE xq OF rh1 IS
--signal k :std-logic-vector(7 downto 0);
begin
process(key1)
begin
if(key1'event and key1='0') then
digital8 <="00000000";--数码管全亮
else
digital8 <="11111111";--数码管全灭
end if;
end process;
end xq;
--我感觉这应该没有问题,但是编译出现一下错误:
The error is:Else Clause fllowing a clock edge must hold the state of
sigal "digital8";后来我设置一个信号量k,先判断key1是上升还是下降,
然后对这个赋值(00000000或11111111),在最后将这个信号量再给digital8,
程序修改如下if(key1'event and key1='0') then
k <="00000000";
else k <="11111111";
end if;
digital8 <=k;
这样出现的错误是:The error is:Else Clause fllowing a clock edge must hold the state of
sigal "k"。不知这是为什么,望高手指点,谢谢!!!!
发表时间:2003年4月23日10:00:41