Introduction

DV Flow is a framework for orchestrating data-driven, parameterizable workflows. Tasks are connected by dataflow, enabling composable and reusable workflow definitions across many domains.

Why DV Flow?

Many workflow systems are tightly coupled to specific domains or tools. DV Flow takes a different approach: workflows are specified declaratively in YAML, with tasks connected by dataflow. This enables:

  • Data-Driven Execution: Tasks receive data from their dependencies, decoupling operations from data providers

  • Parameterization: Workflows can be specialized through parameters, enabling reuse across different configurations

  • Composability: Tasks and packages support inheritance and extension

Use Cases

Silicon Design & Verification

Originally designed for silicon engineering, DV Flow excels at hardware workflows where the same source files are processed by multiple tools with different configurations:

  • Compile designs with UVM testbenches for simulation-based verification

  • Run formal verification with different testbench configurations

  • Target synthesis with specific subsets of the design

Agentic AI Workflows

DV Flow enables agentic workflows by treating prompts, context, and tools as reusable tasks:

  • Encapsulate prompts and context as parameterizable tasks

  • Chain agentic and non-agentic operations in the same workflow

  • Run sub-workflows composed of multiple operations

Build Automation

Orchestrate complex multi-step build processes with intelligent caching and dependency tracking.

Core Concepts

DV Flow provides workflow management through three key aspects:

  • Flow Specification - Processing steps for a given project are captured in a hierarchy of YAML files. The flow-specification schema is designed to be tool-independent, such that multiple tools can be implemented that comprehend a flow specification.

  • Task Library - Processing steps are implemented as tasks. Libraries of common tasks are defined to cover common cases. External libraries of tasks are supported, such that tools can bundle a task library along with the tool installation.

  • Tools - The Python implementation of DV Flow Manager is one example of a tool. Other tools include development and visualization support in VSCode.