URL
https://opencores.org/ocsvn/c16/c16/trunk
[/] [c16/] [trunk/] [vhdl/] [opcode_decoder.vhd] - Diff between revs 17 and 21
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 17 |
Rev 21 |
Line 96... |
Line 96... |
LAST_M <= '1' when (OP_CYC = LAST) else '0';
|
LAST_M <= '1' when (OP_CYC = LAST) else '0';
|
|
|
HLT <= HALTED; -- show when CPU is halted
|
HLT <= HALTED; -- show when CPU is halted
|
-- HLT <= '1' when DISABLE_CNT = 0 else '0'; -- show when ints enabled
|
-- HLT <= '1' when DISABLE_CNT = 0 else '0'; -- show when ints enabled
|
|
|
process(CLK_I)
|
process(CLK_I, CLR)
|
begin
|
begin
|
if (rising_edge(CLK_I)) then
|
|
if (CLR = '1') then
|
if (CLR = '1') then
|
DISABLE_CNT <= "0001"; -- 1 x disabled
|
DISABLE_CNT <= "0001"; -- 1 x disabled
|
INT_M2 <= '0';
|
INT_M2 <= '0';
|
HALTED <= '0';
|
HALTED <= '0';
|
elsif (CE = '1' and T2 = '1') then
|
elsif ((rising_edge(CLK_I) and T2 = '1') and CE = '1' ) then
|
if (DISABLE_INT = '1') then
|
if (DISABLE_INT = '1') then
|
DISABLE_CNT <= DISABLE_CNT + 1;
|
DISABLE_CNT <= DISABLE_CNT + 1;
|
elsif (ENABLE_INT = '1' and DISABLE_CNT /= 0) then
|
elsif (ENABLE_INT = '1' and DISABLE_CNT /= 0) then
|
DISABLE_CNT <= DISABLE_CNT - 1;
|
DISABLE_CNT <= DISABLE_CNT - 1;
|
end if;
|
end if;
|
Line 118... |
Line 117... |
HALTED <= '1';
|
HALTED <= '1';
|
end if;
|
end if;
|
|
|
INT_M2 <= INT_M1;
|
INT_M2 <= INT_M1;
|
end if;
|
end if;
|
end if;
|
|
end process;
|
end process;
|
|
|
process(OPCODE, OP_CYC, INT, RRZ, INT_M2, DISABLE_CNT, HALTED)
|
process(OPCODE, OP_CYC, INT, RRZ, INT_M2, DISABLE_CNT, HALTED)
|
|
|
variable IS_M1 : std_logic;
|
variable IS_M1 : std_logic;
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.