Packages

  • package root

    This is the documentation for Chisel.

    This is the documentation for Chisel.

    Package structure

    The chisel3 package presents the public API of Chisel. It contains the concrete core types UInt, SInt, Bool, Clock, and Reg, the abstract types Bits, Aggregate, and Data, and the aggregate types Bundle and Vec.

    The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.

    Utility objects and methods are found in the util package.

    The testers package defines the basic interface for chisel testers.

    Definition Classes
    root
  • package chisel3

    This package contains the main chisel3 API.

    This package contains the main chisel3 API.

    Definition Classes
    root
  • package aop
    Definition Classes
    chisel3
  • package choice

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

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

    Definition Classes
    chisel3
  • package connectable
    Definition Classes
    chisel3
  • package domain
    Definition Classes
    chisel3
  • Domain
  • Field
  • Type
  • package domains
    Definition Classes
    chisel3
  • package experimental

    Package for experimental features, which may have their API changed, be removed, etc.

    Package for experimental features, which may have their API changed, be removed, etc.

    Because its contents won't necessarily have the same level of stability and support as non-experimental, you must explicitly import this package to use its contents.

    Definition Classes
    chisel3
  • package interface
    Definition Classes
    chisel3
  • package layers

    This package contains common layer.Layers used by Chisel generators.

    This package contains common layer.Layers used by Chisel generators.

    Definition Classes
    chisel3
  • package ltl
    Definition Classes
    chisel3
  • package naming
    Definition Classes
    chisel3
  • package probe
    Definition Classes
    chisel3
  • package properties

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

    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.

    Definition Classes
    chisel3
  • package reflect
    Definition Classes
    chisel3
  • package simulator
    Definition Classes
    chisel3
  • package stage
    Definition Classes
    chisel3
  • package test
    Definition Classes
    chisel3
  • package testing
    Definition Classes
    chisel3
  • package util

    The util package provides extensions to core chisel for common hardware components and utility functions

    The util package provides extensions to core chisel for common hardware components and utility functions

    Definition Classes
    chisel3
p

chisel3

domain

package domain

Source
package.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. domain
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract class Domain extends AnyRef

    A Domain represents a kind information, and the schema of that information, that can be associated with certain hardware in a Chisel design.

    A Domain represents a kind information, and the schema of that information, that can be associated with certain hardware in a Chisel design.

    A domain is intended to represent a specific _kind_ of hardware-related concern that is not captured with the digital, synchronous logic that core Chisel represents. Examples of domains are clock, reset, and power domains. And while some domains are provided as part of Chisel, domain kinds are intentionall user-extensible.

    To create a new user-defined domain kind, define an object that extends the Domain class. Add fields to define the domain's schema by overridding the fields method:

    import chisel3.domain.{Domain, Field}
    
    object FooDomain extends Domain {
      override def fields: Seq[(String, Field.Type)] = Seq(
        "bar" -> Field.Boolean,
        "baz" -> Field.Integer,
        "qux" -> Field.String
      )
    }
    See also

    chisel3.domains.ClockDomain

  2. final class Type extends Element

    A Data that is used to communicate information of a specific domain kind.

Value Members

  1. def addDomain(domain: Domain): LinkedHashSet[Domain]

    Add a Domain kind to Chisel's runtime Builder so that it will be unconditionally emitted during FIRRTL emission.

    Add a Domain kind to Chisel's runtime Builder so that it will be unconditionally emitted during FIRRTL emission.

    domain

    the kind of domain to add

  2. def define[A <: Type](sink: A, source: A)(implicit sourceInfo: SourceInfo): Unit

    Forward a domain from a source to a sink.

    Forward a domain from a source to a sink.

    sink

    the destination of the forward

    source

    the source of the forward

  3. def unsafeCast[A <: Data, B <: Type](source: A, domains: B*)(implicit sourceInfo: SourceInfo): A

    Unsafe cast to a variadic list of domains.

    Unsafe cast to a variadic list of domains.

    This is an advanced API that is typically only used when building synchronizer libraries. E.g., if you are writing a clock domain synchronizer, you need to use this. If you are using this to work around FIRRTL compilation errors, you may be indavertently hiding bugs.

    source

    the source Data that should be casted

    domains

    variadic list of domains to cast to

  4. object Field

Inherited from AnyRef

Inherited from Any

Ungrouped