所以,我正在为MIPS架构开发一个ALU,并且我正在尝试左移右移,以便ALU可以移位任意数量的位。右移并左移(SLL/SRL)
我的想法是将shift值转换为整数并选择结果中的条目(整数存储在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,我使用了完全不同的东西。 –