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

Subversion Repositories w11

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

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

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

powered by: WebSVN 2.1.0

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