URL
https://opencores.org/ocsvn/w11/w11/trunk
Subversion Repositories w11
Compare Revisions
- This comparison shows the changes necessary to convert path
/w11/tags/w11a_V0.61/tools/tcl/rbemon
- from Rev 25 to Rev 26
- ↔ Reverse comparison
Rev 25 → Rev 26
/test_regs.tcl
0,0 → 1,98
# $Id: test_regs.tcl 516 2013-05-05 21:24:52Z mueller $ |
# |
# Copyright 2011-2013 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 |
# Software Foundation, either version 2, or at your option any later version. |
# |
# This program is distributed in the hope that it will be useful, but |
# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY |
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
# for complete details. |
# |
# Revision History: |
# Date Rev Version Comment |
# 2011-12-18 440 1.0.1 increase npoll in "CNTL.clr->0" test |
# 2011-04-02 375 1.0 Initial version |
# |
|
package provide rbemon 1.0 |
|
package require rutiltpp |
package require rutil |
package require rlink |
|
namespace eval rbemon { |
# |
# Basic tests with rbd_eyemon registers |
# |
proc test_regs {} { |
set esdval 0x00 |
set esdmsk [regbld rlink::STAT {stat -1}] |
# |
set errcnt 0 |
rlc errcnt -clear |
# |
rlc log "rbemon::test_regs - start" |
# |
#------------------------------------------------------------------------- |
rlc log " test 1a: write/read cntl" |
# ensure that last value 0x0 -> go=0 |
foreach val [list [regbld rbemon::CNTL ena01] [regbld rbemon::CNTL ena10] \ |
[regbld rbemon::CNTL go] 0x0 ] { |
rlc exec -estatdef $esdval $esdmsk \ |
-wreg em.cntl $val \ |
-rreg em.cntl -edata $val |
} |
# |
#------------------------------------------------------------------------- |
rlc log " test 1b: write/read rdiv" |
foreach val [list [regbld rbemon::RDIV {rdiv -1}] 0x0 ] { |
rlc exec -estatdef $esdval $esdmsk \ |
-wreg em.rdiv $val \ |
-rreg em.rdiv -edata $val |
} |
# |
#------------------------------------------------------------------------- |
rlc log " test 1c: write/read addr" |
set amax [regget rbemon::ADDR(addr) -1] |
foreach addr [list 0x1 $amax 0x0] { |
rlc exec -estatdef $esdval $esdmsk \ |
-wreg em.addr $addr \ |
-rreg em.addr -edata $addr |
} |
# |
#------------------------------------------------------------------------- |
rlc log " test 2: verify addr increments on data reads" |
foreach addr [list 0x0 0x011 [expr {$amax - 1}]] { |
rlc exec -estatdef $esdval $esdmsk \ |
-wreg em.addr $addr \ |
-rreg em.data \ |
-rreg em.addr -edata [expr {( $addr + 1 ) & $amax}] \ |
-rreg em.data \ |
-rreg em.addr -edata [expr {( $addr + 2 ) & $amax}] |
} |
# |
#------------------------------------------------------------------------- |
rlc log " test 3: verify rberr on DATA write and DATE read if in go state" |
rlc exec \ |
-wreg em.data 0x0000 -estat [regbld rlink::STAT rberr] $esdmsk \ |
-wreg em.cntl [regbld rbemon::CNTL go] -estat $esdval $esdmsk \ |
-rreg em.data -estat [regbld rlink::STAT rberr] $esdmsk |
# |
#------------------------------------------------------------------------- |
rlc log " test 4: verify that CNTL.clr returns to 0" |
set npoll 48 |
set edat {} |
set emsk {} |
for {set i 0} {$i < $npoll} {incr i} { lappend edat 0x0000 } |
for {set i 1} {$i < $npoll} {incr i} { lappend emsk 0xffff } |
rlc exec -estatdef $esdval $esdmsk \ |
-wreg em.cntl [regbld rbemon::CNTL clr] \ |
-rblk em.cntl $npoll -edata $edat $emsk |
# |
incr errcnt [rlc errcnt -clear] |
return $errcnt |
} |
} |
/test_rbtest_sim.tcl
0,0 → 1,101
# $Id: test_rbtest_sim.tcl 516 2013-05-05 21:24:52Z mueller $ |
# |
# Copyright 2011-2013 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 |
# Software Foundation, either version 2, or at your option any later version. |
# |
# This program is distributed in the hope that it will be useful, but |
# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY |
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
# for complete details. |
# |
# Revision History: |
# Date Rev Version Comment |
# 2011-04-17 376 1.0 Initial version |
# |
|
package provide rbemon 1.0 |
|
package require rbtest |
|
namespace eval rbemon { |
# |
# some simple tests against rbd_tester registers in sim mode |
# |
proc test_rbtest_sim {} { |
set esdval 0x00 |
set esdmsk [regbld rlink::STAT {stat -1}] |
# |
set errcnt 0 |
rlc errcnt -clear |
# |
rlc log "rbemon::test_rbtest_sim - start" |
# |
#------------------------------------------------------------------------- |
rlc log " test 1: write to te.data, verify that transitions seen" |
set bsize 25 |
# |
rlc exec -wreg em.rdiv 0 -estat $esdval $esdmsk |
rlc log " - data - 01 10 va00 va01 va02 va03 va04 va05 va06 va07 va08 va09" |
# |
# Note: avoid chars which will be escpaped, like 10000000, for this test |
# |
foreach {pat ena01 ena10 exp} \ |
[list [bvi b 00000000] 1 1 [list 0 0 0 0 0 0 0 0 1 0]\ |
[bvi b 00000001] 1 1 [list 1 1 0 0 0 0 0 0 1 0]\ |
[bvi b 00000010] 1 1 [list 0 1 1 0 0 0 0 0 1 0]\ |
[bvi b 00000100] 1 1 [list 0 0 1 1 0 0 0 0 1 0]\ |
[bvi b 00001000] 1 1 [list 0 0 0 1 1 0 0 0 1 0]\ |
[bvi b 00010000] 1 1 [list 0 0 0 0 1 1 0 0 1 0]\ |
[bvi b 00100000] 1 1 [list 0 0 0 0 0 1 1 0 1 0]\ |
[bvi b 01000000] 1 1 [list 0 0 0 0 0 0 1 1 1 0]\ |
[bvi b 11111111] 1 1 [list 1 0 0 0 0 0 0 0 0 0]\ |
[bvi b 11111110] 1 1 [list 0 1 0 0 0 0 0 0 0 0]\ |
[bvi b 01010101] 1 1 [list 1 1 1 1 1 1 1 1 1 0]\ |
[bvi b 00110011] 1 1 [list 1 0 1 0 1 0 1 0 1 0]\ |
[bvi b 00000001] 0 1 [list 0 1 0 0 0 0 0 0 0 0]\ |
[bvi b 00000001] 1 0 [list 1 0 0 0 0 0 0 0 1 0]\ |
[bvi b 01010101] 0 1 [list 0 1 0 1 0 1 0 1 0 0]\ |
[bvi b 01010101] 1 0 [list 1 0 1 0 1 0 1 0 1 0]\ |
] { |
set bdata {} |
for {set i 0} {$i < $bsize} {incr i} { |
lappend bdata [expr {( $pat << 8 ) | $pat}] |
} |
|
rbemon::clear |
rbemon::start $ena01 $ena10 |
rlc exec -wblk te.data $bdata -estat $esdval $esdmsk |
rbemon::stop |
|
set edata [rbemon::read 10] |
|
set oline " " |
set pafa "OK" |
append oline [pbvi b8 $pat] |
append oline [format " %d %d" $ena01 $ena10] |
for {set i 0} {$i < 10} {incr i} { |
set ebin [lindex $edata $i] |
set eexp [lindex $exp $i] |
append oline [format " %3d" $ebin] |
if {($eexp != 0 && $ebin < 2 * $bsize) || |
($eexp == 0 && $ebin >= 2 * $bsize)} { |
append oline "#" |
set pafa "FAIL" |
incr errcnt |
} else { |
append oline "!" |
} |
} |
append oline " " |
append oline $pafa |
rlc log $oline |
} |
# |
#------------------------------------------------------------------------- |
incr errcnt [rlc errcnt -clear] |
return $errcnt |
} |
} |
/util.tcl
0,0 → 1,106
# $Id: util.tcl 516 2013-05-05 21:24:52Z mueller $ |
# |
# Copyright 2011-2013 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 |
# Software Foundation, either version 2, or at your option any later version. |
# |
# This program is distributed in the hope that it will be useful, but |
# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY |
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
# for complete details. |
# |
# Revision History: |
# Date Rev Version Comment |
# 2011-04-17 376 1.0.1 add proc read |
# 2011-04-02 375 1.0 Initial version |
# |
|
package provide rbemon 1.0 |
|
package require rutil |
package require rlink |
|
namespace eval rbemon { |
# |
# setup register descriptions for rbd_eyemon |
# |
regdsc CNTL {ena01 3} {ena10 2} {clr 1} {go 0} |
regdsc RDIV {rdiv 7 8} |
regdsc ADDR {addr 9 10 "-"} {laddr 9 8} {waddr 0} |
# |
# setup: amap definitions for rbd_eyemon |
# |
proc setup {base} { |
rlc amap -insert em.cntl [expr {$base + 0x00}] |
rlc amap -insert em.rdiv [expr {$base + 0x01}] |
rlc amap -insert em.addr [expr {$base + 0x02}] |
rlc amap -insert em.data [expr {$base + 0x03}] |
} |
# |
# init: reset rbd_eyemon (stop monitor, clear rdiv and addr) |
# |
proc init {} { |
rlc exec \ |
-wreg em.cntl 0x0000 \ |
-wreg em.rdiv 0x0000 |
} |
# |
# clear: clear eyemon data |
# |
proc clear {} { |
set clrbit [regbld rbemon::CNTL clr] |
rlc exec -rreg em.cntl cur_cntl |
rlc exec -wreg em.cntl [expr {$cur_cntl | $clrbit}] |
set clrrun $clrbit |
set npoll 0 |
while {$clrrun != 0} { |
rlc exec -rreg em.cntl cur_cntl |
set clrrun [expr {$cur_cntl & $clrbit}] |
incr npoll 1 |
if {$npoll > 10} { |
error "-E: rbemon::clear failed, CNTL.clr didn't go back to 0" |
} |
} |
return "" |
} |
# |
# start: start the eyemon |
# |
proc start {{ena01 0} {ena10 0}} { |
if {$ena01 == 0 && $ena10 == 0} { |
set ena01 1 |
set ena10 1 |
} |
rlc exec -wreg em.cntl [regbld rbemon::CNTL go \ |
[list ena01 $ena01] [list ena10 $ena10] ] |
} |
# |
# stop: stop the eyemon |
# |
proc stop {} { |
rlc exec -wreg em.cntl 0x0000 |
} |
# |
# read: read eyemon data |
# |
proc read {{nval 512}} { |
set addr 0 |
set rval {} |
while {$nval > 0} { |
set nblk [expr {$nval << 1}] |
if {$nblk > 256} {set nblk 256} |
rlc exec \ |
-wreg em.addr $addr \ |
-rblk em.data $nblk rawdat |
foreach {dl dh} $rawdat { |
lappend rval [expr {( $dh << 16 ) | $dl}] |
} |
incr addr $nblk |
set nval [expr {$nval - ( $nblk >> 1 ) }] |
} |
return $rval |
} |
|
} |
/.cvsignore
0,0 → 1,106
pkgIndex.tcl |
.
Property changes :
Added: svn:ignore
## -0,0 +1,34 ##
+*.dep_ghdl
+*.dep_isim
+*.dep_xst
+work-obj93.cf
+*.vcd
+*.ghw
+*.sav
+*.tmp
+*.exe
+ise
+xflow.his
+*.ngc
+*.ncd
+*.pcf
+*.bit
+*.msk
+isim
+isim.log
+isim.wdb
+fuse.log
+*_[sft]sim.vhd
+*_tsim.sdf
+*_xst.log
+*_tra.log
+*_twr.log
+*_map.log
+*_par.log
+*_tsi.log
+*_pad.log
+*_bgn.log
+*_svn.log
+*_sum.log
+*_[dsft]sim.log
+pkgIndex.tcl