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.9 2004-04-24 11:22:55 arniml Exp $
|
-- $Id: decoder.vhd,v 1.10 2004-04-25 16:22:03 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 1412... |
Line 1412... |
else
|
else
|
clk_assert_wr_o <= true;
|
clk_assert_wr_o <= true;
|
end if;
|
end if;
|
|
|
if not clk_second_cycle_i then
|
if not clk_second_cycle_i then
|
|
case clk_mstate_i is
|
-- read dmem and put contents on BUS as external address
|
-- read dmem and put contents on BUS as external address
|
if clk_mstate_i = MSTATE3 then
|
when MSTATE3 =>
|
dm_read_dmem_o <= true;
|
dm_read_dmem_o <= true;
|
bus_write_bus_o <= true;
|
bus_write_bus_o <= true;
|
|
|
|
-- store contents of Accumulator to BUS
|
|
when MSTATE5 =>
|
|
if opc_opcode_s(4) = '1' then
|
|
alu_read_alu_o <= true;
|
|
bus_write_bus_o <= true;
|
end if;
|
end if;
|
|
|
|
when others =>
|
|
null;
|
|
end case;
|
|
|
else
|
else
|
if clk_mstate_i = MSTATE1 then
|
if clk_mstate_i = MSTATE1 then
|
if opc_opcode_s(4) = '0' then
|
if opc_opcode_s(4) = '0' then
|
-- store contents of BUS in Accumulator
|
-- store contents of BUS in Accumulator
|
add_read_bus_s <= true;
|
add_read_bus_s <= true;
|
Line 1872... |
Line 1883... |
|
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- File History:
|
-- File History:
|
--
|
--
|
-- $Log: not supported by cvs2svn $
|
-- $Log: not supported by cvs2svn $
|
|
-- Revision 1.9 2004/04/24 11:22:55 arniml
|
|
-- removed superfluous signal from sensitivity list
|
|
--
|
-- Revision 1.8 2004/04/18 18:57:43 arniml
|
-- Revision 1.8 2004/04/18 18:57:43 arniml
|
-- + enhance instruction strobe generation
|
-- + enhance instruction strobe generation
|
-- + rework address output under EA=1 conditions
|
-- + rework address output under EA=1 conditions
|
--
|
--
|
-- Revision 1.7 2004/04/15 22:06:05 arniml
|
-- Revision 1.7 2004/04/15 22:06:05 arniml
|