mirror of
https://github.com/wfjm/w11.git
synced 2026-04-07 22:50:38 +00:00
Miscellaneous fixes and changes
- Makefile: add all_tcl to all; use njobihtm - rlink_core: BUGFIX: correct re-transmit after nak aborts - tb_rlink_stim.dat: start section B (error aborts) and C (retransmit) - ticonv_rri: use 'rlc rawwblk' instead of 'rlc rawio -wblk' - rbmoni/test_regs.tcl: add data/addr logic tests
This commit is contained in:
21
Makefile
21
Makefile
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile 810 2016-10-02 16:51:12Z mueller $
|
||||
# $Id: Makefile 893 2017-05-05 17:43:53Z mueller $
|
||||
#
|
||||
# 'Meta Makefile' for whole retro project
|
||||
# allows to make all synthesis targets
|
||||
@@ -6,6 +6,7 @@
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2017-05-01 891 1.2.7 add all_tcl to all; use njobihtm
|
||||
# 2016-10-01 810 1.2.6 move component tests to SIM_viv when vivado used
|
||||
# 2016-07-10 785 1.2.5 re-enable rtl/sys_gen/tst_sram/nexys4 (ok in 2016.2)
|
||||
# 2016-06-05 772 1.2.4 add vmfsum,imfsum targets
|
||||
@@ -141,13 +142,13 @@ SIM_viv += rtl/sys_gen/w11a/arty_bram/tb
|
||||
default :
|
||||
@echo "No default action defined:"
|
||||
@echo " for VHDL simulation/synthesis use:"
|
||||
@echo " make -j `nproc` all"
|
||||
@echo " make -j `nproc` all_ise"
|
||||
@echo " make -j `nproc` all_viv"
|
||||
@echo " make -j `nproc` all_sim_ise"
|
||||
@echo " make -j `nproc` all_syn_ise"
|
||||
@echo " make -j `nproc` all_sim_viv"
|
||||
@echo " make -j 1 all_syn_viv"
|
||||
@echo " make -j `njobihtm -m=2G` all"
|
||||
@echo " make -j `njobihtm -m=1G` all_ise"
|
||||
@echo " make -j `njobihtm -m=2G` all_viv"
|
||||
@echo " make -j `njobihtm` all_sim_ise"
|
||||
@echo " make -j `njobihtm -m=1G` all_syn_ise"
|
||||
@echo " make -j `njobihtm` all_sim_viv"
|
||||
@echo " make -j `njobihtm -m=2G` all_syn_viv"
|
||||
@echo " make vmfsum"
|
||||
@echo " make imfsum"
|
||||
@echo " make clean"
|
||||
@@ -160,12 +161,12 @@ default :
|
||||
@echo " make clean_sim_viv_tmp"
|
||||
@echo " make clean_syn_viv_tmp"
|
||||
@echo " for tool/documentation generation use:"
|
||||
@echo " make -j `nproc` all_lib"
|
||||
@echo " make -j `njobihtm` all_lib"
|
||||
@echo " make clean_lib"
|
||||
@echo " make all_tcl"
|
||||
@echo " make all_dox"
|
||||
#
|
||||
all : all_ise all_viv all_lib
|
||||
all : all_ise all_viv all_lib all_tcl
|
||||
all_ise : all_sim_ise all_syn_ise
|
||||
all_viv : all_sim_viv all_syn_viv
|
||||
#
|
||||
|
||||
@@ -25,6 +25,12 @@ The full set of tests is only run for tagged releases.
|
||||
- RSX11-M uses buffer chaining, will not work
|
||||
|
||||
### Summary
|
||||
- Miscellaneous fixes and changes
|
||||
- Makefile: add all_tcl to all; use njobihtm
|
||||
- rlink_core: BUGFIX: correct re-transmit after nak aborts
|
||||
- tb_rlink_stim.dat: start section B (error aborts) and C (retransmit)
|
||||
- ticonv_rri: use 'rlc rawwblk' instead of 'rlc rawio -wblk'
|
||||
- rbmoni/test_regs.tcl: add data/addr logic tests
|
||||
- tools for setting up ethernet bridge and tap
|
||||
- add ip_create_br: create bride and convert default ethernet interface
|
||||
- add ip_create_tap: create use-mode tap device
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-- $Id: rlink_core.vhd 799 2016-08-21 09:20:19Z mueller $
|
||||
-- $Id: rlink_core.vhd 892 2017-05-01 17:57:34Z mueller $
|
||||
--
|
||||
-- Copyright 2007-2016 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
-- Copyright 2007-2017 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
|
||||
@@ -28,10 +28,12 @@
|
||||
-- tb/tb_rlink_tba_ttcombo
|
||||
--
|
||||
-- Target Devices: generic
|
||||
-- Tool versions: ise 8.2-14.7; viv 2014.4-2016.2; ghdl 0.18-0.33
|
||||
-- Tool versions: ise 8.2-14.7; viv 2014.4-2017.1; ghdl 0.18-0.34
|
||||
--
|
||||
-- Synthesized (xst):
|
||||
-- Date Rev ise Target flop lutl lutm slic t peri
|
||||
-- 2017-05-01 892 14.7 131013 xc6slx16-2 298 709 20 226 s 7.3
|
||||
-- 2016-08-21 799 14.7 131013 xc6slx16-2 297 717 20 227 s 7.2 ?incr?
|
||||
-- 2015-12-26 718 14.7 131013 xc6slx16-2 312 460 16 150 s 7.0 ver 4.1
|
||||
-- 2014-12-20 614 14.7 131013 xc6slx16-2 310 453 16 146 s 6.8 ver 4.0
|
||||
-- 2014-08-13 581 14.7 131013 xc6slx16-2 160 230 0 73 s 6.0 ver 3.0
|
||||
@@ -39,6 +41,7 @@
|
||||
--
|
||||
-- Revision History:
|
||||
-- Date Rev Version Comment
|
||||
-- 2017-05-01 892 4.2 BUGFIX: correct re-transmit after nak aborts
|
||||
-- 2016-08-18 799 4.1.3 remove 'assert false' from report statements
|
||||
-- 2016-05-22 767 4.1.2 don't init N_REGS (vivado fix for fsm inference)
|
||||
-- 2015-12-26 718 4.1.1 add proc_sres: strip 'x' from RB_SRES.dout
|
||||
@@ -292,6 +295,7 @@ architecture syn of rlink_core is
|
||||
rtaddra : slv(RTAWIDTH-1 downto 0); -- rtbuf port a addr (write pointer)
|
||||
rtaddra_red : slbit; -- rtaddra red (at max)
|
||||
rtaddra_bad : slbit; -- rtaddra bad (inc beyond max)
|
||||
rtaddra_zero : slbit; -- rtaddra was 0 in last cycle
|
||||
rtaddrb : slv(RTAWIDTH-1 downto 0); -- rtbuf port b addr (aux pointer)
|
||||
rtaddrb_red : slbit; -- rtaddrb red (at max)
|
||||
rtaddrb_bad : slbit; -- rtaddrb bad (inc beyond max)
|
||||
@@ -320,9 +324,9 @@ architecture syn of rlink_core is
|
||||
'0','0', -- cmdseen,doretra
|
||||
(others=>'0'), -- dinl
|
||||
rtaddr_zero, -- rtaddra
|
||||
'0','0', -- rtaddra_red, rtaddra_bad
|
||||
'0','0','0', -- rtaddra_(red|bad|zero)
|
||||
rtaddr_zero, -- rtaddrb
|
||||
'0','0', -- rtaddrb_red, rtaddrb_bad
|
||||
'0','0', -- rtaddrb_(red,bad)
|
||||
'0','0' -- moneop,monattn
|
||||
);
|
||||
|
||||
@@ -711,8 +715,16 @@ begin
|
||||
ival := '1';
|
||||
if RL_HOLD = '0' then -- wait for accept
|
||||
if r.doretra = '1' then -- if retra request
|
||||
irtreb := '1'; -- request first byte
|
||||
n.state := sl_txrtbuf; -- next: send rtbuf
|
||||
if r.rtaddra_zero = '1' then -- nothing to send
|
||||
if r.nakdone = '0' then -- if no nak active
|
||||
n.state := sl_txeop; -- next: send eop
|
||||
else
|
||||
n.state := sl_txnak; -- next: send nak
|
||||
end if;
|
||||
else -- something to send
|
||||
irtreb := '1'; -- request first byte
|
||||
n.state := sl_txrtbuf; -- next: send rtbuf
|
||||
end if;
|
||||
else -- or normal command
|
||||
n.state := sl_rxcmd; -- next: read first command
|
||||
end if;
|
||||
@@ -730,7 +742,11 @@ begin
|
||||
ido := '0' & "10" & (not r.nakcode) & r.nakcode;
|
||||
ival := '1';
|
||||
if RL_HOLD = '0' then -- wait for accept
|
||||
n.state := sl_rxeop; -- next: wait for eop
|
||||
if r.doretra = '0' then -- if no nak active
|
||||
n.state := sl_rxeop; -- next: wait for eop
|
||||
else -- else of nak active
|
||||
n.state := sl_txeop; -- next: send eop
|
||||
end if;
|
||||
end if;
|
||||
|
||||
when sl_rxeop => -- sl_rxeop: wait for eop ------------
|
||||
@@ -756,7 +772,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
|
||||
when sl_txeop => -- sl_txeop: send eop ----------------
|
||||
n.state := sl_txeop; -- needed to prevent vivado iSTATE
|
||||
ido := c_rlink_dat_eop; -- send eop character
|
||||
@@ -1245,6 +1261,11 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
if r.rtaddra = rtaddr_zero then
|
||||
n.rtaddra_zero := '1';
|
||||
else
|
||||
n.rtaddra_zero := '0';
|
||||
end if;
|
||||
|
||||
-- addrb logic (write and read pointer)
|
||||
if addrb_load = '1' then -- load
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# $Id: tb_rlink_stim.dat 617 2014-12-21 14:18:53Z mueller $
|
||||
# $Id: tb_rlink_stim.dat 892 2017-05-01 17:57:34Z mueller $
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2017-05-01 892 4.1 start section B (error aborts) and C (retransmit)
|
||||
# 2014-12-21 617 4.0.1 rlink signals now tout and nak on separate stat bits
|
||||
# 2014-10-12 596 4.0 rewritten for rlink v4
|
||||
# ... all history v1->v3 droped
|
||||
@@ -23,6 +24,7 @@
|
||||
.rbmon 1
|
||||
#
|
||||
C =============================================================================
|
||||
C Section A: Verify basic functionality
|
||||
C Section A1: Basic framing
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test A1.1: empty frame
|
||||
@@ -66,21 +68,6 @@ txeop
|
||||
#
|
||||
.iowt 10
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test A1.4: frame error nak abort: sop in active frame
|
||||
C tx: sop - sop - eop
|
||||
C rx: sop - nak nakcode(010) - eop
|
||||
rxsop
|
||||
rxnak
|
||||
rx8 10101010 -- 10 101 010
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
txsop
|
||||
txeop
|
||||
#
|
||||
.iowt 10
|
||||
#
|
||||
C =============================================================================
|
||||
C Section A2: Basic commands: attn, wreg, rreg
|
||||
C -----------------------------------------------------------------------------
|
||||
@@ -105,7 +92,7 @@ txeop
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test A2.2: wreg(data) -> shows that rlink can write a register
|
||||
C data := x"1111"
|
||||
C wreg: tx: sop - cmd(wreg,3) addr(00f1) dl dh ccrc - eop
|
||||
C wreg: tx: sop - cmd(wreg,3) addr(ffe4) dl dh ccrc - eop
|
||||
C rx: sop - cmd(wreg,3) stat crc - eop
|
||||
#
|
||||
rxsop
|
||||
@@ -121,7 +108,7 @@ txeop
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test A2.3: rreg(data) -> shows that rlink can read back a register
|
||||
C data -> x"1111"
|
||||
C rreg: tx: sop - cmd(rreg,4) addr(00f1) ccrc - eop
|
||||
C rreg: tx: sop - cmd(rreg,4) addr(ffe4) ccrc - eop
|
||||
C rx: sop - cmd(rreg,4) dl dh stat crc - eop
|
||||
#
|
||||
rxsop
|
||||
@@ -158,7 +145,7 @@ eop
|
||||
.iowt 10
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test A3.3: check stat write/read (and that RB_STAT is retured)
|
||||
C Test A3.3: check stat write/read (and that RB_STAT is returned)
|
||||
#
|
||||
sop
|
||||
wreg 2 x"ffe1" x"ffff" 00000000 -- stat := ffff
|
||||
@@ -639,7 +626,173 @@ attn 2 x"0004" 00000000 -- attn >? 0004
|
||||
eop
|
||||
.iowt 10
|
||||
#
|
||||
#==============================================================================
|
||||
C =============================================================================
|
||||
C Section B: verify command aborts (ending in nak - nakcode - eop)
|
||||
#
|
||||
# nakcode_ccrc : "000" -- cmd crc error --
|
||||
# nakcode_dcrc : "001" -- data crc error --
|
||||
# nakcode_frame : "010" -- framing error -- in B1.*
|
||||
# nakcode_unused : "011" -- <unused code> --
|
||||
# nakcode_cmd : "100" -- bad cmd -- in B2.*
|
||||
# nakcode_cnt : "101" -- bad cnt --
|
||||
# nakcode_rtovfl : "110" -- rtbuf ovfl --
|
||||
# nakcode_rtwblk : "111" -- rtbuf ovfl in wblk --
|
||||
#
|
||||
C =============================================================================
|
||||
C Test B1.1: frame error nak abort: sop-sop
|
||||
C tx: sop - sop - eop
|
||||
C rx: sop - nak nakcode(010) - eop
|
||||
rxsop
|
||||
rxnak
|
||||
rx8 10101010 -- 10 101 010
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
txsop
|
||||
txeop
|
||||
#
|
||||
.iowt 10
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test B1.2: frame error nak abort: sop-cmd-sop-cmd-eop
|
||||
C tx: sop - cmd(wreg,3) addr(ffe4) dl dh ccrc -
|
||||
C sop - cmd(wreg,3) addr(ffe4) dl dh ccrc - eop
|
||||
C rx: sop - cmd(wreg,3) stat crc - nak nakcode(010) - eop
|
||||
C Note: that second write isn't executed is verified in second next test
|
||||
rxsop
|
||||
rxcs wreg,3 00000000
|
||||
rxnak
|
||||
rx8 10101010 -- 10 101 010
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
txcad wreg,3 x"ffe4" x"2222"
|
||||
txsop
|
||||
txcad wreg,4 x"ffe4" x"3333"
|
||||
txeop
|
||||
#
|
||||
.iowt 20
|
||||
#
|
||||
C =============================================================================
|
||||
C Test B2.1: bad command nak abort: 0xff as 1st command
|
||||
C tx: sop - 0xff - eop
|
||||
C rx: sop - nak nakcode(100) - eop
|
||||
rxsop
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
tx8 11111111
|
||||
txeop
|
||||
#
|
||||
.iowt 10
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test B2.2: bad command nak abort: 0xff as 2nd command
|
||||
C tx: sop - cmd(rreg,5) addr(ffe4) ccrc - 0xff - eop
|
||||
C rx: sop - cmd(rreg,5) dl dh stat crc - nak nakcode(100) - eop
|
||||
C Note: check with read back value that abort 2 tests ago did work
|
||||
rxsop
|
||||
rxcds rreg,5 x"2222" 00000000
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
txca rreg,5 x"ffe4"
|
||||
tx8 11111111
|
||||
txeop
|
||||
#
|
||||
.iowt 10
|
||||
#
|
||||
C =============================================================================
|
||||
C Section C: verify re-transmit logic
|
||||
C Section C1: re-transmit after successfull command list
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test C1.1: re-transmit after wreg-rreg
|
||||
C - execute command --------------------
|
||||
sop
|
||||
wreg 0 x"ffe4" x"beaf" 00000000 -- data := beaf
|
||||
rreg 1 x"ffe4" x"beaf" 00000000 -- data >? beaf
|
||||
eop
|
||||
.iowt 10
|
||||
#
|
||||
C - do re-transmit ---------------------
|
||||
rxsop
|
||||
rxcs wreg,0 00000000
|
||||
rxcds rreg,1 x"beaf" 00000000
|
||||
rxeop
|
||||
#
|
||||
txnak
|
||||
#
|
||||
.iowt 20
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test C1.2: check that re-transmit buffer is kept after empty sop-eop frame
|
||||
C - send sop-eop -----------------------
|
||||
sop
|
||||
eop
|
||||
.iowt 20
|
||||
#
|
||||
C - do re-transmit (expect last one) ---
|
||||
rxsop
|
||||
rxcs wreg,0 00000000
|
||||
rxcds rreg,1 x"beaf" 00000000
|
||||
rxeop
|
||||
#
|
||||
txnak
|
||||
#
|
||||
.iowt 20
|
||||
#
|
||||
C =============================================================================
|
||||
C Section C2: re-transmit after aborted command list
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test C2.1: re-transmit after bad cmd abort (100): 0xff as 1st command
|
||||
C - execute command --------------------
|
||||
rxsop
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
tx8 11111111
|
||||
txeop
|
||||
.iowt 10
|
||||
#
|
||||
C - do re-transmit ---------------------
|
||||
rxsop
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txnak
|
||||
.iowt 20
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Test C2.2: re-transmit after bad cmd abort (100): 0xff as 2nd command
|
||||
C - execute command --------------------
|
||||
rxsop
|
||||
rxcs wreg,3 00000000
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txsop
|
||||
txcad wreg,3 x"ffe4" x"beaf"
|
||||
tx8 11111111
|
||||
txeop
|
||||
.iowt 10
|
||||
#
|
||||
C - do re-transmit ---------------------
|
||||
rxsop
|
||||
rxcs wreg,3 00000000
|
||||
rxnak
|
||||
rx8 10011100 -- 10 011 100
|
||||
rxeop
|
||||
#
|
||||
txnak
|
||||
.iowt 20
|
||||
#
|
||||
C -----------------------------------------------------------------------------
|
||||
C Run down and Finish
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl -w
|
||||
# $Id: ticonv_rri 832 2016-12-28 09:49:47Z mueller $
|
||||
# $Id: ticonv_rri 891 2017-05-01 13:46:31Z mueller $
|
||||
#
|
||||
# Copyright 2014-2016 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
# Copyright 2014-2017 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
|
||||
@@ -14,6 +14,7 @@
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2017-05-01 891 1.2.2 use 'rlc rawwblk' instead of 'rlc rawio -wblk'
|
||||
# 2016-08-07 795 1.2.1 avoid GetOptions =f (bug in perl v5.22.1)
|
||||
# 2015-04-03 661 1.2 adopt to new stat checking and mask polarity
|
||||
# 2015-01-31 640 1.1.2 use 'rlc get|set' instead of 'rlc config'
|
||||
@@ -187,7 +188,7 @@ while (1) {
|
||||
my $delay = cget_gdat(16,10,1,256);
|
||||
cmdlist_do();
|
||||
print "rlc log \".wait $delay\"\n";
|
||||
print "rlc rawio -wblk {";
|
||||
print "rlc rawwblk {";
|
||||
for (my $i = 0; $i < $delay; $i++) {
|
||||
printf " 0%3.3o", 0x00;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: test_regs.tcl 873 2017-04-14 11:56:29Z mueller $
|
||||
# $Id: test_regs.tcl 888 2017-04-30 13:06:51Z mueller $
|
||||
#
|
||||
# Copyright 2011-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
#
|
||||
@@ -13,6 +13,7 @@
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2017-04-29 888 3.1 add data/addr logic tests
|
||||
# 2017-04-13 873 3.0 adopt to revised interface
|
||||
# 2015-04-03 661 2.1 drop estatdef (stat err check default now)
|
||||
# 2014-12-27 622 2.0 rbd_rbmon reorganized, supports now 16 bit addresses
|
||||
@@ -28,7 +29,7 @@ package require rlink
|
||||
|
||||
namespace eval rbmoni {
|
||||
#
|
||||
# Basic tests with rbtester registers
|
||||
# Basic access tests for rbmoni registers
|
||||
#
|
||||
proc test_regs {} {
|
||||
#
|
||||
@@ -38,7 +39,8 @@ namespace eval rbmoni {
|
||||
rlc log "rbmoni::test_regs - start"
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " test 1: write/read cntl"
|
||||
rlc log " A basic register access tests -----------------------------"
|
||||
rlc log " A1: write/read cntl---------------------------------"
|
||||
# test that starting caputes option flags, and that stoping keeps them
|
||||
rlc exec \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STA"}] \
|
||||
@@ -55,7 +57,7 @@ namespace eval rbmoni {
|
||||
-rreg rm.cntl -edata [regbld rbmoni::CNTL rcolw rcolr]
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " test 2: write cntl, read stat"
|
||||
rlc log " A2: write cntl, read stat --------------------------"
|
||||
# test that susp/run follow functions set to cntl
|
||||
rlc exec \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STA"}] \
|
||||
@@ -98,7 +100,7 @@ namespace eval rbmoni {
|
||||
set amax [expr {( 512 << $bsize ) - 1}]
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " test 3: write/read hilim/lolim"
|
||||
rlc log " A3: write/read hilim/lolim -------------------------"
|
||||
foreach {lolim hilim} {0xffff 0x0000 \
|
||||
0x0000 0xfffb} {
|
||||
rlc exec \
|
||||
@@ -107,7 +109,8 @@ namespace eval rbmoni {
|
||||
}
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " test 4: write/read addr"
|
||||
rlc log " A4: test addr --------------------------------------"
|
||||
rlc log " A4.1: write/read addr when stopped -----------------"
|
||||
foreach {laddr waddr} [list 0x0000 0 0x0000 3 $amax 0 $amax 3] {
|
||||
set addr [regbld rbmoni::ADDR [list laddr $laddr] [list waddr $waddr]]
|
||||
rlc exec \
|
||||
@@ -116,13 +119,43 @@ namespace eval rbmoni {
|
||||
}
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " test 5: verify that starting clears addr"
|
||||
rlc log " A4.2: verify that starting clears addr -------------"
|
||||
rlc exec \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STO"}] \
|
||||
-wreg rm.addr [regbld rbmoni::ADDR [list laddr $amax]] \
|
||||
-rreg rm.addr -edata [regbld rbmoni::ADDR [list laddr $amax]] \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STA"}] \
|
||||
-rreg rm.addr -edata 0x00
|
||||
-rreg rm.addr -edata 0x00 \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STO"}]
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " A4.3: test err when started and addr written -------"
|
||||
rlc exec \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STA"}] \
|
||||
-wreg rm.addr 0x100 -estaterr \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STO"}]
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " A5: test data --------------------------------------"
|
||||
rlc log " A5.1: when stopped ---------------------------------"
|
||||
# stop, set addr, and four times data, check addr
|
||||
# at 5th data read waddr goes 0 and laddr incs
|
||||
rlc exec \
|
||||
-wreg rm.cntl [regbld rbmoni::CNTL {func "STO"}] \
|
||||
-wreg rm.addr [regbld rbmoni::ADDR {laddr 010} {waddr 0}] \
|
||||
-rreg rm.data \
|
||||
-rreg rm.addr -edata [regbld rbmoni::ADDR {laddr 010} {waddr 001}] \
|
||||
-rreg rm.data \
|
||||
-rreg rm.addr -edata [regbld rbmoni::ADDR {laddr 010} {waddr 002}] \
|
||||
-rreg rm.data \
|
||||
-rreg rm.addr -edata [regbld rbmoni::ADDR {laddr 010} {waddr 003}] \
|
||||
-rreg rm.data \
|
||||
-rreg rm.addr -edata [regbld rbmoni::ADDR {laddr 011} {waddr 000}]
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log " A5.2: test err when written ------------------------"
|
||||
rlc exec -wreg rm.data 0x100 -estaterr
|
||||
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
rlc log "rbmoni::test_regs - cleanup"
|
||||
|
||||
Reference in New Issue
Block a user