library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;


--******************************************************************************
--** ENTITY pctest
--**
--** DESkripsi: Entity ini menguraikan fungsi spesial yang mencoba
--**            program counter ketika sebuah interupsi diproses.
--**            Ini digunakan mengurung sebuah branch seperti instruction sebelum
--**            interupsi terjadi. Entity ini menghasilkan program
--**            counter untuk dipilih ke TRAP.
--******************************************************************************
ENTITY pctest IS
    PORT(pcIn, ifidpcIn                   : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         IOPC                             : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END ENTITY pctest;

ARCHITECTURE pctest_behav OF pctest IS
BEGIN
    name : PROCESS(pcIn,ifidpcIn) IS
    BEGIN
        IF(pcIn/=ifidpcIn) THEN
            IOPC <= pcIn;
        ELSE

            IOPC <= unsigned(pcIn)-1;
        END IF;

    END PROCESS name;
END ARCHITECTURE pctest_behav;
