プレイする

← fab24hrブログ

チップの基本約8分

EDAとは? チップを設計するソフトは、各段階で何をしている?

EDAは電子設計自動化(electronic design automation)の略で、チップを設計するためのコンピューターのソフトウェア一式のことです。EDAツール、半導体の設計ツールとも呼ばれます。チップは工場に入る前に、コンピューターで設計して何度もチェックします。回路のすることを書くところから、フォトマスクをつくるために渡すところまで、どの段階にもそれぞれのソフトがあります。プリント基板の設計にもEDAを使いますが、ここではチップの話だけをします。

設計の流れそのものは「チップはどうやって設計する?」に書きました。ここでは、各段階でどんな種類のソフトを使い、それが人の代わりに何をしているのかを見ていきます。

半導体設計(IC設計)の流れの図:デジタルチップは、仕様、ハードウェア記述言語で動きを書く、検証、論理合成、配置配線、チェックを経てテープアウトし、マスクがつくられます。実際には何度も前の段階に戻ってやり直します。
チップはコンピューターで設計し、何度もチェックしてからテープアウトし、マスクをつくりに出します。テープアウトまでは何度も戻ってやり直し、そのあとで変えるにはマスクのつくり直しになります。

なぜ手で描けないのか

ずっと昔、チップのトランジスタは数千個で、図は本当に人が手で描いていました。1970年代ごろ、トランジスタが多くなって描ききれなくなり、コンピューターで自動的に配置や配線をするソフトが現れました。

いまのスマートフォンのチップには、100億個以上のトランジスタがあります。仮に100億個として、1秒に1個、寝ず食べずで描いても、300年以上かかります。描いたあとには、線どうしが近すぎないか、信号が間に合うかのチェックも必要で、人の手ではとてもチェックしきれません。

ソフトが自分でチップを設計するの?

いいえ。チップに何をさせるか、どれだけ速く、どれだけ省電力にするかは、人が決めます。エンジニアがソフトに目標を伝えます。たとえば「1拍にかけてよい時間はここまで」(チップの回路は、クロックという一定のリズムに合わせて動きます)。ソフトはその制約の中でやり方を探し、レポートを返します。通らないところがあれば、エンジニアが理由を読み取って直し、もう一度流します。

計算がとても得意な助手のようなものです。速くて疲れませんが、そのチップが何に使われるのかは知りません。

設計の各段階では、どんなソフトを使う?

最初の図の1番目の仕様は、人が決めます。ここでは動きを書くところから数え、「チェック」を2つに分け、最後にマスクをつくる前の補正を加えます。

第1段階:動きを書く(ハードウェア記述言語)

エンジニアは、回路のすることをハードウェア記述言語(HDL)で文字にします。文字で書くのは、「1拍ごとにこの2つの数を足す」なら1行で済むのに、トランジスタで描くとかなりの広さになるからです。書き間違えると、あとのソフトはその間違いのとおりにつくってしまうので、次の段階で検証します。

第2段階:シミュレーションと検証(シミュレーター)

シミュレーターは、回路がもうできているものとしてコンピューター上で動かし、いろいろな入力を与えて、出力が仕様どおりかを見ます。コンピューターなら1行直してすぐ試せますが、本当にチップをつくるには何か月もかかります。間違いがテープアウトまで残ると、設計を直してマスクをつくり直すことになります(「チップの検証とは?」へ)。

第3段階:論理ゲートに合成する(論理合成ツール)

論理合成ツールは、書かれた動きを、論理ゲートをつないだ回路に翻訳します(「論理ゲートとは?」へ)。使うのは標準セルライブラリで、そのプロセス用にあらかじめつくった部品の集まりです。論理ゲートのほか、0か1を覚えておく小さな回路(フリップフロップなど)もあります。部品ごとの速さや消費電力は、回路シミュレーションで前もって計算し、表にしてあります。同じことをするつなぎ方はたくさんあるので、ソフトは表を引いて比べ、速さ、面積、電力のバランスが目標に合うものを選びます。手でつなぐのでは、つなぎきれず、どれがよいかも比べられません。

第4段階:配置配線(配置配線ツール)

このソフトは、論理ゲートをチップの上に並べ、クロックをチップのすみずみまで届け、何層もの配線層の中に線を通して、層ごとの図形をつくります。これをレイアウトと呼びます。並べ方は大事で、線が長いほど信号は遅くなり、電力も多く使います。うまく並べないと、線が通りきらなかったり信号が間に合わなかったりして、やり直しになります。

第5段階:タイミングと電力のチェック(タイミング解析、電力解析)

まずレイアウトから、1本1本の線の抵抗と容量を計算します。次にタイミング解析で、すべての経路のいちばん遅い場合を確かめます。1拍ごとに、信号は次の拍までに着かなければならないからです。入力を1つずつ与える必要はなく、すべての経路をまとめて計算し、速め・遅めのコーナーや、温度の高い・低いなど、条件ごとにもう一度計算します。電力解析では、チップがどれだけ電力を使うか、電源の線で電圧が下がりすぎないかを計算します。下がりすぎると、回路が遅くなったり、間違えたりします。

第6段階:つくれるか、描き間違いはないか(ルールチェック、LVS)

ルールチェックのソフトは、レイアウトのすべての図形を、工場の設計ルールと1つずつ照らし合わせます。たとえば2本の線をどこまで近づけてよいか。もう1つのソフトはレイアウトから回路を読み取り、元の回路と比べます(LVS)。図形は人が見きれる数ではなく、チップ全体を照らし合わせられるのはソフトだけです。ルールを破るとショートや断線のもとになり、つなぎ間違いが1か所あれば、チップは設計どおりに動きません。

第7段階:テープアウト(レイアウトのデータを渡す)

すべて通ったら、各層の図形をデータにして工場に渡します。これがテープアウトです(「テープアウトとは?」へ)。マスク工場がこのデータからマスクをつくるので、テープアウトのあとで設計を変えるには、マスクのつくり直しが必要です。

第8段階:マスクをつくる前の補正(OPC)

データがマスクをつくる側に渡ると、別の種類のソフトで、いちばん細かい層の図形をわざと描き変えます。これが光近接効果補正です(「OPC(光近接効果補正)とは?」へ)。チップの線は、露光に使う光の波長より細いので、元の図のまま焼きつけると、角が丸くなり、線の端が縮みます。補正しないと、焼きつけた線がつながらないことがあります。

実際には、1つの段階を直すと、そのあとのチェックをやり直すことになり、何度も行き来します。

工場のルールは、どうやって設計ソフトに入る?

設計ソフトは、ある工場のあるプロセスがどこまで細かくつくれるかを、それだけでは知りません。工場がそれをファイル一式にまとめて、設計する人に渡します。PDK(プロセス・デザイン・キット)と呼ばれ、ソフトのための説明書のようなものです。

  • 設計ルールと、チェック用のルールファイル:第6段階のルールチェックのソフトが使います。
  • トランジスタのモデル:電圧をかけるとどれだけ電流が流れるかを表す数式で、シミュレーターが使います。ふつう中央の値と、速め・遅めのコーナーがいくつか入っています。
  • 層のデータ:配線層が何層あり、それぞれどれだけ厚いか。配置配線と、抵抗や容量の計算に使います。
  • 標準セルライブラリ:入っていることもあれば、別の誰かがそのプロセス用につくることもあります。

モデルは、工場が実際につくったテスト用の構造を測り、数式を合わせ込んでつくります。モデルがずれていれば、ソフトがどれだけ丁寧に計算しても、できたチップは計算と合いません。

なぜたくさんのコンピューターが必要?

  • ものが多い:トランジスタは100億個以上。線の1本1本まで計算に入れます。
  • 条件が多い:速め・遅め、高温・低温、電圧の高い・低い。組み合わせごとに計算します。
  • 1つ直すと計算し直し:1か所変えると、タイミングやルールのチェックをやり直すことがよくあります。

だからチップを設計するところには、こうしたソフトを動かすためのコンピューターがたくさんあり、1つの仕事を何台にも分けて計算します。トランジスタ1つ1つまで計算する回路シミュレーションは、いちばん正確で、いちばん遅いので、主に小さな回路に使います。チップ全体は、表を引くやり方で計算しないと終わりません。

アナログ回路もソフトが自動で描く?

多くはそうではありません。デジタル回路は高さのそろった部品に分けて、ソフトに並べさせられます。アナログ回路は、音や電圧のように連続して変わる信号を扱い(「アナログ半導体とデジタル半導体は何が違う?」へ)、トランジスタ1つ1つの大きさや置き場所が結果に響きます。

そのためアナログ回路では、主に図を描くタイプのソフトを使います。エンジニアが回路図を描き、回路シミュレーションで何度も調整します。レイアウトも、図形を1つずつ手で描くことが多いです。描いたあとは、やはりルールチェックとLVSを通します。自動で描くツールも進歩していますが、まだ経験に頼るところが大きい分野です。

fab24hrでは

ゲームでは、チップを設計する人として遊ぶことはできません。メインストーリー「チップの一生」は、テープアウトのあとから始まります。プロローグ「テープアウト」で、補聴器用チップ「Glowmere」の設計が半導体工場に渡り、フォトマスク一式になります。

第1章「12枚をどう分ける」では、あなたは開発ラインの開発インテグレーションエンジニアです。ソフトが計算するところは、ゲームには出てきません。この章では、最初の12枚のうちどれをわざと速め・遅めにつくるかを決めます。設計のときモデルで計算したコーナーを本当につくって、設計が持ちこたえるかを見ます。第10章「待機電流」は後工程工場が舞台です。テストプログラムの上限は、設計のシミュレーションで決めた第1版で、ウェーハの外周のリングのチップが、ちょうど上限のあたりにかかっています。計算と、本当にできたものは、いつも同じとは限りません。

ゲームの会社、チップ、人物、数字は架空のものです。EDAが何をしているかは、公開されている一般的な資料をもとに書いていて、やり方は会社ごとに違います。ほかの用語は「半導体工場の業界用語を、やさしく解説」へ。

ゲームのどこで出会うかゲームに設計ソフトは出てきません。メインストーリー「チップの一生」第1章「12枚をどう分ける」では、開発ラインで、最初の12枚のうちどれをわざと速め・遅めにつくるか(コーナー)を決め、設計が持ちこたえるかを見ます。第10章「待機電流」では、テストプログラムの上限が、設計のシミュレーションで決めた第1版です。

fab24hrのメインストーリー「チップの一生」では、設計はもうコンピューターで計算され、テープアウトしています。あなたは開発ラインで、本当にできたチップが持ちこたえるかを確かめます。

第1章から:設計で計算したコーナーを、本当につくる

先生へ:この記事は「授業でfab24hrを遊ぶ」と組み合わせて授業で使えます。

この記事を引用する「EDAとは? チップを設計するソフトは、各段階で何をしている?」fab24hr、更新。https://fab24hr.com/ja/blog/what-is-eda/
授業や非営利の目的なら無料で使えます。投影、プリントへの掲載、生徒への配布もかまいません。fab24hrと明記してください。販売することや、自分の作品として使うことはできません。 誤りを見つけたら報告

ほかの記事

このサイトのほかのページ