OpenCores
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.