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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [rtl/] [sys_gen/] [w11a/] [s3board/] [sys_w11a_s3.vhd] - Blame information for rev 38

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 wfjm
-- $Id: sys_w11a_s3.vhd 791 2016-07-21 22:01:10Z mueller $
2 2 wfjm
--
3 36 wfjm
-- Copyright 2007-2016 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
-- Module Name:    sys_w11a_s3 - syn
16
-- Description:    w11a test design for s3board
17
--
18
-- Dependencies:   vlib/genlib/clkdivce
19 12 wfjm
--                 bplib/bpgen/bp_rs232_2l4l_iob
20 16 wfjm
--                 vlib/rlink/rlink_sp1c
21 30 wfjm
--                 w11a/pdp11_sys70
22
--                 ibus/ibdr_maxisys
23 2 wfjm
--                 bplib/s3board/s3_sram_memctl
24 29 wfjm
--                 vlib/rlink/ioleds_sp1c
25 30 wfjm
--                 w11a/pdp11_hio70
26
--                 bplib/bpgen/sn_humanio_rbus
27
--                 vlib/rbus/rb_sres_or_2
28 2 wfjm
--
29 12 wfjm
-- Test bench:     tb/tb_sys_w11a_s3
30 2 wfjm
--
31
-- Target Devices: generic
32 25 wfjm
-- Tool versions:  xst 8.2-14.7; ghdl 0.18-0.31
33 2 wfjm
--
34
-- Synthesized (xst):
35
-- Date         Rev  ise         Target      flop lutl lutm slic t peri
36 31 wfjm
-- 2015-06-04   686 14.7  131013 xc3s1000-4  2158 6453  350 3975 OK: +TM11  51%
37
-- 2015-05-14   680 14.7  131013 xc3s1000-4  2087 6316  350 3928 OK: +RHRP  51%
38 29 wfjm
-- 2015-02-21   649 14.7  131013 xc3s1000-4  1643 5124  318 3176 OK: +RL11
39 28 wfjm
-- 2014-12-22   619 14.7  131013 xc3s1000-4  1569 4768  302 2994 OK: +rbmon
40 27 wfjm
-- 2014-12-20   614 14.7  131013 xc3s1000-4  1455 4523  302 2807 OK: -RL11,rlv4
41 25 wfjm
-- 2014-06-08   561 14.7  131013 xc3s1000-4  1374 4580  286 2776 OK: +RL11
42
-- 2014-06-01   558 14.7  131013 xc3s1000-4  1301 4306  270 2614 OK: 
43 16 wfjm
-- 2011-12-21   442 13.1    O40d xc3s1000-4  1301 4307  270 2613 OK: LP+PC+DL+II
44 13 wfjm
-- 2011-11-19   427 13.1    O40d xc3s1000-4  1322 4298  242 2616 OK: LP+PC+DL+II
45 9 wfjm
-- 2010-12-30   351 12.1    M53d xc3s1000-4  1316 4291  242 2609 OK: LP+PC+DL+II
46 8 wfjm
-- 2010-11-06   336 12.1    M53d xc3s1000-4  1284 4253* 242 2575 OK: LP+PC+DL+II
47
-- 2010-10-24   335 12.1    M53d xc3s1000-4  1284 4495  242 2575 OK: LP+PC+DL+II
48 2 wfjm
-- 2010-05-01   285 11.4    L68  xc3s1000-4  1239 4086  224 2471 OK: LP+PC+DL+II
49
-- 2010-04-26   283 11.4    L68  xc3s1000-4  1245 4083  224 2474 OK: LP+PC+DL+II
50
-- 2009-07-12   233 11.2    L46  xc3s1000-4  1245 4078  224 2472 OK: LP+PC+DL+II
51
-- 2009-07-12   233 10.1.03 K39  xc3s1000-4  1250 4097  224 2494 OK: LP+PC+DL+II
52
-- 2009-06-01   221 10.1.03 K39  xc3s1000-4  1209 3986  224 2425 OK: LP+PC+DL+II
53
-- 2009-05-17   216 10.1.03 K39  xc3s1000-4  1039 3542  224 2116 m+p; TIME OK
54
-- 2009-05-09   213 10.1.03 K39  xc3s1000-4  1037 3500  224 2100 m+p; TIME OK
55
-- 2009-04-26   209  8.2.03 I34  xc3s1000-4  1099 3557  224 2264 m+p; TIME OK
56
-- 2008-12-13   176  8.2.03 I34  xc3s1000-4  1116 3672  224 2280 m+p; TIME OK
57
-- 2008-12-06   174 10.1.02 K37  xc3s1000-4  1038 3503  224 2100 m+p; TIME OK
58
-- 2008-12-06   174  8.2.03 I34  xc3s1000-4  1116 3682  224 2281 m+p; TIME OK
59
-- 2008-08-22   161  8.2.03 I34  xc3s1000-4  1118 3677  224 2288 m+p; TIME OK
60
-- 2008-08-22   161 10.1.02 K37  xc3s1000-4  1035 3488  224 2086 m+p; TIME OK
61
-- 2008-05-01   140  8.2.03 I34  xc3s1000-4  1057 3344  224 2119 m+p; 21ns;BR-32
62
-- 2008-05-01   140  8.2.03 I34  xc3s1000-4  1057 3357  224 2128 m+p; 21ns;BR-16
63
-- 2008-05-01   140  8.2.03 I34  xc3s1000-4  1057 3509  224 2220 m+p; TIME OK
64
-- 2008-05-01   140  9.2.04 J40  xc3s200-4   1009 3195  224 1918 m+p; T-OK;BR-16
65
-- 2008-03-19   127  8.2.03 I34  xc3s1000-4  1077 3471  224 2207 m+p; TIME OK
66
-- 2008-03-02   122  8.2.03 I34  xc3s1000-4  1068 3448  224 2179 m+p; TIME OK
67
-- 2008-03-02   121  8.2.03 I34  xc3s1000-4  1064 3418  224 2148 m+p; TIME FAIL
68
-- 2008-02-24   119  8.2.03 I34  xc3s1000-4  1071 3372  224 2141 m+p; TIME OK
69
-- 2008-02-23   118  8.2.03 I34  xc3s1000-4  1035 3301  182 1996 m+p; TIME OK
70
-- 2008-01-06   111  8.2.03 I34  xc3s1000-4   971 2898  182 1831 m+p; TIME OK
71
-- 2007-12-30   107  8.2.03 I34  xc3s1000-4   891 2719  137 1515 s 18.8
72
-- 2007-12-30   107  8.2.03 I34  xc3s1000-4   891 2661  137 1654 m+p; TIME OK
73 8 wfjm
--   Note: till 2010-10-24 lutm included 'route-thru', after only logic
74 2 wfjm
--
75
-- Revision History: 
76
-- Date         Rev Version  Comment
77 36 wfjm
-- 2016-03-19   748   2.1.1  define rlink SYSID
78 30 wfjm
-- 2015-05-09   677   2.1    start/stop/suspend overhaul; reset overhaul
79
-- 2015-05-02   673   2.0    use pdp11_sys70 and pdp11_hio70; now in std form
80
-- 2015-04-11   666   1.7.1  rearrange XON handling
81 29 wfjm
-- 2015-02-21   649   1.7    use ioleds_sp1c,pdp11_(statleds,ledmux,dspmux)
82 28 wfjm
-- 2014-12-24   620   1.6.2  relocate ibus window and hio rbus address
83
-- 2014-12-22   619   1.6.1  add rbus monitor rbd_rbmon
84 27 wfjm
-- 2014-08-28   588   1.6    use new rlink v4 iface and 4 bit STAT
85
-- 2014-08-15   583   1.5    rb_mreq addr now 16 bit
86 16 wfjm
-- 2011-12-21   442   1.4.4  use rlink_sp1c; hio led usage now a for n2/n3
87 13 wfjm
-- 2011-11-19   427   1.4.3  now numeric_std clean
88 12 wfjm
-- 2011-07-09   391   1.4.2  use now bp_rs232_2l4l_iob
89
-- 2011-07-08   390   1.4.1  use now sn_humanio
90 9 wfjm
-- 2010-12-30   351   1.4    ported to rbv3
91 8 wfjm
-- 2010-11-06   336   1.3.7  rename input pin CLK -> I_CLK50
92
-- 2010-10-23   335   1.3.3  rename RRI_LAM->RB_LAM;
93 2 wfjm
-- 2010-06-26   309   1.3.2  use constants for rbus addresses (rbaddr_...)
94
-- 2010-06-18   306   1.3.1  rename RB_ADDR->RB_ADDR_CORE, add RB_ADDR_IBUS;
95
--                           remove pdp11_ibdr_rri
96
-- 2010-06-13   305   1.6.1  add CP_ADDR, wire up pdp11_core_rri->pdp11_core
97
-- 2010-06-11   303   1.6    use IB_MREQ.racc instead of RRI_REQ
98
-- 2010-06-03   300   1.5.6  use default FAWIDTH for rri_core_serport
99
-- 2010-05-28   295   1.5.5  rename sys_pdp11core -> sys_w11a_s3
100
-- 2010-05-21   292   1.5.4  rename _PM1_ -> _FUSP_
101
-- 2010-05-16   291   1.5.3  rename memctl_s3sram->s3_sram_memctl
102
-- 2010-05-05   288   1.5.2  add sys_conf_hio_debounce
103
-- 2010-05-02   287   1.5.1  ren CE_XSEC->CE_INT,RP_STAT->RB_STAT,AP_LAM->RB_LAM
104
--                           drop RP_IINT from interfaces; drop RTSFLUSH generic
105
--                           add pm1 rs232 (usp) support
106
-- 2010-05-01   285   1.5    port to rri V2 interface, use rri_core_serport
107
-- 2010-04-17   278   1.4.5  rename sram_dummy -> s3_sram_dummy
108
-- 2010-04-10   275   1.4.4  use s3_humanio; invert DP(1,3)
109
-- 2009-07-12   233   1.4.3  adapt to ibdr_(mini|maxi)sys interface changes
110
-- 2009-06-01   221   1.4.2  support ibdr_maxisys as well as _minisys
111
-- 2009-05-10   214   1.4.1  use pdp11_tmu_sb instead of pdp11_tmu
112
-- 2008-08-22   161   1.4.0  use iblib, ibdlib; renames
113
-- 2008-05-03   143   1.3.6  rename _cpursta->_cpurust
114
-- 2008-05-01   142   1.3.5  reassign LED(cpugo,halt,rust) and DISP(dispreg)
115
-- 2008-04-19   137   1.3.4  add DM_STAT_(DP|VM|CO|SY) signals, add pdp11_tmu
116
-- 2008-04-18   136   1.3.3  add RESET for ibdr_minisys
117
-- 2008-04-13   135   1.3.2  add _mem70 also for _bram configs
118
-- 2008-02-23   118   1.3.1  add _mem70
119
-- 2008-02-17   117   1.3    use ext. memory interface of _core; 
120
--                           use _cache + memctl or _bram (configurable)
121
-- 2008-01-20   113   1.2.1  finalize AP_LAM handling (0=cpu,1=dl11;4=rk05)
122
-- 2008-01-20   112   1.2    rename clkgen->clkdivce; use ibdr_minisys, BRESET
123
--                           add _ib_mux2
124
-- 2008-01-06   111   1.1    use now iob_reg_*; remove rricp_pdp11core hack
125
--                           instanciate all parts directly
126
-- 2007-12-23   105   1.0.4  add rritb_cpmon_sb
127
-- 2007-12-16   101   1.0.3  use _N for active low; set IOB attribute to RI/RO
128
-- 2007-12-09   100   1.0.2  add sram memory signals, dummy handle them
129
-- 2007-10-19    90   1.0.1  init RI_RXD,RO_TXD=1 to avoid startup glitch
130
-- 2007-09-23    84   1.0    Initial version
131
------------------------------------------------------------------------------
132
--
133
-- w11a test design for s3board
134 9 wfjm
--    w11a + rlink + serport
135 2 wfjm
--
136
-- Usage of S3BOARD Switches, Buttons, LEDs:
137
--
138 29 wfjm
--    SWI(7:6): no function (only connected to sn_humanio_rbus)
139
--       (5:4):  select DSP
140
--                 00 abclkdiv & abclkdiv_f
141
--                 01 PC
142
--                 10 DISPREG
143
--                 11 DR emulation
144
--       (3):    select LED display
145
--                 0 overall status
146
--                 1 DR emulation
147
--       (2)    0 -> int/ext RS242 port for rlink
148
--              1 -> use USB interface for rlink
149
--       (1):   1 enable XON
150
--       (0):   0 -> main board RS232 port
151 16 wfjm
--              1 -> Pmod B/top RS232 port
152 29 wfjm
--
153
--    LEDs if SWI(3) = 1
154
--      (7:0)    DR emulation; shows R0(lower 8 bits) during wait like 11/45+70
155
--
156
--    LEDs if SWI(3) = 0
157
--        (7)    MEM_ACT_W
158
--        (6)    MEM_ACT_R
159
--        (5)    cmdbusy (all rlink access, mostly rdma)
160
--      (4:0)    if cpugo=1 show cpu mode activity
161 16 wfjm
--                  (4) kernel mode, pri>0
162
--                  (3) kernel mode, pri=0
163
--                  (2) kernel mode, wait
164
--                  (1) supervisor mode
165
--                  (0) user mode
166
--              if cpugo=0 shows cpurust
167 29 wfjm
--                  (4) '1'
168 16 wfjm
--                (3:0) cpurust code
169
--
170
--    DP(3):    not SER_MONI.txok       (shows tx back preasure)
171
--    DP(2):    SER_MONI.txact          (shows tx activity)
172
--    DP(1):    not SER_MONI.rxok       (shows rx back preasure)
173
--    DP(0):    SER_MONI.rxact          (shows rx activity)
174
--
175 2 wfjm
 
176
library ieee;
177
use ieee.std_logic_1164.all;
178 13 wfjm
use ieee.numeric_std.all;
179 2 wfjm
 
180
use work.slvtypes.all;
181
use work.genlib.all;
182 19 wfjm
use work.serportlib.all;
183 9 wfjm
use work.rblib.all;
184
use work.rlinklib.all;
185 12 wfjm
use work.bpgenlib.all;
186 30 wfjm
use work.bpgenrbuslib.all;
187 2 wfjm
use work.s3boardlib.all;
188
use work.iblib.all;
189
use work.ibdlib.all;
190
use work.pdp11.all;
191
use work.sys_conf.all;
192
 
193
-- ----------------------------------------------------------------------------
194
 
195
entity sys_w11a_s3 is                   -- top level
196
                                        -- implements s3board_fusp_aif
197
  port (
198 8 wfjm
    I_CLK50 : in slbit;                 -- 50 MHz board clock
199 2 wfjm
    I_RXD : in slbit;                   -- receive data (board view)
200
    O_TXD : out slbit;                  -- transmit data (board view)
201
    I_SWI : in slv8;                    -- s3 switches
202
    I_BTN : in slv4;                    -- s3 buttons
203
    O_LED : out slv8;                   -- s3 leds
204
    O_ANO_N : out slv4;                 -- 7 segment disp: anodes   (act.low)
205
    O_SEG_N : out slv8;                 -- 7 segment disp: segments (act.low)
206
    O_MEM_CE_N : out slv2;              -- sram: chip enables  (act.low)
207
    O_MEM_BE_N : out slv4;              -- sram: byte enables  (act.low)
208
    O_MEM_WE_N : out slbit;             -- sram: write enable  (act.low)
209
    O_MEM_OE_N : out slbit;             -- sram: output enable (act.low)
210
    O_MEM_ADDR  : out slv18;            -- sram: address lines
211
    IO_MEM_DATA : inout slv32;          -- sram: data lines
212
    O_FUSP_RTS_N : out slbit;           -- fusp: rs232 rts_n
213
    I_FUSP_CTS_N : in slbit;            -- fusp: rs232 cts_n
214
    I_FUSP_RXD : in slbit;              -- fusp: rs232 rx
215
    O_FUSP_TXD : out slbit              -- fusp: rs232 tx
216
  );
217
end sys_w11a_s3;
218
 
219
architecture syn of sys_w11a_s3 is
220
 
221 8 wfjm
  signal CLK :   slbit := '0';
222
 
223 30 wfjm
  signal RESET   : slbit := '0';
224
  signal CE_USEC : slbit := '0';
225
  signal CE_MSEC : slbit := '0';
226
 
227 2 wfjm
  signal RXD :   slbit := '1';
228
  signal TXD :   slbit := '0';
229
  signal RTS_N : slbit := '0';
230
  signal CTS_N : slbit := '0';
231
 
232 30 wfjm
  signal RB_MREQ     : rb_mreq_type := rb_mreq_init;
233
  signal RB_SRES     : rb_sres_type := rb_sres_init;
234
  signal RB_SRES_CPU : rb_sres_type := rb_sres_init;
235
  signal RB_SRES_HIO : rb_sres_type := rb_sres_init;
236 2 wfjm
 
237
  signal RB_LAM  : slv16 := (others=>'0');
238 27 wfjm
  signal RB_STAT : slv4  := (others=>'0');
239 2 wfjm
 
240 16 wfjm
  signal SER_MONI : serport_moni_type := serport_moni_init;
241
 
242 30 wfjm
  signal SWI     : slv8  := (others=>'0');
243
  signal BTN     : slv4  := (others=>'0');
244
  signal LED     : slv8  := (others=>'0');
245
  signal DSP_DAT : slv16 := (others=>'0');
246
  signal DSP_DP  : slv4  := (others=>'0');
247 2 wfjm
 
248 30 wfjm
  signal GRESET  : slbit := '0';        -- general reset (from rbus)
249
  signal CRESET  : slbit := '0';        -- cpu reset     (from cp)
250
  signal BRESET  : slbit := '0';        -- bus reset     (from cp or cpu)
251
  signal ITIMER  : slbit := '0';
252 2 wfjm
 
253
  signal EI_PRI  : slv3   := (others=>'0');
254
  signal EI_VECT : slv9_2 := (others=>'0');
255
  signal EI_ACKM : slbit  := '0';
256 30 wfjm
 
257
  signal CP_STAT : cp_stat_type := cp_stat_init;
258
  signal DM_STAT_DP : dm_stat_dp_type := dm_stat_dp_init;
259 2 wfjm
 
260
  signal MEM_REQ   : slbit := '0';
261
  signal MEM_WE    : slbit := '0';
262
  signal MEM_BUSY  : slbit := '0';
263
  signal MEM_ACK_R : slbit := '0';
264 16 wfjm
  signal MEM_ACT_R : slbit := '0';
265
  signal MEM_ACT_W : slbit := '0';
266 2 wfjm
  signal MEM_ADDR  : slv20 := (others=>'0');
267
  signal MEM_BE    : slv4  := (others=>'0');
268
  signal MEM_DI    : slv32 := (others=>'0');
269
  signal MEM_DO    : slv32 := (others=>'0');
270
 
271
  signal IB_MREQ : ib_mreq_type := ib_mreq_init;
272
  signal IB_SRES_IBDR  : ib_sres_type := ib_sres_init;
273
 
274
  signal DISPREG : slv16 := (others=>'0');
275 29 wfjm
  signal STATLEDS :  slv8 := (others=>'0');
276
  signal ABCLKDIV : slv16 := (others=>'0');
277 2 wfjm
 
278 28 wfjm
  constant rbaddr_rbmon : slv16 := x"ffe8"; -- ffe8/0008: 1111 1111 1110 1xxx
279 35 wfjm
  constant rbaddr_hio   : slv16 := x"fef0"; -- fef0/0008: 1111 1110 1111 0xxx
280 2 wfjm
 
281 36 wfjm
  constant sysid_proj  : slv16 := x"0201";   -- w11a
282
  constant sysid_board : slv8  := x"01";     -- s3board
283
  constant sysid_vers  : slv8  := x"00";
284
 
285 2 wfjm
begin
286
 
287 8 wfjm
  CLK <= I_CLK50;                       -- use 50MHz as system clock
288
 
289 30 wfjm
  CLKDIV : clkdivce                     -- usec/msec clock divider -----------
290 2 wfjm
    generic map (
291
      CDUWIDTH => 6,
292
      USECDIV  => 50,
293
      MSECDIV  => 1000)
294
    port map (
295
      CLK     => CLK,
296
      CE_USEC => CE_USEC,
297
      CE_MSEC => CE_MSEC
298
    );
299
 
300 30 wfjm
  IOB_RS232 : bp_rs232_2l4l_iob         -- serport iob/switch ----------------
301 2 wfjm
    port map (
302
      CLK      => CLK,
303 12 wfjm
      RESET    => '0',
304 2 wfjm
      SEL      => SWI(0),
305
      RXD      => RXD,
306
      TXD      => TXD,
307
      CTS_N    => CTS_N,
308
      RTS_N    => RTS_N,
309
      I_RXD0   => I_RXD,
310
      O_TXD0   => O_TXD,
311
      I_RXD1   => I_FUSP_RXD,
312
      O_TXD1   => O_FUSP_TXD,
313
      I_CTS1_N => I_FUSP_CTS_N,
314
      O_RTS1_N => O_FUSP_RTS_N
315
    );
316
 
317 30 wfjm
  RLINK : rlink_sp1c                    -- rlink for serport -----------------
318 2 wfjm
    generic map (
319 27 wfjm
      BTOWIDTH     => 6,                --  64 cycles access timeout
320
      RTAWIDTH     => 12,
321 36 wfjm
      SYSID        => sysid_proj & sysid_board & sysid_vers,
322 16 wfjm
      IFAWIDTH     => 5,                --  32 word input fifo
323
      OFAWIDTH     => 5,                --  32 word output fifo
324
      ENAPIN_RLMON => sbcntl_sbf_rlmon,
325
      ENAPIN_RBMON => sbcntl_sbf_rbmon,
326
      CDWIDTH      => 13,
327 30 wfjm
      CDINIT       => sys_conf_ser2rri_cdinit,
328
      RBMON_AWIDTH => sys_conf_rbmon_awidth,
329
      RBMON_RBADDR => rbaddr_rbmon)
330 2 wfjm
    port map (
331
      CLK      => CLK,
332
      CE_USEC  => CE_USEC,
333
      CE_MSEC  => CE_MSEC,
334
      CE_INT   => CE_MSEC,
335
      RESET    => RESET,
336 16 wfjm
      ENAXON   => SWI(1),
337 30 wfjm
      ESCFILL  => '0',
338 2 wfjm
      RXSD     => RXD,
339
      TXSD     => TXD,
340
      CTS_N    => CTS_N,
341
      RTS_N    => RTS_N,
342
      RB_MREQ  => RB_MREQ,
343
      RB_SRES  => RB_SRES,
344
      RB_LAM   => RB_LAM,
345 9 wfjm
      RB_STAT  => RB_STAT,
346
      RL_MONI  => open,
347 16 wfjm
      SER_MONI => SER_MONI
348 2 wfjm
    );
349 16 wfjm
 
350 30 wfjm
  SYS70 : pdp11_sys70                   -- 1 cpu system ----------------------
351 2 wfjm
    port map (
352 30 wfjm
      CLK        => CLK,
353
      RESET      => RESET,
354
      RB_MREQ    => RB_MREQ,
355
      RB_SRES    => RB_SRES_CPU,
356
      RB_STAT    => RB_STAT,
357
      RB_LAM_CPU => RB_LAM(0),
358
      GRESET     => GRESET,
359
      CRESET     => CRESET,
360
      BRESET     => BRESET,
361
      CP_STAT    => CP_STAT,
362
      EI_PRI     => EI_PRI,
363
      EI_VECT    => EI_VECT,
364
      EI_ACKM    => EI_ACKM,
365
      ITIMER     => ITIMER,
366
      IB_MREQ    => IB_MREQ,
367
      IB_SRES    => IB_SRES_IBDR,
368
      MEM_REQ    => MEM_REQ,
369
      MEM_WE     => MEM_WE,
370
      MEM_BUSY   => MEM_BUSY,
371
      MEM_ACK_R  => MEM_ACK_R,
372
      MEM_ADDR   => MEM_ADDR,
373
      MEM_BE     => MEM_BE,
374
      MEM_DI     => MEM_DI,
375
      MEM_DO     => MEM_DO,
376
      DM_STAT_DP => DM_STAT_DP
377 2 wfjm
    );
378 30 wfjm
 
379
  IBDR_SYS : ibdr_maxisys               -- IO system -------------------------
380
    port map (
381
      CLK      => CLK,
382
      CE_USEC  => CE_USEC,
383
      CE_MSEC  => CE_MSEC,
384
      RESET    => GRESET,
385
      BRESET   => BRESET,
386
      ITIMER   => ITIMER,
387
      CPUSUSP  => CP_STAT.cpususp,
388
      RB_LAM   => RB_LAM(15 downto 1),
389
      IB_MREQ  => IB_MREQ,
390
      IB_SRES  => IB_SRES_IBDR,
391
      EI_ACKM  => EI_ACKM,
392
      EI_PRI   => EI_PRI,
393
      EI_VECT  => EI_VECT,
394
      DISPREG  => DISPREG);
395 28 wfjm
 
396 37 wfjm
  SRAMCTL: s3_sram_memctl               -- memory controller -----------------
397 2 wfjm
    port map (
398 30 wfjm
      CLK         => CLK,
399
      RESET       => GRESET,
400
      REQ         => MEM_REQ,
401
      WE          => MEM_WE,
402
      BUSY        => MEM_BUSY,
403
      ACK_R       => MEM_ACK_R,
404
      ACK_W       => open,
405
      ACT_R       => MEM_ACT_R,
406
      ACT_W       => MEM_ACT_W,
407
      ADDR        => MEM_ADDR(17 downto 0),
408
      BE          => MEM_BE,
409
      DI          => MEM_DI,
410
      DO          => MEM_DO,
411
      O_MEM_CE_N  => O_MEM_CE_N,
412
      O_MEM_BE_N  => O_MEM_BE_N,
413
      O_MEM_WE_N  => O_MEM_WE_N,
414
      O_MEM_OE_N  => O_MEM_OE_N,
415
      O_MEM_ADDR  => O_MEM_ADDR,
416
      IO_MEM_DATA => IO_MEM_DATA
417 2 wfjm
    );
418
 
419 30 wfjm
  LED_IO : ioleds_sp1c                  -- hio leds from serport -------------
420 2 wfjm
    port map (
421 29 wfjm
      SER_MONI => SER_MONI,
422
      IOLEDS   => DSP_DP
423
    );
424
 
425 30 wfjm
  ABCLKDIV <= SER_MONI.abclkdiv(11 downto 0) & '0' & SER_MONI.abclkdiv_f;
426
 
427
  HIO70 : pdp11_hio70                   -- hio from sys70 --------------------
428
    generic map (
429
      LWIDTH => LED'length,
430
      DCWIDTH => 2)
431 29 wfjm
    port map (
432 30 wfjm
      SEL_LED    => SWI(3),
433
      SEL_DSP    => SWI(5 downto 4),
434 29 wfjm
      MEM_ACT_R  => MEM_ACT_R,
435
      MEM_ACT_W  => MEM_ACT_W,
436
      CP_STAT    => CP_STAT,
437
      DM_STAT_DP => DM_STAT_DP,
438 30 wfjm
      ABCLKDIV   => ABCLKDIV,
439
      DISPREG    => DISPREG,
440
      LED        => LED,
441
      DSP_DAT    => DSP_DAT
442 29 wfjm
    );
443 30 wfjm
 
444
  HIO : sn_humanio_rbus                 -- hio manager -----------------------
445 29 wfjm
    generic map (
446 30 wfjm
      DEBOUNCE => sys_conf_hio_debounce,
447
      RB_ADDR  => rbaddr_hio)
448 29 wfjm
    port map (
449 30 wfjm
      CLK     => CLK,
450
      RESET   => RESET,
451
      CE_MSEC => CE_MSEC,
452
      RB_MREQ => RB_MREQ,
453
      RB_SRES => RB_SRES_HIO,
454
      SWI     => SWI,
455
      BTN     => BTN,
456
      LED     => LED,
457
      DSP_DAT => DSP_DAT,
458
      DSP_DP  => DSP_DP,
459
      I_SWI   => I_SWI,
460
      I_BTN   => I_BTN,
461
      O_LED   => O_LED,
462
      O_ANO_N => O_ANO_N,
463
      O_SEG_N => O_SEG_N
464 29 wfjm
    );
465 16 wfjm
 
466 30 wfjm
  RB_SRES_OR : rb_sres_or_2             -- rbus or ---------------------------
467 29 wfjm
    port map (
468 30 wfjm
      RB_SRES_1  => RB_SRES_CPU,
469
      RB_SRES_2  => RB_SRES_HIO,
470
      RB_SRES_OR => RB_SRES
471 29 wfjm
    );
472 30 wfjm
 
473 2 wfjm
end syn;

powered by: WebSVN 2.1.0

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