Vhdl 生成计数器时操作数出错

Vhdl 生成计数器时操作数出错,vhdl,Vhdl,我试着做一个计数器,它先计数,然后返回一个值。然而,我遇到了一些错误,我完全不知道如何修复它们。我试着把它改成整数,但类似的错误不断出现(我是新来的,所以我可能搞砸了)。非常感谢您的帮助。 谢谢你,艾伦 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity counter is Port (Reset : in STD_LOGIC; Clock : in STD_LOGIC;

我试着做一个计数器,它先计数,然后返回一个值。然而,我遇到了一些错误,我完全不知道如何修复它们。我试着把它改成整数,但类似的错误不断出现(我是新来的,所以我可能搞砸了)。非常感谢您的帮助。 谢谢你,艾伦

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity counter is
    Port (Reset      : in   STD_LOGIC;
            Clock      : in   STD_LOGIC;
            CountEvent : in   STD_LOGIC;
            GC         : out  STD_LOGIC;
            AC         : out  STD_LOGIC;
            WC         : out  STD_LOGIC
              );
end counter;


architecture Behavioral of counter is
signal count : STD_LOGIC;

begin
     sync:
     process (Reset, Clock, CountReset)
     begin 
     count <= '0';
            if (Reset = '1') or (CountEvent = '1') then
                count <= '0';
            elsif (rising_edge(Clock)) then
                count <= count + 1;
            end if;
     end process sync;

     GC <= '1' when (count = 500) else '0';
     AC <= '1' when (count = 300) else '0';
     WC <= '1' when (count = 500) else '0';
end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
实体计数器为
端口(复位:在STD_逻辑中;
时钟:标准逻辑;
CountEvent:在STD_逻辑中;
GC:输出标准逻辑;
AC:输出标准逻辑;
输出标准逻辑
);
末端计数器;
计数器的结构是
信号计数:标准逻辑;
开始
同步:
过程(重置、时钟、计数重置)
开始

count这里,
count
是一个
std\u逻辑
,它是一个位。
std\u logic\u 1164
库中不存在
std\u logic
std\u logic\u vector
的标准算术运算符,因为它们不是用于数字表示的类型


为了便于滚动和适当调整大小,我建议使用ieee
库中的软件包
numeric_std
,并将
count
设置为
无符号
类型。这是一个定义了算术函数的
std_逻辑
数组,将数组视为无符号值。

谢谢。快速问题:我应该如何将计数写为未签名。我尝试了“signal count:unsigned STD_LOGIC”,但这看起来不正确。
unsigned
是一种数组类型,因此需要约束数组边界<代码>信号计数:无符号(9到0)将为您提供一个10位计数器