w11 - vhd
0.794
W11 CPU core and support modules
Loading...
Searching...
No Matches
ibdr_minisys.vhd
Go to the documentation of this file.
1
-- $Id: ibdr_minisys.vhd 1181 2019-07-08 17:00:50Z mueller $
2
-- SPDX-License-Identifier: GPL-3.0-or-later
3
-- Copyright 2008-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
--
5
------------------------------------------------------------------------------
6
-- Module Name: ibdr_minisys - syn
7
-- Description: ibus(rem) devices for minimal system:SDR+KW+DL+RK
8
--
9
-- Dependencies: ib_rlim_gen
10
-- ibdr_sdreg
11
-- ibd_kw11l
12
-- ibdr_dl11
13
-- ibdr_rk11
14
-- ib_sres_or_4
15
-- ib_intmap
16
-- Test bench: -
17
-- Target Devices: generic
18
-- Tool versions: ise 8.2-14.7; viv 2014.4-2017.2; ghdl 0.18-0.35
19
--
20
-- Synthesized (xst):
21
-- Date Rev ise Target flop lutl lutm slic t peri
22
-- 2010-10-17 333 12.1 M53d xc3s1000-4 128 469 16 265 s 7.8
23
-- 2010-10-17 314 12.1 M53d xc3s1000-4 122 472 16 269 s 7.6
24
--
25
-- Revision History:
26
-- Date Rev Version Comment
27
-- 2019-04-23 1136 1.1.5 add CLK port to ib_intmap
28
-- 2019-04-14 1131 1.1.4 ib_rlim_gen has CPUSUSP port; RLIM_CEV now slv8
29
-- 2019-04-07 1129 1.1.3 ibdr_dl11: use RLIM_CEV, drop CE_USEC
30
-- 2011-11-18 427 1.1.2 now numeric_std clean
31
-- 2010-10-23 335 1.1.1 rename RRI_LAM->RB_LAM;
32
-- 2010-06-11 303 1.1 use IB_MREQ.racc instead of RRI_REQ
33
-- 2009-07-12 233 1.0.7 reorder ports, add CE_USEC; add RESET and CE_USEC
34
-- to _dl11
35
-- 2009-05-31 221 1.0.6 add RESET to kw11l;
36
-- 2009-05-24 219 1.0.5 _rk11 uses now CE_MSEC
37
-- 2008-08-22 161 1.0.4 use iblib, ibdlib
38
-- 2008-05-09 144 1.0.3 use EI_ACK with _kw11l, _dl11
39
-- 2008-04-18 136 1.0.2 add RESET port, use for ibdr_sdreg
40
-- 2008-01-20 113 1.0.1 RRI_LAM now vector
41
-- 2008-01-20 112 1.0 Initial version
42
------------------------------------------------------------------------------
43
--
44
-- mini system setup
45
--
46
-- ibbase vec pri slot attn device name
47
--
48
-- 177546 100 6 4 - KW11-L
49
-- 177400 220 5 3 4 RK11
50
-- 177560 060 4 2 1 DL11-RX 1st
51
-- 064 4 1 ^ DL11-TX 1st
52
-- 177570 - - - - sdreg
53
--
54
55
library
ieee
;
56
use
ieee.std_logic_1164.
all
;
57
use
ieee.numeric_std.
all
;
58
59
use
work.
slvtypes
.
all
;
60
use
work.
iblib
.
all
;
61
use
work.
ibdlib
.
all
;
62
63
-- ----------------------------------------------------------------------------
64
entity
ibdr_minisys
is
-- ibus(rem) minimal sys:SDR+KW+DL+RK
65
port
(
66
CLK
:
in
slbit
;
-- clock
67
CE_USEC
:
in
slbit
;
-- usec pulse
68
CE_MSEC
:
in
slbit
;
-- msec pulse
69
RESET
:
in
slbit
;
-- reset
70
BRESET
:
in
slbit
;
-- ibus reset
71
RB_LAM
:
out
slv16_1
;
-- remote attention vector
72
IB_MREQ
:
in
ib_mreq_type
;
-- ibus request
73
IB_SRES
:
out
ib_sres_type
;
-- ibus response
74
EI_ACKM
:
in
slbit
;
-- interrupt acknowledge (from master)
75
EI_PRI
:
out
slv3
;
-- interrupt priority (to cpu)
76
EI_VECT
:
out
slv9_2
;
-- interrupt vector (to cpu)
77
DISPREG
:
out
slv16
-- display register
78
)
;
79
end
ibdr_minisys
;
80
81
architecture
syn
of
ibdr_minisys
is
82
83
constant
conf_intmap
:
intmap_array_type
:=
84
(
intmap_init
,
-- line 15
85
intmap_init
,
-- line 14
86
intmap_init
,
-- line 13
87
intmap_init
,
-- line 12
88
intmap_init
,
-- line 11
89
intmap_init
,
-- line 10
90
intmap_init
,
-- line 9
91
intmap_init
,
-- line 8
92
intmap_init
,
-- line 7
93
intmap_init
,
-- line 6
94
intmap_init
,
-- line 5
95
(
8#100#
,
6
)
,
-- line 4 KW11-L
96
(
8#220#
,
5
)
,
-- line 3 RK11
97
(
8#060#
,
4
)
,
-- line 2 DL11-RX
98
(
8#064#
,
4
)
,
-- line 1 DL11-TX
99
intmap_init
-- line 0
100
)
;
101
102
signal
RB_LAM_DL11
:
slbit
:=
'
0
'
;
103
signal
RB_LAM_RK11
:
slbit
:=
'
0
'
;
104
105
signal
IB_SRES_SDREG
:
ib_sres_type
:=
ib_sres_init
;
106
signal
IB_SRES_KW11L
:
ib_sres_type
:=
ib_sres_init
;
107
signal
IB_SRES_DL11
:
ib_sres_type
:=
ib_sres_init
;
108
signal
IB_SRES_RK11
:
ib_sres_type
:=
ib_sres_init
;
109
110
signal
EI_REQ
:
slv16_1
:=
(
others
=
>
'
0
'
)
;
111
signal
EI_ACK
:
slv16_1
:=
(
others
=
>
'
0
'
)
;
112
113
signal
EI_REQ_KW11L
:
slbit
:=
'
0
'
;
114
signal
EI_REQ_DL11RX
:
slbit
:=
'
0
'
;
115
signal
EI_REQ_DL11TX
:
slbit
:=
'
0
'
;
116
signal
EI_REQ_RK11
:
slbit
:=
'
0
'
;
117
118
signal
EI_ACK_KW11L
:
slbit
:=
'
0
'
;
119
signal
EI_ACK_DL11RX
:
slbit
:=
'
0
'
;
120
signal
EI_ACK_DL11TX
:
slbit
:=
'
0
'
;
121
signal
EI_ACK_RK11
:
slbit
:=
'
0
'
;
122
123
signal
RLIM_CEV
:
slv8
:=
(
others
=
>
'
0
'
)
;
124
125
begin
126
127
RLIM :
ib_rlim_gen
128
port
map
(
129
CLK
=>
CLK
,
130
CE_USEC
=>
CE_USEC
,
131
RESET
=> '0',
132
CPUSUSP
=> '0',
133
RLIM_CEV
=>
RLIM_CEV
134
)
;
135
136
SDREG :
ibdr_sdreg
137
port
map
(
138
CLK
=>
CLK
,
139
RESET
=>
RESET
,
140
IB_MREQ
=>
IB_MREQ
,
141
IB_SRES
=>
IB_SRES_SDREG
,
142
DISPREG
=>
DISPREG
143
)
;
144
145
KW11L :
ibd_kw11l
146
port
map
(
147
CLK
=>
CLK
,
148
CE_MSEC
=>
CE_MSEC
,
149
RESET
=>
RESET
,
150
BRESET
=>
BRESET
,
151
CPUSUSP
=> '0',
152
IB_MREQ
=>
IB_MREQ
,
153
IB_SRES
=>
IB_SRES_KW11L
,
154
EI_REQ
=>
EI_REQ_KW11L
,
155
EI_ACK
=>
EI_ACK_KW11L
156
)
;
157
158
DL11 :
ibdr_dl11
159
port
map
(
160
CLK
=>
CLK
,
161
RESET
=>
RESET
,
162
BRESET
=>
BRESET
,
163
RLIM_CEV
=>
RLIM_CEV
,
164
RB_LAM
=>
RB_LAM_DL11
,
165
IB_MREQ
=>
IB_MREQ
,
166
IB_SRES
=>
IB_SRES_DL11
,
167
EI_REQ_RX
=>
EI_REQ_DL11RX
,
168
EI_REQ_TX
=>
EI_REQ_DL11TX
,
169
EI_ACK_RX
=>
EI_ACK_DL11RX
,
170
EI_ACK_TX
=>
EI_ACK_DL11TX
171
)
;
172
173
RK11 :
ibdr_rk11
174
port
map
(
175
CLK
=>
CLK
,
176
CE_MSEC
=>
CE_MSEC
,
177
BRESET
=>
BRESET
,
178
RB_LAM
=>
RB_LAM_RK11
,
179
IB_MREQ
=>
IB_MREQ
,
180
IB_SRES
=>
IB_SRES_RK11
,
181
EI_REQ
=>
EI_REQ_RK11
,
182
EI_ACK
=>
EI_ACK_RK11
183
)
;
184
185
SRES_OR :
ib_sres_or_4
186
port
map
(
187
IB_SRES_1
=>
IB_SRES_SDREG
,
188
IB_SRES_2
=>
IB_SRES_KW11L
,
189
IB_SRES_3
=>
IB_SRES_DL11
,
190
IB_SRES_4
=>
IB_SRES_RK11
,
191
IB_SRES_OR
=>
IB_SRES
192
)
;
193
194
INTMAP :
ib_intmap
195
generic
map
(
196
INTMAP
=>
conf_intmap
)
197
port
map
(
198
CLK
=>
CLK
,
199
EI_REQ
=>
EI_REQ
,
200
EI_ACKM
=>
EI_ACKM
,
201
EI_ACK
=>
EI_ACK
,
202
EI_PRI
=>
EI_PRI
,
203
EI_VECT
=>
EI_VECT
204
)
;
205
206
EI_REQ
(
4
)
<=
EI_REQ_KW11L
;
207
EI_REQ
(
3
)
<=
EI_REQ_RK11
;
208
EI_REQ
(
2
)
<=
EI_REQ_DL11RX
;
209
EI_REQ
(
1
)
<=
EI_REQ_DL11TX
;
210
211
EI_ACK_KW11L
<=
EI_ACK
(
4
)
;
212
EI_ACK_RK11
<=
EI_ACK
(
3
)
;
213
EI_ACK_DL11RX
<=
EI_ACK
(
2
)
;
214
EI_ACK_DL11TX
<=
EI_ACK
(
1
)
;
215
216
RB_LAM
(
1
)
<=
RB_LAM_DL11
;
217
RB_LAM
(
2
)
<=
'
0
'
;
-- for 2nd DL11
218
RB_LAM
(
3
)
<=
'
0
'
;
-- for DZ11
219
RB_LAM
(
4
)
<=
RB_LAM_RK11
;
220
RB_LAM
(
15
downto
5
)
<=
(
others
=
>
'
0
'
)
;
221
222
end
syn
;
ib_intmap
Definition:
ib_intmap.vhd:40
ib_intmap.EI_PRI
out EI_PRI slv3
Definition:
ib_intmap.vhd:48
ib_intmap.INTMAP
INTMAP intmap_array_type := intmap_array_init
Definition:
ib_intmap.vhd:42
ib_intmap.EI_VECT
out EI_VECT slv9_2
Definition:
ib_intmap.vhd:50
ib_intmap.CLK
in CLK slbit
Definition:
ib_intmap.vhd:44
ib_intmap.EI_REQ
in EI_REQ slv16_1
Definition:
ib_intmap.vhd:45
ib_intmap.EI_ACK
out EI_ACK slv16_1
Definition:
ib_intmap.vhd:47
ib_intmap.EI_ACKM
in EI_ACKM slbit
Definition:
ib_intmap.vhd:46
ib_rlim_gen
Definition:
ib_rlim_gen.vhd:39
ib_rlim_gen.RESET
in RESET slbit
Definition:
ib_rlim_gen.vhd:43
ib_rlim_gen.CE_USEC
in CE_USEC slbit
Definition:
ib_rlim_gen.vhd:42
ib_rlim_gen.CLK
in CLK slbit
Definition:
ib_rlim_gen.vhd:41
ib_rlim_gen.CPUSUSP
in CPUSUSP slbit
Definition:
ib_rlim_gen.vhd:44
ib_rlim_gen.RLIM_CEV
out RLIM_CEV slv8
Definition:
ib_rlim_gen.vhd:46
ib_sres_or_4
Definition:
ib_sres_or_4.vhd:30
ib_sres_or_4.IB_SRES_2
in IB_SRES_2 ib_sres_type := ib_sres_init
Definition:
ib_sres_or_4.vhd:33
ib_sres_or_4.IB_SRES_3
in IB_SRES_3 ib_sres_type := ib_sres_init
Definition:
ib_sres_or_4.vhd:34
ib_sres_or_4.IB_SRES_OR
out IB_SRES_OR ib_sres_type
Definition:
ib_sres_or_4.vhd:37
ib_sres_or_4.IB_SRES_4
in IB_SRES_4 ib_sres_type := ib_sres_init
Definition:
ib_sres_or_4.vhd:35
ib_sres_or_4.IB_SRES_1
in IB_SRES_1 ib_sres_type
Definition:
ib_sres_or_4.vhd:32
ibd_kw11l
Definition:
ibd_kw11l.vhd:42
ibd_kw11l.EI_REQ
out EI_REQ slbit
Definition:
ibd_kw11l.vhd:52
ibd_kw11l.RESET
in RESET slbit
Definition:
ibd_kw11l.vhd:47
ibd_kw11l.BRESET
in BRESET slbit
Definition:
ibd_kw11l.vhd:48
ibd_kw11l.CLK
in CLK slbit
Definition:
ibd_kw11l.vhd:45
ibd_kw11l.IB_MREQ
in IB_MREQ ib_mreq_type
Definition:
ibd_kw11l.vhd:50
ibd_kw11l.CPUSUSP
in CPUSUSP slbit
Definition:
ibd_kw11l.vhd:49
ibd_kw11l.IB_SRES
out IB_SRES ib_sres_type
Definition:
ibd_kw11l.vhd:51
ibd_kw11l.EI_ACK
in EI_ACK slbit
Definition:
ibd_kw11l.vhd:54
ibd_kw11l.CE_MSEC
in CE_MSEC slbit
Definition:
ibd_kw11l.vhd:46
ibdlib
Definition:
ibdlib.vhd:43
ibdr_dl11
Definition:
ibdr_dl11.vhd:51
ibdr_dl11.RESET
in RESET slbit
Definition:
ibdr_dl11.vhd:56
ibdr_dl11.EI_ACK_TX
in EI_ACK_TX slbit
Definition:
ibdr_dl11.vhd:66
ibdr_dl11.EI_ACK_RX
in EI_ACK_RX slbit
Definition:
ibdr_dl11.vhd:64
ibdr_dl11.BRESET
in BRESET slbit
Definition:
ibdr_dl11.vhd:57
ibdr_dl11.RB_LAM
out RB_LAM slbit
Definition:
ibdr_dl11.vhd:59
ibdr_dl11.CLK
in CLK slbit
Definition:
ibdr_dl11.vhd:55
ibdr_dl11.EI_REQ_RX
out EI_REQ_RX slbit
Definition:
ibdr_dl11.vhd:62
ibdr_dl11.IB_MREQ
in IB_MREQ ib_mreq_type
Definition:
ibdr_dl11.vhd:60
ibdr_dl11.IB_SRES
out IB_SRES ib_sres_type
Definition:
ibdr_dl11.vhd:61
ibdr_dl11.RLIM_CEV
in RLIM_CEV slv8
Definition:
ibdr_dl11.vhd:58
ibdr_dl11.EI_REQ_TX
out EI_REQ_TX slbit
Definition:
ibdr_dl11.vhd:63
ibdr_minisys.syn
Definition:
ibdr_minisys.vhd:81
ibdr_minisys.syn.EI_REQ_DL11RX
slbit := '0' EI_REQ_DL11RX
Definition:
ibdr_minisys.vhd:114
ibdr_minisys.syn.EI_REQ_KW11L
slbit := '0' EI_REQ_KW11L
Definition:
ibdr_minisys.vhd:113
ibdr_minisys.syn.IB_SRES_DL11
ib_sres_type := ib_sres_init IB_SRES_DL11
Definition:
ibdr_minisys.vhd:107
ibdr_minisys.syn.IB_SRES_SDREG
ib_sres_type := ib_sres_init IB_SRES_SDREG
Definition:
ibdr_minisys.vhd:105
ibdr_minisys.syn.EI_REQ_RK11
slbit := '0' EI_REQ_RK11
Definition:
ibdr_minisys.vhd:116
ibdr_minisys.syn.EI_REQ_DL11TX
slbit := '0' EI_REQ_DL11TX
Definition:
ibdr_minisys.vhd:115
ibdr_minisys.syn.RB_LAM_RK11
slbit := '0' RB_LAM_RK11
Definition:
ibdr_minisys.vhd:103
ibdr_minisys.syn.IB_SRES_KW11L
ib_sres_type := ib_sres_init IB_SRES_KW11L
Definition:
ibdr_minisys.vhd:106
ibdr_minisys.syn.EI_ACK_KW11L
slbit := '0' EI_ACK_KW11L
Definition:
ibdr_minisys.vhd:118
ibdr_minisys.syn.EI_ACK_RK11
slbit := '0' EI_ACK_RK11
Definition:
ibdr_minisys.vhd:121
ibdr_minisys.syn.RB_LAM_DL11
slbit := '0' RB_LAM_DL11
Definition:
ibdr_minisys.vhd:102
ibdr_minisys.syn.EI_ACK
slv16_1 :=( others => '0') EI_ACK
Definition:
ibdr_minisys.vhd:111
ibdr_minisys.syn.IB_SRES_RK11
ib_sres_type := ib_sres_init IB_SRES_RK11
Definition:
ibdr_minisys.vhd:108
ibdr_minisys.syn.RLIM_CEV
slv8 :=( others => '0') RLIM_CEV
Definition:
ibdr_minisys.vhd:123
ibdr_minisys.syn.EI_REQ
slv16_1 :=( others => '0') EI_REQ
Definition:
ibdr_minisys.vhd:110
ibdr_minisys.syn.EI_ACK_DL11TX
slbit := '0' EI_ACK_DL11TX
Definition:
ibdr_minisys.vhd:120
ibdr_minisys.syn.conf_intmap
intmap_array_type :=( intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init, intmap_init,( 8#100#, 6),( 8#220#, 5),( 8#060#, 4),( 8#064#, 4), intmap_init) conf_intmap
Definition:
ibdr_minisys.vhd:83
ibdr_minisys.syn.EI_ACK_DL11RX
slbit := '0' EI_ACK_DL11RX
Definition:
ibdr_minisys.vhd:119
ibdr_minisys
Definition:
ibdr_minisys.vhd:64
ibdr_minisys.RESET
in RESET slbit
Definition:
ibdr_minisys.vhd:69
ibdr_minisys.DISPREG
out DISPREG slv16
Definition:
ibdr_minisys.vhd:78
ibdr_minisys.CE_USEC
in CE_USEC slbit
Definition:
ibdr_minisys.vhd:67
ibdr_minisys.EI_PRI
out EI_PRI slv3
Definition:
ibdr_minisys.vhd:75
ibdr_minisys.BRESET
in BRESET slbit
Definition:
ibdr_minisys.vhd:70
ibdr_minisys.EI_VECT
out EI_VECT slv9_2
Definition:
ibdr_minisys.vhd:76
ibdr_minisys.CLK
in CLK slbit
Definition:
ibdr_minisys.vhd:66
ibdr_minisys.IB_MREQ
in IB_MREQ ib_mreq_type
Definition:
ibdr_minisys.vhd:72
ibdr_minisys.IB_SRES
out IB_SRES ib_sres_type
Definition:
ibdr_minisys.vhd:73
ibdr_minisys.EI_ACKM
in EI_ACKM slbit
Definition:
ibdr_minisys.vhd:74
ibdr_minisys.RB_LAM
out RB_LAM slv16_1
Definition:
ibdr_minisys.vhd:71
ibdr_minisys.CE_MSEC
in CE_MSEC slbit
Definition:
ibdr_minisys.vhd:68
ibdr_rk11
Definition:
ibdr_rk11.vhd:53
ibdr_rk11.EI_REQ
out EI_REQ slbit
Definition:
ibdr_rk11.vhd:62
ibdr_rk11.BRESET
in BRESET slbit
Definition:
ibdr_rk11.vhd:58
ibdr_rk11.RB_LAM
out RB_LAM slbit
Definition:
ibdr_rk11.vhd:59
ibdr_rk11.CLK
in CLK slbit
Definition:
ibdr_rk11.vhd:56
ibdr_rk11.IB_MREQ
in IB_MREQ ib_mreq_type
Definition:
ibdr_rk11.vhd:60
ibdr_rk11.IB_SRES
out IB_SRES ib_sres_type
Definition:
ibdr_rk11.vhd:61
ibdr_rk11.EI_ACK
in EI_ACK slbit
Definition:
ibdr_rk11.vhd:64
ibdr_rk11.CE_MSEC
in CE_MSEC slbit
Definition:
ibdr_rk11.vhd:57
ibdr_sdreg
Definition:
ibdr_sdreg.vhd:41
ibdr_sdreg.RESET
in RESET slbit
Definition:
ibdr_sdreg.vhd:45
ibdr_sdreg.DISPREG
out DISPREG slv16
Definition:
ibdr_sdreg.vhd:49
ibdr_sdreg.CLK
in CLK slbit
Definition:
ibdr_sdreg.vhd:44
ibdr_sdreg.IB_MREQ
in IB_MREQ ib_mreq_type
Definition:
ibdr_sdreg.vhd:46
ibdr_sdreg.IB_SRES
out IB_SRES ib_sres_type
Definition:
ibdr_sdreg.vhd:47
iblib
Definition:
iblib.vhd:33
slvtypes
Definition:
slvtypes.vhd:28
slvtypes.slv3
std_logic_vector( 2 downto 0) slv3
Definition:
slvtypes.vhd:35
slvtypes.slv9_2
std_logic_vector( 8 downto 2) slv9_2
Definition:
slvtypes.vhd:65
slvtypes.slv16_1
std_logic_vector( 15 downto 1) slv16_1
Definition:
slvtypes.vhd:67
slvtypes.slv16
std_logic_vector( 15 downto 0) slv16
Definition:
slvtypes.vhd:48
slvtypes.slbit
std_logic slbit
Definition:
slvtypes.vhd:30
slvtypes.slv8
std_logic_vector( 7 downto 0) slv8
Definition:
slvtypes.vhd:40
ibus
ibdr_minisys.vhd
Generated on Thu Feb 9 2023 12:41:04 for w11 - vhd by
1.9.6