object Pipe
A factory to generate a hardware pipe. This can be used to delay Valid data by a design-time configurable number of cycles.
Here, we construct three different pipes using the different provided apply
methods and hook them up together. The
types are explicitly specified to show that these all communicate using Valid interfaces:
val in: Valid[UInt] = Wire(Valid(UInt(2.W))) /* A zero latency (combinational) pipe is connected to 'in' */ val foo: Valid[UInt] = Pipe(in.valid, in.bits, 0) /* A one-cycle pipe is connected to the output of 'foo' */ val bar: Valid[UInt] = Pipe(foo.valid, foo.bits) /* A two-cycle pipe is connected to the output of 'bar' */ val baz: Valid[UInt] = Pipe(bar, 2)
- Source
- Valid.scala
- See also
Pipe class for an alternative API
Valid interface
Queue and the Queue factory for actual queues
The ShiftRegister factory to generate a pipe without a Valid interface
- Alphabetic
- By Inheritance
- Pipe
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[T <: Data](enq: Valid[T], latency: Int = 1): Valid[T]
Generate a pipe for a Valid interface
- def apply[T <: Data](enqValid: Bool, enqBits: T): Valid[T]
Generate a one-stage pipe from an explicit valid bit and some data
Generate a one-stage pipe from an explicit valid bit and some data
- enqValid
the valid bit (must be a hardware type)
- enqBits
the data (must be a hardware type)
- returns
the Valid output of the final pipeline stage
- def apply[T <: Data](enqValid: Bool, enqBits: T, latency: Int): Valid[T]
Generate a pipe from an explicit valid bit and some data
Generate a pipe from an explicit valid bit and some data
- enqValid
the valid bit (must be a hardware type)
- enqBits
the data (must be a hardware type)
- latency
the number of pipeline stages
- returns
the Valid output of the final pipeline stage
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()