Glossary#

BFM#

Bus Functional Model

blocking function#

A function that blocks the caller until the function finishes. This is typically a regular function, but sometimes involves calls to threaded code which blocks execution for an indeterminate amount of time. See also the Python glossary.

coroutine function#

The definition of a function that, when called, returns a coroutine object. Implemented using async functions. See also the Python glossary.

coroutine#

The result of calling a coroutine function. Coroutines are not run immediately, you must either await on them which blocks the awaiting coroutine until it is finished; or turn them into a task, which can be run concurrently. See also the Python glossary.

task#

A coroutine that can be run concurrently to other tasks.

trigger#

An awaitable object which when awaited will block the current task until its condition is met. For example, a RisingEdge(dut.clk) trigger will block until the next rising edge of the dut.clk signal.

DUT#

Design under Test

DUV#

Design under Verification

FLI#

Foreign Language Interface. Mentor Graphics’ equivalent to VHPI.

GPI#

Generic Procedural Interface, cocotb’s abstraction over VPI, VHPI, and FLI.

HAL#

Hardware Abstraction Layer

HDL#

Hardware Description Language

MDV#

Metric-driven Verification

RTL#

Register Transfer Level

UVM#

Universal Verification Methodology

VHPI#

The VHDL Procedural Interface, an application-programming interface to VHDL tools.

VIP#

Verification IP

VPI#

The Verilog Procedural Interface, an application-programming interface to (System)Verilog tools. Its original name was “PLI 2.0”.

time step#

A single point in simulated time, comprised of a series of one or more evaluation cycles.

evaluation cycle#

One iteration of the evaluation loop in a time step. Occurs when HDL or cocotb code is executed in reaction to events, such as simulated time advancing or signal or variable values changing. The executed code tends to create more events, leading to the next evaluation cycle.

inertial deposit#

Depositing a value on a signal or variable at the end of the current delta cycle.

no-delay deposit#

Depositing a value on a signal or variable immediately.

driving#

Continuously depositing a value to a signal. cocotb cannot drive signals.

deposit#

Setting the value of a signal or variable once. May be inertial or no-delay.

force#

Setting the value to a signal or variable once immediately, then locking it so the value can’t change.

release#

Setting the value to a signal or variable once immediately, then unlocking it from a previous force.

simulator object#

An addressable object from the DUT. Corresponds to a signal, variable, or hierarchical element in the HDL code.