2018年1月13日土曜日

携帯電話向けASIC・テストの立ち上げは大変でした

この携帯電話向けASICは、回路規模がとても大きく、DFT技術もそれほど進んでいない時代でしたので、その分テストパターンの量が膨大でした。

しかも、DSP付き32bit CPUコアのテストだけは、当面異なる機種のLSIテスターを使わなければならない事情があり、余計に大変なことになっていました。

テストパターンの量が多くなると、やることが増えることになる訳で、色々な問題が出て来ます。そして、色々なミスやトラブルが出ます。

今回は少し与太話のような内容になります。しかし、今回ご紹介する事例で、実際当時は非常に厳しい事態にもなりました。

なお、今回のエントリーでは、テストに関する幾つかのトラブルについて書きますが、決して当事者の方を非難したりする意図はありません。ご理解ください。

テスト立ち上げの状況


DCテストの状況


この製品、DCテスト系はバウンダリースキャン回路を持っていたこともあって比較的短時間で立ちあがりました。I/Oの内側にあるバウンダリースキャンレジスタを制御することで、I/Oの状態を簡単に制御できるからです。

ファンクションテストの状況


ファンクションテストでは、膨大な量のテストパターンのデバッグに忙殺される日々でした。なにせCPUコアが二つも入った製品ということで、言ってみればマイコン2製品分、それに加えてお客様のテストパターン、という従来の製品3製品分に相当するようなテストパターンのボリュームでした。

以前、「テストの実際」というエントリーに書きましたが、1000本に近いテストパターンを1本ずつ確認していく作業は、かなりの根気を要求されます。そして、人間の為ではなく測定器の為に、効き過ぎるほどの空調の効いた部屋での作業となります。筆者も経験がありますが、身体に悪いです。

せめてもの救いは、マイコン系製品では、バス系の信号の入出力タイミングはどのパターンもほぼ同じで、パターンが通り出すとまとめて数10本一気に通るようになる、という傾向があること。でも大変な事に変わりはありません。

ちなみに第1回のエントリーで書いた製品は、CPU系だけで1000本を超えるテストパターンを扱いました。量産適用したのはそのうち900本ぐらいで、残りは特性評価用でした。

大量のサンプル出荷


当時は知らなかったことですが、携帯電話端末の開発では、フィールドテストと言って、携帯電話端末の試作品を大量に作り、実際の携帯電話回線を使って端末の評価をするのだそうです。この目的で、数百個レベルの大量のESサンプルをお客様にお出しする必要がありました。

ところが、それまでのASICビジネスにおいては、サンプル出荷と言えば、最初の無償サンプルとして5個、それ以降はご要求に応じて数10個レベルでの有償サンプルをお出しする、といった物量が普通でした。

このぐらいの数量の出荷なら、設計者が自分で対応することもそれ程負担ではありません。そして、サンプル出荷の時期に、テストを完全に立ち上げることは難しいので、その時点でのテストプログラムでテスト担当者が自分で選別してサンプル出荷という対応が多かったです。

しかしこの製品では、上記の事情から、大量のサンプル出荷にしなければならなかったのですが、ここで問題になるのが、冒頭に書いたように、2台のLSIテスターで選別しなければならないことでした。選別の手間が2倍になってしまいます。それを当初は、膨大なテストパターンのデバッグの合間にテスト担当者が自らやっていたので、かなりのオーバーワークだったはずです。

ここでトラブル事例


膨大な量のテストパターンをデバッグしているとき、すでにデバッグが終わっているテストパターンは、時間短縮の為にテストで流れないように、テストプログラム内でコメントアウトしてしまう、というようなことをよくやります。

筆者も、デバッグ中にはよくやりました。テストパターンのデバッグをしたいのに、デバッグ済みのテストが流れてしまうのは、なかなかイライラするものです。

しかし、サンプル出荷などのために出荷選別をやらなければならない場面では、コメントアウトしたテストパターンは、当然また流れるようにしないと、テスト抜けになってしまいます。

これをやってしまったんですね。

お客様に出荷したESサンプルがお客様のところで不良多発、ということでテストプログラムを確認したら、一部のテストパターンがコメントアウトされたままだった、という事態が起こりました。

担当者の方は、徹夜作業の毎日で、おそらく限界が来ていたんでしょうね。

フィールドテスト用のサンプルなので、端末の試作に使われることになります。そのような用途のサンプルにテスト抜けがあるのは、お客様からしたら信じられない出来事だったのではないでしょうか。

営業さん経由ではありましたが、平謝りでした。

このミスを防ぐ為には、テストプログラムを目視して十分に確認すること、そしてデータログを画面や紙のリストに出してみて、流れるべきテストパターンの名前が不足なく出て来ているか確認すること、この二つしか対策はありません。

コメントアウトすることを禁止すれば良い、という考え方もあると思います。しかしコメントアウト禁止を担当者に押しつけると作業効率が下がるので、しない方が良いと筆者は考えます。

また、サンプルの出荷選別をしている間は、テスト時間がなるべく短くなるようにテスター端末の画面表示は消してしまうので、その状態ではパターン抜けには絶対に気が付きません。しかし、選別を始める前に、サンプル1個を使って、画面を見て確認していれば、気が付いたかもしれません。

20年経った今も、残念に思う事例です。


さらにトラブル事例


先ほどから量が多いと書いているテストパターン、LSI端子に印加される波形の定義が同じであれば、複数のパターンを繋げて1本にすることが出来ます。この頃使っていたアドバンテスト社のT3340シリーズでは、テストパターンは、総ステップ数が同じでも、細かいパターンが多数あるよりも1本にしてしまった方がテストタイムが短くなります。

そういう事情がわかっていたので、テストタイムを短くする為に短いテストパターンを繋げてしまう、という作業をやることになったのです。

デバッグ済みのテストパターンをテスター上でソースプログラムに逆変換して、テキストエディタで繋げる、という作業になりますが、ここに罠がありました。

アドバンテスト社のT3340シリーズでは、テストパターンは0/1/L/Hなどからなるパターン本体と、パターンを制御するためのインストラクションからできています。
上の図は記憶を元に書いたアドバンテスト社のテストパターンですが、この図に於いて、NOPがインストラクションです。

論理シミュレーションの結果から変換したテストパターンをLSIテスターに持っていくと、テストパターンの最後のステップの次のステップに、パターンジェネレーターを止める為のインストラクションが自動的に挿入されます。

そして逆変換して得られたソースプログラムにもこのパターンジェネレーターを止めるインストラクションが入ってしまいます。

それをそのまま連結すると、パタンジェネレーターを止めるインストラクションが最初に出てくるステップで、パターンジェネレーターが止まってしまいます。後ろにいくらパターンが残っていても最初にそのインストラクションが出てくるステップで止まるのです。3本のパターンを連結したパターンでも、最初の1本分しか流れない、ということです。流れないテストパターンがある、ということはテスト抜けです。

これも、出荷したESサンプルの不良率が異様に高い、ということから発覚したミスでした。

これもやっぱりお客様からしたら信じられない出来事だったと思います。平謝りでした。

このミスは、パターンをつないだときに余計なステップやインストラクションが混じっていないか、つないだポイントを目視するしかチェックする方法はありません。

おそらく、作業をしてくれた方は、この辺の事情を知らずに、上司からの指示で単純につないだのではないかと考えています。

半導体製品のテストでは、カバレッジを100パーセントにすることはなかなか出来ないので、どうしても、ある一定の割合で市場不良は出てしまうものです。それでもその不良発生率はppmオーダーであるのが普通です。

このときは、不良率がパーセントオーダーまで増えていました。こういうときには、重篤なテスト抜けがあると考えるべきです。

最後に


今考えると、これらのトラブルは、試作の時点で発覚していたのが不幸中の幸いでした。

コメントアウトのミスは、最悪でも量産移管時の関係部署のチェックで引っ掛かると思います。しかし、テストパターン連結のミスは、量産移管時のチェックでも引っ掛からなかったかもしれません。

それが量産品が流れ始めてからの発覚だったら、とんでもないことになっていたでしょう。

出荷後の製品を一度引き上げて再選別して良品を納めるという手間、不良品として落とした再選別品に充当する製品の手配、すでに使ってしまった製品が搭載された携帯電話端末に関する費用の求償など、大変な事態です。

ウエハテストが終わったウエハはもちろん再テストです。

しかしそれよりも、お客様が品質に疑問を持たれたら、それ以降のビジネスで不利なことになります。こちらの方が問題ですね。

それにしても、テストを担当してくれた方は大変だったと思います。その方、それまではあまり大きな製品を担当したことがなかったはずなので、なおさらですね。

0 件のコメント:

コメントを投稿