開発日記
2022年11月 いよいよ本番の設計開始
インターネプコンに出展します
2022.11.30
出ようか出まいか悩んでいましたが、インターネプコンに出展することを決意しました。
会期:2023年1月25日(水)~1月27日(金) 10:00~17:00
会場:東京ビッグサイト
勇気を出して契約書を送りました。
出展内容はもちろん、「FPGAに特化した半導体真贋判定装置と検査サービス」です。
エレクトロテストのゾーンに残っていた、最後の一小間をいただきました。出展料はかなり高いので、一瞬たりとも無駄にはできません。
人生の賭けに出ます。
JTAG出力基板の完成へ
2022.11.27
JTAG出力基板の完成に向けて作業をしています
これが、45本の端子の好きな位置からJTAGの信号を出せるボードです。左にあるCPLDからJTAGの信号を出します。
右側は検査対象ICにつながるのですが、検査対象ICには最大で5Vくらいの電圧が加わっているかもしれないので、CPLDの端子を保護するためにMOSFETとショットキバリアダイオードをつないでいます。
出来たと思ったのですが、この基板だと検査対象のICのJTAG信号のレベルが1.8Vとかだと逆にCPLDの出力のほうが高いので保護が効きません。MOSFETによる保護は一方向だけです。
なので、VCCIO=JTAG信号のIO電圧にすることにしました。そうするとCPLD自体のJTAG信号やSPI信号もターゲットデバイスのVCCIOになってしまうので、一部分の信号だけレベル変換バッファをかませました。
もうこれ以上の修正はないはず。
出図してこの基板は終了です。
作らなければいけない基板はあと10種類くらいある。
JTAG出力基板
2022.11.26
真贋判定装置の肝であるJTAG出力基板を作成中です。先日シミュレーションした回路を45個並べています。
VCCIOより高い電圧が加わった場合にショットキダイオードとMOSFETでクリップしてFPGAに過電圧がかからないようになっています。
真贋判定装置・子基板の設計再開
2022.11.25
展示会「SEMIジャパン」も近づいてきたので、真贋判定装置の設計を急ぎます。
まずは、電源子基板。
次はGND子基板
次はアナログ子基板
出図完了!
えっ?
全部同じじゃないかって?
微妙に違うんです。
でもメタルマスクは共通だから実装費用が少しは安くなるかな。
電圧保護クリップ回路に放電抵抗は不要
2022.11.23
双方向過電圧保護回路は、最終的にこうなりました。
FPGA PINと書かれたノードに放電抵抗は不要なのです。
Xが0→5Vに立ち上がったときに少しだけFETが漏れでオーバーシュートが出ますが、昨日のブログで書いたように、ショットキバリアダイオードでクリップされたVCCIO+Vf以上には上がらないようになっています。
しかも、このヒゲは抵抗で放電しなくても速やかにVCCIOに収束します。
ショットキバリアダイオードは電位差がVfより高ければ導通して電流を流すと思われているかもしれませんが、ショットキバリアダイオードはもともと漏れ電流が大きいので、Vfより低くてもそれなりに(μAのオーダーで)電流を流してくれるからです。相当に漏れているダイオードというイメージです。
それゆえ放電抵抗は不要です。
そればかりか、放電抵抗がないほうがヒゲも低くなるというシミュレーション結果も得られました。この原因はわかりません。
MOSFETを使った双方向電圧クリップ保護回路
2022.11.22
FPGAと、正体不明のデバイス「X」を接続する回路を作りたいのですが、Xが何Vを出してくるかはわからない。
そんな場合にFPGAの端子を過電圧から保護するという回路を作ることになりました。
MOSFETを使えば電圧クリップ回路ができるということなので、シミュレーションをしてみました。
まずは、FPGAのピンを想定したパルス源から「X」に向かって信号を出力する場合。
当然のことながらFPGA PINとXは導電圧になります。
次は逆方向。FPGAが入力側になる場合です。
基本的にはMOSFETはゲート+Vthより高い電圧はD→S方向に通さないので、ゲートにVCCIOからVthだけ高い電圧をかけておけば、それ以上高い電圧はカットされてVCCIOになるという考えです。
左側の1.8VというのがFPGAのVCCIOを想定したもので、5Vから10kΩで吊っているのはバイアスを与えるための抵抗です。左側のMOSFETはダイオード接続をしているので、1.8V+Vthの電圧がゲートに加わります。
これで「X」から0~5Vの電圧を加えてみると見事にクリップされました。
ところが、@lyuka_jp さんから矩形波の過渡時には過電圧が発生するとの指摘をいただきました。
矩形波でシミュレーションしてみると、確かにヒゲがすごい出ます。
実機でもこんなにヒゲが出るのかと訝しんで、適当な基板(SMAと電源コネクタがあるやつ)にMOSFETや抵抗を付けてジャンパを飛ばして実験してみました。
その結果、たしかにシミュレーションと同じようなヒゲが出ていました。
1.8Vにクリップしたいのに3.3Vくらいまで出ていますね。
まず改善しようと思ったのはゲートの電位です。
5Vのパルスを受けると、MOSFETのゲートはこんなにも揺らぎます。
ゲートに3000pFのコンデンサをつないでもほとんど変わりませんが、10uFのコンデンサをつなぐと、突然おとなしくなりました。
ただ、ゲートの電圧を安定化させてもパルスの立ち上がりが貫通してヒゲが出る現象はあまり変わりません。
ヒゲが出る原因はゲートの電圧が揺れるのが原因ではなく、ソース・ドレイン間容量によって矩形波の立ち上がりが微分波形になって出てきているからのようでした。
次に試したのは、MOSFETとXとの間に47Ωくらいの抵抗を入れること。これはほとんど効果はありませんでした。
一番効いたのがMOSFETのソースからVCCIOに向けてショットキバリアダイオードを入れたこと。
これが効果てきめん。ヒゲをカットすることができました。
こういったショットキバリアダイオードはFPGAのピンに保護用として埋め込まれているので、あえて付けなくてもFPGAのピンにつなぐだけで自動的に挿入されます。しかし、本来はFPGAのピン内蔵ショットキバリアダイオードは導通させてはいけないダイオードです。(何のための保護素子だ!)。通常はこのダイオードが導通しないギリギリの電圧がIOピンの絶対最大定格になっています。
ですから、安全のためにはFPGAの内蔵ダイオードよりも低いVfのショットキダイオードを使ってVCCIOに放電して保護すればよいわけです。まぁ、短時間だから内蔵ダイオードがONしても平気だと思うんですけどね。
ただし、過電圧はVCCIOに流したらOKではなくて、VCCIOの電圧が上昇しないかどうかも注意深く見守る必要があります。LDOには吸い込みができないタイプもあるからです。シミュレーションした感じではVCCIOに10uFくらいのコンデンサをつないでおけばダイオードを通じて流れてきた過電圧は吸収できるようでした。
これも実機でやってみました。
まずは5Vの矩形波を800mVでクリップ。
次は1.8Vでクリップ。
次は2.8Vでクリップ。
最後は3.8Vでクリップです。
このとおり保護回路として働くことがわかりました。
アナログスイッチで電圧がクリップできない
2022.11.21
ナログスイッチを使ってFPGAの入力端子を保護できないかどうかと思い、実験してみました。
アナログスイッチというのはロジック入力でアナログ信号をON/OFFする部品です。もともとCMOS 4000シリーズに4066というアナログスイッチがあって、それを1回路化したものが各社より発売されています。
下の図は74AHC1G66のものですが、おおよそどのアナログスイッチも似たような回路になっています。
EがHレベルのときZとYの間がONするというものなのですが、MOSFETはゲート電圧でクリップされるという神話を信じて実験してみました。
その結果がこちらです。
下の図はVCC=3.3Vにして、Zの端子に5Vの矩形波を加え、Yの端子の電圧を測ったものです。
全然クリップされていない。
しかも、E=Lなのに100%漏れてきている。
OFFになりません。
どうやら、アナログスイッチはVCC以下の電圧を入れなければならないようです。
VCC以上の電圧を印可した場合どうなるかは一概にはいえませんが、バグります。
下の図は、どこまで電圧を加えるとOFF状態が壊れるかを試したもので、VCC=3.3Vで、Z=4.5Vくらいの電圧を加えたところです。
なんだかニョロニョロしています。サインカーブかなと思ったのですが、
このニョロニョロはランダムでした。
チンアナゴの大群のように見えます。
こんなことをしていたらアナログスイッチが猛烈に発熱して壊れてしまいました。
74AHC1G66; 74AHCT1G66のデータシートを読んでみると、
MC74VHC1G66のデータシートを読んでみると、
やはり4066タイプのアナログスイッチはVCCを超えてはいけないようです。とほほ・・
結論を言うと、アナログスイッチはVCC以下の電圧で使わなければならず、電圧をクリップしてくれる保護素子にはならないということがわかってきました。
ここまで設計した基板をどうするんだべという感じです。
任意のピンからJTAGを出す回路
2022.11.19
IC真贋判定装置を作るため、任意のピンからJTAGの信号を出す回路を作っています。
10月31日時点の回路
本日の回路
あまり変わっていないように見えるかもしれませんが、内層の配線をいっぱい引いています。
右側に45個並んだICはアナログスイッチで、FPGAの端子とターゲットICとの間の電圧をクリップして保護するために入っています。
FPGAは2個使っていて、左側のFPGAがJTAGの信号を作るもの、右側のFPGAがアナログスイッチのON/OFFをするためのものです。
真贋判定装置では最大2340ピンのICを検査しますが、任意の端子からJTAGの信号を出せるように45chのこのようなモジュールを作って、52個並べて、任意の端子からTCKやTDIを出せるようにしています。
つまり、4ch-2340chのマトリックスというか、クロスバースイッチを作ろうというわけです。
DUTの2340個のピンはどのような電圧になるかわからない(VCC 3.3Vかもしれないし、1.0Vかもしれない)のですが、JTAGのロジック電圧も何Vになるかわからないので、FPGAに何Vが加わってもよいようにしなければなりません。
ここまで設計していてふと不安になりました。
- アナログスイッチで本当に電圧クリップができるのか?
- この基板のFPGAは秋月のLattice MACHXO2-256だけど、入るのか?
このあたりを検証していかなければなりません。