package 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.
- Source
- package.scala
- Alphabetic
- By Inheritance
- properties
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed trait AnyClassType extends AnyRef
- 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.
- case class ClassType extends Product with Serializable
Represent a Class type for referencing a Class in a Property[ClassType]
- class DynamicObject extends HasId with NamedComponent
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 })
- sealed abstract class Path extends AnyRef
Represent a Path type for referencing a hardware instance or member in a Property[Path]
- 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.
- sealed trait PropertyArithmeticOps[T] extends AnyRef
Typeclass for Property arithmetic.
Typeclass for Property arithmetic.
- Annotations
- @implicitNotFound()
- sealed trait PropertyType[T] extends AnyRef
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.
- Annotations
- @implicitNotFound()
Value Members
- object AnyClassType
- object Class
- object ClassType extends Serializable
- object DynamicObject
- object Path
- object Property
Companion object for Property.
- object PropertyArithmeticOps