summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/util
diff options
context:
space:
mode:
authorJiuyang Liu2021-05-25 07:22:32 +0000
committerJiuyang Liu2021-06-16 10:32:04 +0800
commit88b7c48c18267e55c755f4fe6615c2faf2910906 (patch)
tree1323deca0af914daaf0c88cf84185a1c7e8b4eac /src/main/scala/chisel3/util
parentd2c71fbf64a4728914414bbf27803d7cf03f94ad (diff)
remove all timeouts by review.
Diffstat (limited to 'src/main/scala/chisel3/util')
-rw-r--r--src/main/scala/chisel3/util/experimental/decode/decoder.scala30
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)