chisel3.properties

The properties package includes functionality related to non-hardware data.

This entire package is currently very experimental, so expect some rough edges and rapid API evolution.

Attributes

Members list

Type members

Classlikes

sealed trait AnyClassType

Attributes

Companion
object
Source
Class.scala
Supertypes
class Object
trait Matchable
class Any
object AnyClassType

Attributes

Companion
trait
Source
Class.scala
Supertypes
class Object
trait Matchable
class Any
Self type
class Class extends BaseModule

Represents a user-defined Class, which is a module-like container of properties.

Represents a user-defined Class, which is a module-like container of properties.

A Class has ports like a hardware module, but its ports must be of Property type.

Within a Class body, ports may be connected and other Classes may be instantiated. This means classes cannot construct hardware, only graphs of non-hardware Property information.

Attributes

Companion
object
Source
Class.scala
Supertypes
class BaseModule
trait Selectable
trait Selectable
trait InstanceId
class Object
trait Matchable
class Any
Show all
object Class

Attributes

Companion
class
Source
Class.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Class.type
case class ClassType

Represent a Class type for referencing a Class in a Property[ClassType]

Represent a Class type for referencing a Class in a Property[ClassType]

Attributes

Companion
object
Source
Class.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
object ClassType

Attributes

Companion
class
Source
Class.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
ClassType.type

Represents an instance of a Class.

Represents an instance of a Class.

This cannot be instantiated directly, instead see Class.unsafeGetDynamicObject.

The DynamicObject is generally unsafe, in that its getField method does not check the name, type, or direction of the accessed field. It may be used with care, and a more typesafe version called StaticObject has been added, which works with the Definition / Instance APIs.

To create a DynamicObject directly, wrap a Class with DynamicObject.apply. For example:

  val obj = DynamicObject(new Class {
    override def desiredName = "Test"
    val in = IO(Input(Property[Int]()))
    val out = IO(Output(Property[Int]()))
    out := in
  })

Attributes

Companion
object
Source
Object.scala
Supertypes
trait InstanceId
class Object
trait Matchable
class Any
object DynamicObject

Attributes

Companion
class
Source
Object.scala
Supertypes
class Object
trait Matchable
class Any
Self type
sealed abstract class Path

Represent a Path type for referencing a hardware instance or member in a Property[Path]

Represent a Path type for referencing a hardware instance or member in a Property[Path]

Attributes

Companion
object
Source
Path.scala
Supertypes
class Object
trait Matchable
class Any
object Path

Attributes

Companion
class
Source
Path.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Path.type
sealed trait Property[T] extends Element

Property is the base type for all properties.

Property is the base type for all properties.

Properties are similar to normal Data types in that they can be used in ports, connected to other properties, etc. However, they are used to describe a set of non-hardware types, so they have no width, cannot be used in aggregate Data types, and cannot be connected to Data types.

Attributes

Companion
object
Source
Property.scala
Supertypes
class Element
class Data
trait InstanceId
class Object
trait Matchable
class Any
Show all
Self type
object Property

Companion object for Property.

Companion object for Property.

Attributes

Companion
trait
Source
Property.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Property.type
sealed trait PropertyArithmeticOps[T]

Typeclass for Property arithmetic.

Typeclass for Property arithmetic.

Attributes

Companion
object
Source
Property.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Source
Property.scala
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait PropertySequenceOps[T]

Typeclass for Property sequence operations.

Typeclass for Property sequence operations.

Attributes

Companion
object
Source
Property.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Source
Property.scala
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait PropertyType[T]

PropertyType defines a typeclass for valid Property types.

PropertyType defines a typeclass for valid Property types.

Typeclass instances will be defined for Scala types that can be used as properties. This includes builtin Scala types as well as types defined in Chisel.

Attributes

Source
Property.scala
Supertypes
class Object
trait Matchable
class Any