RawUnclockedNonVoidFunctionCall

chisel3.util.circt.dpi.RawUnclockedNonVoidFunctionCall

Attributes

Source
DPI.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def apply[T <: Data](functionName: String, ret: => T, inputNames: Option[Seq[String]] = ..., outputName: Option[String] = ...)(enable: Bool, data: Data*): T

Creates an intrinsic that calls non-void DPI function for its input value changes. The DPI call is considered as a combinational logic.

Creates an intrinsic that calls non-void DPI function for its input value changes. The DPI call is considered as a combinational logic.

enable operand is used to conditionally call the DPI since DPI call could be quite more expensive than native constructs. When enable is false, results of unclocked calls are undefined and evaluated into X.

Please refer https://github.com/llvm/circt/blob/main/docs/Dialects/FIRRTL/FIRRTLIntrinsics.md#dpi-intrinsic-abi for DPI function ABI.

Attributes

Example
val a = RawUnclockedNonVoidFunctionCall("dpi_func_foo", UInt(1.W))(enable, b, c)
Source
DPI.scala