【发布时间】:2011-06-22 13:06:54
【问题描述】:
所以,我正在为 MIPS 架构开发 ALU,并尝试进行左移和右移,以便 ALU 可以移动任意数量的位。
我的想法是将移位值转换为整数并选择将出现在结果中的条目部分(整数存储在 X 中)但 Quartus 不接受变量值,只接受常量.
我该怎么做才能做到这一点? (案例在 "WHEN "1000" =>..." 和 "WHEN "1001" =>..." 行)
谢谢。
PROCESS ( ALU_ctl, Ainput, Binput, X )
BEGIN
-- Select ALU operation
--ALU_output_mux <= X"00000000"; --padrao
CASE ALU_ctl IS
WHEN "1000" => ALU_output_mux(31 DOWNTO X) <= (Ainput( 31-X DOWNTO 0 ));
WHEN "1001" => ALU_output_mux(31-X DOWNTO 0) <= (Ainput( 31 DOWNTO X ));
WHEN OTHERS => ALU_output_mux <= X"00000000";
END CASE;
END PROCESS;
【问题讨论】:
-
我使用 VHDL 已经有 3 年了,即便如此,它还是在 Vortex 3 板上。难道你不需要定义电线、输入和输出,还是我的记忆让我失望了?我假设 Quartus 是你的 IDE,在我的情况下,我使用了完全不同的东西。
标签: vhdl fpga intel-fpga