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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.5/] [rtl/] [ibus/] [ibdlib.vhd] - Blame information for rev 40

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

Line No. Rev Author Line
1 2 wfjm
-- $Id: ibdlib.vhd 314 2010-07-09 17:38:41Z mueller $
2
--
3
-- Copyright 2008-2010 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
--
5
-- This program is free software; you may redistribute and/or modify it under
6
-- the terms of the GNU General Public License as published by the Free
7
-- Software Foundation, either version 2, or at your option any later version.
8
--
9
-- This program is distributed in the hope that it will be useful, but
10
-- WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
11
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
-- for complete details.
13
--
14
------------------------------------------------------------------------------
15
-- Package Name:   ibdlib
16
-- Description:    Definitions for ibus devices
17
--
18
-- Dependencies:   -
19
-- Tool versions:  xst 8.1, 8.2, 9.1, 9.2; ghdl 0.18-0.25
20
-- Revision History: 
21
-- Date         Rev Version  Comment
22
-- 2010-06-11   303   1.1    use IB_MREQ.racc instead of RRI_REQ
23
-- 2009-07-12   233   1.0.5  add RESET, CE_USEC to _dl11, CE_USEC to _minisys
24
-- 2009-06-07   224   1.0.4  add iist_mreq and iist_sreq;
25
-- 2009-06-01   221   1.0.3  add RESET to kw11l; add iist;
26
-- 2009-05-30   220   1.0.2  add most additional device def's
27
-- 2009-05-24   219   1.0.1  add CE_MSEC to _rk11; add _maxisys
28
-- 2008-08-22   161   1.0    Initial version (extracted from pdp11.vhd)
29
------------------------------------------------------------------------------
30
 
31
library ieee;
32
use ieee.std_logic_1164.all;
33
use ieee.std_logic_arith.all;
34
 
35
use work.slvtypes.all;
36
use work.iblib.all;
37
 
38
package ibdlib is
39
 
40
type iist_line_type is record         -- iist line
41
  dcf : slbit;                        -- disconnect flag
42
  req : slbit;                        -- request
43
  stf : slbit;                        -- sanity timer flag
44
  imask : slv4;                       -- interrupt mask
45
  bmask : slv4;                       -- boot mask
46
  par : slbit;                        -- parity (odd)
47
  frm : slbit;                        -- frame error flag
48
end record iist_line_type;
49
 
50
constant iist_line_init : iist_line_type := ('1','0','0',"0000","0000",'0','0');
51
 
52
type iist_bus_type is array (3 downto 0) of iist_line_type;
53
constant iist_bus_init : iist_bus_type := (others=>iist_line_init);
54
 
55
type iist_mreq_type is record         -- iist->cpu requests
56
  lock : slbit;                       -- lock-up CPU
57
  boot : slbit;                       -- boot-up CPU
58
end record iist_mreq_type;
59
 
60
constant iist_mreq_init : iist_mreq_type := ('0','0');
61
 
62
type iist_sres_type is record         -- cpu->iist responses
63
  ack_lock : slbit;                   -- release lock 
64
  ack_boot : slbit;                   -- boot started
65
end record iist_sres_type;
66
 
67
constant iist_sres_init : iist_sres_type := ('0','0');
68
 
69
component ibd_iist is                   -- ibus dev(loc): IIST
70
                                        -- fixed address: 177500
71
  generic (
72
    SID : slv2 := "00");                -- self id
73
  port (
74
    CLK : in slbit;                     -- clock
75
    CE_USEC : in slbit;                 -- usec pulse
76
    RESET : in slbit;                   -- system reset
77
    BRESET : in slbit;                  -- ibus reset
78
    IB_MREQ : in ib_mreq_type;          -- ibus request
79
    IB_SRES : out ib_sres_type;         -- ibus response
80
    EI_REQ : out slbit;                 -- interrupt request
81
    EI_ACK : in slbit;                  -- interrupt acknowledge
82
    IIST_BUS : in iist_bus_type;        -- iist bus (input from all iist's)
83
    IIST_OUT : out iist_line_type;      -- iist output
84
    IIST_MREQ : out iist_mreq_type;     -- iist->cpu requests
85
    IIST_SRES : in iist_sres_type       -- cpu->iist responses
86
  );
87
end component;
88
 
89
component ibd_kw11p is                  -- ibus dev(loc): KW11-P (line clock)
90
                                        -- fixed address: 172540
91
  port (
92
    CLK : in slbit;                     -- clock
93
    CE_USEC : in slbit;                 -- usec pulse
94
    CE_MSEC : in slbit;                 -- msec pulse
95
    RESET : in slbit;                   -- system reset
96
    BRESET : in slbit;                  -- ibus reset
97
    IB_MREQ : in ib_mreq_type;          -- ibus request
98
    IB_SRES : out ib_sres_type;         -- ibus response
99
    EI_REQ : out slbit;                 -- interrupt request
100
    EI_ACK : in slbit                   -- interrupt acknowledge
101
  );
102
end component;
103
 
104
component ibd_kw11l is                  -- ibus dev(loc): KW11-L (line clock)
105
                                        -- fixed address: 177546
106
  port (
107
    CLK : in slbit;                     -- clock
108
    CE_MSEC : in slbit;                 -- msec pulse
109
    RESET : in slbit;                   -- system reset
110
    BRESET : in slbit;                  -- ibus reset
111
    IB_MREQ : in ib_mreq_type;          -- ibus request
112
    IB_SRES : out ib_sres_type;         -- ibus response
113
    EI_REQ : out slbit;                 -- interrupt request
114
    EI_ACK : in slbit                   -- interrupt acknowledge
115
  );
116
end component;
117
 
118
component ibdr_rl11 is                  -- ibus dev(rem): RL11
119
                                        -- fixed address: 174400
120
  port (
121
    CLK : in slbit;                     -- clock
122
    BRESET : in slbit;                  -- ibus reset
123
    RRI_LAM : out slbit;                -- remote attention
124
    IB_MREQ : in ib_mreq_type;          -- ibus request
125
    IB_SRES : out ib_sres_type;         -- ibus response
126
    EI_REQ : out slbit;                 -- interrupt request
127
    EI_ACK : in slbit                   -- interrupt acknowledge
128
  );
129
end component;
130
 
131
component ibdr_rk11 is                  -- ibus dev(rem): RK11
132
                                        -- fixed address: 177400
133
  port (
134
    CLK : in slbit;                     -- clock
135
    CE_MSEC : in slbit;                 -- msec pulse
136
    BRESET : in slbit;                  -- ibus reset
137
    RRI_LAM : out slbit;                -- remote attention
138
    IB_MREQ : in ib_mreq_type;          -- ibus request
139
    IB_SRES : out ib_sres_type;         -- ibus response
140
    EI_REQ : out slbit;                 -- interrupt request
141
    EI_ACK : in slbit                   -- interrupt acknowledge
142
  );
143
end component;
144
 
145
component ibdr_tm11 is                  -- ibus dev(rem): TM11
146
                                        -- fixed address: 172520
147
  port (
148
    CLK : in slbit;                     -- clock
149
    BRESET : in slbit;                  -- ibus reset
150
    RRI_LAM : out slbit;                -- remote attention
151
    IB_MREQ : in ib_mreq_type;          -- ibus request
152
    IB_SRES : out ib_sres_type;         -- ibus response
153
    EI_REQ : out slbit;                 -- interrupt request
154
    EI_ACK : in slbit                   -- interrupt acknowledge
155
  );
156
end component;
157
 
158
component ibdr_dz11 is                  -- ibus dev(rem): DZ11
159
  generic (
160
    IB_ADDR : slv16 := conv_std_logic_vector(8#160100#,16));
161
  port (
162
    CLK : in slbit;                     -- clock
163
    RESET : in slbit;                   -- system reset
164
    BRESET : in slbit;                  -- ibus reset
165
    RRI_LAM : out slbit;                -- remote attention
166
    IB_MREQ : in ib_mreq_type;          -- ibus request
167
    IB_SRES : out ib_sres_type;         -- ibus response
168
    EI_REQ_RX : out slbit;              -- interrupt request, receiver
169
    EI_REQ_TX : out slbit;              -- interrupt request, transmitter
170
    EI_ACK_RX : in slbit;               -- interrupt acknowledge, receiver
171
    EI_ACK_TX : in slbit                -- interrupt acknowledge, transmitter
172
  );
173
end component;
174
 
175
component ibdr_dl11 is                  -- ibus dev(rem): DL11-A/B
176
  generic (
177
    IB_ADDR : slv16 := conv_std_logic_vector(8#177560#,16));
178
  port (
179
    CLK : in slbit;                     -- clock
180
    CE_USEC : in slbit;                 -- usec pulse
181
    RESET : in slbit;                   -- system reset
182
    BRESET : in slbit;                  -- ibus reset
183
    RRI_LAM : out slbit;                -- remote attention
184
    IB_MREQ : in ib_mreq_type;          -- ibus request
185
    IB_SRES : out ib_sres_type;         -- ibus response
186
    EI_REQ_RX : out slbit;              -- interrupt request, receiver
187
    EI_REQ_TX : out slbit;              -- interrupt request, transmitter
188
    EI_ACK_RX : in slbit;               -- interrupt acknowledge, receiver
189
    EI_ACK_TX : in slbit                -- interrupt acknowledge, transmitter
190
  );
191
end component;
192
 
193
component ibdr_pc11 is                  -- ibus dev(rem): PC11
194
                                        -- fixed address: 177550
195
  port (
196
    CLK : in slbit;                     -- clock
197
    RESET : in slbit;                   -- system reset
198
    BRESET : in slbit;                  -- ibus reset
199
    RRI_LAM : out slbit;                -- remote attention
200
    IB_MREQ : in ib_mreq_type;          -- ibus request
201
    IB_SRES : out ib_sres_type;         -- ibus response
202
    EI_REQ_PTR : out slbit;             -- interrupt request, reader
203
    EI_REQ_PTP : out slbit;             -- interrupt request, punch
204
    EI_ACK_PTR : in slbit;              -- interrupt acknowledge, reader
205
    EI_ACK_PTP : in slbit               -- interrupt acknowledge, punch
206
  );
207
end component;
208
 
209
component ibdr_lp11 is                  -- ibus dev(rem): LP11
210
                                        -- fixed address: 177514
211
  port (
212
    CLK : in slbit;                     -- clock
213
    RESET : in slbit;                   -- system reset
214
    BRESET : in slbit;                  -- ibus reset
215
    RRI_LAM : out slbit;                -- remote attention
216
    IB_MREQ : in ib_mreq_type;          -- ibus request
217
    IB_SRES : out ib_sres_type;         -- ibus response
218
    EI_REQ : out slbit;                 -- interrupt request
219
    EI_ACK : in slbit                   -- interrupt acknowledge
220
  );
221
end component;
222
 
223
component ibdr_sdreg is                 -- ibus dev(rem): Switch/Display regs
224
                                        -- fixed address: 177570
225
  port (
226
    CLK : in slbit;                     -- clock
227
    RESET : in slbit;                   -- reset
228
    IB_MREQ : in ib_mreq_type;          -- ibus request
229
    IB_SRES : out ib_sres_type;         -- ibus response
230
    DISPREG : out slv16                 -- display register
231
  );
232
end component;
233
 
234
component ibdr_minisys is               -- ibus(rem) minimal sys:SDR+KW+DL+RK
235
  port (
236
    CLK : in slbit;                     -- clock
237
    CE_USEC : in slbit;                 -- usec pulse
238
    CE_MSEC : in slbit;                 -- msec pulse
239
    RESET : in slbit;                   -- reset
240
    BRESET : in slbit;                  -- ibus reset
241
    RRI_LAM : out slv16_1;              -- remote attention vector
242
    IB_MREQ : in ib_mreq_type;          -- ibus request
243
    IB_SRES : out ib_sres_type;         -- ibus response
244
    EI_ACKM : in slbit;                 -- interrupt acknowledge (from master)
245
    EI_PRI : out slv3;                  -- interrupt priority (to cpu)
246
    EI_VECT : out slv9_2;               -- interrupt vector   (to cpu)
247
    DISPREG : out slv16                 -- display register
248
  );
249
end component;
250
 
251
component ibdr_maxisys is               -- ibus(rem) full system
252
  port (
253
    CLK : in slbit;                     -- clock
254
    CE_USEC : in slbit;                 -- usec pulse
255
    CE_MSEC : in slbit;                 -- msec pulse
256
    RESET : in slbit;                   -- reset
257
    BRESET : in slbit;                  -- ibus reset
258
    RRI_LAM : out slv16_1;              -- remote attention vector
259
    IB_MREQ : in ib_mreq_type;          -- ibus request
260
    IB_SRES : out ib_sres_type;         -- ibus response
261
    EI_ACKM : in slbit;                 -- interrupt acknowledge (from master)
262
    EI_PRI : out slv3;                  -- interrupt priority (to cpu)
263
    EI_VECT : out slv9_2;               -- interrupt vector   (to cpu)
264
    DISPREG : out slv16                 -- display register
265
  );
266
end component;
267
 
268
end package ibdlib;

powered by: WebSVN 2.1.0

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