所以,我正在爲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,我使用了完全不同的東西。 –