From d2da33e4b162fe862f0cb057ccfe55a979a1b251 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Sat, 11 Mar 2017 02:53:11 -0800 Subject: [PATCH] Fuzzer: use different LFSR seeds based on simulator seed --- src/main/scala/uncore/tilelink2/Fuzzer.scala | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/scala/uncore/tilelink2/Fuzzer.scala b/src/main/scala/uncore/tilelink2/Fuzzer.scala index 724015f7..73b4a032 100644 --- a/src/main/scala/uncore/tilelink2/Fuzzer.scala +++ b/src/main/scala/uncore/tilelink2/Fuzzer.scala @@ -34,16 +34,11 @@ class IDMapGenerator(numIds: Int) extends Module { object LFSR64 { - private var counter = 0 - private def next: Int = { - counter += 1 - counter - } - - def apply(increment: Bool = Bool(true), seed: Int = next): UInt = + def apply(increment: Bool = Bool(true)): UInt = { val wide = 64 - val lfsr = RegInit(UInt((seed * 0xDEADBEEFCAFEBAB1L) >>> 1, width = wide)) + val undef = Reg(UInt(width = wide)) // random value based on simulation seed + val lfsr = RegInit(Mux(undef === UInt(0), UInt(1), undef)) val xor = lfsr(0) ^ lfsr(1) ^ lfsr(3) ^ lfsr(4) when (increment) { lfsr := Cat(xor, lfsr(wide-1,1)) } lfsr