Valid

chisel3.util.Valid
See theValid companion class
object Valid

Factory for generating "valid" interfaces. A "valid" interface is a data-communicating interface between a producer and a consumer where the producer does not wait for the consumer. Concretely, this means that one additional bit is added to the data indicating its validity.

As an example, consider the following Bundle, MyBundle:

 class MyBundle extends Bundle {
   val foo = Output(UInt(8.W))
 }

To convert this to a valid interface, you wrap it with a call to the Valid companion object's apply method:

 val bar = Valid(new MyBundle)

The resulting interface is ''structurally'' equivalent to the following:

 class MyValidBundle extends Bundle {
   val valid = Output(Bool())
   val bits = Output(new MyBundle)
 }

In addition to adding the valid bit, a Valid.fire method is also added that returns the valid bit. This

provides a similarly named interface to DecoupledIO's fire.

Attributes

See also
Companion
class
Source
Valid.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Valid.type

Members list

Value members

Concrete methods

def apply[T <: Data](gen: T): Valid[T]

Wrap some Data in a valid interface

Wrap some Data in a valid interface

Type parameters

T

the type of the data to wrap

Value parameters

gen

the data to wrap

Attributes

Returns

the wrapped input data

Source
Valid.scala