ClockDomain
A Clock Domain
This represents a collection of signals that toggle together. This does not necessarily mean that signals associated with this domain share a clock or will toggle in a predictable way. I.e., this domain can be used to describe asynchronous signals or static signals (like strap pins).
Attributes
- Source
- ClockDomain.scala
- Graph
-
- Supertypes
- Self type
-
ClockDomain.type
Members list
Value members
Concrete methods
Create a new clock domain that is asynchronous to all other domains.
Create a new clock domain that is asynchronous to all other domains.
Value parameters
- name
-
the name of this domain
Attributes
- Source
- ClockDomain.scala
Create a new clock domain that is derived from another clock domain.
Create a new clock domain that is derived from another clock domain.
This implies that this new domain is synchronous to the other other.
Value parameters
- suffix
-
a naming suffix to apply to this domain
- synchronousTo
-
the domain that this clock domain is derived from
Attributes
- Source
- ClockDomain.scala
A sequence of name--type pairs that define the schema for this domain.
A sequence of name--type pairs that define the schema for this domain.
The fields comprise the information that a user, after Verilog generation, should set in order to interact with, generate collateral files related to, or check the correctness of their choices for a domain.
Alternatively, the fields are the "parameters" for the domain. E.g., a clock domain could be parameterzied by an integer frequency. Chisel itself has no knowledge of this frequency, nor does it need a frequency to generate Verilog. However, in order to generate an implementation constraints file, the user must provide a frequency.
To change the fields from the default, override this method in your domain.
override def fields: Seq[(String, Field.Type)] = Seq(
"foo" -> Field.Boolean
)
Attributes
- Definition Classes
- Source
- ClockDomain.scala
Inherited methods
Construct a type of this domain kind.
Construct a type of this domain kind.
For a given domain, this is used to create a Chisel type which can be used in a port. This is typically used to create domain type ports.
E.g., to create a chisel3.domains.ClockDomain port, use:
import chisel3.domains.ClockDomain
val A = IO(Input(ClockDomain.Type()))
Attributes
- Inherited from:
- Domain
- Source
- Domain.scala
Instantiate a domain with specific property values.
Instantiate a domain with specific property values.
This creates a domain instance similar to how Module() creates a module instance. The property values must match the domain's field schema in both number and type.
This API is intentionally very low level as it allows direct access to the underlying properties which may be "unsafe" depending on how the domain chooses to model information. Therefore, this function is not public, but expected to be used by a domain developer by their own apply methods for creating instances of their domains.
Value parameters
- properties
-
the property values for this domain instance, must match the domain's fields
Attributes
- Returns
-
a domain.Type representing this instantiated domain
- Inherited from:
- Domain
- Source
- Domain.scala
Implicits
Inherited implicits
Attributes
- Inherited from:
- Domain
- Source
- Domain.scala