そのため、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;