diff options
| author | Jiuyang Liu | 2021-05-25 07:22:32 +0000 |
|---|---|---|
| committer | Jiuyang Liu | 2021-06-16 10:32:04 +0800 |
| commit | 88b7c48c18267e55c755f4fe6615c2faf2910906 (patch) | |
| tree | 1323deca0af914daaf0c88cf84185a1c7e8b4eac | |
| parent | d2c71fbf64a4728914414bbf27803d7cf03f94ad (diff) | |
remove all timeouts by review.
| -rw-r--r-- | src/main/scala/chisel3/util/experimental/decode/decoder.scala | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/src/main/scala/chisel3/util/experimental/decode/decoder.scala b/src/main/scala/chisel3/util/experimental/decode/decoder.scala index 87e839d3..8168824f 100644 --- a/src/main/scala/chisel3/util/experimental/decode/decoder.scala +++ b/src/main/scala/chisel3/util/experimental/decode/decoder.scala @@ -9,37 +9,11 @@ import chisel3.util.experimental.getAnnotations import firrtl.annotations.Annotation import logger.LazyLogging -import scala.concurrent.ExecutionContext.Implicits.global -import scala.concurrent.duration.Duration -import scala.concurrent.{Await, Future} - object decoder extends LazyLogging { - def apply(minimizer: Minimizer, input: UInt, truthTable: TruthTable, timeout: Int = 5): UInt = { + def apply(minimizer: Minimizer, input: UInt, truthTable: TruthTable): UInt = { val minimizedTable = getAnnotations().collect { case DecodeTableAnnotation(_, in, out) => TruthTable(in) -> TruthTable(out) - }.toMap.getOrElse( - { - logger.warn(s"""Decoder Cache Hit! - |${truthTable.table} - |""".stripMargin) - truthTable - }, { - val startTime = System.nanoTime() - val future = Future(minimizer.minimize(truthTable)) - var now = System.nanoTime() - while (!future.isCompleted) { - val elapsed = (System.nanoTime() - now) / 1e9 - now = System.nanoTime() - if(elapsed > timeout) logger.error(s"Minimizer has been executed for ${(System.nanoTime() - startTime) / 1e9} seconds.") - } - val minimizedTable = Await.result(future, Duration.Inf) - val totalTime = System.nanoTime() - startTime - val totalTimeInSeconds = totalTime / 1e9 - val info = f"Logic Minimize with $minimizer finished in $totalTimeInSeconds second" - logger.warn(info) - minimizedTable - } - ) + }.toMap.getOrElse(truthTable, minimizer.minimize(truthTable)) if (minimizedTable.table.isEmpty) { val outputs = Wire(UInt(minimizedTable.default.getWidth.W)) outputs := minimizedTable.default.value.U(minimizedTable.default.getWidth.W) |
