我需要取结果的绝对值,我只对最重要的位感兴趣.这就是我所做的:
data_ram_h <= std_logic_vector(abs(signed(resize(r4(calc_cnt - 2), data_ram_h'length) + r4(calc_cnt - 1) +
r4(calc_cnt) + r4(calc_cnt + 1) + r4(calc_cnt + 2) -
r2(calc_cnt - 2) - r2(calc_cnt - 1) - r2(calc_cnt) -
r2(calc_cnt + 1) - r2(calc_cnt + 2))))(11 downto 4);
Run Code Online (Sandbox Code Playgroud)
我尝试检查语法,我收到此错误:
type conversion std_logic_vector is not allowed as a prefix for an slice name.
Run Code Online (Sandbox Code Playgroud)
data_ram_h是正确维度的std_logic_vector,而abs函数返回一个signed,在转换为std_logic_vector时应该没有问题.我使用的库是使用ieee.numeric_std.all.
我哪里错了?在此先感谢c:
vhdl ×1