1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-28 12:58:31 +00:00

minor changes

- asm-11/lib/vec_devcatch.mac: use tti,tto instead of dlr,dlt
- ibdr_pc11: set rbuf.[rp]size0 (like dl11)
- librw11/Rw11Cntl{LP11,PC11}: use RtraceTools::
This commit is contained in:
wfjm
2019-04-28 12:57:18 +02:00
parent 1c9dbeb4ed
commit 42461113b0
13 changed files with 108 additions and 121 deletions

View File

@@ -1,4 +1,4 @@
-- $Id: ibdr_pc11.vhd 1137 2019-04-24 10:49:19Z mueller $
-- $Id: ibdr_pc11.vhd 1140 2019-04-28 10:21:21Z mueller $
--
-- Copyright 2009-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
@@ -27,6 +27,7 @@
--
-- Revision History:
-- Date Rev Version Comment
-- 2019-04-27 1140 1.4.2 set rbuf.[rp]size0
-- 2019-04-24 1137 1.4.1 add rcsr.ir,ique,iack and pcsr.ir fields (rem)
-- 2019-04-06 1126 1.4 for pc11_buf compat: pbuf.pval in bit 15 and 8;
-- move rbusy reporting from pbuf to rbuf register
@@ -84,6 +85,9 @@ architecture syn of ibdr_pc11 is
constant rcsr_ibf_renb : integer := 0;
constant rbuf_ibf_rbusy : integer := 15;
constant rbuf_ibf_rsize0: integer := 8;
constant rbuf_ibf_psize0: integer := 0;
subtype rbuf_ibf_data is integer range 7 downto 0;
constant pcsr_ibf_perr : integer := 15;
constant pcsr_ibf_prdy : integer := 7;
@@ -234,9 +238,8 @@ begin
when ibaddr_rbuf => -- RBUF -- reader data buffer --------
idout(r.rbuf'range) := r.rbuf;
if IB_MREQ.racc = '0' then -- cpu ---------------------
idout(rbuf_ibf_data) := r.rbuf;
if ibreq = '1' then -- !! PC11 is unusual !!
n.rdone := '0'; -- *any* read or write will clear done
n.rbuf := (others=>'0'); -- and the reader buffer
@@ -244,9 +247,11 @@ begin
end if;
else -- rri ---------------------
idout(rbuf_ibf_rbusy) := r.rbusy;
idout(rbuf_ibf_rbusy) := r.rbusy;
idout(rbuf_ibf_rsize0) := r.rdone; -- rbuf occupied when rdone=1
idout(rbuf_ibf_psize0) := not r.prdy; -- pbuf empty when prdy=1
if ibw0 = '1' then
n.rbuf := IB_MREQ.din(n.rbuf'range);
n.rbuf := IB_MREQ.din(rbuf_ibf_data);
n.rbusy := '0';
n.rdone := '1';
if r.rie = '1' then -- if interrupts on

View File

@@ -1,4 +1,4 @@
-- $Id: ibdr_pc11_buf.vhd 1137 2019-04-24 10:49:19Z mueller $
-- $Id: ibdr_pc11_buf.vhd 1139 2019-04-27 14:00:38Z mueller $
--
-- Copyright 2019- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
@@ -169,7 +169,7 @@ begin
EMPTY => RBUF_EMPTY,
FULL => RBUF_FULL,
SIZE => RBUF_SIZE
);
);
PBUF : fifo_simple_dram
generic map (
@@ -185,7 +185,7 @@ begin
EMPTY => PBUF_EMPTY,
FULL => PBUF_FULL,
SIZE => PBUF_SIZE
);
);
RRLIM : ib_rlim_slv
port map (
@@ -197,7 +197,7 @@ begin
STOP => BRESET,
DONE => open,
BUSY => RRLIM_BUSY
);
);
PRLIM : ib_rlim_slv
port map (
@@ -217,10 +217,10 @@ begin
if BRESET = '1' then -- BRESET is 1 for system and ibus reset
R_REGS <= regs_init; --
if RESET = '0' then -- if RESET=0 we do just an ibus reset
R_REGS.rerr <= N_REGS.rerr; -- keep RERR flag
R_REGS.rrlim <= N_REGS.rrlim; -- keep RRLIM flag
R_REGS.perr <= N_REGS.perr; -- keep PERR flag
R_REGS.prlim <= N_REGS.prlim; -- keep PRLIM flag
R_REGS.rerr <= N_REGS.rerr; -- keep RERR flag
R_REGS.rrlim <= N_REGS.rrlim; -- keep RRLIM field
R_REGS.perr <= N_REGS.perr; -- keep PERR flag
R_REGS.prlim <= N_REGS.prlim; -- keep PRLIM field
end if;
else
R_REGS <= N_REGS;
@@ -228,7 +228,7 @@ begin
end if;
end process proc_regs;
proc_next : process (R_REGS, IB_MREQ, EI_ACK_PTR, EI_ACK_PTP, RESET, BRESET,
proc_next : process (R_REGS, IB_MREQ, EI_ACK_PTR, EI_ACK_PTP, RESET,
RBUF_DO, RBUF_EMPTY, RBUF_FULL, RBUF_SIZE, RRLIM_BUSY,
PBUF_DO, PBUF_EMPTY, PBUF_FULL, PBUF_SIZE, PRLIM_BUSY)
variable r : regs_type := regs_init;
@@ -448,7 +448,7 @@ begin
when others => null;
end case;
end if;
end if;
-- other state changes
if EI_ACK_PTR = '1' then
@@ -477,8 +477,8 @@ begin
n.prdy := '0'; -- clear ready
n.pintreq := '0'; -- clear interrupt
else -- not busy and fifo not full
n.prdy := '1'; -- set done
if r.prdy='0' and -- done going 0->1
n.prdy := '1'; -- set ready
if r.prdy='0' and -- ready going 0->1
r.perr='0' and r.pie='1' then -- and err=0 and interrupt enabled
n.pintreq := '1'; -- request interrupt
end if;