BeDesignFPGA、組込システムハードウェア全般の受託開発

BeDesign

フリップフロップのセットアップ時間違反により、FF出力がメタステーブルになることがあります。メタステーブルとは、クロックとデータの変化点が近接しているとき、出力が一時的にHighにもLowにもならずに、中間的な電位になる現象です。この問題はあまり文献にも登場しません。Intelになった後のAltera FPGA開発環境Quatus Primeに、Metastability Reportsの機能があるようです。
あるゲートアレイベンダのエンジニアに聞くところによると、メタステーブルになる時間は、概ねプロパゲーションディレイの6倍程度だろうとのことです。tpdが500psのFFでは、3ns程度になります。この場合、トグル周波数が300MHz程度以下であれば、メタステーブルは後段に伝播しません。

非同期回路や、非同期の信号を同期回路に入力する際に、メタステーブルになる性質、メタスタビリティが問題になります。FPGAでは、シフトレジスタと多数決理論を使った回路を入力段に入れ、メタスタビリティ・フィルタを構成することによって問題を回避できます。
入力にFFを構成できないクラッシックPLDでは、デバイス自体がメタステーブル・フリーであることが要求されます。LatticeのGALがこれを謳っていました。"ispLSI/GAL Metastability Report"でWeb検索すると、当該PDF文書がヒットします。
残念ながら、LatticeのGALは、5Vロジック品種、LVロジック品種とも、数年前にDiscontinuedに移行してしまったようです。CPLDが非常に安価に入手可能になっている現状からでしょう。古い20pinDIPのロジックICを使った回路の保守用途に、GALは非常に便利でした。暫くはストック品が入手できるでしょう。

GALは、出力にOE制御付きD-FFを持ち、電気的に消去可能なクラッシックPLDです。非同期クリア・プリセットができない、FFの初期値はプログラムできない(0のみ)等の制限はありますが、クラッシックPLDのほぼ最終形態です。
私が最初に勤めた会社でも多用しました。クウォーターパワー品種でも静的消費電流が約50mAと、今から考えれば非常に高消費電流ですが、当時の私の部署のシステムは数百Wの電源を積んだ大型家庭用冷蔵庫並みの筐体が主流だったので、全体の中では誤差の範疇でした。
基板のデバッグ中に、誤ってプローブで電源-GNDをショートさせてしまうと、高い確率で実装されたGALが故障します。面白いことに、当該のGALを再度プログラムすれば復活するのです。電気的消去可能なデバイスであるGALの特性なのでしょう。どこかが劣化しているのかも知れませんが、少なくとも正しいロジックで動作します。

1990年代半ばになっても、未だプログラマブルロジックは多くの企業に普及してるとは言えませんでした。転職したメーカでは、私が直ぐにLatticeGALの開発環境と、XilinxFPGAの開発環境を導入しました。
ある時、既存製品へのポートリセット機能の追加改造の相談をされました。特定のアドレスにアクセスすると、装置にリセットを掛けるという機能です。GALと標準ロジックのバイナリカウンタの、二個のICを組み合わせれば非常に簡単に実現できます。
どれぐらいの期間で改造可能か聞かれた私は、二時間ぐらいと答えると、なぜか皆爆笑しました。数日間から一週間程度を見込んでいたようです。既存製品の回路図解析から実機の改造まで、実際には三時間程掛かりましたが、プログラマブルロジックの優位性を、皆に理解して貰ったようです。
前
ABEL
カテゴリートップ
Column
次
CAE