2017年12月24日日曜日

携帯電話向けASIC・試作評価〜私のキャリアを変えた製品のはなし

論理設計、レイアウト設計を完了して、製品開発はアートワーク工程、マスク作成、試作着工と進んでいきます。

この間およそ1ヶ月弱、ものによってはもっと早い場合もありますが、試作ロットが前工程を流れている間、評価チームや論理設計チームは、測定しなければならない項目の吟味等をしつつ、試作品の評価の準備をします。

ASIC製品では、電気的特性の社外保証項目が決まっているので、何を計るかはあまり気にしません。この製品でも、具体的な数値要求のある測定項目はあるものの、項目自体はどの製品でも測るものなので、あまり深く考えていませんでした。

少なくとも、評価を始めるまでは、そして最初の測定値を見るまでは・・・

試作サンプル評価の準備


筆者の担当していたASIC製品では、半導体メーカー側が行う評価は、ほぼLSIテスターを使った評価に限られます。したがって、試作サンプルが出てくるまでの間に、LSIテスターでLSIを動かすために必要な準備をします。

具体的な準備として実施したのは、

評価チームでは

  • テストプログラムのコーディング
  • テストパターンのコンパイル
  • テスター用のボードの仕様決定、手配
  • プローブカードの仕様決定、手配


論理設計チームでは

  • テストベクタのテスター用テストパターンへの変換(タイミング、波形定義含む)
  • LSI端子仕様情報ファイル作成
これらが揃っていれば、試作サンプルが出てすぐにテスターで評価することができます。
試作ロットの流れ具合を横にらみしながら、評価の準備をする期間は、準備が間に合うだろうか?という心配やら、製品はちゃんと動いてくれるだろうか?という心配やらで、なかなかスリリングです。

評価内容

今回の製品は、通常の電気的特性の保証の他に、特別な特性保証のご要求がありました。

音声コーデック動作時の消費電流のご要求


この製品では、消費電流に対する具体的なご要求がありました。それは音声コーデック動作中の消費電流に対するご要求で、VSELP動作中に何ミリアンペア、PSI-CELP動作中に何ミリアンペア、という具体的な数値要求でした。

VSELP、PSI-CELPはいずれも通話中に音声信号を圧縮伸張するコーデックの名前ですが、このコーデックが動作しているときに消費電流がいくつ、というご要求を、そのままの測定条件でLSIテスター上で測定しようとすると、音声通話中の動きをLSIテスター上に再現しなければなりません。これは不可能なので、別の方法を考える必要がありました。

時計動作時の消費電流のご要求


本製品には、カレンダークロックという機能ブロックが搭載されていて、これ以外の回路を全てスタンバイ状態にしたとき、つまり時計だけが動いているときの消費電流に対して、具体的な数値要求がありました。

この機能ブロックは、32kHzという低速なクロックで動作するブロックで、過去に他製品で扱った経験もあるので、消費電流測定で問題になるものはないだろうと考えていました。


上記二つの消費電流に対するご要求は、いずれも携帯電話端末の商品としての競争力に直接関わるご要求です。音声コーデック動作時の消費電流は連続通話時間を支配するものだし、カレンダークロック機能の消費電流は、連続待ち受け時間を支配するパラメーターです。

LSIテスターで消費電流を測ること


LSIテスターを使った消費電流測定には、問題点があります。ある条件のときに電流いくつ、という保証をしようとしても、その数値が本当に保証できているのか、実はLSIテスターによる測定では、わからないのです。

どういうことかと言うと、消費電流を測定するときには、テストパターンを何度も繰り返して流して、そのときにテスター電源に流れている電流を測定し、消費電流としていますが、少なくとも当時使っていたテスターでは、パターンのどこで測るかをユーザーが指定することができませんでした。
さらに、LSIの消費電流は、電源平滑化のためのバイパスコンデンサーをボード上に付けたとしても動作によって変動してしまいます。その変動する電流のある一瞬の量を測定することしかできないのです。

これをもって消費電流がいくら、という特性保証をすることは本来はできませんよね。

通常のASIC製品ではお客様に消費電流測定パターンをご指定いただき、そのパターンで測ったときにいくら、という保証のしかたをします。実はこの場合も本当のところはたまたまその時に測定値がそうだった、というだけで、厳密には最大消費電流スペックを保証しているとは言えないのです。

繰り返して測定をすれば、色々なポイントでの消費電流を測ることはできますが、その中にワーストデータが入っているかどうかはわかりません。

テスターにオプションを付けることで測定ポイントを指定できるようになる、と聞いたことがありますが、社内には指定できるテスターが1台もなかったので、おそらくあまり使えないものだったか、あまり必要性が感じられない代物だったのでしょう。ある瞬間のデータしか取れないということに変わりはないですからね。

1st Cut評価開始

最初の試作品、1st cutが出て来て、評価開始となりました。

1st cutをテスターにかけてみたところ、なんか様子が変。パターンが通りにくい、電源電圧をかなり上げないと動かない、調べてみたら動作電流が異様に大きい、という状況となりました。

それでも、テスターの電流制限を緩めて強引にパターンを流すと通るものもあるので、お客様にはその旨伝えて味見のお願いをしつつワーキングサンプルを出荷しました。お客様でも同様の症状で、評価が進めにくいとのこと。

症状をデバイス設計グループに伝えて調べてもらったところ、レイアウト設計の後のアートワーク処理にバグがあり、いくらかの抵抗を介して電源とグラウンドがショートしていることが判明しました。アートワーク処理とは、回路の図形パターンをウエハ上に焼き付けるために、図形パターンをいくつもの層に分解して、フォトマスクを作るための図柄を作成する工程です。

この状況では評価が進められず、最悪サンプルが燃えてしまうこともあり得るので、フォトマスクを作り直して改めて試作ロットを投入し、サンプルが出てくるのを待ち、評価再開です。

アートワーク処理にバグがあったということは、おそらく全層修正、全てのフォトマスクを作り直したんだと思いますけど、よく覚えていません。
このアートワーク処理のバグは、全く想定外でした。なぜなら、前工程プロセスは0.35ミクロン(今風に言うと350nm)の既存のプロセスで、まだ枯れたプロセスとは言えない状態だったものの、同じプロセスの製品がすでにあったからです。何らかの都合で、アートワーク処理の演算式を変えたと説明を受けた覚えがあります。

2nd Cut評価開始


機能評価


2nd cutが出て来て、やっと評価が進められる状況になりました。テストパターンのボリュームがとても多く、さらに試作ロットの歩留まりがよくなかったこともあって、テスター担当者はかなり苦労していました。

しかし、着実にテストパターンデバッグは進んで行きました。お客様の機能評価も順調だったと記憶しています。お客様の実装評価ボード上で音が出た、という連絡も割に早いうちに頂いたと思います。

消費電流測定で問題発生


機能的に問題ないことは、2nd cutの評価の早い段階で確認でき、評価の重点はテストの安定性の確保と特性の評価に移っていきましたが、ここで問題が発覚。お客様の実装評価でDSP付き32bit CPUの消費電流が大きい、という問題が発覚したのです。

お客様サイドの測定は、実機と同じVSELP、PSI-CELP動作を行って、消費電流が大きいという結果でした。お客様から頂いた測定結果は、このような感じの電流波形でした。



測定方法を教えて頂いたところ、こういう風に測っているとのこと。1Ωの抵抗で電圧変換しているところがポイントです。10mAの電流が10mVの電圧に変換されるので、観測し易いです。世の中には電流プローブというものもあって、電流を測ることができるのですが、この方法だと手軽で安上がりで正確です。
ASICをやってきたテスター担当としては、こういう測定方法の発想がありませんでした。これだと電流の流れがどのような遷移をするのかが良くわかります。 
後日、テスターのボードを改造して電流波形が見られるようにし、消費電流測定パターンでも電流が脈動することを確認しました。
今回のエントリーを書くにあたり、家の中を探したら、20年前の開発ノートの中に、お客様から頂いたオシロスコープのハードコピーがみつかりました。さすがにそれは出すわけにはいかないので、似たような形で描いてみました。数値も似てるけどかなり丸めた数字にしてあります。

なお、旧来製品で測定した結果も比較の為に頂きましたが、波形を比較すると、ピークで倍ぐらいの測定結果でした。

お客様からのご連絡を受けて、こちらのテスターを使用した評価でも消費電流の評価の優先度を上げて測定準備をし、CPUコア開発チームから作成いただいた消費電流測定用テストパターンを用いて測定した結果、やはり消費電流が大きい、という結果となり、消費電流が大きい問題はお客様、当方の共通認識となりました。

この、消費電流が大きいという問題、回路を変えずに抜本的に改善するのはかなり難しいと予想されるものの、お客様サイドで大問題となるので、消費電流を下げようと、色々な検討を始めたのでした。

消費電流との闘い

そもそも消費電流とは


CMOSロジックデバイスにおける消費電流とは一体何かを考えてみたいと思います。


CMOSロジックは、P-MOSとN-MOSのペアからなる相補型MOSデバイスで、定常状態ではP-MOS、N-MOSのどちらかがONしているときは反対側がOFFしています。どういうことかというと、定常状態では、CMOSロジックデバイスの電源からグラウンドの間には、ほとんど電流が流れないのです。

じゃ、一体CMOSロジックデバイスの消費電流って何?ということになりますね。

CMOSロジックデバイスでは、スイッチング時、つまり出力がLレベルからHレベル、又はHレベルからLレベルに変化するときに過渡的に電流が流れます。

たとえば、あるCMOSインバーターの出力がLレベルからHレベルに変化するときには、Lレベル(GNDレベル)からHレベル(VCCレベル)に端子の電位を持ち上げる為、に電源から電流が流れ込み、電位がHレベルまで上がったら電流が止まります。HレベルからLレベルに変化する場合は同じようにGNDに向かって電流が流れます。

出力側のレベル変化が終わると、つまり充放電が終わると電流は止まります。下の図は、とある条件で出力がLレベルからHレベルに切り替わったときの充電電流と時間の関係を計算してプロットしたもので、このような電流の流れ方になります。

この、スイッチング時の充放電電流がCMOSロジックデバイスの消費電流の正体です。(厳密には、P-MOS、N-MOSの両方ともONしている瞬間に流れる貫通電流というものもありますが、ここでは割愛します)

ここで、トランジスタ1個あたり、スイッチング1回あたりの充放電で移動する電荷は、高校の物理で習うこの式で表されます。
Cはトランジスタの出力から見た、配線にぶら下がる寄生容量、Vは電源電圧です。


単位時間当たりの電荷量が電流になりますね。トランジスタのスイッチング周波数をfとすると、平均電流は以下の式になります。


LSI全体で見ると、この数式がトランジスタの数だけあると言ったところでしょうか。リンク先に、東芝様のデータシートの消費電流に関する章があります。ご参考まで。

さらに、LSI内部にDC電流が流れる回路があれば、その回路に流れる電流も加算されますし、近年の微細化プロセスではMOSトランジスタがカットオフしているときに流れてしまう漏れ電流も無視できず、漏れ電流も消費電流に加算されます。これらの総和が、LSIの消費電流となります。

色んな人を巻き込んでの消費電流低減の検討


回路的に消費電流を減らそうと考えると、上の式のC、V、fのいずれか、もしくは全てを減らす、トランジスタの数だけある式そのものを減らす、ということになります。果たして何が出来るのか・・・

DSP付き32bit CPUには、最も周波数の高いCPU/DSP用クロックを初めとして、そのクロックを分周したクロックが2系統あって、用途に応じて分周比を変えられるようになっています。

DSP付き32bit CPUに負荷の重い処理をさせつつ分周クロックの設定を変えたり、CPU/DSPクロックを作るPLLの逓倍率を変えて、クロック入力の周波数を下げてみたり上げてみたりと、さまざまなテストパターンをコア開発チームから作って頂き、LSIテスターで消費電流をひたすら測る日々が続きました。どのクロックが消費電流に対して大きな影響を持つのかを調べる為の測定でした。

さらに、コア開発チーム、デバイス設計チームなど多くの方々を巻き込んで、様々な検討をやっていただき、消費電流削減のための対策案を作って行ったのでした。

消費電流低減のためのアイデア


消費電流低減の為のアイデアとして、以下のような項目があがりました。

  • 不要なクロックを徹底的に止める

    実はこのDSP付き32bit CPUコアは、本製品専用設計ではなく、本製品では使用しない周辺ブロックが入っています。そして、その周辺ブロックにもクロックが供給されています。これをレイアウト上で固定し、クロックが供給されないようにします。

  • DSP付き32bit CPU内部の配線間隔をできるだけ広げる
  • 一番上の配線層(グローバル配線)の配線膜厚を薄くする
  • 配線層間膜の膜厚を厚くする

    いずれも、配線層の持つ寄生容量を減らすための対策です。


    コンデンサーの容量は電極の面積(A)に比例し、電極の距離(d)に反比例する、という上記の式において、配線間隔を広げること、配線層間膜の膜厚を厚くすることは、電極の距離(d)を大きくする、一番上の配線膜厚を薄くするのは面積(A)を小さくする、ということになります。

  • 電源電圧(V)を下げる

    少しでも消費電流を減らすために、お客様と相談の上、動作周波数を確保できる範囲で電源電圧を下げることにしました。

    電源電圧の変更は、お客様のセットの仕様を変更することになるのですが、少しでも電流を下げる為にお客様もご協力くださいました。

    ただ、DSP付き32bit CPUの中には、設計の古いメモリーモジュールが含まれていて、低電圧化を行う事によって主として低温側での特性の悪化が予想され、別の懸案事項となりました。

  •  ソフトウエアの最適化

    音声コーデック、エコーキャンセラなど、DSP命令を使うソフトウエアの最適化を、CPUコア開発チームにもご協力頂いて推進していただきました。処理が終わった後にスリープ命令を実行して積極的にDSP付き32bit CPUを止めてしまうようにしました。

ハードウエアへの修正は、何段階かに分けて反映させていただき、受注時の見積もり値の満額回答とはならなかったものの、何とか使って頂けるレベルにまで改善させることができました。

この件に関しては、コア開発チーム、そしてそれを率いる親会社の中央研究所のK主任研究員の情熱と知見、技術で大いに助けて頂きました。K主任研究員は、とても温厚で人当たりの良い方ですが、すばらしい情熱と根性の持ち主でした。

テストスペックの決定


LSIテスターで消費電流を測定したときの事情を冒頭に書きました。あのような事情から、テスターが吐き出す測定値をそのままテストスペックにすることはできません。

そこで、お客様と相談の上、同一サンプルで、お客様の実装機上での測定値とテスターでの測定値とのデータ相関を取り、テスターでのテストスペックを決めるしか方法がないね、ということで、そのようにしてスペックを決定することにしました。

時計動作時の消費電力


この製品には、時計機能が搭載されていて、LSIの動作状態として、

  • 32kHzクロックと時計機能を司るカウンターだけが内部でカウント動作
  • レジスタアクセスすら不可
  • 電源電圧を通常動作よりも下げる

と言う動作状態がありました。言ってみれば、携帯電話端末の電源を切っている状態、もしくはバッテリーパックを外してしまっている状態における動作だろうと思います。携帯電話端末の、バッテリーパックを外した途端に、時計が止まってしまうようなことはありませんよね。

このときの消費電流にも要求スペックがあったと前述しましたが、自分が担当した過去の製品(過去のエントリーで書いた、初めて量産出荷を担当した製品です)でこの機能ブロックの動作電流を測定したことがあり、そのときの測定値から考えて、ご要求はとても余裕のある電流値であるとの印象でした。

さらに、今回の製品の前世代の製品にもこの機能ブロックは搭載されており、前世代品の特性評価結果も、ご要求を十分満足する実力値となっていました。

評価してみたら意外な結果


特性評価を始めてみると、プロセスパラメータが製造管理幅の中に収まっている試作サンプルであっても、低温、常温ともご要求を十分な余裕を持って満足できる測定値なのに、温度が高い条件での電流値が常温の数倍となり、プロセスバラツキによってはご要求を満足できないものが出てしまう、という結果となりました。

動いている回路はおそらく数百ゲート規模で、それが最も早くて32kHzという低速なクロックで動いている回路ですので、この測定結果は、動的な動作電流よりも、停止しているゲートのリーク電流が支配的と考えられます。

この製品の前世代品は0.5ミクロンプロセス(今風に言うと500nmプロセス)で、筆者も同じプロセス世代の別製品でテストを担当したことがありますが、高温側のリーク電流が大きく増える傾向はまだありませんでした。

これに対して、今回の0.35ミクロンプロセスでは、短チャネル効果によるリーク電流の増大が目に見えて出て来た、と考えています。

事の顛末は・・・

この測定項目は、使っているプロセスの実力値そのもので、この世代のプロセスを通常の製造管理幅で使っている限りは、良くなることはありません。

ということは、このままでは特性認定試験を合格とすることはできません。

電気的特性の確認のための特性認定試験では、データの他に一枚、設計部として、この特性データについて、何を思うの?ということをまとめた、「特認グループ見解」という資料を付けます。

ASIC製品では、決まった部品を使って決まった作り方をするので、差し障りのない内容で終わることが多いのですが、この製品の場合は、過去一番書きにくく、まとめが大変な特認グループ見解となりました。

この電流値のプロセスパラメーターや温度との依存性を取って、それから予想される限界値はいくつぐらいになるので、製造管理幅の変更をして欲しい、と見解に書いた記憶がありますが、文書にスペックとして書くと、それが確定スペックとなり、製造部門での取扱が難しくなるので、狙い所をいくつ、という書き方にして欲しいと製造部門からカウンターが来て、そのようにしてもらったはず。

また、お客様への保証スペックも変更する必要があり、高温側での電流値のスペックを2マイクロアンペアほど緩和してもらったのでした。

最後に


これで電気的特性に対する確認である特性認定試験は合格として、信頼度試験を経て量産出荷となるのが通常の流れですが、この製品はそれで済まない話があったのでした。それはまた別のエントリーでご紹介します。

そういえば、論理設計に関するエントリーで、SRAMのインタフェース仕様が変わって、リードパルスを1ショットパルスとして作る回路を入れた話を書きましたが、あれに関しては特性認定試験では全く問題になりませんでした。

この件は人知らず胸をなで下ろしていましたよ。

0 件のコメント:

コメントを投稿