我正在开发VHDL代码,我需要在std_logic_vector
上进行减法运算。我试图定义并使用以下库:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
然后我定义了如下信号:
signal r0,r1,r2,r3,r4,r5,r6,r7: STD_LOGIC_VECTOR (19 DOWNTO 0);
然后我想做以下减法:
r0 <= r0(16 downto 8) - r0(7 downto 0);
但它给了我-
运算符的错误。错误说:
错误(10327):euclidian_vhd_hls.vhd(84)的VHDL错误:无法 确定运算符的定义“” - “” - 找到0个可能的定义
请帮我解决这个问题。
非常感谢。
答案 0 :(得分:0)
我找到了使用以下语法的答案:
r0 <= std_logic_vector(unsigned(r0(16 downto 8)) - unsigned(r0(7 downto 0)));
引导了这个解决方案
答案 1 :(得分:0)
我认为你的逻辑不起作用,因为你应用r0 onn r0,它是无限循环。 你需要在上升或下降的过程中声明它