【发布时间】:2016-11-10 14:39:54
【问题描述】:
如果我有一个 STD_LOGIC_VECTOR 按照以下声明在 VHDL 中:
signal RAM_ADDR : STD_LOGIC_VECTOR (2 downto 0) := (others => '0');
如果我尝试使用 '+' 运算符在循环中增加此地址,如下所示:
for i in 0 to 7 loop
RAM_RW <= '1';
wait until KEY_NUM'event;
RAM_RW <= '0';
RAM_ADDR <= RAM_ADDR + "1";
end loop;
我遇到以下错误:
错误 (10327):X.vhd(40) 处的 VHDL 错误:无法确定 运算符 ""+"" -- 找到 0 个可能的定义
您能否提出最好、最快的解决方法(也许不使用整数等不同类型的数据)?
到目前为止,我正在使用以下(坏)解决方案:
case RAM_ADDR is
when "000" =>
RAM_ADDR <= "001";
when "001" =>
RAM_ADDR <= "010";
when "010" =>
RAM_ADDR <= "011";
when "011" =>
RAM_ADDR <= "100";
when "100" =>
RAM_ADDR <= "101";
when "101" =>
RAM_ADDR <= "110";
when "110" =>
RAM_ADDR <= "111";
when "111" =>
RAM_ADDR <= "000";
when others =>
RAM_ADDR <= "000";
end case;
提前致谢,
【问题讨论】: