実際には大規模な回路を部分ごとに設計し、ツールフローを使ってそれらを結合するのが一般的である。ツールフローは一般にスクリプトであり、設計ツールを正しい順序で呼び出すことができる。マイクロプロセッサなどの大規模なシステムのツールフローは数千におよぶコマンド列であり、多数の技術者の作業を連結する役目を果たす。
デジタル回路を設計する会社は、ツールフローを書いてデバッグすることが仕事となっている。ツールフローは最終的に詳細なコンピュータファイルまたはファイル群を出力し、そこには回路を物理的にどのように構築するかが記されている。多くの場合、集積回路やプリント基板上でトランジスタや配線をどう配置するかが描かれている。
ツールフローの一部は、所定の入力に対するシミュレーション結果を確認することで「デバッグ」される。テストツールはコンピュータファイルに入力と出力を与え、シミュレート動作と期待される動作の間の不一致を強調する。
入力データが正しいと信用されたとしても、設計自体の正しさも検証が必要である。一部のツールフローはまず設計を生成することで設計を検証し、次にツールフローのための互換入力データを生成するためにその設計を走査する。走査によって生成されたデータと入力データが一致すれば、ツールフローがエラーを指摘することはない。
設計が完了し、検証され、テスト可能になったら、さらに製造可能なように処理が必要とされることが多い。最近の集積回路は光の波長よりも構造が細かい。露光マスクの解像度とコントラストを強化するため、干渉縞パターンをマスクに追加するソフトウェアも存在する。
検証可能な設計.
論理回路のテストにはいくつかの理由がある。開発したばかりの回路は、設計の意図通りかどうかを検証し、機能やタイミングの要求仕様を満たしているかを確認する意味でテストを必要とする。大量生産に移行した場合も製造工程で問題が生じていないことを確認するためにテストが必須である。
基板のテスト環境も含め、JTAGというバウンダリスキャンテストの規格が定められている。
他に、回路の一部をテストサイクル状態に移行させるテストモードを提供する方式もある。テストサイクルは通常大きめの独立した部分を対象とする。
トレードオフ.