デジタル回路
ツールフローは最終的に詳細なコンピュータファイルまたはファイル群を出力し、そこには回路を物理的にどのように構築するかが記されている。多くの場合、集積回路やプリント基板上でトランジスタや配線をどう配置するかが描かれている。
ツールフローの一部は、所定の入力に対するシミュレーション結果を確認することで「デバッグ」される。テストツールはコンピュータファイルに入力と出力を与え、シミュレート動作と期待される動作の間の不一致を強調する。
入力データが正しいと信用されたとしても、設計自体の正しさも検証が必要である。一部のツールフローはまず設計を生成することで設計を検証し、次にツールフローのための互換入力データを生成するためにその設計を走査する。走査によって生成されたデータと入力データが一致すれば、ツールフローがエラーを指摘することはない。
機能検証データを一般に「テストベクタ」と呼ぶ。機能テストベクタは新たに構築した論理回路を正しくテストするために工場などで保存され使われる。しかし、機能テストパターンは一般的な製造工程での障害を検出しない。製造工程用のテストはATPG(自動テストパターン・ジェネレーション(英語版))と呼ばれるソフトウェアツールで設計されることが多い。設計自体もテスト可能なようになされ(次節参照)、網羅率が100%に近くなる。
設計が完了し、検証され、テスト可能になったら、さらに製造可能なように処理が必要とされることが多い。最近の集積回路は光の波長よりも構造が細かい。露光マスクの解像度とコントラストを強化するため、干渉縞パターンをマスクに追加するソフトウェアも存在する。
開発コストを低減するため、大規模な論理機械の設計の大部分は自動化されてきた。そのためのコンピュータソフトウェアをEDAツールと呼ぶ。
EDAは多くの場合単純な真理値表のような記述を最適化でき、必要な出力を行う論理ゲート数を縮小したシステムかより小さな参照テーブルを自動的に生成する。そのようなソフトウェアとして最も一般的な例がエスプレッソ・ヒュースリティック・ロジック・ミニママイザーである。
大規模なシステムを最適化する最も実用的アルゴリズムは、代数的操作か二分決定図を使い、遺伝的アルゴリズムや焼きなまし法を実験的に使った例もある。
コストのかかる開発プロセスを自動化するため、一部のEDAは有限オートマトンの振る舞いを記述した状態表を入力とし、その状態機械の組合わせ回路の真理値表(機能表)を自動生成する。状態表は各状態を並べたテキストの断片であり、さらに状態遷移の条件や出力信号などが書かれている。コンピュータで生成された状態機械の機能表は、Minilogなどのロジック最小化ソフトウェアで最適化するのが一般的である。
実際には大規模な回路を部分ごとに設計し、ツールフローを使ってそれらを結合するのが一般的である。ツールフローは一般にスクリプトであり、設計ツールを正しい順序で呼び出すことができる。マイクロプロセッサなどの大規模なシステムのツールフローは数千におよぶコマンド列であり、多数の技術者の作業を連結する役目を果たす。
デジタル回路を設計する会社は、ツールフローを書いてデバッグすることが仕事となっている。