Line 2... |
Line 2... |
--
|
--
|
-- The Opcode Decoder Table.
|
-- The Opcode Decoder Table.
|
-- Decodes the given opcode to instruction mnemonics.
|
-- Decodes the given opcode to instruction mnemonics.
|
-- Also derives the multicycle information.
|
-- Also derives the multicycle information.
|
--
|
--
|
-- $Id: opc_table.vhd,v 1.1 2004-03-23 21:31:52 arniml Exp $
|
-- $Id: opc_table.vhd,v 1.2 2004-03-28 13:10:48 arniml Exp $
|
--
|
--
|
-- All rights reserved
|
-- All rights reserved
|
--
|
--
|
-- Redistribution and use in source and synthezised forms, with or without
|
-- Redistribution and use in source and synthezised forms, with or without
|
-- modification, are permitted provided that the following conditions are met:
|
-- modification, are permitted provided that the following conditions are met:
|
Line 109... |
Line 109... |
when "10011000" | -- ANL BUS, data
|
when "10011000" | -- ANL BUS, data
|
"10011001" | "10011010" => -- ANL PP, data
|
"10011001" | "10011010" => -- ANL PP, data
|
mnemonic_o <= MN_ANL_EXT;
|
mnemonic_o <= MN_ANL_EXT;
|
multi_cycle_o <= '1';
|
multi_cycle_o <= '1';
|
|
|
-- Mnemonic ANLD --------------------------------------------------------
|
|
when "10011100" | "10011101" | "10011110" | "10011111" => -- ANLD PP, A
|
|
mnemonic_o <= MN_ANLD;
|
|
multi_cycle_o <= '1';
|
|
|
|
-- Mnemonic CALL --------------------------------------------------------
|
-- Mnemonic CALL --------------------------------------------------------
|
when "00010100" | "00110100" | "01010100" | "01110100" | -- CALL addr
|
when "00010100" | "00110100" | "01010100" | "01110100" | -- CALL addr
|
"10010100" | "10110100" | "11010100" | "11110100" => --
|
"10010100" | "10110100" | "11010100" | "11110100" => --
|
mnemonic_o <= MN_CALL;
|
mnemonic_o <= MN_CALL;
|
multi_cycle_o <= '1';
|
multi_cycle_o <= '1';
|
Line 283... |
Line 278... |
-- Mnemonic MOV_T -------------------------------------------------------
|
-- Mnemonic MOV_T -------------------------------------------------------
|
when "01100010" | -- MOV T, A
|
when "01100010" | -- MOV T, A
|
"01000010" => -- MOV A, T
|
"01000010" => -- MOV A, T
|
mnemonic_o <= MN_MOV_T;
|
mnemonic_o <= MN_MOV_T;
|
|
|
-- Mnemonic MOV_A_PP ----------------------------------------------------
|
-- Mnemonic MOVD_A_PP ---------------------------------------------------
|
when "00001100" | "00001101" | "00001110" | "00001111" => -- MOV A, Pp
|
when "00001100" | "00001101" | "00001110" | "00001111" => -- MOVD A, Pp
|
mnemonic_o <= MN_MOV_A_PP;
|
mnemonic_o <= MN_MOVD_A_PP;
|
multi_cycle_o <= '1';
|
|
|
|
-- Mnemonic MOV_PP_A ----------------------------------------------------
|
|
when "00111100" | "00111101" | "00111110" | "00111111" => -- MOV Pp, A
|
|
mnemonic_o <= MN_MOV_PP_A;
|
|
multi_cycle_o <= '1';
|
multi_cycle_o <= '1';
|
|
|
-- Mnemonic MOVP --------------------------------------------------------
|
-- Mnemonic MOVP --------------------------------------------------------
|
when "10100011" | -- MOVP A, @ A
|
when "10100011" | -- MOVP A, @ A
|
"11100011" => -- MOVP3 A, @ A
|
"11100011" => -- MOVP3 A, @ A
|
Line 326... |
Line 316... |
when "10001000" | -- ORL BUS, data
|
when "10001000" | -- ORL BUS, data
|
"10001001" | "10001010" => -- ORL Pp, data
|
"10001001" | "10001010" => -- ORL Pp, data
|
mnemonic_o <= MN_ORL_EXT;
|
mnemonic_o <= MN_ORL_EXT;
|
multi_cycle_o <= '1';
|
multi_cycle_o <= '1';
|
|
|
-- Mnemonic ORLD_PP_A ----------------------------------------------------
|
-- Mnemonic OUTD_PP_A ---------------------------------------------------
|
when "10001100" | "10001101" | "10001110" | "10001111" => -- ORLD Pp, A
|
when "00111100" | "00111101" | "00111110" | "00111111" | -- MOVD Pp, A
|
mnemonic_o <= MN_ORLD_PP_A;
|
"10011100" | "10011101" | "10011110" | "10011111" | -- ANLD PP, A
|
|
"10001100" | "10001101" | "10001110" | "10001111" => -- ORLD Pp, A
|
|
mnemonic_o <= MN_OUTD_PP_A;
|
multi_cycle_o <= '1';
|
multi_cycle_o <= '1';
|
|
|
-- Mnemonic OUTL_EXT ----------------------------------------------------
|
-- Mnemonic OUTL_EXT ----------------------------------------------------
|
when "00111001" | "00111010" | -- OUTL Pp, A
|
when "00111001" | "00111010" | -- OUTL Pp, A
|
"00000010" => -- OUTL BUS, A
|
"00000010" => -- OUTL BUS, A
|
Line 414... |
Line 406... |
|
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- File History:
|
-- File History:
|
--
|
--
|
-- $Log: not supported by cvs2svn $
|
-- $Log: not supported by cvs2svn $
|
|
-- Revision 1.1 2004/03/23 21:31:52 arniml
|
|
-- initial check-in
|
--
|
--
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
|
|
No newline at end of file
|
No newline at end of file
|