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

Subversion Repositories w11

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

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

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

powered by: WebSVN 2.1.0

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