Line 1... |
Line 1... |
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
--
|
--
|
-- The Decoder unit.
|
-- The Decoder unit.
|
-- It decodes the instruction opcodes and executes them.
|
-- It decodes the instruction opcodes and executes them.
|
--
|
--
|
-- $Id: decoder.vhd,v 1.18 2005-06-09 22:18:28 arniml Exp $
|
-- $Id: decoder.vhd,v 1.19 2005-06-11 10:08:43 arniml Exp $
|
--
|
--
|
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
|
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
|
--
|
--
|
-- All rights reserved
|
-- All rights reserved
|
--
|
--
|
Line 47... |
Line 47... |
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
|
|
use work.t48_pack.word_t;
|
use work.t48_pack.word_t;
|
use work.t48_pack.mstate_t;
|
use work.t48_pack.mstate_t;
|
use work.alu_pack.alu_op_t;
|
use work.t48_alu_pack.alu_op_t;
|
use work.cond_branch_pack.all;
|
use work.t48_cond_branch_pack.all;
|
use work.dmem_ctrl_pack.all;
|
use work.t48_dmem_ctrl_pack.all;
|
use work.pmem_ctrl_pack.all;
|
use work.t48_pmem_ctrl_pack.all;
|
|
|
entity decoder is
|
entity t48_decoder is
|
|
|
generic (
|
generic (
|
-- store mnemonic in flip-flops (registered-out)
|
-- store mnemonic in flip-flops (registered-out)
|
register_mnemonic_g : integer := 1
|
register_mnemonic_g : integer := 1
|
);
|
);
|
Line 154... |
Line 154... |
tim_start_cnt_o : out boolean;
|
tim_start_cnt_o : out boolean;
|
tim_stop_tcnt_o : out boolean;
|
tim_stop_tcnt_o : out boolean;
|
tim_overflow_i : in boolean
|
tim_overflow_i : in boolean
|
);
|
);
|
|
|
end decoder;
|
end t48_decoder;
|
|
|
|
|
use work.t48_pack.all;
|
use work.t48_pack.all;
|
use work.alu_pack.all;
|
use work.t48_alu_pack.all;
|
use work.decoder_pack.all;
|
use work.t48_decoder_pack.all;
|
|
|
use work.t48_comp_pack.opc_decoder;
|
use work.t48_comp_pack.t48_opc_decoder;
|
use work.t48_comp_pack.int;
|
use work.t48_comp_pack.t48_int;
|
|
|
-- pragma translate_off
|
-- pragma translate_off
|
use work.t48_tb_pack.tb_istrobe_s;
|
use work.t48_tb_pack.tb_istrobe_s;
|
-- pragma translate_on
|
-- pragma translate_on
|
|
|
architecture rtl of decoder is
|
architecture rtl of t48_decoder is
|
|
|
-- Enable fixing a bug of Quartus II 4.0
|
-- Enable fixing a bug of Quartus II 4.0
|
constant enable_quartus_bugfix_c : boolean := true;
|
constant enable_quartus_bugfix_c : boolean := true;
|
|
|
-- Opcode Decoder
|
-- Opcode Decoder
|
Line 240... |
Line 240... |
begin
|
begin
|
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
-- Opcode Decoder
|
-- Opcode Decoder
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
opc_decoder_b : opc_decoder
|
opc_decoder_b : t48_opc_decoder
|
generic map (
|
generic map (
|
register_mnemonic_g => register_mnemonic_g
|
register_mnemonic_g => register_mnemonic_g
|
)
|
)
|
port map (
|
port map (
|
clk_i => clk_i,
|
clk_i => clk_i,
|
Line 260... |
Line 260... |
|
|
|
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
-- Interrupt Controller.
|
-- Interrupt Controller.
|
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
int_b : int
|
int_b : t48_int
|
port map (
|
port map (
|
clk_i => clk_i,
|
clk_i => clk_i,
|
res_i => res_i,
|
res_i => res_i,
|
en_clk_i => en_clk_i,
|
en_clk_i => en_clk_i,
|
clk_mstate_i => clk_mstate_i,
|
clk_mstate_i => clk_mstate_i,
|
Line 1950... |
Line 1950... |
|
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- File History:
|
-- File History:
|
--
|
--
|
-- $Log: not supported by cvs2svn $
|
-- $Log: not supported by cvs2svn $
|
|
-- Revision 1.18 2005/06/09 22:18:28 arniml
|
|
-- Move latching of BUS to MSTATE2
|
|
-- -> sample BUS at the end of RD'
|
|
--
|
-- Revision 1.17 2005/05/09 22:26:08 arniml
|
-- Revision 1.17 2005/05/09 22:26:08 arniml
|
-- remove obsolete output stack_high_o
|
-- remove obsolete output stack_high_o
|
--
|
--
|
-- Revision 1.16 2004/10/25 19:39:24 arniml
|
-- Revision 1.16 2004/10/25 19:39:24 arniml
|
-- Fix bug report:
|
-- Fix bug report:
|