論理エミュレータについて
論理エミュレータは、FPGA上に設計した論理回路を実現する機械です。エミュレータといっても、Mac上でWindowsアプリケーションを利用する時に利用するような、ソフトウェア的なものではありません。中には、FPGAとそれらを相互接続するための専用のチップ(論文中ではcrossbarと呼んでいます。)がたくさんのった基盤が何枚も入っているハードウェアです。
CPU等の複雑な回路を設計する場合、その設計に間違いが最初から全くないということはまずありません。この間違いをできるだけ早く、確実に見つけることがCPU等の開発において重要です。通常この目的のためには、論理シミュレータを用います。これは、計算機に自分の設計した回路の動作をシミュレーションさせる物です。設計が正しいかどうかを、ある入力に対する出力を見ることで確かめます。
しかし、論理シミュレータではシステム全体を十分に検証することはできません。なぜなら論理シミュレータの速度(実世界の1秒間にシステムの何クロック分の動作をシミュレーションできるか)が十分ではないからです。理想的には実機と同じ環境で、実機上で動かすソフトを回路への入力として、シミュレーションをしたいのですが、時間がかかりすぎます。また長時間テストしないと発見できないような設計不良も発見することができません。
一方論理エミュレータは、実機には劣るものの、論理シミュレータ比べれば、はるかに高速に動作するため、実機にかなり近い状況でテストでき、論理エミュレータで実現した回路上でOSを走らせるテストも現実的な時間で行うことができます。
少々古い資料ですが、「情報処理」(1994、6月号)によると、Quickturn
Design Systems社のRPM(Rapid Prototype Machine)が代表的な商品だそうです。当時最新のEnterprise
Emulation Systemでは、1枚のLEM(Logic Emulation Module)あたり3万ゲートまでSUB>A/SUB>アれを11枚搭載したエミュレーション・システムで33万ゲートまで、これを20台接続することで600万ゲートまで扱うことができます。
Intel社はPentium開発にあたり、論理エミュレータを利用し、DOS、Windows、Unixと100種類以上のアプリケーションを実行し、計5件の障害をチップ制作前に発見することができたそうです。(これでも、完璧ではなかったようですが・・・)AMDなんかも使っているようです。