デジタル設計フロー(RTL→合成→配置配線→GDSII)
数億トランジスタのチップが、なぜ人手で配線せずに作れるのか。RTLから合成・配置配線・サインオフ・テープアウトまで、EDAが何を自動化しているかを工程順に追えます。
- 1.デジタル設計はRTL(動作の記述)→論理合成(ゲートへ変換)→配置配線(物理座標へ落とす)→サインオフ→GDSII出力という抽象度を下げる一方向の変換列で、各段で「等価性」と「制約充足」を検証しながら進む。
- 2.論理合成はRTLを標準セルのネットリストへ写し、STA(静的タイミング解析)がセットアップ/ホールド制約を全パスで網羅検証する。シミュレーションと違い入力パターンに依存せず、最悪ケースを保証できるのが要点。
- 3.ファブレスはGDSIIをファウンドリへ渡すまでを担う。PDK(プロセス設計キット)と標準セルライブラリがファブの物理情報を抽象化し、設計と製造の責任分界を成立させている。
デジタル設計は「抽象度を下げる変換の連鎖」である
数億から数百億トランジスタの大規模集積回路を、人間が1本ずつ配線して作ることは不可能です。現代のASIC(特定用途向け集積回路)設計は、設計者が「何をするか」を高い抽象度で書き、EDA(Electronic Design Automation)ツールが段階的に抽象度を下げて物理的な版下(GDSII)まで翻訳するという発想で成り立っています。各工程は前段の出力を入力に取り、より具体的な表現へ変換しながら、その都度「変換前と意味が同じか(等価性)」「制約を満たすか」を検証します。
デジタル設計フローの全体像(抽象度: 高 → 低):
仕様 → RTL記述(HDL) → 論理合成 → ゲートレベルネットリスト
→ 配置(Placement) → クロックツリー合成(CTS) → 配線(Routing)
→ サインオフ(STA / DRC / LVS) → GDSII → テープアウト → ファブへ
この一方向の流れの中で、上流ほど修正コストが小さく、下流ほど大きくなります。だから各段でゲートを通す「ゲーティング(検証関門)」を設け、問題を早期に潰すのが鉄則です。以下、工程順に何が起きているかを原理から追います。
RTL記述 ── 「動作」をレジスタ転送の言葉で書く
設計はまず RTL(Register Transfer Level、レジスタ転送レベル) で記述します。VerilogやVHDLといったHDL(ハードウェア記述言語)を使い、回路を「クロックごとにレジスタ間でどうデータが転送・演算されるか」として表現します。重要なのは、RTLは個々のゲートやトランジスタを書くのではなく、振る舞いを書く点です。
// RTLの例: クロック立ち上がりで加算結果をレジスタに保持
always @(posedge clk) begin
if (rst) acc <= 0;
else acc <= acc + data_in;
end
この時点では具体的なAND/ORゲートは1つも決まっていません。RTLが正しいかは論理シミュレーション(テストベンチで入力を与え期待値と照合)と、近年は形式検証(プロパティを数学的に証明)で確かめます。標準セルが内部でCMOSゲートとして実装される原理は/semiconductor/cmos-inverter/を前提とします。
論理合成 ── RTLを標準セルのネットリストへ写す
論理合成(Logic Synthesis) は、抽象的なRTLを、ファウンドリが提供する標準セルライブラリ(あらかじめ設計・特性評価済みのNAND・FF・MUXなどの部品集)の組み合わせ、すなわちゲートレベルネットリストへ変換する工程です。内部は大きく3段に分かれます。
論理合成の内部段階:
1. 翻訳/エラボレーション: RTLをブール式・有限状態機械の中間表現へ
2. 最適化: ブール代数で論理を簡約(面積/遅延/電力の目的関数で)
3. テクノロジマッピング: 簡約した論理を実在の標準セルに割り付け
合成は単なる変換ではなく制約付き最適化です。設計者はSDC(合成制約)でクロック周期・入出力遅延・面積目標などを与え、ツールは面積・遅延・消費電力のトレードオフを探索します。クロックを速くすれば、より駆動力の高い(=面積の大きい)セルが選ばれ、面積と電力が増える――という綱引きが常に働きます。
論理合成の絶対条件は、変換前のRTLと変換後のネットリストが論理的に等価であることです。これを保証するのが 形式等価性検証(LEC, Logical Equivalence Check) で、両者の出力が全入力組み合わせで一致することを数学的に証明します。シミュレーションは入力パターンを通した分しか確認できませんが、LECは網羅的に等価性を保証できる点が決定的に異なります。
STA ── タイミングを「全パス網羅」で保証する
ネットリストができると、それがクロック周期内で正しく動くかを STA(Static Timing Analysis、静的タイミング解析) で検証します。STAの肝は、入力パターンを一切流さず、回路中のすべての信号パスの遅延を解析的に計算して、最悪ケースを保証する点です。
STAが検証する2大制約:
セットアップ制約: データはクロック端の「前」に確定していること
→ 最長パス(遅すぎ)が破ると違反 → 周波数を上げられない
ホールド制約: データはクロック端の「後」しばらく保持されること
→ 最短パス(速すぎ)が破ると違反 → そもそも誤動作する
セットアップ違反はクロックを遅くすれば回避できますが、ホールド違反は周波数に依存せず、遅延素子の挿入など回路修正でしか直せません。STAは温度・電圧・プロセスばらつきを織り込んだ複数のコーナーで実施し、どの条件でも制約が満たされることを確認します。
| 観点 | 論理シミュレーション | STA(静的タイミング解析) |
|---|---|---|
| 入力 | テストベンチのパターンが必要 | 不要(全パスを解析) |
| 網羅性 | 与えたパターン分のみ | 全タイミングパスを網羅 |
| 主目的 | 機能(論理)の正しさ | タイミング(速度)制約の充足 |
| 弱点 | 未テストパスは見落とす | 機能の正しさは見ない |
機能はシミュレーション、タイミングはSTAと役割が分かれており、両者は補完関係にあります。どちらか一方では不十分です。
配置配線 ── 論理を物理座標へ落とす
ここまでは「どのセルがどう繋がるか」という論理の世界でした。配置配線(P&R, Place and Route) で初めて、各セルがチップ上のどこに置かれ、配線が何層目をどう通るかという物理座標が決まります。物理が決まって初めて、配線長に依存する寄生抵抗・容量が確定し、遅延の実値が見えてきます。
物理設計(P&R)の主要ステップ:
フロアプラン: ブロック配置・電源網(PG)・I/O領域の枠組みを決める
→ 配置(Placement): 標準セルを行(row)に詰めて並べる
→ クロックツリー合成(CTS): クロックを全FFへ「同時刻」に届く木で配る
→ 配線(Routing): 信号をメタル層に割り付け、ビアで層間接続
→ 寄生抽出(RC Extraction)で実遅延を求め、再度STAで確認
配置直後のクロックは1点から放射状に配られるため、遠いFFほどクロックの到着が遅れます。この到着時刻のばらつき(クロックスキュー)はセットアップ/ホールドの双方を狂わせます。CTSは、バッファを木構造に挿入してクロックが全FFへほぼ同時刻に届くよう設計する専用工程です。スキューを抑えられるかどうかが、達成可能な動作周波数を直接左右します。
配置配線後は配線形状から正確な寄生成分を抽出し、その実値でSTAを再実行します。RTL合成時の遅延見積りはあくまで概算であり、物理が確定した後のSTAこそが本物です。微細化が進むと配線遅延の比重が増し、配線層数も増える背景は/semiconductor/wafer-fab-process-flow/のBEOL(多層配線)と直結します。
サインオフ ── 製造に出す前の最終関門
物理レイアウトが完成したら、製造へ渡してよいかを総合判定する サインオフ(Sign-off) に入ります。代表的な検証は次の系統です。
- タイミングサインオフ(STA):全プロセスコーナー・全モードでセットアップ/ホールドが満たされることを最終確認する。
- DRC(Design Rule Check):レイアウトがファブの物理ルール(最小線幅・最小間隔・密度規則など、製造可能性の境界)に違反していないかを検査する。
- LVS(Layout Versus Schematic):レイアウトから抽出した回路が、合成したネットリストと素子・接続レベルで一致するかを照合する(描いた図と作る版が同じか)。
- 電力・信号品質:IRドロップ(電源網の電圧降下)、エレクトロマイグレーション、クロストークなどを検証する。
DRCは「製造ルールを破っていないか」(幾何形状が作れるか)、LVSは「描いたレイアウトが設計した回路と同じか」(つなぎ間違いがないか)を見ます。DRCが通ってもLVSが通らなければ、製造はできるが意図と違う回路ができてしまう。両者は独立した別の検査であり、どちらか一方の合格では不十分という点が試験・面接でよく問われます。
タイミングの最終収束には、消費電力や温度の上限(/semiconductor/power-wall/で扱うパワーウォール)との綱引きも絡み、周波数・電力・面積の同時最適化が要求されます。
GDSIIとテープアウト ── ファブレスの責任分界
すべてのサインオフを通過したら、レイアウトを GDSII(または後継のOASIS)という版下フォーマットで出力します。GDSIIは各マスク層の幾何形状(多角形)をすべて記述したファイルで、これがフォトマスク製造の入力になります。この出力をファウンドリへ引き渡すことを テープアウト(Tape-out) と呼びます(磁気テープで版を渡していた名残の語です)。
ファブレスとファウンドリの責任分界:
ファブレス側: 仕様 → RTL → 合成 → P&R → サインオフ → GDSII出力
↑ ここまでが設計企業の担当
─────────── テープアウト(GDSIIを引き渡し)───────────
ファウンドリ側: マスク製造 → ウェハ製造(前工程/後工程)→ 出荷
ファブレスが物理的なトランジスタを直接設計せずに済むのは、ファウンドリが PDK(Process Design Kit、プロセス設計キット) と標準セルライブラリを提供するからです。PDKはDRCルール・寄生抽出モデル・デバイスモデル(SPICE)を、標準セルライブラリは各セルの遅延・電力・面積を抽象化して与えます。設計側はこの抽象を信頼してGDSIIまで作れ、製造側は受け取ったGDSIIを物理的に実現する――このインターフェースの標準化こそがファブレス/ファウンドリ分業の技術的基盤です。
テープアウト後はファブで前工程・後工程を経てチップになります。GDSIIが入力となる製造側の流れは/semiconductor/wafer-fab-process-flow/に、製造起因の歩留まりとの関係は/semiconductor/yield-defect-density/に続きます。標準セルが最終的に実装されるトランジスタ構造そのものは/semiconductor/finfet-gaa/を参照してください。
まとめ
- デジタル設計は RTL → 論理合成 → 配置配線 → サインオフ → GDSII という抽象度を下げる一方向の変換列で、各段で等価性と制約充足を検証する。
- 論理合成はRTLを標準セルのネットリストへ写す制約付き最適化で、変換の正しさは形式等価性検証(LEC)が網羅的に保証する。
- STAは入力パターンに依存せず全パスの遅延を解析し、セットアップ/ホールド制約を最悪ケースで保証する。機能はシミュレーション、速度はSTAと役割が分かれる。
- 配置配線で初めて物理座標と寄生成分が確定し、CTSがクロックスキューを抑える。サインオフでは STA・DRC・LVS を独立に通す必要がある。
- ファブレスは GDSII を出力しテープアウトでファウンドリへ渡す。PDKと標準セルライブラリによる抽象化が、設計と製造の責任分界を成立させている。
半導体 Article
デジタル設計フロー(RTL→合成→配置配線→GDSII)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
EDA
比較で見る軸
難易度: advanced / カテゴリ: 半導体 / タグ数: 6
導入後に効く点
論理合成はRTLを標準セルのネットリストへ写し、STA(静的タイミング解析)がセットアップ/ホールド制約を全パスで網羅検証する。シミュレーションと違い入力パターンに依存せず、最悪ケースを保証できるのが要点。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 半導体
- タグ数
- 6
判断チェックリスト
- 自社の用途が「EDA / ASIC」に近いか確認する。
- 強みである「デジタル設計はRTL(動作の記述)→論理合成(ゲートへ変換)→配置配線(物理座標へ落とす)→サインオフ→GDSII出力という抽象度を下げる一方向の変換列で、各段で「等価性」と「制約充足」を検証しながら進む。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。