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位计数器