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

Subversion Repositories t400

[/] [t400/] [trunk/] [rtl/] [vhdl/] [t400_decoder.vhd] - Diff between revs 102 and 166

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 102 Rev 166
Line 1... Line 1...
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- The decoder unit.
-- The decoder unit.
-- Implements the instruction opcodes and controls all units of the T400 core.
-- Implements the instruction opcodes and controls all units of the T400 core.
--
--
-- $Id: t400_decoder.vhd,v 1.6 2006-06-05 14:20:34 arniml Exp $
-- $Id: t400_decoder.vhd,v 1.7 2008-05-01 19:49:55 arniml Exp $
--
--
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org)
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org)
--
--
-- All rights reserved
-- All rights reserved
--
--
Line 92... Line 92...
 
 
 
 
library ieee;
library ieee;
use ieee.numeric_std.all;
use ieee.numeric_std.all;
 
 
use work.t400_comp_pack.t400_opc_table;
use work.t400_mnemonic_pack.all;
 
 
architecture rtl of t400_decoder is
architecture rtl of t400_decoder is
 
 
  signal cyc_cnt_q    : unsigned(2 downto 0);
  signal cyc_cnt_q    : unsigned(2 downto 0);
  signal ibyte1_q,
  signal ibyte1_q,
         ibyte2_q     : byte_t;
         ibyte2_q     : byte_t;
 
 
  signal opcode_s     : byte_t;
  signal opcode_s     : byte_t;
  signal second_cyc_q : boolean;
  signal second_cyc_q : boolean;
 
  signal mnemonic_rec_s : mnemonic_rec_t;
  signal mnemonic_s,
  signal mnemonic_s,
         mnemonic_q   : mnemonic_t;
         mnemonic_q   : mnemonic_t;
  signal multi_byte_s,
  signal multi_byte_s,
         multi_byte_q : boolean;
         multi_byte_q : boolean;
  signal last_cycle_s : boolean;
  signal last_cycle_s : boolean;
Line 254... Line 255...
              when icyc_en_i else
              when icyc_en_i else
                ibyte1_q;
                ibyte1_q;
 
 
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  -- Opcode decoder table
  -- Opcode decoder table
 
  --
 
  mnemonic_rec_s <= decode_opcode_f(opcode   => opcode_s,
 
                                    opt_type => opt_type_g);
 
  --
 
  mnemonic_s   <= mnemonic_rec_s.mnemonic;
 
  multi_byte_s <= mnemonic_rec_s.multi_byte;
 
  --
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  opc_table_b : t400_opc_table
 
    generic map (
 
      opt_type_g   => opt_type_g
 
    )
 
    port map (
 
      opcode_i     => opcode_s,
 
      mnemonic_o   => mnemonic_s,
 
      multi_byte_o => multi_byte_s
 
    );
 
 
 
 
 
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  -- Process decoder_ctrl
  -- Process decoder_ctrl
  --
  --
Line 861... Line 860...
 
 
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- File History:
-- File History:
--
--
-- $Log: not supported by cvs2svn $
-- $Log: not supported by cvs2svn $
 
-- Revision 1.6  2006/06/05 14:20:34  arniml
 
-- interface comments added
 
--
-- Revision 1.5  2006/05/28 15:32:14  arniml
-- Revision 1.5  2006/05/28 15:32:14  arniml
-- execute virtual NOP at location 0x0ff when vectoring to interrupt routine
-- execute virtual NOP at location 0x0ff when vectoring to interrupt routine
--
--
-- Revision 1.4  2006/05/27 19:14:18  arniml
-- Revision 1.4  2006/05/27 19:14:18  arniml
-- interrupt functionality added
-- interrupt functionality added

powered by: WebSVN 2.1.0

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