プレイする

← 半導体入門講座:チップの一生をたどる

半導体入門講座・第4回

ニーズ、仕様、半導体設計

チップは半導体工場に入る前に、コンピューターで全部設計し、何度もチェックします。大きなチップには100億個以上のトランジスタがあり、手では描ききれず、チェックもしきれないので、どの段階も設計ソフトに頼り、買ってくる区画もあります。「何をするチップか」から設計データを渡すまで、どの段階も、テープアウトのあとで間違いが見つかるのを防ぐためにあります。

わかること

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

一歩ずつ

  1. 仕様を決める。何をするか、どれくらい速く動くか、電力を最大どれだけ使うか、面積はどれくらいか。

    なぜあとの段階はすべてこれに沿います。ソフトはその目標に合うやり方を探し、検証はそこから問題を出します。

    しないと仕様がなければ、設計が正しいかも、検証が終わったかも言えません。

  2. 工場とプロセスを決めたら、買ってくるIPの区画を選び、そのプロセス世代に合わせた版があるかを確かめる。

    なぜすべての区画をゼロから描くことはまずなく、1つのチップは1つのプロセスでしかつくれません。

    しないと合わないものを選ぶと、だれかが合う版をつくるのを待つか、工場を変えることになります。

  3. 自分でつくる区画の動きを、ハードウェア記述言語(HDL)で文字にする。

    なぜ「1拍ごとにこの2つの数を足す」なら1行で済むのに、トランジスタで描くとかなりの広さになります。

    しないと書き間違えると、あとのソフトはその間違いのとおりにつくってしまいます。

  4. 検証する。仕様から出した問題でシミュレーションし、カバレッジを見て、買ってきたIPもつないでいっしょに試す。

    なぜコンピューターなら1行直してすぐ試せますが、本当にチップをつくるには何か月もかかります。

    しないと間違いがテープアウトまで残ると、設計を直してマスクをつくり直すことになり、しかもできたチップの1個1個に同じ間違いが入ります。

  5. 論理合成する。標準セルライブラリを使い、書いた動きを、論理ゲートをつないだ回路に翻訳する。

    なぜ同じことをするつなぎ方はたくさんあり、ソフトは表を引いて速さ、面積、電力を比べ、目標に合うものを選びます。

    しないと手でつなぐのでは、つなぎきれず、どれがよいかも比べられません。

  6. 配置配線をする。論理ゲートを並べ、クロックを届け、何層もの配線層に線を通して、レイアウトをつくる。

    なぜ並べ方は大事です。線が長いほど信号は遅くなり、電力も多く使います。

    しないとうまく並べないと、線が通りきらなかったり信号が間に合わなかったりして、並べ直しになります。

  7. サインオフする。ルールを守っているか、レイアウトと回路が同じか、トランジスタが速め・遅めにできたとき(コーナー)でも信号が間に合うかを確かめる。

    なぜすべて通ってはじめてテープアウトします。マスクはこのデータからつくられるので、そのあとは気軽に変えられません。

    しないとまちがいをひとつ見逃すと、何か月も先にチップが戻ってきてから気づき、マスクをつくり直すしかなくなります。

要点の解説

仕様は要求リスト。ソフトはそれに沿ってやり方を探す

設計は仕様から始まります。このチップは何をするのか、どれくらい速く動くのか、電力を最大どれだけ使うのか、面積はどれくらいか。これらはよく引っ張り合います。速くしたいなら回路も電力も増えがちで、チップが大きいほど1枚のウェーハに並ぶ数が減り、1個あたりが高くなります。小さな電池1個で長くもたせたいものなら、省電力が最優先です。スマートフォンのチップには100億個以上のトランジスタがあり、仮に100億個として1秒に1個、寝ず食べずで描いても300年以上かかります。だからどの段階も、EDA(電子設計自動化)と呼ばれる設計ソフト一式に頼ります。ただし、ソフトが自分で設計するわけではありません。エンジニアが目標を伝えます。たとえば1拍にかけてよい時間はここまで(チップの回路は、クロックという一定のリズムに合わせて動きます)。ソフトはその制約の中でやり方を探してレポートを返し、通らないところがあれば、人が理由を読み取って直し、もう一度流します。

書いた動きから、1層ずつの図形へ

デジタル回路はまず、ハードウェア記述言語(HDL)で回路の動きを文字で書きます。「1拍ごとにこの2つの数を足す」なら1行で済むのに、トランジスタで描くとかなりの広さになるからです。次に論理合成ツールが、標準セルライブラリ(そのプロセス用にあらかじめつくった小さな部品。論理ゲートのほか、0か1を1つ覚えておく小さな回路もあり、部品ごとの速さや消費電力は前もって計算してある)を使って、論理ゲートをつないだ回路に翻訳します。同じことをするつなぎ方はたくさんあり、ソフトは表を引いて、目標に合うものを選びます。続く配置配線で、論理ゲートをチップの上に並べ、クロックをすみずみまで届け、何層もの配線層の中に線を通して、層ごとの図形をつくります。これをレイアウトと呼びます。線が長いほど信号は遅くなり、電力も多く使います。こうしたソフトはどれも、工場が渡すファイル一式、PDK(プロセス・デザイン・キット)に沿って計算します。設計ルール、トランジスタのモデル、各層のデータが入っていて、モデルが不正確なら、ソフトがどれだけ細かく計算しても、実物は合いません。

検証:仕様から問題を出し、まだ試していないところを探す

検証は、チップをつくる前に、設計が仕様どおりに動くかを確かめることで、一般には設計の仕事の大きな部分を占めることが多いと言われます。問題は仕様から出します。設計者が書いた回路から出すと、書き間違えたところまで「正しい」と扱われてしまうからです。シミュレーションでは、コンピューターにそのチップのふりをさせ、入力を送り込んで出力を正解とくらべ、コンピューターにランダムな問題もたくさんつくらせます。設計を1回直すたびに、それまでの問題をすべて流し直します。答えが全部合っていても、間違っているところをまだ試していないだけかもしれないので、カバレッジで足りない問題を探します。それでも問題は試しきれません。32ビットの数を2つ足すだけで入力は2の64乗通りあり、1秒に10億通り試せても500年以上かかります。だから特に大事な小さめの部分は、形式検証で、たとえば「この2つの信号が同時にオンになることはない」といったことが必ず成り立つと、数学で証明します。

多くの区画は買ってくる:半導体IP

大きなチップにはトランジスタが100億個以上あり、すべての区画をゼロから描くことはまずありません。プロセッサコア、メモリインターフェース、音のような信号を数字に変えるアナログ回路などは、半導体IPとして買ってくることがよくあります。前もって設計して検証しておき、ライセンスを受けたほかの人が自分のチップに組み込める回路の設計で、売っているのは設計図であって、チップではありません。ソフトIPは文字で書いた回路の記述で、別の工場でもつくり直せます。ハードIPはもう配置ずみの図形で、ある工場のある世代のプロセスと結びついています。アナログ回路はたいていハードIPです。トランジスタ1つ1つの大きさや置き方に敏感で、ほかの人が並べ直すと正しく動くとはかぎらないからです。アナログ回路は小さくしてもあまり得をせず、かえってつくりにくくなることもあるので、多くのアナログのチップは、何世代も前のつくり方でつくられます。買ってきたIPは単独で検証されたもので、つないでみると、クロック、電源、再起動のしかたが両側で同じとはかぎりません。だからチップ全体でもう一度検証します。

よくある誤解

よく聞くチップの設計とは、プログラムを書くことだ。
実はハードウェア記述言語は書き方がプログラムに少し似ていますが、プログラムは1行ずつ順番に実行されるのに対し、HDLが書くのは回路で、たくさんの部分が同時に動き、たいていは決まったリズム(クロック)に合わせて動きます。書き終えても終わりではありません。検証、論理合成、配置配線をして、サインオフを通ってはじめて渡せます。
よく聞く検証も、工場の計測も、チップのテストも、どれもチェックなので、1つやれば十分だ。
実は調べているものが違います。検証はテープアウトの前に、ほとんどコンピューター上で、設計そのものが正しいかを確かめます。間違っていれば、どのチップも同じように間違います。計測と検査は工場で加工の途中に、膜の厚さや線幅など、重要な工程がうまくいったかを確かめます。チップのテストは、ふつうウェーハができたあととパッケージのあとに1回ずつ、全数について、できたその1個が壊れていないかを確かめます。家を建てるのにたとえると、着工前に設計図を確かめ、建てている途中で壁がまっすぐかを測り、引き渡し前に1軒ずつ水道と電気を試すようなものです。

必読

関連

遊ぶ

第1章「12枚をどう分ける」から:設計でモデルを使って計算したコーナーを本当につくり、設計が持ちこたえるかを見る →

考える

  1. 補聴器をつくる小さな会社が、初めて自分たちでチップを設計します。マイクの音を数字に変えるアナログ回路や、チップ全体に拍子を送るクロックの回路は、自分で描くこともできれば、できあいのIPを買うこともできます。どれを自分でつくり、どれを買うか、どう決めますか? 買う前に、売り手に何を聞きますか?
  2. 検証には多くの人と時間がかかりますが、減らせばテープアウトのあとで間違いが見つかるおそれがあります。スケジュールが厳しいとき、「チェックはここまでで十分」をどう決めますか?

授業の教材:スライド

この回の要点、図、装置、問いをまとめたスライドです。そのまま投影することも、自分のプリントに入れることもできます。

スライドをダウンロード(PPTX)251 KBスライドをダウンロード(PDF)347 KB

授業や非営利の目的なら無料で使えます。fab24hrと明記してください。販売することや、自分の作品として使うことはできません。 誤りを見つけたら報告

この記事を引用する「半導体入門講座・第4回:ニーズ、仕様、半導体設計」fab24hr、更新。https://fab24hr.com/ja/learn/design/