diff options
Diffstat (limited to 'src/tcl')
-rw-r--r-- | src/tcl/bitsbytes.tcl | 8 | ||||
-rw-r--r-- | src/tcl/memory.tcl | 37 |
2 files changed, 34 insertions, 11 deletions
diff --git a/src/tcl/bitsbytes.tcl b/src/tcl/bitsbytes.tcl index b1771b4b..9129ae0a 100644 --- a/src/tcl/bitsbytes.tcl +++ b/src/tcl/bitsbytes.tcl @@ -7,30 +7,28 @@ for { set x 0 } { $x < 32 } { set x [expr $x + 1]} { set vn [format "BIT%d" $x] - set $vn [expr (1 << $x)] global $vn - + set $vn [expr (1 << $x)] } # Create K bytes values # __1K ... to __2048K for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} { set vn [format "__%dK" $x] - set $vn [expr (1024 * $x)] global $vn + set $vn [expr (1024 * $x)] } # Create M bytes values # __1M ... to __2048K for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} { set vn [format "__%dM" $x] - set $vn [expr (1024 * 1024 * $x)] global $vn + set $vn [expr (1024 * 1024 * $x)] } proc create_mask { MSB LSB } { return [expr (((1 << ($MSB - $LSB + 1))-1) << $LSB)] - } # Cut Bits $MSB to $LSB out of this value. diff --git a/src/tcl/memory.tcl b/src/tcl/memory.tcl index 5ac3c4bd..42cd0627 100644 --- a/src/tcl/memory.tcl +++ b/src/tcl/memory.tcl @@ -78,31 +78,56 @@ proc address_info { ADDRESS } { return "UNKNOWN 0" } -proc memread32 {ADDR } { +proc memread32 {ADDR} { set foo(0) 0 if ![ catch { mem2array foo 32 $ADDR 1 } msg ] { return $foo(0) } else { - error "memead32: $msg" + error "memread32: $msg" } } -proc memread16 {ADDR } { +proc memread16 {ADDR} { set foo(0) 0 if ![ catch { mem2array foo 16 $ADDR 1 } msg ] { return $foo(0) } else { - error "memead16: $msg" + error "memread16: $msg" } } -proc memread8 {ADDR } { +proc memread8 {ADDR} { set foo(0) 0 if ![ catch { mem2array foo 8 $ADDR 1 } msg ] { return $foo(0) } else { - error "memead8: $msg" + error "memread8: $msg" } } +proc memwrite32 {ADDR DATA} { + set foo(0) $DATA + if ![ catch { array2mem foo 32 $ADDR 1 } msg ] { + return $foo(0) + } else { + error "memwrite32: $msg" + } +} +proc memwrite16 {ADDR DATA} { + set foo(0) $DATA + if ![ catch { array2mem foo 16 $ADDR 1 } msg ] { + return $foo(0) + } else { + error "memwrite16: $msg" + } +} + +proc memwrite8 {ADDR DATA} { + set foo(0) $DATA + if ![ catch { array2mem foo 8 $ADDR 1 } msg ] { + return $foo(0) + } else { + error "memwrite8: $msg" + } +} |