chisel3.choice

package chisel3.choice

This package contains Chisel language definitions for describing configuration options and their accepted values.

Attributes

Members list

Type members

Classlikes

abstract class Case(implicit val group: Group, _sourceInfo: SourceInfo)

An option case declaration.

An option case declaration.

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class DynamicCase
Self type
Singleton
abstract class DynamicCase(implicit val dynamicGroup: DynamicGroup, _sourceInfo: SourceInfo) extends Case

An option case declaration for DynamicGroup.

An option case declaration for DynamicGroup.

DynamicCase objects must be defined inside a DynamicGroup class. They use implicit parameters to automatically associate with their parent DynamicGroup.

Attributes

Source
package.scala
Supertypes
class Case
class Object
trait Matchable
class Any
Self type
Singleton
abstract class DynamicGroup(customName: String)(implicit _sourceInfo: SourceInfo)

Dynamic option group with runtime-customizable name.

Dynamic option group with runtime-customizable name.

Unlike static Group objects, DynamicGroup allows the group name to be specified at instantiation time. This is useful for parameterized designs where the same group structure is reused with different names.

Value parameters

customName

The runtime name for this group

Attributes

Example
class Opt(name: String)(implicit sourceInfo: SourceInfo) extends DynamicGroup(name) {
 object Fast extends DynamicCase
 object Slow extends DynamicCase
}
// Use with ModuleChoice
class MyModule extends Module {
 val opt = new Opt("OptMyModule")
 val impl = ModuleChoice(new DefaultImpl)(
   Seq(
     opt.Fast -> new FastImpl,
     opt.Slow -> new SlowImpl
   )
 )
}
Source
package.scala
Supertypes
class Object
trait Matchable
class Any
abstract class Group(implicit _sourceInfo: SourceInfo)

An option group declaration. Specifies a container grouping values for some design configuration parameter.

An option group declaration. Specifies a container grouping values for some design configuration parameter.

Attributes

Example
import chisel3.option.{Group, Case}
object Platform extends Group {
 object FPGA extends Case
 object ASIC extends Case
}
Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Singleton
object ModuleChoice

Attributes

Source
ModuleChoice.scala
Supertypes
class Object
trait Matchable
class Any
Self type