summaryrefslogtreecommitdiff
path: root/src/main/scala/Tester.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/Tester.scala')
-rw-r--r--src/main/scala/Tester.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/scala/Tester.scala b/src/main/scala/Tester.scala
index ab69c57a..91efc146 100644
--- a/src/main/scala/Tester.scala
+++ b/src/main/scala/Tester.scala
@@ -35,6 +35,10 @@ import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.HashMap
import scala.util.Random
import java.io.{File, IOException, InputStream, OutputStream, PrintStream}
+import java.lang.Double.longBitsToDouble
+import java.lang.Float.intBitsToFloat
+import java.lang.Double.doubleToLongBits
+import java.lang.Float.floatToIntBits
import scala.sys.process._
import scala.io.Source._
import Literal._
@@ -203,6 +207,14 @@ class ManualTester[+T <: Module]
signed_fix(data, peekBits(data))
}
+ def peek(data: Flo): Float = {
+ intBitsToFloat(peekBits(data).toInt)
+ }
+
+ def peek(data: Dbl): Double = {
+ longBitsToDouble(peekBits(data).toLong)
+ }
+
def peek(data: Aggregate /*, off: Int = -1 */): Array[BigInt] = {
data.flatten.map(peek(_))
}
@@ -251,6 +263,14 @@ class ManualTester[+T <: Module]
pokeBits(data, x)
}
+ def poke(data: Flo, x: Float): Unit = {
+ pokeBits(data, BigInt(floatToIntBits(x)))
+ }
+
+ def poke(data: Dbl, x: Double): Unit = {
+ pokeBits(data, BigInt(doubleToLongBits(x)))
+ }
+
def poke(data: Aggregate, x: Array[BigInt]): Unit = {
val kv = (data.flatten, x.reverse).zipped;
for ((x, y) <- kv)