OpenCores
URL https://opencores.org/ocsvn/tg68kc/tg68kc/trunk

Subversion Repositories tg68kc

[/] [tg68kc/] [trunk/] [TG68K_Pack.vhd] - Diff between revs 10 and 11

Show entire file | Details | Blame | View Log

Rev 10 Rev 11
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,
                                                  rte4, rte5, rtd1, rtd2, trap00, trap0, trap1, trap2, trap3,
                                                  rte4, rte5, rtd1, rtd2, trap00, trap0, trap1, trap2, trap3, cas1, cas2, cas21, cas22, cas23, cas24,
 
                                                  cas25, cas26, cas27, cas28, chk20, chk21, chk22, chk23, chk24,
                                                  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 114... Line 115...
        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 hold_OP2                               : integer := 82; --
        constant hold_OP2                               : integer := 82; --
 
        constant restore_ADDR           : integer := 83; --
 
        constant alu_exec                               : integer := 84; --
 
        constant alu_move                               : integer := 85; --
 
        constant alu_setFlags           : integer := 86; --
 
        constant opcCHK2                                : integer := 87; --
 
        constant opcEXTB                                : integer := 88; --
 
 
        constant lastOpcBit                     : integer := 82;
        constant lastOpcBit                     : integer := 88;
 
 
        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,  
Line 127... Line 134...
                BarrelShifter :integer          --0=>no,                        1=>yes,         2=>switchable with CPU(1)  
                BarrelShifter :integer          --0=>no,                        1=>yes,         2=>switchable with CPU(1)  
                );
                );
        port(
        port(
                clk                                             : in std_logic;
                clk                                             : in std_logic;
                Reset                                           : in std_logic;
                Reset                                           : in std_logic;
 
                CPU                                             : in std_logic_vector(1 downto 0):="00";  -- 00->68000  01->68010  11->68020(only some parts - yet)
                clkena_lw                               : in std_logic:='1';
                clkena_lw                               : in std_logic:='1';
                execOPC                                 : in bit;
                execOPC                                 : in bit;
                decodeOPC                               : in bit;
                decodeOPC                               : in bit;
                exe_condition                   : in std_logic;
                exe_condition                   : in std_logic;
                exec_tas                                        : in std_logic;
                exec_tas                                        : in std_logic;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.