Line 1... |
Line 1... |
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
-- --
|
-- --
|
-- Copyright (c) 2009-2018 Tobias Gubener --
|
-- Copyright (c) 2009-2019 Tobias Gubener --
|
-- Subdesign fAMpIGA by TobiFlex --
|
|
-- Patches by MikeJ, Till Harbaum, Rok Krajnk, ... --
|
-- Patches by MikeJ, Till Harbaum, Rok Krajnk, ... --
|
|
-- Subdesign fAMpIGA by TobiFlex --
|
-- --
|
-- --
|
-- This source file is free software: you can redistribute it and/or modify --
|
-- This source file is free software: you can redistribute it and/or modify --
|
-- it under the terms of the GNU Lesser General Public License as published --
|
-- it under the terms of the GNU Lesser General Public License as published --
|
-- by the Free Software Foundation, either version 3 of the License, or --
|
-- by the Free Software Foundation, either version 3 of the License, or --
|
-- (at your option) any later version. --
|
-- (at your option) any later version. --
|
Line 27... |
Line 27... |
|
|
type micro_states is (idle, nop, ld_nn, st_nn, ld_dAn1, ld_AnXn1, ld_AnXn2, st_dAn1, ld_AnXnbd1, ld_AnXnbd2, ld_AnXnbd3,
|
type micro_states is (idle, nop, ld_nn, st_nn, ld_dAn1, ld_AnXn1, ld_AnXn2, st_dAn1, ld_AnXnbd1, ld_AnXnbd2, ld_AnXnbd3,
|
ld_229_1, ld_229_2, ld_229_3, ld_229_4, st_229_1, st_229_2, st_229_3, st_229_4,
|
ld_229_1, ld_229_2, ld_229_3, ld_229_4, st_229_1, st_229_2, st_229_3, st_229_4,
|
st_AnXn1, st_AnXn2, bra1, bsr1, bsr2, nopnop, dbcc1, movem1, movem2, movem3,
|
st_AnXn1, st_AnXn2, bra1, bsr1, bsr2, nopnop, dbcc1, movem1, movem2, movem3,
|
andi, pack1, pack2, pack3, op_AxAy, cmpm, link1, link2, unlink1, unlink2, int1, int2, int3, int4, rte1, rte2, rte3,
|
andi, pack1, pack2, pack3, op_AxAy, cmpm, link1, link2, unlink1, unlink2, int1, int2, int3, int4, rte1, rte2, rte3,
|
rtd1, rtd2, trap0, trap1, trap2, trap3,
|
rtd1, rtd2, trap00, trap0, trap1, trap2, trap3,
|
trap4, trap5, trap6, movec1, movep1, movep2, movep3, movep4, movep5, rota1, bf1,
|
trap4, trap5, trap6, movec1, movep1, movep2, movep3, movep4, movep5, rota1, bf1,
|
mul1, mul2, mul_end1, mul_end2, div1, div2, div3, div4, div_end1, div_end2);
|
mul1, mul2, mul_end1, mul_end2, div1, div2, div3, div4, div_end1, div_end2);
|
|
|
constant opcMOVE : integer := 0; --
|
constant opcMOVE : integer := 0; --
|
constant opcMOVEQ : integer := 1; --
|
constant opcMOVEQ : integer := 1; --
|
Line 113... |
Line 113... |
constant opcPACK : integer := 77; --
|
constant opcPACK : integer := 77; --
|
constant opcUNPACK : integer := 78; --
|
constant opcUNPACK : integer := 78; --
|
constant hold_ea_data : integer := 79; --
|
constant hold_ea_data : integer := 79; --
|
constant store_ea_packdata : integer := 80; --
|
constant store_ea_packdata : integer := 80; --
|
constant exec_BS : integer := 81; --
|
constant exec_BS : integer := 81; --
|
-- constant : integer := 75; --
|
constant save_OP2 : integer := 82; --
|
-- constant : integer := 76; --
|
constant opcTRAPV : integer := 83; --
|
-- constant : integer := 7; --
|
|
-- constant : integer := 7; --
|
|
-- constant : integer := 7; --
|
|
|
|
constant lastOpcBit : integer := 81;
|
constant lastOpcBit : integer := 83;
|
|
|
component TG68K_ALU
|
component TG68K_ALU
|
generic(
|
generic(
|
MUL_Mode :integer; --0=>16Bit, 1=>32Bit, 2=>switchable with CPU(1), 3=>no MUL,
|
MUL_Mode :integer; --0=>16Bit, 1=>32Bit, 2=>switchable with CPU(1), 3=>no MUL,
|
MUL_Hardware :integer; --0=>no, 1=>yes,
|
MUL_Hardware :integer; --0=>no, 1=>yes,
|