ブログ - Metastability、ABEL、PLD考

Metastability、ABEL、PLD考

カテゴリ : 
ツール
執筆 : 
dohi 2009-7-17 23:08
 昔、PLDの開発言語と言えば、DATA I/O社のABELでした。国内のPC周辺機器メーカーに、非常に似た名前の会社が(当時から)あるので、ちょっと混乱したものです。DATA I/Oは、PLDプログラマの名品、29シリーズも作っていた会社ですが、ツールのABELは、Minc Washington社に分社し、その後Xilinx社に買収されました。Xilinx以外の新製品PLDの開発には、ABELが使えなくなったわけです。(それすら、随分昔の話です)
 もう、細かい文法は忘れてしまいましたが、if~then~else形式で状態遷移が自在に記述できるばかりでなく、例えば出力フリップフロップのJ/K入力の論理式を直に書けるなど、極限に論理を詰め込む様な技も使えました。(JK-FFタイプのPLDなど、数品種ぐらいしか無かったのですが)
 Gate Arrayでロジックを設計したときも、安く使える論理合成ツールが無く、ABELが吐き出すProduct Termの論理式を、Gate Arrayベンダのライブラリに置き換えて回路図を書きました。何かの機会に、Minc Washingtonの三上廉司さん(現在はミカミ・コンサルティング)にお会いしたときに、そのことを笑い話にしていました。
 FPGAのPin-to-Pinディレイが、数十ns程度になるまでは、ABEL+PLDは重宝しました。その後FPGAの価格も下がり、各社のFPGA/PLD設計ツールが無償でVHDLやVerilogの論理合成をサポートしたことと、Xilinxへの買収経緯もあり、ABELは役目を終えたのです。

 さて、当時のGAL(Generic Array Logic)のデータブックには、詳細なMatastability Reportが書かれており、Metastable freeであることが、GALの一つの「売り」になっていました。詳細は、「Lattice metastability report」で検索すると、そのものズバリ「Metastability Report」というPDFファイルがヒットしますのでそちらを参照いただくとして、端的に言えば、Setup/Hold Time Violationが起きたときに、FF出力が長時間不安定になるというものです。
 FPGAや、最近のMacro Cell型PLDの場合には、非同期入力に一段、FFを入れれば済む話ですが、FFが出力段にしかないClassic PLDにとっては、Metastable freeであることが大変重要です。さもなければ、PLD出力にMetastableが現れ、後位の回路に伝播してしまいます。
 現在もFPGA/PLDで、Metastability Reportを一般向けに出しているのはLatticeだけですが、通常の設計ではFFによるMetastability Filterを付けるので、トラブルを経験したことはありません。但し、Filter部にはMetastableが起きている(かどうかは、確かめる術を持っていません)ので、これを伝播させないためにトグル周波数に注意しなければなりません。
 二十年近くも前になりますが、某Gate Arrayベンダのエンジニアにうかがったところ、Metastable Timeは、Propagation Delayの六倍程度とのことでした。TPDが2nsのFFで、Route Delayが2nsだとすると、トグル周波数は1/(2*6+2)GHz=71MHz以下でなければ、Metastablity Filterは効かないことになります。

※このブログをご覧になった三上廉司さんからご連絡を頂きました。
現在は、ASIP Solutionsの社長をされています。
http://www.asip-solutions.com/
2010年6月14日追記

トラックバック

トラックバックpingアドレス http://www.bedesign.jp/modules/d3blog/tb.php/6

新しくコメントをつける

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

コメント一覧