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

Subversion Repositories t400

[/] [t400/] [trunk/] [rtl/] [vhdl/] [t400_pack-p.vhd] - Blame information for rev 70

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 arniml
-------------------------------------------------------------------------------
2
--
3 70 arniml
-- $Id: t400_pack-p.vhd,v 1.3 2006-05-27 19:16:52 arniml Exp $
4 2 arniml
--
5
-- Copyright (c) 2006, Arnim Laeuger (arniml@opencores.org)
6
--
7
-- All rights reserved
8
--
9
-------------------------------------------------------------------------------
10
 
11
library ieee;
12
use ieee.std_logic_1164.all;
13
use ieee.numeric_std.all;
14
 
15
package t400_pack is
16
 
17
  -- Byte ---------------------------------------------------------------------
18
  subtype byte_t     is std_logic_vector(7 downto 0);
19
 
20
  -- Data word ----------------------------------------------------------------
21
  subtype dw_t       is std_logic_vector(3 downto 0);
22
 
23
  -- Misc ranges --------------------------------------------------------------
24
  subtype dw_range_t is natural range dw_t'range;
25
  subtype b_range_t  is natural range 5 downto 0;
26
  subtype br_range_t is natural range 5 downto 4;
27
  subtype bd_range_t is natural range 3 downto 0;
28
 
29
  -- B address ----------------------------------------------------------------
30
  subtype b_t        is std_logic_vector(b_range_t);
31
  subtype br_t       is std_logic_vector(br_range_t);
32
  subtype bd_t       is std_logic_vector(bd_range_t);
33
 
34
 
35
  -- Program counter ----------------------------------------------------------
36
  subtype pc_t       is unsigned(9 downto 0);
37
 
38
  -- Data memory address vector -----------------------------------------------
39
  subtype dm_addr_t  is std_logic_vector(5 downto 0);
40
 
41
  -- Decoder data -------------------------------------------------------------
42
  subtype dec_data_t is std_logic_vector(pc_t'range);
43
 
44
  -- Program counter operations -----------------------------------------------
45
  type    pc_op_t    is (PC_NONE,
46
                         PC_INC_PC,
47
                         PC_LOAD_6, PC_LOAD_7, PC_LOAD_8, PC_LOAD,
48
                         PC_POP,
49 70 arniml
                         PC_LOAD_A_M,
50
                         PC_INT);
51 2 arniml
 
52
  -- Data memory controller operations ----------------------------------------
53
  type    dmem_op_t  is (DMEM_RB,
54
                         DMEM_WB_SRC_Q, DMEM_WB_SRC_DEC, DMEM_WB_SRC_A,
55
                         DMEM_RDEC,
56
                         DMEM_WB_SET_BIT, DMEM_WB_RES_BIT,
57
                         DMEM_WDEC_SRC_A);
58
  type    b_op_t     is (B_NONE,
59
                         B_SET_BD, B_SET_BR,
60
                         B_SET_B, B_SET_B_INC,
61
                         B_XOR_BR,
62
                         B_INC_BD,
63
                         B_DEC_BD);
64
 
65
  -- Stack operations ---------------------------------------------------------
66
  type    stack_op_t is (STACK_NONE,
67
                         STACK_PUSH,
68
                         STACK_POP);
69
 
70
  -- ALU operations -----------------------------------------------------------
71
  type    alu_op_t   is (ALU_NONE,
72
                         ALU_CLRA,
73
                         ALU_LOAD_M,
74
                         ALU_LOAD_Q, ALU_LOAD_G, ALU_LOAD_IN, ALU_LOAD_IL,
75
                         ALU_LOAD_BR, ALU_LOAD_BD,
76
                         ALU_LOAD_SIO,
77
                         ALU_ADD, ALU_ADD_10, ALU_ADD_C, ALU_ADD_DEC,
78
                         ALU_COMP,
79
                         ALU_RC, ALU_SC,
80
                         ALU_XOR);
81
 
82
  -- Skip operations ----------------------------------------------------------
83
  type    skip_op_t  is (SKIP_NONE,
84
                         SKIP_UPDATE,
85
                         SKIP_NOW,
86
                         SKIP_CARRY, SKIP_C,
87
                         SKIP_BD_UFLOW, SKIP_BD_OFLOW,
88
                         SKIP_LBI,
89
                         SKIP_A_M,
90
                         SKIP_G_ZERO, SKIP_G_BIT,
91
                         SKIP_M_BIT,
92 70 arniml
                         SKIP_TIMER,
93
                         SKIP_PUSH, SKIP_POP);
94 2 arniml
 
95
  -- IO L port operations -----------------------------------------------------
96
  type    io_l_op_t  is (IOL_NONE,
97
                         IOL_LOAD_AM, IOL_LOAD_PM,
98
                         IOL_OUTPUT_L,
99
                         IOL_OUTPUT_Q);
100
 
101
  -- IO D port operations -----------------------------------------------------
102
  type    io_d_op_t  is (IOD_NONE,
103
                         IOD_LOAD);
104
 
105
  -- IO G port operations -----------------------------------------------------
106
  type    io_g_op_t  is (IOG_NONE,
107
                         IOG_LOAD_M,
108
                         IOG_LOAD_DEC);
109
 
110 46 arniml
  -- IO IN port operations ----------------------------------------------------
111
  type    io_in_op_t is (IOIN_NONE,
112
                         IOIN_INIL,
113 70 arniml
                         IOIN_INTACK);
114 46 arniml
 
115 2 arniml
  -- SIO operations -----------------------------------------------------------
116
  type    sio_op_t   is (SIO_NONE,
117
                         SIO_LOAD);
118
 
119
  -- Mnemonics ----------------------------------------------------------------
120
  type    mnemonic_t is (-- Arithmetic instructions
121
                         MN_ASC,
122
                         MN_ADD,
123
                         MN_ADT,
124
                         MN_AISC,
125
                         MN_CASC,
126
                         MN_CLRA,
127
                         MN_COMP,
128
                         MN_NOP,
129
                         MN_C,
130
                         MN_XOR,
131
                         -- Transfer of control instructions
132
                         MN_JID,
133
                         MN_JMP,
134
                         MN_JP_JSRP,
135
                         MN_JSR,
136
                         MN_RET,
137
                         MN_RETSK,
138
                         -- Memory reference instructions
139
                         MN_LD,
140
                         MN_LDD_XAD,
141
                         MN_LQID,
142
                         MN_RMB,
143
                         MN_SMB,
144
                         MN_STII,
145
                         MN_X,
146
                         MN_XDS,
147
                         MN_XIS,
148
                         -- Register reference instructions
149
                         MN_CAB,
150
                         MN_CBA,
151
                         MN_LBI,
152
                         MN_XABR,
153
                         -- Test instructions
154
                         MN_SKC,
155
                         MN_SKE,
156
                         MN_SKMBZ,
157
                         MN_SKT,
158
                         -- Input/output instructions
159
                         MN_EXT,
160
                         MN_XAS);
161
 
162
end t400_pack;
163
 
164
 
165
-------------------------------------------------------------------------------
166
-- File History:
167
--
168
-- $Log: not supported by cvs2svn $
169 70 arniml
-- Revision 1.2  2006/05/22 00:01:21  arniml
170
-- operations for IN port added
171
--
172 46 arniml
-- Revision 1.1.1.1  2006/05/06 01:56:45  arniml
173
-- import from local CVS repository, LOC_CVS_0_1
174
--
175 2 arniml
-------------------------------------------------------------------------------

powered by: WebSVN 2.1.0

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