VHDLに変更されたMIPS命令セットを使用して32ビットCPUを作成しようとしています。私は現在、プログラムカウンタがジャンプ値に等しくなるようなジャンプ命令でない限り、次の命令に対して1だけインクリメントするようにプログラムカウンタを取得しようとしています。VHDL 10ビットプログラムカウンタを1ずつインクリメント
entity PC is
Port (PC_IN : in STD_LOGIC_VECTOR (9 downto 0); --New PC in value (PC+1 or jump)
PC_OUT : out STD_LOGIC_VECTOR (9 downto 0); --PC out to instruction memory
Jump_Inst : in STD_LOGIC_VECTOR(9 downto 0); --Jump address
Jump : in STD_LOGIC; --Jump MUX
clk : in STD_LOGIC);
end PC;
architecture Behavioral of PC is
begin
PC_IN <= (PC_IN + "0000000001") when (Jump = '0')
else Jump_Inst;
process(clk)
begin
if rising_edge(clk) then --If it is the next clock cycle (i.e time for the next instruction)
PC_OUT <= PC_IN;
end if;
end process;
end Behavioral;
この行でエラーが発生します。PC_IN <= (PC_IN + "0000000001") when (Jump = '0')
エラーがから成り、それは+演算子を使用して私のように、多分出力する必要pc_inないように、ここではオペレータのと0定義pc_inオブジェクトの中に "「+」マッチを更新することはできませんか?
誰もが次の命令のために1ずつ増加する私のプログラムカウンタを取得する方法を知っていますか?どんな助けもありがとう。ありがとう。
信号ジャンプは、すべての制御信号が作成される別のファイルで宣言されます。次に、PC、命令メモリ、レジスタ、制御などをリンクするcpuというオーバヘッドファイルでコンポーネントの減速とポートマップを使用してPCファイルにリンクします。 – oodan123
モードのオブジェクトへの割り当てを変更できないため、変更する必要があります代わりにPC_Outに? – oodan123