mirror of
https://github.com/wfjm/w11.git
synced 2026-02-26 09:03:45 +00:00
ibdr_lp11: move valid bit to msb
This commit is contained in:
@@ -48,6 +48,7 @@ The full set of tests is only run for tagged releases.
|
||||
- rbd_rbmon: more robust ack,err trace when busy
|
||||
- rbd_tester: use now fifo_simple_dram
|
||||
- ibd_ibtst: rename dly[rw]->bsy[rw]; datto for write; add datab
|
||||
- ibdr_lp11: move valid bit to msb of buf (for ibdr_lp11_buf compatibility)
|
||||
- sys_w11a_s3: set BTOWIDTH 7 (was 6, must be > vmbox atowidth (6))
|
||||
- pdp11_sys70: instantiate ibd_ibtst (when sys_conf_ibtst = true)
|
||||
- ibdr_maxisys,sys_conf ready for buffered DL,PC,LP and dz11,ibtst
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-- $Id: ibdr_lp11.vhd 984 2018-01-02 20:56:27Z mueller $
|
||||
-- $Id: ibdr_lp11.vhd 1121 2019-03-11 08:59:12Z mueller $
|
||||
--
|
||||
-- Copyright 2009-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
-- Copyright 2009-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
--
|
||||
-- This program is free software; you may redistribute and/or modify it under
|
||||
-- the terms of the GNU General Public License as published by the Free
|
||||
@@ -18,7 +18,7 @@
|
||||
-- Dependencies: -
|
||||
-- Test bench: -
|
||||
-- Target Devices: generic
|
||||
-- Tool versions: ise 8.2-14.7; viv 2014.4; ghdl 0.18-0.31
|
||||
-- Tool versions: ise 8.2-14.7; viv 2014.4-2018.3; ghdl 0.18-0.35
|
||||
--
|
||||
-- Synthesized (xst):
|
||||
-- Date Rev ise Target flop lutl lutm slic t peri
|
||||
@@ -27,6 +27,8 @@
|
||||
--
|
||||
-- Revision History:
|
||||
-- Date Rev Version Comment
|
||||
-- 2019-03-10 1121 1.3.2 ignore buf write if csr.err=1 for lp11_buf compat
|
||||
-- 2019-03-03 1118 1.3.1 VAL in bit 15 and 8 for lp11_buf compat
|
||||
-- 2013-05-04 515 1.3 BUGFIX: r.err was cleared in racc read !
|
||||
-- 2011-11-18 427 1.2.2 now numeric_std clean
|
||||
-- 2010-10-23 335 1.2.1 rename RRI_LAM->RB_LAM;
|
||||
@@ -74,7 +76,8 @@ architecture syn of ibdr_lp11 is
|
||||
constant csr_ibf_err : integer := 15;
|
||||
constant csr_ibf_done : integer := 7;
|
||||
constant csr_ibf_ie : integer := 6;
|
||||
constant buf_ibf_val : integer := 8;
|
||||
constant buf_ibf_val : integer := 15;
|
||||
constant buf_ibf_val8: integer := 8;
|
||||
|
||||
type regs_type is record -- state registers
|
||||
ibsel : slbit; -- ibus select
|
||||
@@ -160,30 +163,37 @@ begin
|
||||
n.intreq := '0';
|
||||
end if;
|
||||
end if;
|
||||
else -- rri
|
||||
else -- rri
|
||||
if ibw1 = '1' then
|
||||
n.err := IB_MREQ.din(csr_ibf_err);
|
||||
if IB_MREQ.din(csr_ibf_err) = '1' then
|
||||
n.done := '1';
|
||||
n.intreq := '0'; -- clear irupt (like simh!)
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
when ibaddr_buf => -- BUF -- data buffer ----------------
|
||||
if IB_MREQ.racc = '0' then -- cpu
|
||||
if ibw0 = '1' then
|
||||
n.buf := IB_MREQ.din(n.buf'range);
|
||||
if r.err = '0' then -- if online (handle via rbus)
|
||||
ilam := '1'; -- request attention
|
||||
n.done := '0'; -- clear done
|
||||
n.intreq := '0'; -- clear interrupt
|
||||
else -- if offline (discard locally)
|
||||
n.done := '1'; -- set done
|
||||
if r.ie = '1' then -- if interrupts enabled
|
||||
n.intreq := '1'; -- request interrupt
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
else -- rri
|
||||
if r.done = '1' then -- ignore buf write when done=0
|
||||
n.buf := IB_MREQ.din(n.buf'range);
|
||||
if r.err = '0' then -- if online (handle via rbus)
|
||||
ilam := '1'; -- request attention
|
||||
n.done := '0'; -- clear done
|
||||
n.intreq := '0'; -- clear interrupt
|
||||
else -- if offline (discard locally)
|
||||
n.done := '1'; -- set done
|
||||
if r.ie = '1' then -- if interrupts enabled
|
||||
n.intreq := '1'; -- request interrupt
|
||||
end if;
|
||||
end if; -- r.err = '0'
|
||||
end if; -- r.done = '1'
|
||||
end if; -- ibw0 = '1'
|
||||
else -- rri
|
||||
idout(r.buf'range) := r.buf;
|
||||
idout(buf_ibf_val) := not r.done;
|
||||
idout(buf_ibf_val8) := not r.done;
|
||||
if ibrd = '1' then
|
||||
n.done := '1';
|
||||
if r.ie = '1' then
|
||||
|
||||
21
tools/asm-11/lib/defs_lp.mac
Normal file
21
tools/asm-11/lib/defs_lp.mac
Normal file
@@ -0,0 +1,21 @@
|
||||
; $Id: defs_lp.mac 1122 2019-03-17 08:15:42Z mueller $
|
||||
; Copyright 2019- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see License.txt in $RETROBASE directory
|
||||
;
|
||||
; definitions for LP11 controler (as in defs_lp.das)
|
||||
;
|
||||
; vector address/priority definition
|
||||
;
|
||||
va.lp=000200
|
||||
vp.lp=4
|
||||
;
|
||||
; register addresses
|
||||
;
|
||||
lp.csr=177514
|
||||
lp.buf=177516
|
||||
;
|
||||
; symbol definitions for lp.csr
|
||||
;
|
||||
lp.err=100000
|
||||
lp.don=000200
|
||||
lp.ie=000100
|
||||
7
tools/oskit/hook/hook_ibmon_lpa.tcl
Normal file
7
tools/oskit/hook/hook_ibmon_lpa.tcl
Normal file
@@ -0,0 +1,7 @@
|
||||
# $Id: hook_ibmon_lpa.tcl 1122 2019-03-17 08:15:42Z mueller $
|
||||
puts "hook: start ibmon for lpa"
|
||||
package require ibd_ibmon
|
||||
ibd_ibmon::stop
|
||||
cpu0 cp -wibr im.lolim [cpu0 imap lpa.csr] \
|
||||
-wibr im.hilim [cpu0 imap lpa.buf]
|
||||
ibd_ibmon::start
|
||||
4
tools/oskit/hook/hook_lp11_trace.tcl
Normal file
4
tools/oskit/hook/hook_lp11_trace.tcl
Normal file
@@ -0,0 +1,4 @@
|
||||
# $Id: hook_lp11_trace.tcl 1121 2019-03-11 08:59:12Z mueller $
|
||||
puts "hook: trace LP11 to rlc.log"
|
||||
rlc set logfile rlc.log
|
||||
cpu0lpa set trace 2
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: defs.tcl 1116 2019-03-03 08:24:07Z mueller $
|
||||
# $Id: defs.tcl 1121 2019-03-11 08:59:12Z mueller $
|
||||
#
|
||||
# Copyright 2014-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
#
|
||||
@@ -13,7 +13,7 @@
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2019-03-02 1116 1.0.7 define INIT bits
|
||||
# 2019-03-10 1121 1.0.7 define INIT bits; define ANUM
|
||||
# 2018-09-09 1044 1.0.6 update defs kw11p, literals for KW11P_CSR(rate)
|
||||
# 2017-02-17 851 1.0.5 defs for auxilliary devices (kw11l,kw11p,iist)
|
||||
# 2016-12-30 834 1.0.4 fix typo in regmap_add for SDR's
|
||||
@@ -113,6 +113,9 @@ namespace eval rw11 {
|
||||
#
|
||||
rw11util::regmap_add rw11 cntrl {?? CNTRL}
|
||||
#
|
||||
# define attn channel for W11 CPU cluster
|
||||
variable ANUM 0
|
||||
#
|
||||
# other w11a definitions ---------------------------------------------------
|
||||
#
|
||||
# KW11-L line clock
|
||||
|
||||
Reference in New Issue
Block a user