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

Subversion Repositories w11

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

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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