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