チップはどうやって設計する? 半導体設計(LSI設計)の流れ
ひとことで言うと、チップは、コンピューターで設計して何度もチェックしてから、半導体工場でつくられます。半導体設計(IC設計、LSI設計とも呼びます)は、その前半の仕事です。チップに何をさせるかを決め、回路を書き、正しく動くか確かめ、1層ずつの図形に並べて、フォトマスクをつくるために渡します。ICは集積回路(integrated circuit)の略で、チップの正式な名前です。
設計の仕事と工場の仕事がどう違うかは「VLSI設計と半導体工場の仕事はどう違う?」に書きました。ここでは設計そのものを、順番に見ていきます。
チップの設計には、どんな段階がある?
家を建てるのに似ています。必要なものを決め、図面を描き、チェックして、審査が通ってから工事を始めます。デジタルチップの設計は、だいたい次のとおりです。
- 仕様:何をするか、どれだけ速く、どれだけ省電力か。
- 動きを書く:ハードウェア記述言語で、回路のすることを書く。
- 検証:仕様どおりに動くか確かめる。
- 論理合成:論理ゲートに変える。
- 配置配線:ゲートをどこに置き、どうつなぐかを決める。
- チェック:つくれるか、タイミングは間に合うか。
- テープアウト:工場に渡して、マスクをつくる。
実際には、何度も前の段階に戻ってやり直します。
仕様では何を決める?
仕様はチップの「注文書」です。何をするか、どれだけ速く動くか、電力はどこまで使ってよいか、面積はどれくらいか。面積は値段に響きます。チップが大きいほど1枚のウェーハに並ぶ数が減り、1個あたりが高くなります。
これらはよく引っぱり合います。速くするには回路を増やし、電力も多く使いがちです。省電力にすると、少し遅くなるかもしれません。小さな電池1つで長く動かしたい製品なら、省電力がいちばんです。
回路はどうやって「書く」?
スマートフォンのチップには100億個以上のトランジスタがあり(トランジスタとは?)、1個ずつ描くことはできません。そこでデジタル回路は、ふつうハードウェア記述言語(HDL)で、回路の動きを文字で書きます。
書き方はプログラムに少し似ています。違うのは、プログラムは1行ずつ順番に実行されるのに対し、ハードウェア記述言語が書くのは回路なので、多くの部分が同時に動くことです。
デジタル回路の多くは、クロックという一定のリズムに合わせて動きます。メトロノームのようなものです。よくある書き方は、1拍ごとに、データがどこから来て、どんな計算をして、どこにしまわれるかをはっきり書くもので、RTLと呼ばれます。
検証には、なぜそんなに手間がかかる?
検証は、書いた回路が仕様どおりに動くかを確かめることです。一般には、設計の仕事の大きな部分を占めることが多いと言われます。理由は3つです。
- 試しきれない:入力の組み合わせに、回路が覚えている状態が加わり、1つずつ試せる数ではありません。
- バグはまれな場面に隠れる:ふだんは正しいのに、2つのことがちょうど同時に起きたときだけ間違えます。
- 見逃すと高くつく:テープアウトのあとで見つかると、設計を直してマスクをつくり直すことになります。
よく使う方法は3つあります。
- シミュレーション:コンピューター上で回路にいろいろな入力を与え、出力が正しいかを見ます。たくさんの試験問題を出すようなものです。
- 形式検証:問題を出すのではなく、数学で「必ずこうなる」と証明します。たとえば「この2つの信号が同時にオンになることはない」。
- 動かしてみる:回路を書き換えられるチップ(FPGA)に設計を入れて、実際に動かします。
書いた動きは、どうやって回路になる?
この段階が論理合成です。設計ソフトが書かれた動きを読み、論理ゲートをつないだ回路に翻訳します。論理ゲートは数個のトランジスタでできた小さな回路で、たとえば「両方が1のときだけ1を出す」ものです(メモリとプロセッサは何が違う?)。
翻訳には標準セルライブラリを使います。あらかじめ設計して確かめておいた小さな部品の集まりで、いろいろな論理ゲートや、0か1を1つ覚えておく小さな回路があります。どれも高さがそろっていて幅が違うので、積み木のように一列ずつ並べられます。同じゲートでも、プロセスの世代が違えば大きさも速さも変わります。だからライブラリは、ある工場のあるプロセスに合わせてつくられます。
何をどこに置き、どう配線する?
論理合成でできるのは「どれとどれがつながるか」のリストで、まだ位置がありません。配置配線が、それを本物の図形にします。
- フロアプラン:大きなブロックをどこに置き、電源をどこから入れるか。
- 配置:ゲートを並べます。よくつながるものは近くに。
- クロック配線:リズムを、チップのどこにもほぼ同時に届けます。
- 配線:何層もの配線層が立体交差の道路のように重なっていて、その中を線が通ります。
できあがると、層ごとに1枚の図形ができます。これをレイアウトと呼び、のちに層ごとに少なくとも1枚のマスクがつくられます。
渡す前に、何をチェックする?
全部に通らないと渡せません。この関門は、よくサインオフと呼ばれます。
- つくれるか:工場には設計ルールがあります。たとえば線をどこまで細くできるか、2本の線をどこまで近づけられるか。設計ソフトがレイアウトを1つずつ照らし合わせます。これがDRC(設計ルールチェック)です。
- 描いたものと書いたものは同じ回路か:レイアウトから回路を逆に読み取り、元の回路と比べます。これがLVSです。
- タイミングは間に合うか:1拍ごとに、信号は次の拍までに次の場所へ着かなければなりません。いちばん遅い経路が、チップの速さを決めます。工場でつくったトランジスタは少し速めや遅めになり、そのずれ方をコーナーと呼びます。遅いときにも間に合い、速いときにも誤動作しないことが必要です。
- あとでテストできるか:テスト用の回路をあらかじめ入れておき、できあがったチップの中を、テスターで1個ずつ調べられるようにします(チップはどうテストする?)。
テープアウトとは?
すべて通ったら、最終の設計データを工場に渡します。これがテープアウトです。昔は最終データを紙テープ、のちに磁気テープに入れて渡していたので、その名前が残った、とよく説明されます。
テープアウトのあとで設計を変えるには、マスクをつくり直すことになります。お金もかかり、何か月も余計に待ちます。テープアウトで終わりでもありません。できたチップをテストして、本当に仕様どおりに動くか確かめ、問題があれば設計を直して、もう一度テープアウトします。テープアウトとウェーハ投入の違いは「ウェーハ投入とは?」へ。
アナログ回路も同じように設計する?
そうとは限りません。アナログ回路は、音、電圧、電波のように連続して変わる信号を扱います(アナログ半導体とデジタル半導体は何が違う?)。その設計は、手作業に頼る部分が多くなりがちです。
- トランジスタ1つ1つの大きさやつなぎ方を、エンジニアが自分で決め、回路シミュレーションで何度も調整することがよくあります。
- レイアウトも手で描くことが多いです。アナログ回路は置き方に敏感で、そろっていなければならない2つのトランジスタは、対称に、近くに置きます。隣にノイズの多い回路があると、影響を受けやすくなります。
自動化のツールも進歩していますが、まだ経験に頼るところが大きい分野です。
設計する側と工場は、どう協力する?
設計は工場がつくれる範囲に合わせなければならないので、両者は最初からつながっています。
- 設計の前:工場が設計用のファイル一式を出します。PDK(プロセス・デザイン・キット)と呼ばれ、設計ルール、トランジスタのモデル(ふつう中央の値といくつかのコーナー)、チェック用のルールファイルが入っています。標準セルライブラリが入っていることもあれば、別の誰かがそのプロセス用につくることもあります。
- テープアウトのあと:マスクをつくり、ウェーハ投入をします。新しいチップの最初の数ロットは試作です。設計する人はテスト結果を見て、工場の人はどの工程の問題かを探します。
設計と製造は、別の会社が受け持つことがよくあります(ニュースのファブレス、ファウンドリ、IDMは何が違う?)。自分で設計して自分でつくる会社でも、同じようなルールに沿って進めます。
fab24hrでは
ゲームでは、チップを設計する人として遊ぶことはできません。メインストーリー「チップの一生」は、テープアウトのあとから始まります。はじめて遊ぶと、まずプロローグ「テープアウト」。補聴器をつくる小さな会社がはじめて自分で設計したチップ「Glowmere」が、半導体工場に渡ってフォトマスク一式になります。
第1章「12枚をどう分ける」はウェーハ投入の前日で、あなたは開発ラインの開発インテグレーションエンジニアです。同じ設計図でも、工場でつくると必ずばらつきが出ます。だから第1ロットの12枚のうち何枚かを、わざと速め・遅めにつくり、設計が持ちこたえられるかを見ます(開発インテグレーションエンジニアは何をする?)。第3章「不良の形」では、次のマスクが来週確定します。チップの中に自分たちのTEGの場所を残すかを決めますが、面積はお客さんのものです。
ゲームの会社、チップ、人物は架空のものです。設計の流れは公開されている一般的な資料をもとに書いていて、実際のやり方は会社によって違います。ほかの用語は「半導体工場の業界用語を、やさしく解説」へ。
ゲームのどこで出会うかメインストーリー「チップの一生」をはじめて遊ぶと、まずプロローグ「テープアウト」。補聴器用チップ「Glowmere」の設計が半導体工場に渡り、フォトマスク一式になります。第1章「12枚をどう分ける」はウェーハ投入の前日。開発ラインで第1ロットの12枚の分け方を決め、何枚かをわざと速め・遅めにつくって、設計が持ちこたえられるかを見ます。
fab24hrのメインストーリー「チップの一生」では、設計はもうテープアウトしています。あなたは開発ラインで、はじめて形になったそれが持ちこたえるかを見届けます。
第1章から:テープアウトのあとの最初のウェーハ先生へ:この記事は「授業でfab24hrを遊ぶ」と組み合わせて授業で使えます。
ほかの記事
半導体入門:半導体とは? 半導体工場は何をしている?
半導体とは? なぜ「半」導体なのか
半導体チップとは? ウェーハ、IC、半導体とはどう違うのか
トランジスタとは? スマートフォンのチップに100億個以上のスイッチがある理由
このサイトのほかのページ
- fab24hrとは?:2つの遊び方、4つのシフト、よくある質問、参考にした資料
- チップの一生:1個のチップの一生:テープアウト、試作、量産、ウェーハテスト、パッケージ、出荷、それぞれの段階でしていること
- 半導体工場エンジニアの一日:PE・EE・PIE・製造部の役割分担と、一日のタイムライン
- 半導体工場には誰がいる:技術員、製造部、プロセス、装置、ファシリティ、インテグレーション、品質保証、生産管理、マスク、開発、課長、メーカー、後工程のテストと組立:それぞれの一日
- 半導体工場の業界用語を、やさしく解説:MO、ホールド、Qタイム、OCAPなどの業界用語を、ひとことでやさしく
- 半導体工場の装置を、分解して見る:31種類の半導体製造装置(エッチング、露光装置、CMP、拡散炉、後工程…)が何をしているか。どれも3Dモデルで分解して見られます
- 授業でfab24hrを遊ぶ:半導体の授業・教材:20/40分の流れ、1章1コマと1エリア1コマ(3D装置・ゲーム・記事)、話し合いのテーマ、ワークシート、よくある質問
- 紹介とメディア素材:プロモーション動画、ゲーム画面、紹介文と基本情報