chisel6.4.0 < Back


# Packages

-  package root
  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 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 ltl
  Definition Classes
    chisel3
-  package naming
  Definition Classes
    chisel3
-  package probe
  Definition Classes
    chisel3
- Probe
- ProbeValue
- RWProbe
- RWProbeValue
-  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 std
  Definition Classes
    chisel3
-  package testers

  The testers package provides the basic interface for chisel testers.

  The testers package provides the basic interface for chisel testers.

  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

# probe

#### package probe

Source
  package.scala

Linear Supertypes
SourceInfoDoc, AnyRef, Any

Ordering

1. Grouped
2. Alphabetic
3. By Inheritance

Inherited

1. probe
2. SourceInfoDoc
3. AnyRef
4. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Value Members

1.  def define[T <: Data](sink: T, probeExpr: T)(implicit sourceInfo: SourceInfo): Unit

   Initialize a probe with a provided probe value.

   Initialize a probe with a provided probe value.

   sink

     probe to initialize

   probeExpr

     value to initialize the sink to

2.  def do_read[T <: Data](source: T)(implicit sourceInfo: SourceInfo): T

3.  def force(probe: Data, value: Data)(implicit sourceInfo: SourceInfo): Unit

   Override existing driver of a writable probe.

   Override existing driver of a writable probe. If called within the scope of a when block, the force will only occur on cycles that the when condition is true.

   Fires only when reset has been asserted and then deasserted through the Disable API.

   probe

     writable Probe to force

   value

     to force onto the probe

4.  def forceInitial(probe: Data, value: Data)(implicit sourceInfo: SourceInfo): Unit

   Override existing driver of a writable probe on initialization.

   Override existing driver of a writable probe on initialization.

   probe

     writable Probe to force

   value

     to force onto the probe

5.  macro def read[T <: Data](source: T): T

   Access the value of a probe.

   Access the value of a probe.

   source

     probe whose value is getting accessed

6.  def release(probe: Data)(implicit sourceInfo: SourceInfo): Unit

   Release driver on a probe.

   Release driver on a probe. If called within the scope of a when block, the release will only occur on cycles that the when condition is true.

   Fires only when reset has been asserted and then deasserted through the Disable API.

   probe

     writable Probe to release

7.  def releaseInitial(probe: Data)(implicit sourceInfo: SourceInfo): Unit

   Release initial driver on a probe.

   Release initial driver on a probe.

   probe

     writable Probe to release

8.  object Probe extends ProbeBase with SourceInfoDoc
9.  object ProbeValue extends ProbeValueBase with SourceInfoDoc
10.  object RWProbe extends ProbeBase with SourceInfoDoc
11.  object RWProbeValue extends ProbeValueBase with SourceInfoDoc

### Inherited from SourceInfoDoc

### Inherited from AnyRef

### Inherited from Any

### Ungrouped

### SourceInfoTransformMacro

These internal methods are not part of the public-facing API!
The equivalent public-facing methods do not have the `do_` prefix or have the same name. Use and look at the documentation for those. If you want left shift, use `<<`, not `do_<<`. If you want conversion to a Seq of Bools look at the `asBools` above, not the one below. Users can safely ignore every method in this group!
🐉🐉🐉 Here be dragons... 🐉🐉🐉
These `do_X` methods are used to enable both implicit passing of SourceInfo while also supporting chained apply methods. In effect all "normal" methods that you, as a user, will use in your designs, are converted to their "hidden", `do_*`, via macro transformations. Without using macros here, only one of the above wanted behaviors is allowed (implicit passing and chained applies)---the compiler interprets a chained apply as an explicit 'implicit' argument and will throw type errors.
The "normal", public-facing methods then take no SourceInfo. However, a macro transforms this public-facing method into a call to an internal, hidden `do_*` that takes an explicit SourceInfo by inserting an `implicitly[SourceInfo]` as the explicit argument.