chisel6.4.0 < Back


# Packages

-  package root
  Definition Classes
    root
-  package chisel3

  This package contains the main chisel3 API.

  This package contains the main chisel3 API.

  Definition Classes
    root
-  package connectable
  Definition Classes
    chisel3
- Alignment
- Connectable
- ConnectableAlignment
- ConnectableDontCare
- ConnectableOperators
- ConnectableVecOperators

c

chisel3.connectable

# ConnectableVecOperators

###

#### implicit class ConnectableVecOperators[T <: Data] extends ConnectableDocs

ConnectableVec Typeclass defines the following operators on between a (consumer: Vec) and (producer: Seq): :<=, :>=, :<>=, :#=

Source
  package.scala

Linear Supertypes
Connectable.ConnectableDocs, AnyRef, Any
Known Subclasses
ConnectableVecDefault
Type Hierarchy

Ordering

1. Grouped
2. Alphabetic
3. By Inheritance

Inherited

1. ConnectableVecOperators
2. ConnectableDocs
3. AnyRef
4. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new ConnectableVecOperators(consumer: Vec[T])

   consumer

     the left-hand-side of the connection

### Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from ConnectableVecOperators[T] toany2stringadd[ConnectableVecOperators[T]] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
4.  def ->[B](y: B): (ConnectableVecOperators[T], B)
   Implicit
     This member is added by an implicit conversion from ConnectableVecOperators[T] toArrowAssoc[ConnectableVecOperators[T]] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
5.  def :#=(producer: DontCare.type)(implicit sourceInfo: SourceInfo): Unit

   The "mono-direction connection operator", aka the "coercion operator".

   The "mono-direction connection operator", aka the "coercion operator".

   For `consumer :#= producer`, all leaf members of consumer (regardless of relative flip) are driven by the corresponding leaf members of producer (regardless of relative flip)

   Identical to calling :<= and :>=, but swapping consumer/producer for :>= (order is irrelevant), e.g.: consumer :<= producer producer :>= consumer

   Symbol reference:

   - ':' is the consumer side
   - '=' is the producer side
   - '#' means to ignore flips, always drive from producer to consumer

   The following restrictions apply:

   - The Chisel type of consumer and producer must be the "same shape" recursively:
     - All ground types are the same (UInt and UInt are same, SInt and UInt are not), but widths can be different (implicit trunction/padding occurs)
     - All vector types are the same length
     - All bundle types have the same member names, but the flips of members can be different between producer and consumer
   - The leaf members that are ultimately assigned to, must be assignable. This means they cannot be module inputs or instance outputs.

   Additional notes: - Connecting two `util.DecoupledIO`'s would connect `bits`, `valid`, AND `ready` from producer to consumer (despite `ready` being flipped) - Functionally equivalent to chisel3.:=, but different than Chisel.:=

   producer

     the right-hand-side of the connection, all members will be driving, none will be driven-to

6.  def :#=(producer: Seq[T])(implicit sourceInfo: SourceInfo): Unit

   The "mono-direction connection operator", aka the "coercion operator".

   The "mono-direction connection operator", aka the "coercion operator".

   For `consumer :#= producer`, all leaf members of consumer (regardless of relative flip) are driven by the corresponding leaf members of producer (regardless of relative flip)

   Identical to calling :<= and :>=, but swapping consumer/producer for :>= (order is irrelevant), e.g.: consumer :<= producer producer :>= consumer

   Symbol reference:

   - ':' is the consumer side
   - '=' is the producer side
   - '#' means to ignore flips, always drive from producer to consumer

   The following restrictions apply:

   - The Chisel type of consumer and producer must be the "same shape" recursively:
     - All ground types are the same (UInt and UInt are same, SInt and UInt are not), but widths can be different (implicit trunction/padding occurs)
     - All vector types are the same length
     - All bundle types have the same member names, but the flips of members can be different between producer and consumer
   - The leaf members that are ultimately assigned to, must be assignable. This means they cannot be module inputs or instance outputs.

   Additional notes: - Connecting two `util.DecoupledIO`'s would connect `bits`, `valid`, AND `ready` from producer to consumer (despite `ready` being flipped) - Functionally equivalent to chisel3.:=, but different than Chisel.:=

   producer

     the right-hand-side of the connection, all members will be driving, none will be driven-to

7.  def :<=(producer: Seq[T])(implicit sourceInfo: SourceInfo): Unit

   The "aligned connection operator" between a producer and consumer.

   The "aligned connection operator" between a producer and consumer.

   For `consumer :<= producer`, each of `consumer`'s leaf members which are aligned with respect to `consumer` are driven from the corresponding `producer` leaf member. Only `consumer`'s leaf/branch alignments influence the connection.

   Symbol reference:

   - ':' is the consumer side
   - '=' is the producer side
   - '<' means to connect from producer to consumer

   The following restrictions apply:

   - The Chisel type of consumer and producer must be the "same shape" recursively:
     - All ground types are the same (UInt and UInt are same, SInt and UInt are not), but widths can be different (implicit trunction/padding occurs)
     - All vector types are the same length
     - All bundle types have the same member names, but the flips of members can be different between producer and consumer
   - The leaf members that are ultimately assigned to, must be assignable. This means they cannot be module inputs or instance outputs.

   Additional notes:

   - Connecting two `util.DecoupledIO`'s would connect `bits` and `valid` from producer to consumer, but leave `ready` unconnected
   producer

     the right-hand-side of the connection; will always drive leaf connections, and never get driven by leaf connections ("aligned connection")

8.  def :<>=(producer: Seq[T])(implicit sourceInfo: SourceInfo): Unit

   The "bi-direction connection operator", aka the "tur-duck-en operator"

   The "bi-direction connection operator", aka the "tur-duck-en operator"

   For `consumer :<>= producer`, both producer and consumer leafs could be driving or be driven-to. The `consumer`'s members aligned w.r.t. `consumer` will be driven by corresponding members of `producer`; the `producer`'s members flipped w.r.t. `producer` will be driven by corresponding members of `consumer`

   Identical to calling `:<=` and `:>=` in sequence (order is irrelevant), e.g. `consumer :<= producer` then `consumer :>= producer`

   Symbol reference:

   - ':' is the consumer side
   - '=' is the producer side
   - '<' means to connect from producer to consumer
   - '>' means to connect from consumer to producer

   The following restrictions apply:

   - The Chisel type of consumer and producer must be the "same shape" recursively:
     - All ground types are the same (UInt and UInt are same, SInt and UInt are not), but widths can be different (implicit trunction/padding occurs)
     - All vector types are the same length
     - All bundle types have the same member names, but the flips of members can be different between producer and consumer
   - The leaf members that are ultimately assigned to, must be assignable. This means they cannot be module inputs or instance outputs. - An additional type restriction is that all relative orientations of `consumer` and `producer` must match exactly.

   Additional notes:

   - Connecting two wires of `util.DecoupledIO` chisel type would connect `bits` and `valid` from producer to consumer, and `ready` from consumer to producer.
   - If the types of consumer and producer also have identical relative flips, then we can emit FIRRTL.<= as it is a stricter version of chisel3.:<>=
   - "turk-duck-en" is a dish where a turkey is stuffed with a duck, which is stuffed with a chicken; `:<>=` is a `:=` stuffed with a `<>`
   producer

     the right-hand-side of the connection

9.  def :>=(producer: Seq[T])(implicit sourceInfo: SourceInfo): Unit

   The "flipped connection operator", or the "backpressure connection operator" between a producer and consumer.

   The "flipped connection operator", or the "backpressure connection operator" between a producer and consumer.

   For `consumer :>= producer`, each of `producer`'s leaf members which are flipped with respect to `producer` are driven from the corresponding consumer leaf member Only `producer`'s leaf/branch alignments influence the connection.

   Symbol reference:

   - ':' is the consumer side
   - '=' is the producer side
   - '>' means to connect from consumer to producer

   The following restrictions apply:

   - The Chisel type of consumer and producer must be the "same shape" recursively:
     - All ground types are the same (UInt and UInt are same, SInt and UInt are not), but widths can be different (implicit trunction/padding occurs)
     - All vector types are the same length
     - All bundle types have the same member names, but the flips of members can be different between producer and consumer
   - The leaf members that are ultimately assigned to, must be assignable. This means they cannot be module inputs or instance outputs.

   Additional notes:

   - Connecting two `util.DecoupledIO`'s would connect `ready` from consumer to producer, but leave `bits` and `valid` unconnected
   producer

     the right-hand-side of the connection; will always be driven by leaf connections, and never drive leaf connections ("flipped connection")

10.  final def ==(arg0: Any): Boolean
    Definition Classes
      AnyRef → Any
11.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
12.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
13.  def ensuring(cond: (ConnectableVecOperators[T]) => Boolean, msg: => Any): ConnectableVecOperators[T]
    Implicit
      This member is added by an implicit conversion from ConnectableVecOperators[T] toEnsuring[ConnectableVecOperators[T]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
14.  def ensuring(cond: (ConnectableVecOperators[T]) => Boolean): ConnectableVecOperators[T]
    Implicit
      This member is added by an implicit conversion from ConnectableVecOperators[T] toEnsuring[ConnectableVecOperators[T]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
15.  def ensuring(cond: Boolean, msg: => Any): ConnectableVecOperators[T]
    Implicit
      This member is added by an implicit conversion from ConnectableVecOperators[T] toEnsuring[ConnectableVecOperators[T]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
16.  def ensuring(cond: Boolean): ConnectableVecOperators[T]
    Implicit
      This member is added by an implicit conversion from ConnectableVecOperators[T] toEnsuring[ConnectableVecOperators[T]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
17.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
18.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
19.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
20.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
21.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
22.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
23.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
24.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
25.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
26.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
27.  def toString(): String
    Definition Classes
      AnyRef → Any
28.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
29.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
30.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Deprecated Value Members

1.  def formatted(fmtstr: String): String
   Implicit
     This member is added by an implicit conversion from ConnectableVecOperators[T] toStringFormat[ConnectableVecOperators[T]] performed by method StringFormat in scala.Predef.
   Definition Classes
     StringFormat
   Annotations
     @deprecated @inline()
   Deprecated

     (Since version 2.12.16) Use `formatString.format(value)` instead of `value.formatted(formatString)`, or use the `f""` string interpolator. In Java 15 and later, `formatted` resolves to the new method in String which has reversed parameters.

2.  def →[B](y: B): (ConnectableVecOperators[T], B)
   Implicit
     This member is added by an implicit conversion from ConnectableVecOperators[T] toArrowAssoc[ConnectableVecOperators[T]] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @deprecated
   Deprecated

     (Since version 2.13.0) Use `->` instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

### Inherited from Connectable.ConnectableDocs

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd fromConnectableVecOperators[T] to any2stringadd[ConnectableVecOperators[T]]

### Inherited by implicit conversion StringFormat fromConnectableVecOperators[T] to StringFormat[ConnectableVecOperators[T]]

### Inherited by implicit conversion Ensuring fromConnectableVecOperators[T] to Ensuring[ConnectableVecOperators[T]]

### Inherited by implicit conversion ArrowAssoc fromConnectableVecOperators[T] to ArrowAssoc[ConnectableVecOperators[T]]

### connection

### Ungrouped