summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel/util/Mux.scala
diff options
context:
space:
mode:
authorJim Lawson2016-06-20 11:08:46 -0700
committerJim Lawson2016-06-20 11:08:46 -0700
commitd408d73a171535bd7c2ba9d0037c194022b8a62f (patch)
tree81885a99ec56e89532bc3fa338f22b163dcc4d1f /src/main/scala/chisel/util/Mux.scala
parentb5a534914795d9d17f4dfe623525f1b804e4c60f (diff)
Rename chisel3 package.
Diffstat (limited to 'src/main/scala/chisel/util/Mux.scala')
-rw-r--r--src/main/scala/chisel/util/Mux.scala64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/main/scala/chisel/util/Mux.scala b/src/main/scala/chisel/util/Mux.scala
deleted file mode 100644
index 6f074a7e..00000000
--- a/src/main/scala/chisel/util/Mux.scala
+++ /dev/null
@@ -1,64 +0,0 @@
-// See LICENSE for license details.
-
-/** Mux circuit generators.
- */
-
-package chisel.util
-
-import chisel._
-import chisel.core.SeqUtils
-
-/** Builds a Mux tree out of the input signal vector using a one hot encoded
- select signal. Returns the output of the Mux tree.
- */
-object Mux1H
-{
- def apply[T <: Data](sel: Seq[Bool], in: Seq[T]): T =
- apply(sel zip in)
- def apply[T <: Data](in: Iterable[(Bool, T)]): T = SeqUtils.oneHotMux(in)
- def apply[T <: Data](sel: UInt, in: Seq[T]): T =
- apply((0 until in.size).map(sel(_)), in)
- def apply(sel: UInt, in: UInt): Bool = (sel & in).orR
-}
-
-/** Builds a Mux tree under the assumption that multiple select signals
- can be enabled. Priority is given to the first select signal.
-
- Returns the output of the Mux tree.
- */
-object PriorityMux
-{
- def apply[T <: Data](in: Seq[(Bool, T)]): T = SeqUtils.priorityMux(in)
- def apply[T <: Data](sel: Seq[Bool], in: Seq[T]): T = apply(sel zip in)
- def apply[T <: Data](sel: Bits, in: Seq[T]): T = apply((0 until in.size).map(sel(_)), in)
-}
-
-/** MuxLookup creates a cascade of n Muxs to search for a key value */
-object MuxLookup {
- /** @param key a key to search for
- * @param default a default value if nothing is found
- * @param mapping a sequence to search of keys and values
- * @return the value found or the default if not
- */
- def apply[S <: UInt, T <: Bits] (key: S, default: T, mapping: Seq[(S, T)]): T = {
- var res = default
- for ((k, v) <- mapping.reverse)
- res = Mux(k === key, v, res)
- res
- }
-
-}
-
-/** MuxCase returns the first value that is enabled in a map of values */
-object MuxCase {
- /** @param default the default value if none are enabled
- * @param mapping a set of data values with associated enables
- * @return the first value in mapping that is enabled */
- def apply[T <: Bits] (default: T, mapping: Seq[(Bool, T)]): T = {
- var res = default
- for ((t, v) <- mapping.reverse){
- res = Mux(t, v, res)
- }
- res
- }
-}