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

Subversion Repositories t400

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 arniml
-------------------------------------------------------------------------------
2
--
3 179 arniml
-- $Id: t400_pack-p.vhd 179 2009-04-01 19:48:38Z arniml $
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
end t400_pack;

powered by: WebSVN 2.1.0

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