(57)【要約】【課題】  開発時間を改善し、設計品質を向上した論理検証システムとＦＰＧＡモジュールを提供する。【解決手段】  論理シミュレーション加速装置と、論理エミュレーション装置での検証工程に用いられるＦＰＧＡモジュールとブリッジ回路間において、ＦＰＧＡモジュールの全ピンを直結配線し、かつ論理シミュレーションの加速を行う場合に、ＦＰＧＡモジュールの外部インタフェースコネクタに検証対象論理の切り口を割り当て、上記ＦＰＧＡモジュールの外部インタフェースコネクタの各ピンと論理信号との対応付けを汎用プロセッサ上の論理シミュレータ上で行うようにする。【選択図】    図１２
2004157986.tif 000002
【特許請求の範囲】
【請求項１】
論理エミュレーションと論理シミュレーションの２つの検証工程において、同一のＦＰＧＡモジュールと同一のコンフィギュレーションデータを使用することを特徴とする論理検証システム。
【請求項２】
汎用プロセッサ上で動作する装置と、ＦＰＧＡを用いて再構成可能な論理装置を含む装置と、上記汎用プロセッサ上で動作する装置と上記ＦＰＧＡを用いて再構成可能な論理装置を含む装置との間でデータの送受信を行うブリッジ回路とで構成される論理シミュレーション加速装置を備え、
上記論理エミュレーション装置での検証工程に用いられるＦＰＧＡモジュールとブリッジ回路間を、ＦＰＧＡモジュールの全ピンについて直結配線し、かつ論理シミュレーションの加速を行う場合に、ＦＰＧＡモジュールの外部インタフェースコネクタに検証対象論理の切り口を割り当て、上記ＦＰＧＡモジュールの外部インタフェースコネクタの各ピンと論理信号との対応付けを上記汎用プロセッサ上の論理シミュレータ上で行うことを特徴とする論理検証システム。
【請求項３】
請求項２において、
上記ＦＰＧＡモジュールに搭載する論理に、その信号が制御する双方向信号の方向制御信号をインタフェースを用いてブリッジ回路に送信する手段を設けてなることを特徴とする論理検証システム。
【請求項４】
請求項２において、
上記ＦＰＧＡモジュールとブリッジ回路を搭載するデバイス間で双方向信号の信号方向を自動検出する手段を設け、論理シミュレーションの加速と論理エミュレーションの２つの検証工程において、検証対象の論理を搭載した同一のＦＰＧＡ群のプログラムデータを使用することを特徴とする論理検証システム。
【請求項５】
請求項４において、
上記デバイス間で双方向信号の信号方向を自動検出する手段は、両デバイスの出力回路のドライバビリティの強弱を設定し、ドライバビリティが強い方のデバイスに信号方向決定の優先度を設けるものであることを特徴とする論理検証システム。
【請求項６】
請求項４において、
上記ＦＰＧＡモジュールとブリッジ回路を搭載するデバイス間で双方向信号の信号方向を自動検出する手段と、汎用プロセッサ上の論理シミュレータに双方向信号の信号方向を入力する手段を設け、上記２つの信号方向を比較することで
論理シミュレータでの信号方向とＦＰＧＡモジュールでの信号方向の不一致を検出することを特徴とする論理検証システム。
【請求項７】
請求項６において、
上記デバイス間で双方向信号の信号方向を自動検出する手段は、両デバイスの出力回路のドライバビリティの強弱を設定し、ドライバビリティが強い方のデバイスに信号方向決定の優先度を設けるものであることを特徴とする論理検証システム。
【請求項８】
検証すべき論理回路が分割して実装される再構成可能な複数のＦＰＧＡと、
上記複数のＦＰＧＡの相互の接続をプログラマブルに行って上記検証すべき論理回路を実現するスイッチングデバイスと、
上記ＦＰＧＡに対してクロックを供給するクロック生成回路を備えたデバイスとを備えてなることを特徴とするＦＰＧＡモジュール。
【請求項９】
請求項８において、
上記スイッチングデバイスは、プログラマブルに論理回路を実装できる機能を備え、かかる論理回路を用いて上記クロック生成回路が構成され、上記複数のＦＰＧＡに対して供給されるクロック相互のスキューが小さくなるようにクロックの分配を行うことを特徴とするＦＰＧＡモジュール。
【請求項１０】
請求項９において、
上記クロック生成回路は、ＦＰＧＡの動作に必要なクロックに対してＮ倍にされた基準クロックを形成するものであり、
上記スイッチングデバイス及び上記ＦＰＧＡのインタフェース部の動作を上記基準クロックを用いて制御して、上記スイッチングデバイスとＦＰＧＡとの間で信号を時分割的に伝達させることを特徴とするＦＰＧＡモジュール。
【請求項１１】
請求項９において、
上記クロック生成回路は、上記ＦＰＧＡに実現された複数の機能モジュール毎にクロックの供給と停止を選択的に行う機能を持つことを特徴とするＦＰＧＡモジュール。
【請求項１２】
請求項９において、
上記スイッチングデバイスは、上記論理回路を用いてプログラマブルに構成され、上記クロックにより信号の取り込みと送出を行うフリップフロップ回路を実装するものであり、
検証すべき論理回路の出力端子から出力される出力信号は、上記フリップフロップ回路を介して出力させることを特徴とするＦＰＧＡモジュール。
【請求項１３】
請求項９において、
上記スイッチングデバイスは、上記論理回路を用いてプログラマブルに構成され、それにより伝達させる信号値を一定期間分記憶させ、必要に応じて取り出すトレース機能を実装することを特徴とするＦＰＧＡモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理検証システムとＦＰＧＡモジュールに関し、例えばシステムＬＳＩ（大規模集積回路装置）の開発設計に用いられる論理シミュレータ（エミュレータ）に利用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）を利用した論理エミュレーションシステムが論理検証手段として取り入れられるようになってきている。論理エミュレーションを実施した場合、実ＬＳＩを作成しないと検出できなかった、周辺実部品とのＩ／Ｆ（インタフェース）確認や、搭載基板の確認、論理シミュレーションでは検出し難い不良の摘出等が可能となり、設計期間とコストを削減することができる。また、近年のＬＳＩの論理規模増加に伴い処理時間が長大化してきたことから、ＦＰＧＡに検証対象論理の一部またはすべてを搭載することで、論理シミュレーションの加速（処理速度向上）を実現するシステムが製品化され始めている。
【０００３】
特開平１１−３５２１９０号公報（以下、先行技術１という）には、ＦＰＧＡモジュールとして、ＦＰＧＡ、スイッチングデバイス、コネクタを搭載し、各ＦＰＧＡに割り当てた論理のインタフェースを比較的容易に変更可能とすると共に、搭載されたコネクタ経由で周辺部品等、論理の外部周辺部品と接続し、市販の論理エミュレーションシステムよりも高密度で小型の形状とすることで、周辺部品等と同一の基板に搭載することを可能とすることが記載されている。
【０００４】
米国特許第６，００９，２５６号公報（以下、先行技術２という）には、ＨＤＬ記述された論理とテストベンチを入力とし、ＨＤＬから論理構成要素（レジスタ、組み合わせ回路、ワイヤ、クロック発生回路）を読み取ることで、論理及びテストベンチをＳ／Ｗで実現する部分とＨ／Ｗで実現する部分に自動分離し、それぞれをもとにＣＰＵで実行可能なソフトウェアモデルとＦＰＧＡにプログラムするハードウェアモデルを作成し、ＣＰＵ、システムバス（ＰＣＩ等）、ＦＰＧＡを構成要素とするプラットフォーム上でこれら２つのモデルを連動動作させることができる論理シミュレーション装置または論理検証装置が開示されている。
【特許文献１】特開平１１−３５２１９０号公報
【特許文献２】米国特許第６，００９，２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記先行技術１のシステムのように、ＦＰＧＡが搭載されているか、またはＦＰＧＡが搭載可能となっており、各ＦＰＧＡ間をスイッチングデバイスで接続するエミュレーションシステムの場合、ブリッジ回路は前記先行技術１のシステム上に搭載可能なＦＰＧＡで実現できるが、ブリッジ回路と各ＦＰＧＡとの接続において必ずスイッチングデバイスを経由するため、このスイッチングデバイスをプログラムする処理が必要となる。また、論理シミュレーションの加速から論理エミュレーションに移行する場合に、ブリッジ回路を搭載したデバイスを取り外し、代わりに周辺実部品を搭載するかもしくはインタフェースコネクタを搭載して、論理とこれら部品とのインタフェースをスイッチングデバイスをプログラムし直すことで再構成する必要がある。
【０００６】
そして、上記先行技術１のシステムのように、ＦＰＧＡが搭載されているか、またはＦＰＧＡが搭載可能となっており、各ＦＰＧＡ間をスイッチングデバイスで接続するエミュレーションシステムの場合、ブリッジ回路と検証対象論理のインタフェースに双方向の信号がある場合で、かつ論理シミュレータ側にその双方向信号の方向を切り替える信号（双方向信号の方向制御信号）が存在しない場合に、検証対象論理のインタフェースにこの双方向信号の方向制御信号を追加して、その信号を論理シミュレータに渡す必要がある。この双方向信号の方向制御信号は、論理の各双方向バス毎に存在するため本数が多く、ブリッジ回路と検証対象論理のインタフェースのピン数が増加してしまうという問題が発生する。また、検証すべき論理回路を複数のＦＰＧＡに分担させて構成した場合、ＦＰＧＡをまたがってクロックを伝達させることとなり、ＦＰＧＡ毎のクロック間のスキューが大きくなって高速動作での検証が行えないという問題も有する。
【０００７】
この発明の目的は、開発時間を改善した論理検証システムとＦＰＧＡモジュールを提供することにある。この発明の他の目的は、設計品質を向上した論理検証システムとＦＰＧＡモジュールを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。論理シミュレーション加速装置と、論理エミュレーション装置での検証工程に用いられるＦＰＧＡモジュールとブリッジ回路間において、ＦＰＧＡモジュールの全ピンを直結配線し、かつ論理シミュレーションの加速を行う場合に、ＦＰＧＡモジュールの外部インタフェースコネクタに検証対象論理の切り口を割り当て、上記ＦＰＧＡモジュールの外部インタフェースコネクタの各ピンと論理信号との対応付けを汎用プロセッサ上の論理シミュレータ上で行うようにする。
【０００９】
本願において開示される発明のうち他の代表的なものの概要を簡単に説明すれば、下記の通りである。検証すべき論理回路が複数のＦＰＧＡに分割して実装され、複数のＦＰＧＡの相互の接続をスイッチングデバイスによってプログラマブルに行って上記検証すべき論理回路を実現するＦＰＧＡモジュールにおいて、上記ＦＰＧＡに対してクロックを供給するクロック生成回路を上記スイッチングデバイスに設ける。
【発明の効果】
【００１０】
開発時間を改善し設計品質を向上させることができる。複数のＦＰＧＡに供給されるクロックのスキューが低減でき、高いクロックでの検証が可能になる。論理検証工数を短時間で立ち上げることができるシステム及びそれに好適なＦＰＧＡモジュールを提供することができる。動作不具合が生じた場合に、その近辺での論理ネットの状態が観測可能な為に不良原因が短時間で解析できる。
【発明を実施するための最良の形態】
【００１１】
図１には、この発明が適用されるＬＳＩにおける設計及び検証方法を説明するためのフローチャート図が示されている。図１において、ステップＳ０１０１にあるように実現する回路の仕様を決定する仕様設計を行う。次に、ステップＳ０１０２で、ステップＳ０１０１で決定した仕様に基づきＨＤＬ（ハードウェア記述言語）を用いて論理回路をレジスタトランスファレベルで記述し、論理設計を行う。その後、ステップＳ０１０３で、ステップＳ０１０２の論理回路を汎用プロセッサ上で擬似的に動作させることによりその動作を検証する機能を持つ論理シミュレータと呼ばれるシステムを用いて、設計した論理回路の検証を行う。この検証は、一般的には論理シミュレーションと呼ばれている。ここでは、論理機能が仕様通りかどうかを検証する。
【００１２】
論理機能が確認されると、ステップＳ０１０４の論理合成処理を行い、レジスタトランスファレベルで記述された回路を、ターゲットとなるＡＳＩＣ（ＬＳＩ）ゲート回路に変換する処理を行う。ステップＳ０１０４では、実際にターゲットとなるＡＳＩＣゲートで構成された回路が出力として得られるため、実行後にステップＳ０１０５にあるようにタイミングが仕様を満たすかどうかの検証を行うことが行われる。
【００１３】
ステップＳ０１０６にあるように論理シミュレーションによる検証の終わり頃から、論理シミュレーションによる検証、論理合成、レイアウトと並行して、ＦＰＧＡ (Field Programmable Gate Array)などの再構成可能なデバイスを利用した論理エミュレーションを行う。この検証は、再構成可能なデバイスに設計した論理をプログラムすることで、実際の周辺部品と組み合わせて実動作に近い速度で論理を動作させ、実部品の仕様誤解の検出やテストパターンが長大で論理シミュレーションでは実行が不可能なケースにおける不良などをＬＳＩ製造前に摘出することを目的としたものである。
【００１４】
上記再構成可能なデバイスに設計した論理をプログラムすると、実動作に近い速度で論理を動作させることが可能であるため、組み込みシステムなどの開発のように、設計した論理と組み合わせて動くソフトウェアを同時期に設計する場合、ステップＳ０１０７のようにソフトウェアデバッグをＬＳＩのサンプル製造前から実施することができ、これによって設計期間を短縮することができる。
【００１５】
ステップＳ０１０５にてタイミングに問題がなければ、ステップＳ０１０８に進み、ステップＳ０１０４においてターゲットとなるＡＳＩＣゲート回路に変換された論理を入力として、セルをチップに配置し、そのセルのピン同士を各セル間の論理接続に従って配線するレイアウト処理を行う。この後、ステップＳ０１０９にあるようにタイミングが仕様を満たすかどうかの最終検証を行う。
【００１６】
ステップＳ０１０６、ステップＳ０１０９の検証が終わると、ステップＳ０１１０にて、実際にＬＳＩを製造する。この後、ステップＳ０１１１にて最終確認のために実機検証を行うが、ステップＳ０１０６の論理エミュレーションを実施している場合、共通のテストデータや環境を使用することができ、また本来はこの時点でしか摘出できなかった不良を早期に検出しているため、実機検証期間を大幅に短くすることができる。
【００１７】
この発明は、図１の各フローのうち、ステップＳ０１０３における再構成可能なデバイスを利用した論理シミュレーションの加速と、ステップＳ０１０６における再構成可能なデバイスを利用した論理エミュレーションの改良に関するものである。
【００１８】
上記論理エミュレーションは、開発論理規模の増加に対応して複数の再構成可能なデバイスを搭載し、その再構成可能なデバイスに検証対象の論理を分割して割りあて、同一のボードに搭載された周辺実部品やコネクタを経由して接続される入出力装置とともに論理動作を実現する。論理エミュレーションで用いるマザーボードは、ＬＳＩ開発者が、設計するＬＳＩにあわせて製作したり、あるいは市販のＦＰＧＡを複数個搭載し、かつその相互間を直接またはスイッチングデバイスで接続した論理エミュレーションシステムを使用したりすることが知られている。
【００１９】
しかし、前者のマザーボードを設計するＬＳＩにあわせて製作する場合、そのマザーボードを他のＬＳＩ開発に流用できないという問題が発生する。また、各ＦＰＧＡに割り当てた論理のインタフェース、すなわち各ＦＰＧＡ間の結線を容易に変更できないという問題もある。一方、後者の市販の論理エミュレーションシステムの場合、スイッチングデバイスにより、比較的容易に各ＦＰＧＡに割り当てた論理のインタフェース変更に対応できる。また、論理エミュレーションシステムに汎用的なコネクタを用意し、周辺部品等をそのコネクタ経由で外付けにすることで論理エミュレーションシステムにプログラムするＬＳＩを自由に変更、交換可能としている。
【００２０】
しかながら、通常の論理エミュレーションシステムは大型であり、周辺部品等と同一の基板に搭載することができない。このような問題を解決する手段として、前記先行技術１で示されたＦＰＧＡモジュールを利用する手法が知られている。このようなＦＰＧＡモジュールは、ＦＰＧＡ、スイッチングデバイス、コネクタを搭載し、各ＦＰＧＡに割り当てた論理のインタフェースを比較的容易に変更可能とすると共に、搭載されたコネクタ経由で周辺部品等、論理の外部周辺部品と接続する。市販の論理エミュレーションシステムよりも高密度で小型の形状とすることで、周辺部品等と同一の基板に搭載することを可能とする。
【００２１】
再構成可能なデバイスを利用し論理シミュレーションの加速を実現するシステムとして、ＦＰＧＡを複数個搭載し、かつ論理シミュレーションを実行する汎用プロセッサとの汎用インタフェースを備えるものがある。検証対象の論理を複数個のＦＰＧＡに分割搭載し、汎用プロセッサとつながる汎用インタフェースと接続することで、汎用プロセッサ上で動作する論理シミュレータから、汎用インタフェースを通して複数個のＦＰＧＡに信号を送り、また汎用インタフェースを通して複数個のＦＰＧＡから論理シミュレータへ信号を返すという処理が可能となる。これにより、本来は汎用プロセッサ上で擬似動作させる必要のあった論理動作を、複数個のＦＰＧＡ上で実行することができるようになり、処理時間が短縮される。
【００２２】
このような論理シミュレーションの加速装置では、汎用プロセッサとつながる汎用インタフェースと接続され、汎用インタフェースのバス仕様に従って汎用プロセッサと通信を行う機能を持つことで、装置上のＦＰＧＡと汎用プロセッサとの通信の仲介を行うブリッジ回路を持ち、このブリッジ回路と複数個のＦＰＧＡがローカルバスで接続され、定められたバス仕様に則りシーケンシャルに相互で信号のやり取りを行うことが行われる。このような接続の場合、各ＦＰＧＡおよびブリッジ回路間の結線は、搭載する論理に依存せず、ローカルバスの仕様にのみ従って配線することができる。しかしながら、もともと装置に搭載する対象の論理には存在しないローカルバスとのインタフェース論理を、各ＦＰＧＡに搭載された分割論理の切り口に追加する必要が発生する。
【００２３】
この問題を解決するシステムとして、複数のＦＰＧＡを搭載でき、ＦＰＧＡに搭載した論理間のインタフェースをプログラマブルに変更できる論理エミュレーション装置と、汎用プロセッサによって動作する装置とインタフェースを持ち、論理シミュレータと信号のやり取りが可能な装置とを組み合わせることで論理シミュレーションと論理エミュレーションの協調動作を可能とし、論理エミュレーション側で検証対象の論理を実動作させて論理シミュレーションを加速するものが考えられる。
【００２４】
このようなシステムの場合、汎用インタフェースのバス仕様に従って汎用プロセッサと通信を行う機能を持ち、装置上のＦＰＧＡと汎用プロセッサとの通信の仲介を行うブリッジ回路とＦＰＧＡとの接続は、スイッチングデバイスにより、フレキシブルに変更可能となっており、ＦＰＧＡ間の接続についても同様であるから、ブリッジ回路と各ＦＰＧＡとの接続を前記先行技術２のように検証対象論理と異なるローカルバスとする必要がなく、ＦＰＧＡで実現する論理の切り口とすることができる。
【００２５】
しかし、ブリッジ回路と各ＦＰＧＡとの接続において必ずスイッチングデバイスを経由するため、このスイッチングデバイスをプログラムする処理が必要となる。また、論理シミュレーションの加速から論理エミュレーションに移行する場合に、ブリッジ回路を搭載したデバイスを取り外し、代わりに周辺実部品を搭載するかもしくはインタフェースコネクタを搭載して、論理とこれら部品とのインタフェースをスイッチングデバイスをプログラムし直すことで再構成する必要がある。
【００２６】
このシステムの場合、ブリッジ回路と検証対象論理のインタフェースに双方向の信号がある場合で、かつ論理シミュレータ側にその双方向信号の方向を切り替える信号（双方向信号の方向制御信号）が存在しない場合に、検証対象論理のインタフェースにこの双方向信号の方向制御信号を追加して、その信号を論理シミュレータに渡す必要がある。この双方向信号の方向制御信号は、論理の各双方向バス毎に存在するため本数が多く、ブリッジ回路と検証対象論理のインタフェースのピン数が増加してしまうという問題が発生する。
【００２７】
なお、先行技術２の場合には、論理シミュレーションの加速時に、各ＦＰＧＡに割り当てられた論理にローカルバスのインタフェースを追加しているため、論理シミュレーションの加速から論理エミュレーションに移行する場合に、ＦＰＧＡを搭載した論理エミュレーションマザーボードを論理にあわせて作成し、ＦＰＧＡ間および周辺実部品などとの論理の外部インタフェースとの接続を、ローカルバスから実際の論理の切り口に変更する必要がある。
【００２８】
本願発明では、論理シミュレーションと論理エミュレーションの２つの検証工程において、検証対象の論理を搭載した同一のＦＰＧＡ群のプログラムデータを使用することを可能とするために案出されたものである。すなわち、本願発明の概要を説明するならば、以下の通りである。汎用プロセッサ上で動作する装置と、再構成可能な論理装置（ＦＰＧＡ等）を含む装置とで構成される論理シミュレーションの加速装置と、再構成可能な論理装置（ＦＰＧＡ等）を含む論理エミュレーション装置において、同一のＦＰＧＡモジュールを使用する。
【００２９】
上記ＦＰＧＡモジュールとブリッジ回路間において、ＦＰＧＡモジュールの全ピンを直結配線し、かつ論理シミュレーションの加速を行う場合に、ＦＰＧＡモジュールの外部インタフェースコネクタに検証対象論理の切り口を割り当てる。そして、ＦＰＧＡモジュールの外部インタフェースコネクタの各ピンと論理信号との対応付けを、汎用プロセッサ上の論理シミュレータ上で行うようにする。
【００３０】
ＦＰＧＡモジュールに搭載する論理に、双方向信号の方向制御信号を、その信号が制御する双方向信号のインタフェースを用いてブリッジ回路に送信する手段を設けるＦＰＧＡモジュールとブリッジ回路を搭載するデバイス間で双方向信号の信号方向を自動検出する手段を設けることで、論理シミュレーションの加速と論理エミュレーションの２つの検証工程において、検証対象の論理を搭載した同一のＦＰＧＡ群のプログラムデータを使用することを実現する。
【００３１】
図２には、この発明に係る論理エミュレーションシステムの一実施例の構成図が示されている。この実施例は、図１におけるステップＳ０１０６で実施する論理エミュレーションをＦＰＧＡモジュールを利用して行う場合のシステムに向けられている。同図において、０００１−１は、検証対象の論理をプログラムするＦＰＧＡモジュール００２７、市販部品、既存ＬＳＩなどを搭載した論理エミュレーションマザーボードであり、０００２は、上記マザーボード０００１−１に信号を入出力するための信号入力／出力装置であり、例えばスピーカやディスプレイ、マイクなどからなる。
【００３２】
０００３は、入力／出力装置０００２と接続するためにマザーボード０００１−１に搭載されたコネクタである。００２７は、検証対象の論理をプログラムするＦＰＧＡモジュールである。０００４，０００５は検証対象論理の周辺部品の一例であり、０００５は既存ＬＳＩを、０００４はメモリを例示している。この実施例では、ＦＰＧＡをモジュール００２７が１つにまとめ取り外し可能とされている。
【００３３】
この実施例の論理エミュレーションシステムでは、前記説明したと同様に、開発論理規模の増加に対応して複数の再構成可能なデバイスを搭載し、その再構成可能なデバイスに検証対象の論理を分割して割り当てられ、同一のボードに搭載された周辺実部品やコネクタを経由して接続される入出力装置とともに論理動作を実現する。この実施例の論理エミュレーションで用いるマザーボードは、上記のように市販の、ＦＰＧＡを複数個搭載し、かつその相互間を直接またはスイッチングデバイスで接続した論理エミュレーションシステムを使用する。
【００３４】
図３には、この発明に用いられるＦＰＧＡモジュールの一実施例のブロック図が示されている。この実施例のＦＰＧＡモジュールは、複数個のＦＰＧＡとスイッチングデバイス、コネクタを備えて大規模論理が搭載される。００２７は、ＦＰＧＡモジュールである。００２８〜００３１はＦＰＧＡモジュールで実現する論理を分割してプログラムするためのＦＰＧＡである。００３２〜００３５は、は各ＦＰＧＡにマッピングされた論理間を接続するためのスイッチングデバイスである。００３６〜００３９は各ＦＰＧＡ００２８〜００３１にマッピングされた論理の外部インタフェース信号をＦＰＧＡモジュール００２７から入出力するためのコネクタである。
【００３５】
００４０は、ＦＰＧＡモジュール００２７を搭載するためのマザーボードであり、前記図１では０００１−１として表している。コネクタ００３６〜００３９と接続可能なコネクタを搭載することで、マザーボード００４０からＦＰＧＡモジュール００２７に対して信号を入出力できる。００４１は、ＦＰＧＡモジュール上の２つ以上のＦＰＧＡを直接結ぶワイヤである。００４２は、ＦＰＧＡモジュール上でスイッチデバイスとＦＰＧＡを結ぶワイヤである。
【００３６】
図４には、この発明に係る論理シミュレーションアクセラレータの一実施例の構成図が示されている。この実施例の論理シミュレーションアクセラレータは、前記図１におけるステップＳ０１０３で実施する論理シミュレーションを加速する装置であり、前記図３のＦＰＧＡモジュールを利用して実現される。
【００３７】
００１０−１は、論理シミュレーションを加速するために、検証対象論理をハードウェア化するためのＦＰＧＡモジュール００２７と、パーソナルコンピュータ／ワークステーション（Ｐ／Ｗ）と信号を送受信するための汎用インタフェースと、その汎用インタフェースとＦＰＧＡとの間でデータの受け渡しをするブリッジ回路００１１を実現したデバイスを搭載したボードである。００２７は、上記の図３で示したＦＰＧＡモジュールであり、００１１は、汎用のインタフェースとＦＰＧＡとの間でデータの受け渡しをするブリッジ回路を実現するデバイスであり、００１２は、上記ボード００１０−１を汎用のインタフェースを介して搭載する対象の装置であり、例としてパーソナルコンピュータＰＣから構成される。
【００３８】
上記パーソナルコンピュータＰＣは、以下の各装置を備えている。００１３は汎用プロセッサ（ＣＰＵ）である。００１４は、ディスクメモリ装置であり、論理シミュレーションプログラムや論理シミュレーションへの入力データ、論理シミュレーションからの出力結果を格納する。００１５は、ディスプレイなどの表示装置であり、論理シミュレーション結果の表示などを行う。００１６は、キーボードなどの入力装置であり、論理シミュレーション実行を行うためのユーザインタフェースとなる。
【００３９】
この実施例の論理シミュレーションアクセラレータは、汎用プロセッサ００１３上で、ディスクメモリ装置００１４上の論理シミュレーションプログラムを実行する。ブリッジ回路００１１は、汎用インタフェースを介して、ＦＰＧＡ上でハードウェア化されたシミュレーション対象論理と信号を送受信し、検証対象論理のシミュレートを行う。上記ＦＰＧＡモジュール００１０−１がない場合には、上記汎用プロセッサ００１３で実行しなければならなかった検証対象論理の擬似動作を、ＦＰＧＡ上でハードウェア化された論理を実動作させるようにし、汎用プロセッサ００１３での処理を減らすことで、処理速度を加速する。この実施例の論理シミュレーションアクセラレータは、ＦＰＧＡをモジュールとして１つにまとめ取り外し可能としている。
【００４０】
図１１には、前記ＦＰＧＡをモジュールに論理をプログラムする方法の一例を簡単に説明するためのフローチャート図が示されている。ステップＳ０９０１では、ＦＰＧＡモジュールに実現する検証対象論理を設計しているＬＳＩから切り出す処理を行う。最終的には検証対象論理は設計しているＬＳＩ全体となるが、設計の終了した機能からＦＰＧＡモジュールに実現することで、論理シミュレーションの加速や論理エミュレーションを実行することができる。
【００４１】
図５に、上記切り出された検証対象論理を説明するためのブロック図が示されている。検証対象論理は、検証対象論理と外部とで信号をやり取りするためのインタフェース（切り口）を持つ。この切り口を以下ポートと呼ぶ。また、検証対象論理は１つ以上の機能を持つ。ＬＳＩのレジスタトランスファレベルの設計においては、これら機能をブロックとしてまとめて設計することが多い。以下このブロックを機能ブロックと呼ぶ。検証対象論理は、同図に示すようにポート、機能ブロック、および機能ブロック間で信号をやり取りするためのネットで構成される。
【００４２】
図１１において、ステップＳ０９０２にて、ステップＳ０９０１で切り出した論理を、ターゲットとなる再構成可能なデバイスのゲートで記述された回路に変換する。この実施例では、以下、再構成可能なデバイスをＦＰＧＡと言い表す。次に、ステップＳ０９０３で、検証対象の論理をＦＰＧＡモジュール上の複数のＦＰＧＡに割り当てる。
【００４３】
図６には、上記検証対象の論理をＦＰＧＡモジュール上の複数のＦＰＧＡに割り当てた例のブロック図が示されている。００１０は、論理シミュレーションを加速するために、検証対象論理をハードウェア化するためのＦＰＧＡと、ＰＣと信号を送受信するための汎用インタフェースと、その汎用インタフェースとＦＰＧＡとの間でデータの受け渡しをするブリッジ回路を実現したデバイスを搭載したボードである。
【００４４】
０００６〜０００９は、前記図５の論理を分割して割り当てるためのＦＰＧＡである。００１１は、汎用インタフェースとＦＰＧＡとの間でデータの受け渡しをするブリッジ回路を実現したデバイスである。００２６は、汎用プロセッサとつながる汎用インタフェースである。００５２は、上記ブリッジ回路を実現したデバイス００１１と上記ボード００１０上のＦＰＧＡ０００６〜０００９を結ぶローカルバスである。００４３〜００４７は、上のＦＰＧＡに割り当てられた図５の論理機能ブロックである。００５３〜００５６は、機能ブロック００４３〜００４７のインタフェースをローカルバス００５２のインタフェースに変換してブリッジ回路００１１とのデータ送受信を行うローカルバスインタフェース回路である。
【００４５】
上記検証対象の論理をＦＰＧＡモジュール上の複数のＦＰＧＡに割り当てた例のブロック図が示されている。同図のように、複数のＦＰＧＡへの割りあてを機能ブロック単位とすることが、例えば前記先行技術１においても行われているが、この実施例では、機能ブロックをまたいで複数のＦＰＧＡへの割りあてを行っても良い。
【００４６】
図１１において、ステップＳ０９０４では、ＦＰＧＡモジュールのコネクタのピンに、検証対象論理のポートを割り当てるとともに、ＦＰＧＡモジュール上で複数のＦＰＧＡへの割りあてを行った論理間および論理とポート間の論理接続を、前記図３のＦＰＧＡモジュール上でスイッチデバイスとＦＰＧＡを結ぶワイヤ００４１や００４２を用いて行う。この際、ＦＰＧＡモジュールに搭載されたスイッチングデバイス内の接続も決定される。
【００４７】
図１０には、複数のＦＰＧＡを搭載したＦＰＧＡモジュールに前記図５の論理を割り当てた例のブロック図が示されている。００２７は、ＦＰＧＡモジュールである。００２９〜００３２は、図５の論理を分割して割り当てるためのＦＰＧＡである。００３６と００３９は、ＦＰＧＡモジュール００２７上に搭載されたコネクタであり、ＦＰＧＡに割り当てられた論理の外部インタフェースをＦＰＧＡモジュールの外側に接続するためのコネクタである。
【００４８】
００４３〜００４７は、ＦＰＧＡモジュール００２７上のＦＰＧＡに割り当てられた図５の論理機能ブロックである。００４８〜００５１は、上記コネクタ００３６、００３９に接続された、図５の論理の外部インタフェースである。００５７、００５９は、図５の機能ブロック間を結ぶネットである。この実施例では、ポートＡ、ポートＤをコネクタ００４８のピンに割り当てており、ポートＢ、ポートＣをコネクタ００４９のピンに割り当てている。また、論理間の接続００５７、００５８がワイヤ００４１や００４２に割り当てられる。
【００４９】
図１１において、ステップＳ０９０５で、ステップＳ０９０３で各ＦＰＧＡに割り当てた分割結果論理毎に、ステップＳ０９０４で決定された論理間接続のワイヤ割り当て結果をＦＰＧＡのピン配置制約として入力し、ＦＰＧＡ内の配置配線処理を行う。ステップＳ０９０５が終了すると、ステップＳ０９０６にあるようにステップＳ０９０４で決定されたスイッチングデバイス内の接続と、ステップＳ０９０５の処理結果であるＦＰＧＡ内の配置配線結果をＦＰＧＡにプログラム（コンフィギュレーション）する処理を行う。この処理を行うことで、プログラムした論理をＦＰＧＡモジュールで動作させることが可能となる。
【００５０】
ＦＰＧＡやスイッチングデバイスに論理をプログラム（コンフィギュレーション）する方法は、ＦＰＧＡメーカやスイッチングデバイスメーカによりさまざまな方法が提供、提示されているが、一般的にはメモリにコンフィギュレーションデータを格納しておき、直接またはコンフィギュレーションを制御するＬＳＩを経由してＦＰＧＡやスイッチングデバイスにコンフィギュレーションデータをプログラムする手法が用いられている。
【００５１】
参考として、図７には、論理エミュレーション装置の複数ＦＰＧＡに論理を割り当てた例を、図８には、スイッチングデバイスを搭載した論理エミュレーション装置の複数ＦＰＧＡに論理を割り当てた例を、図９には図８と接続される論理シミュレーションの加速装置の複数ＦＰＧＡに論理を割り当てた例をそれぞれ示す。
【００５２】
上記図７においては、上記のように複数のＦＰＧＡを搭載した論理エミュレーション装置に図７の論理を割り当てた例が示されている。０００１は検証対象の論理をプログラムするＦＰＧＡ、市販部品、既存ＬＳＩなどを搭載した論理エミュレーションマザーボードである。０００２は、論理エミュレーションマザーボードに信号を入出力するための信号入力／出力装置。例えば、スピーカやディスプレイ、マイクなどである。０００３は、上記信号入力／出力装置０００２とインタフェースをとるためのコネクタである。０００４は、は検証対象論理の周辺部品であり、同図ではメモリを例としてあげている。０００６〜０００９は、図５の論理を分割して割り当てるためのＦＰＧＡである。００４３〜００４７は、論理エミュレーションマザーボード０００１上のＦＰＧＡに割り当てられた図５の論理機能ブロックＡ〜Ｅである。
【００５３】
図８においては、上記のように複数のＦＰＧＡを搭載し、各ＦＰＧＡにプログラムした論理間のインタフェースをプログラマブルに変更できる論理エミュレーション装置に図７の論理を割り当てた例が示されている。００１７は検証対象の論理をプログラムするＦＰＧＡ、市販部品、既存ＬＳＩなどを搭載でき、各搭載品のインタフェースをプログラマブルに変更できる論理エミュレーション装置であり、０００６〜０００９は、図５の論理を分割して割り当てるためのＦＰＧＡである。００４３〜００４７は、論理エミュレーションマザーボード０００１上のＦＰＧＡに割り当てられた図５の論理機能ブロックＡ〜Ｅである。０００２は、エミュレーションマザーボードに信号を入出力するための信号入力／出力装置であり、例えばスピーカやディスプレイ、マイクなどからなる。０００３は、信号入力／出力装置０００２とインタフェースをとるためのコネクタである。０００４は、検証対象論理の周辺部品であり、メモリを例としてあげている。００１８，００１９は、論理エミュレーションマザーボード０００１に搭載する部品間のインタフェースをプログラマブルに接続するためのスイッチングデバイスである。
【００５４】
図９においては、上記のように複数のＦＰＧＡを搭載し、各ＦＰＧＡにプログラムした論理間のインタフェースをプログラマブルに変更できる論理エミュレーション装置に、汎用プロセッサによって動作する装置とインタフェースを持ち、論理シミュレータと信号の送受信が可能な装置とを組み合わせたシステムに図５の論理を割り当てた例が示されている。００１７は、検証対象の論理をプログラムするＦＰＧＡ、市販部品、既存ＬＳＩなどを搭載でき、各搭載品のインタフェースをプログラマブルに変更できる論理エミュレーション装置である。０００６〜０００９は、図５の論理を分割して割り当てるためのＦＰＧＡである。００４３〜００４７は、論理エミュレーション装置０００１上のＦＰＧＡに割り当てられた図７の論理機能ブロックである。
【００５５】
００１８，００１９は、論理エミュレーション装置０００１に搭載する部品間のインタフェースをプログラマブルに接続するためのスイッチデバイスである。００２０は、論理エミュレーション装置０００１に搭載する論理回路のインタフェースと接続され、コネクタ、ケーブル配線を経由して汎用プロセッサとの汎用インタフェースを持つボード００２１を経由して、汎用プロセッサと論理エミュレーション装置０００１に搭載する論理回路との間で信号の送受信を行うブリッジ回路が搭載されたデバイスである。００２１は、汎用プロセッサとの汎用インタフェースを持ち、コネクタ、ケーブルを介して論理エミュレーション装置０００１に搭載されたコネタク００２１と、汎用プロセッサとの間でデータの送受信をする汎用プロセッサで動作する装置に搭載可能なボードである。００２２は、ブリッジ回路００２０とボード００２１とを結ぶケーブルを論理エミュレーション装置０００１に接続するためのコネクタである。
【００５６】
００２３は、ブリッジ回路００２０とボード００２１とを結ぶケーブルである。００２４は、ボード００２１側でケーブル００２３を受けるコネクタである。００２５は、汎用プロセッサとつながる汎用インタフェースに接続されケーブル００２３およびコネクタ００２２、００２４を介して接続されるブリッジ回路００２０と、汎用インタフェースとの間での信号の受け渡しをとりもつブリッジ回路を実現したデバイスである。００２６は、汎用プロセッサとつながる汎用インタフェースである。
【００５７】
図１０には、この発明に係る複数のＦＰＧＡを搭載したＦＰＧＡモジュールに図５の論理を割り当てた一実施例のブロック図が示されている。同図において、００２７は、ＦＰＧＡモジュールであり、００２９〜００３２は、図５の論理を分割して割り当てるためのＦＰＧＡであり、００３６，００３９は、ＦＰＧＡモジュール００２７上に搭載されたコネクタであり、ＦＰＧＡに割り当てられた論理の外部インタフェースをＦＰＧＡモジュール００２７の外側に接続するためのコネクタである。００４３〜００４７は、ＦＰＧＡモジュール００２７上のＦＰＧＡに割り当てられた図５の論理機能ブロックＡ〜Ｅである。００４８〜００５１は、コネクタ００３６，００３９に接続された、図５の論理の外部インタフェースである。００５７，００５８は、図５の機能ブロック間を結ぶネットである。
【００５８】
前記図１１のステップＳ０９０１〜Ｓ０９０５からなる処理Ａは、図１のステップＳ０１０３のみで実施し、ステップＳ０１０６ではＳ０１０３で作成したものを流用する。そして、ステップＳ０９０６（処理Ｂ）は、図１のステップＳ０１０３とＳ０１０６で実施する。
【００５９】
図１２には、この発明に係るＦＰＧＡモジュール及びＦＰＧＡモジュール搭載ボードの接続例を説明するための外観図が示されている。００２７はＦＰＧＡモジュールであり、００２９〜００３２はＦＰＧＡモジュール００２７に搭載されたＦＰＧＡであり、００３６〜００３９はＦＰＧＡモジュール００２７に搭載されたコネクタである。
【００６０】
００１０−１は、論理シミュレーションを加速するために、検証対象論理をハードウェア化するためのＦＰＧＡモジュール００２７と接続するためのコネクタ００３６〜００３９と、パーソナルコンピュータやワークステーションと信号を送受信するための汎用インタフェースと、汎用インタフェースとＦＰＧＡモジュール００２７との間でデータの受け渡しをするブリッジ回路００１１を実現したデバイスを搭載したボードである。
【００６１】
００１１は、パーソナルコンピュータ／ワークステーションと信号を送受信するための汎用インタフェースとＦＰＧＡモジュールとの間でデータの受け渡しをするブリッジ回路を実現したデバイスである。００５９〜００６２は、ＦＰＧＡモジュール００２７をボード００１０−１に搭載するためのコネクタである。００６３は、ＦＰＧＡモジュール００２７をコンフィギュレーションするためのデバイスである。０００１は、論理エミュレーションマザーボードである。００５９−１〜００６２−１は、ＦＰＧＡモジュール００２７をボード０００１−１に搭載するためのコネクタである。００６３−１は、ＦＰＧＡモジュール００２７をコンフィギュレーションするためのデバイスである。０００４，０００５は、ボード０００１−１に搭載した論理とのインタフェースを検証したい実部品であり、例えばメモリ、既存ＬＳＩなどからなる。０００３は、論理エミュレーションマザーボードと外部機器などの信号入出力装置を接続するためのコネクタである。
【００６２】
上記図１０において、上記ＦＰＧＡモジュール００２７を論理シミュレーションの加速（図１のステップＳ０１０３）と論理エミュレーション（図１のステップＳ０１０６）の２つの検証手法で共有する方法を説明する。論理シミュレーションを加速するために、上記のようにパーソナルコンピュータ／ワークステーションと信号を送受信するための汎用インタフェースと、汎用インタフェースとＦＰＧＡモジュールとの間でデータの受け渡しをするブリッジ回路を実現したデバイスを搭載したボード０００１−１と、周辺実部品や、入出力装置とのインタフェースコネクタを搭載した論理エミュレーションマザーボード０００１−１に、ＦＰＧＡモジュール００２７に搭載されたコネクタと接続可能な、共通のコネクタを搭載する。これにより、物理的にＦＰＧＡモジュール００２７が、００１０−１と０００１−１の両者に搭載可能となる。
【００６３】
さらに、ＦＰＧＡモジュール００２７に、図１１のフローで説明した手順に従って作成した、ＦＰＧＡモジュール上のＦＰＧＡ、スイッチデバイスのコンフィギュレーションデータをプログラムする。コンフィギュレーションデータをＦＰＧＡ、スイッチデバイスにコンフィギュレーションする手法をボード００１０−１と０００１−１で同一とし、００１０−１と０００１−１のボード上にコンフィギュレーションのための回路を同じ構成、接続で搭載するか、ボードまたはＦＰＧＡモジュールに搭載したコネクタを介してコンフィギュレーションのための回路を接続することで、同じデータをＦＰＧＡモジュールにコンフィギュレーションして００１０−１と０００１−１のボードを動作させることができる。００６３、００６３−１はコンフィギュレーションのための回路を表す。通常は、メモリまたはメモリとコントロール回路からなる。
【００６４】
図１３には、この発明に係るＦＰＧＡモジュール及びＦＰＧＡモジュールコンフィギュレーションボードの接続例を説明するための外観図が示されている。００２７は、ＦＰＧＡモジュールであり、００２９〜００３２はＦＰＧＡモジュールに搭載されたＦＰＧＡであり、００６３〜００６６はＦＰＧＡモジュールに搭載されたコネクタであり、ＦＰＧＡモジュールのスタッキングやコンフィギュレーション機能などを持つオプションモジュールとの接続に使用される。００６７は、ＦＰＧＡモジュール００２７のコンフィギュレーション機能を実現するオプションモジュールである。００６８は、ＦＰＧＡモジュール００２７のコンフィギュレーションをコントロールする回路を実現したデバイスである。００６９は、ＦＰＧＡモジュール００２７のコンフィギュレーションデータを格納するメモリであり、００７０〜００７３は、オプションモジュール００６７をＦＰＧＡモジュール００２７に接続するためのコネクタである。
【００６５】
例えば、図１３のようにＦＰＧＡモジュール００２７の上部にコネクタを搭載し、ＦＰＧＡモジュール００２７をコンフィギュレーションする機能を持ったコンフィギュレーションボード００６７をそのコネクタ経由で搭載し、そのコネクタを通してコンフィギュレーションデータをＦＰＧＡモジュール００２７にダウンロードしプログラムするようにしておくと、前記ボード００１０−１、０００１−１にコンフィギュレーション回路００６３、００６３−１を搭載しなくても、ＦＰＧＡモジュール００２７とコンフィギュレーションボード００６７とをセットでボード００１０−１から０００１−１にのせかえることで、同じデータをＦＰＧＡモジュール００２７にコンフィギュレーションして上記００１０−１と０００１−１のボードを動作させることができる。
【００６６】
図１４には、この発明に係る論理シミュレーションを加速する装置と論理エミュレーション装置とでＦＰＧＡモジュールのデータの共有例を説明するための説明図が示されている。０００１−１は、論理エミュレーションマザーボードであり、００１０−１は、論理シミュレーションを加速するために、検証対象論理をハードウェア化するためのＦＰＧＡモジュール００２７と接続するためのコネクタと、パーソナルコンピュータやワークステーションと信号を送受信するための汎用インタフェースと、汎用インタフェースとＦＰＧＡモジュールとの間でデータの受け渡しをするブリッジ回路を実現したデバイスを搭載したボードである。
【００６７】
００６３と００６３−１は、ＦＰＧＡモジュール００２７をコンフィギュレーションするためのデバイスであり、００６７は、ＦＰＧＡモジュール００２７のコンフィギュレーション機能を実現するオプションモジュールであり、００６８は、ＦＰＧＡモジュール００２７のコンフィギュレーションをコントロールする回路を実現したデバイスであり、００６９は、ＦＰＧＡモジュール００２７のコンフィギュレーションデータを格納するメモリである。
【００６８】
００７３−１は、ＦＰＧＡモジュール００２７にダウンロードする実装情報付きの論理情報であるところのコンフィギュレーションデータであり、デバイス００６３，００６３−１内のメモリ、メモリ００６９を経由し、またはデバイス００６３，００６３−１、メモリ００６９経由、もしくは、ＦＰＧＡモジュール００２７に直接入力し、ＦＰＧＡモジュールのコンフィギュレーションを実行する。
【００６９】
同図のように、ＦＰＧＡモジュール００２７は別個に同じ物をそれぞれボード００１０−１，０００１−１に搭載しておき、ＦＰＧＡモジュール００２７に論理をプログラムするためのデータ（コンフィギュレーションデータ）のみを共有することも可能である。すなわち、ボード００１０−１，０００１−１上のコンフィギュレーションのための回路００６３，００６３−１に対して、同一のコンフィギュレーションデータ００７３−１を入力すると、コンフィギュレーションデータをＦＰＧＡ、スイッチデバイスにコンフィギュレーションする手法がボード００１０−１と０００１−１とで同一で、回路００６３，００６３−１がボード００１０−１と０００１−１に同じ構成、接続で搭載されていれば、それぞれのＦＰＧＡモジュール００２７に同一のコンフィギュレーションデータ００７３−１をプログラムすることができる。
【００７０】
図１５に示すように、ＦＰＧＡモジュール００２７の上部に搭載可能なのようなコンフィギュレーションボード００６７を使う場合には、コンフィギュレーションボード００６７のみを乗せかえることもできるし、コンフィギュレーションボード００６７に入力するＦＰＧＡモジュール００２７のコンフィギュレーションデータ００７３−１のみを共有し、コンフィギュレーションボード００６７、ＦＰＧＡモジュール００２７をボード００１０−１と０００１−１に別々に用意することも可能である。
【００７１】
ところで、ＦＰＧＡモジュール００２７を００１０−１、０００１−１で共有するためには、ＦＰＧＡモジュール００２７にプログラムされた論理と外部（周辺部品など）とのインタフェースをボード００１０−１、０００１−１で同一としなければならない。ＦＰＧＡモジュール００２７の外部インタフェースは、図１１の処理（ステップＳ０９０４）によりＦＰＧＡモジュール上のコネクタのピンへの割り当てが決定される。前述したように、このコネクタのピンへの割りあてはボード０００１−１の基板の配線をもとに決定することが一般的である。このため、ボード００１０−１側において、少なくてもＦＰＧＡモジュールのすべてのピンに対して任意の信号を入出力可能とする必要があるが、ボード００１０−１上で、ＦＰＧＡモジュールのすべてのピンとブリッジ回路００１１とを直結接続しておき、かつ後述のように汎用プロセッサ側でＦＰＧＡモジュールのピン情報とデータ情報とをセットで送受信することにより、全てのピンに対してブリッジ回路を介した汎用プロセッサから信号の入出力が可能となる。
【００７２】
ＦＰＧＡモジュールにプログラムした論理の外部インタフェースにあわせて、汎用プロセッサ上の論理シミュレータとＦＰＧＡモジュールとで信号を送受信する方法を説明する。ＦＰＧＡモジュールにプログラムした論理の外部インタフェースは、ＦＰＧＡモジュール上のコネクタのいずれかのピンに割り当てられている。汎用プロセッサとブリッジ回路間のデータ転送において、例えばＦＰＧＡモジュール上のコネクタのピンに、予め番号を割り当てておき、その番号の順番に各信号の値を論理シミュレータ側でセットしてブリッジ回路に送信、ブリッジ回路でセットして論理シミュレータ側で受信すれば、ＦＰＧＡモジュールにプログラムした論理の外部インタフェースがどのようなピン割りあてになっていても、論理シミュレータ側に予めコネクタピンに割り当てた番号と外部インタフェース信号との対応を入力することにより、各コネクタピンに割り当てられた信号の変化を、論理シミュレータとＦＰＧＡモジュールで送受信することが可能となる。
【００７３】
図１６には、この発明に係るＦＰＧＡモジュールと論理シミュレータとの間で信号対応付けを行う手法を説明する構成図が示されている。００２７はＦＰＧＡモジュールであり、００１１はＦＰＧＡモジュール００２７と汎用プロセッサ００１３の間のデータ送受信を受け持つブリッジ回路である。００９６は、汎用プロセッサ００１３上で動作する論理シミュレータである。００９７は、ＦＰＧＡモジュール００２７における論理の外部インタフェースのコネクタピン割り当てた結果であり、００９８は、ＦＰＧＡモジュール００２７のコネクタピンに番号を割り当てた対応表である。００９９は、ＦＰＧＡモジュール００２７における論理の外部インタフェースと対応表００９８で定まるコネクタピンに与えられた番号との対応表であり、上記ピン配置結果００９７と対応表００９８から作られる。
【００７４】
例えば、上記ＦＰＧＡモジュール００２７に、１＃Ａ１、２＃Ｅ１、３＃Ｘ１というピンが存在するとし、前記図１１のステップＳ０９０４における処理で、ピン１＃Ａ１にポートＡ、ピン２＃Ｅ１にポートＢが割り当てられ、ピン３＃Ｘ１は割りあてなしとなったとする。また、ＦＰＧＡモジュール００２７のコネクタピンが番号付けされた表が予め用意されているとする。
【００７５】
図１１のステップＳ０９０４における処理結果として上記のピン１＃Ａ１にポートＡ、１＃Ｅ１にポートＢが割り当てられ、ピン３＃Ｘ１は割りあてなしの結果を得、この処理結果とＦＰＧＡモジュールのコネクタピンに与えられた番号１、２、３のそれぞれに対応した１＃Ａ１、２＃Ｅ１、３＃Ｘ１とＦＰＧＡモジュールの外部インタフェースとの対応表（ピン番号１はポートＡ、２はポートＢ）を作成する。その後、論理シミュレータ００９６に上記対応表（ピン番号１はポートＡ、２はポートＢ）を入力することで、論理シミュレータがその対応付けに従った順番でブリッジ回路００１１と信号を送受信する。
【００７６】
この際、３＃Ｘ１に関しては、ダミーのデータを送受信する。または、論理シミュレータとブリッジ回路との間で、この番号３＃Ｘ１と信号値をセットで送受信しても良い。ブリッジ回路は、予めＦＰＧＡモジュール００２７のピンと番号との対応を記憶しておくことにより、前記いずれかの方法で受信したデータを、ＦＰＧＡモジュールの所定のピンに出力することができる。また、この予め記憶されたＦＰＧＡモジュールのピンと番号との対応に従ってＦＰＧＡモジュールから取得した信号を番号順に並べ、または番号とセットにして汎用プロセッサに送信することも同様に可能である。この手法を取ることにより、ＦＰＧＡモジュールは、ボード００１０−１のブリッジ回路とＦＰＧＡモジュール００２７との物理的な接続に関わらず、自由にボード０００１−１の基板にあわせて論理のポートに対するコネクタピン割りあてが可能となり、その結果ボード００１０−１と０００１−１でのコンフィギュレーションデータの共有が可能となる。
【００７７】
しかし前述したように、ボード００１０−１にプログラムする論理のポートに双方向信号があった場合、論理シミュレータ側がその双方向信号の方向を認識できない場合があるため、その双方向信号の方向制御信号を、ＦＰＧＡモジュール００２７内から取得し、論理シミュレータ側に送信することが必要となる。この問題の解決策として、ＦＰＧＡモジュールのコネクタのピンに対し、その双方向信号の方向制御信号をポートとして論理に追加し、論理シミュレータ側に送信する方法が考えられる。この場合、前述したようにＦＰＧＡモジュールの切り口が検証対象論理と異なり、またピン数も増加してしまう。これを防ぐ方法として、本願では以下のような双方向信号の方向制御信号転送方法を開発した。
【００７８】
図１７には、検証対象論理に双方向信号の方向制御信号を追加する例の説明図が示されている。００４２−１は、複数のＦＰＧＡまたはＦＰＧＡモジュールにプロクラムする論理の最上位階層を表す。００４３〜００４７は、論理の各機能を実現する機能ブロックを表す。この実施例では機能ブロックが最上位階層下にあるが、最上位階層と機能ブロックの間に複数機能をまとめた階層があっても良い。機能ブロック間は、お互いに信号を送受信するためのネットで結合されている。００４８〜００５１は、最上位階層のポートを表し、論理と外部とのインタフェースである。０１０３〜０１０５は、それぞれポート００４９、００５０、００５１に接続されたＩ／Ｏ双方向セルである。０１０６、０１０７は、Ｉ／Ｏ双方向セル０１０３〜０１０５の方向制御信号を、ブリッジ回路経由で汎用プロセッサに送信するために追加したポートである。
【００７９】
図１８には、この発明に係るブリッジ回路とＦＰＧＡモジュール間の一実施例のブロック図が示されている。図１８の回路は、双方向信号の方向制御信号を、その信号が制御する双方向信号の接続を用いて時分割でＦＰＧＡモジュールからブリッジ回路に送信する。回路００７８（Ａ）、００７９（Ｂ）をＦＰＧＡモジュールにプログラムされる論理の双方向信号のＩ／Ｏ記述個所に予め挿入しておく。この回路００７８（Ａ）、００７９（Ｂ）は２つの機能を持つ。
【００８０】
１つは、信号（mode）００７６に関する機能であり、もう１つは信号（re）００７７に関する機能である。信号（mode）００７６に関する機能は、信号（mode）が例えば論理値‘0'の時には回路挿入前の論理動作を行い、論理値‘1'の時には時分割で双方向信号の方向制御信号と双方向信号自身を転送する動作を行うといったように、２つの双方向ポートの動作を切り替える機能である。このモードを切り替えることで、論理エミュレーション時には、本来の論理動作を行い、論理シミュレーションの加速を行う場合にはピンを増やさずに双方向信号の方向制御信号を、双方向信号と対応付けてブリッジ回路に渡すことが可能となる。信号（mode）００７６は、ブリッジ回路および、論理エミュレーションマザーボードから、それぞれの値を設定する。
【００８１】
真理値表１
┌───┬───┬───┬────┬┬────┐
│Ｍ    │Ｒ    │Ｅ    │ＯＩ    ││ＯＯ    │
├───┼───┼───┼────┼┼────┤
│０    │−    │−    │０／１  ││ＯＩ    │
│１    │１    │１／０│    −  ││Ｅ      │
│１    │０    │−    │０／１  ││ＯＩ    │
└───┴───┴───┴────┴┴────┘    
真理値表２
┌───┬───┬───┬┬────┐
│Ｍ    │Ｒ    │Ｅ    ││ＥＯ    │
├───┼───┼───┼┼────┤
│０    │−    │１／０││Ｅ      │
│１    │１    │−    ││０      │
│１    │０    │１／０││Ｅ      │
└───┴───┴───┴┴────┘
【００８２】
一方、信号（re）に関する機能は、時分割で双方向信号の方向制御信号と、双方向信号自身を転送する動作が選択された場合に、双方向信号と方向制御信号の送信タイミングがブリッジ回路からＦＰＧＡモジュールに送信され、その信号変化に従って双方向信号と方向制御信号をそれぞれブリッジ回路に送信する機能である。図１８の回路では、信号（re）００７７が双方向信号と方向制御信号の送信タイミングを表す信号であり、信号（re）００７７の論理値‘1'の場合に方向制御信号が、それ以外では双方向信号自身が送信されるようになっている。信号（re）００７７は、論理シミュレーションの加速の場合にブリッジ回路からそれぞれの値を設定する。論理エミュレーションにおいては、マザーボード上で信号（re）００７７は、論理値‘0'または‘1'に固定しておけば良い。上記回路００７８と００７９の回路動作を表した真理値表が、前記の真理値表１と２に示されている。
【００８３】
真理値表３
┌───┬───┬────┬────┬┬────┐
│Ｍ    │Ｒ    │ＥＰ    │ＮＥ    ││ＥＯ    │
├───┼───┼────┼────┼┼────┤
│０    │−    │０／１  │−      ││ＥＰ    │
│１    │１    │−      │−      ││１      │
│１    │０    │−      │１／０  ││ＮＥ    │
└───┴───┴────┴────┴┴────┘
真理値表４
┌───┬───┬───┬┬────┐
│Ｃ    │Ｒ    │Ｉ    ││ＮＥ    │
├───┼───┼───┼┼────┤
│↑    │１    │１／０││Ｉ      │
│↑    │０    │−    ││保持    │
└───┴───┴───┴┴────┘
【００８４】
一方、ブリッジ回路側では、ＦＰＧＡモジュールから送られてくる双方向信号と方向制御信号をそれぞれ切り分けて取得するための回路００８０（Ｃ）を持つ。回路００８０は、信号（re）が論理値‘1'の場合にＦＰＧＡモジュールから送信されてくる方向制御信号を記憶するための記憶素子００８１を持つ。回路００８０は、信号（mode）が論理値‘0'の時には、ＦＰＧＡモジュールから読み出す方向制御信号ではなく、論理シミュレータ側から送信される方向制御信号の値をもとにブリッジ回路のＩ／Ｏの方向制御を行う。信号（mode）が論理値‘1'の時には、ＦＰＧＡモジュールから読み出した方向制御信号の値をもとにブリッジ回路のＩ／Ｏの方向制御を行う機能を持つ。また、信号（re）が論理値‘1'の場合に方向制御信号を読み出すためにブリッジ回路のＩ／Ｏの方向を、ブリッジ回路から見て入力の方向に設定する機能を持ち、読み取った値を記憶素子００８１に記憶する。回路００８０と記憶素子００８１の動作を表した真理値表が、前記の真理値表３と４に示されている。
【００８５】
回路００８２は、論理シミュレータ側が各双方向信号の方向を認識している場合に、論理シミュレータ側からその双方向信号の方向を信号値と同様の方法で取得し、信号（mode）を論理値‘1'とした場合にＦＰＧＡモジュールから送られてくる双方向信号の方向制御信号の値と比較する回路である。この比較の結果不一致が発生した場合、論理シミュレータ上の回路とＦＰＧＡモジュールにプログラムした論理間で、信号の衝突が発生していることを意味する。この比較結果を例えば、汎用インタフェース経由でブリッジ回路から読み出すことにより、双方向信号の衝突が検出可能となる。なお、この比較は汎用プロセッサ上で実行しても良い。
【００８６】
図１９には、図１８の実施例回路の動作を説明するためのタイミングチャート図が示されている。同図において、双方向信号の方向制御信号を、その信号が制御する双方向信号の接続を用いて時分割でＦＰＧＡモジュールからブリッジ回路に送信する場合の、ブリッジ回路とＦＰＧＡモジュール間のワイヤ００７３−２の信号変化を説明する。まず、論理シミュレーションを加速する場合の、ブリッジ回路とＦＰＧＡモジュールにおけるクロック信号について説明する。ブリッジ回路のクロックは、汎用インタフェースとデータをやり取りするため、汎用インタフェースにあわせたクロック周波数で動作する。
【００８７】
一方、ＦＰＧＡモジュールのクロックは、汎用プロセッサから、汎用インタフェース、ブリッジ回路を経由してプログラムした論理に対する入力信号が送られてくるため、その送信タイミングに従ってクロックを動作させる必要がある。このため、ブリッジ回路側からＦＰＧＡモジュールに対してクロック波形を送信するか、クロックイネーブルを送信する手法が取られる。ＦＰＧＡモジュールにプログラムされた論理は、１つまたは複数のクロック変化に従って内部のレジスタの値を更新し、また、出力を変化させる。このため、ブリッジ回路とＦＰＧＡモジュールとの間の信号送受信は、例えば次の順序で行われる。
（１）ＦＰＧＡモジュールへの信号入力
（２）ＦＰＧＡモジュールのクロックを変化させる
（３）ＦＰＧＡモジュールからの出力信号の読み取り
双方向信号の方向制御信号をＦＰＧＡモジュールから読み出すタイミングは、上記（２）と（３）の間で行う。図１８では、最初の状態でＦＰＧＡモジュール側のイネーブルすなわち制御信号が論理値‘0'（ロウレベル）となっており、ブリッジ回路側のイネーブルが論理値‘1'（ハイレベル）となっている。ＦＰＧＡモジュール、ブリッジ回路のＩ／Ｏセルが共にロウアクティブ（Low-Active）である場合、この状態は、ＦＰＧＡモジュールが出力であることを表す。このため、この時点でのワイヤ００７３−２の信号値は、ＦＰＧＡモジュールから出力される双方向信号の論理値となっている。この状態は、上記の（１）の状態である。
【００８８】
次に上記（２）の状態に移行し、ＦＰＧＡモジュールに対してクロックが発行される。すると、このクロック変化に従いＦＰＧＡモジュール側のイネーブルが次のサイクルの値に変化する。図１９の場合、論理値‘0'から‘1'に変化している。しかし、ブリッジ回路側では、まだＦＰＧＡモジュールにおけるイネーブルの変化を読み取っていないため、論理値‘1'のままである。ブリッジ回路側は、ＦＰＧＡモジュールに対してクロックを発行した後、ＦＰＧＡモジュールが変化したクロックによって動作を確定するのに十分な時間を置いて、そのクロック変化に従ったサイクルのＦＰＧＡモジュール側のイネーブルの状態を読み出すために、信号（re）を論理値‘1'に変化させる。
【００８９】
すると、一時的に信号方向がＦＰＧＡモジュールが出力でブリッジ回路側が入力となるように設定され、ワイヤ００７３−２にＦＰＧＡモジュールから出力されるＦＰＧＡモジュールにおけるイネーブルの論理値をブリッジ回路が取りこむ。すなわち信号（re）が論理値‘1'のときに、ワイヤ００７３−２はＦＰＧＡモジュールにおけるイネーブルの論理値‘1'となり、この値をブリッジ回路が取りこむ。取りこみ終わった後、ブリッジ回路は信号（re）を論理値‘0'に戻し、かつ、ＦＰＧＡモジュールにおけるイネーブルの論理値が‘1'であることからＦＰＧＡモジュールが入力となったことを検出し、自身の方向制御を出力側すなわち論理値‘0'に変更する。すると、ワイヤ００７３−２には、ブリッジ回路からの出力値がドライブされる。これら一連の処理を繰り返すことで、クロック変化により値が変更されるＦＰＧＡモジュールにおけるイネーブルの値をブリッジ回路のＩ／Ｏ制御に反映させることができる。
【００９０】
この手法は、双方向信号数に依存せず信号（mode，re）の２本の信号を論理に追加するだけで良いため、従来の方向制御信号をポートに追加する手法に比べ、検証対象論理のインタフェースに対する変更の度合いが少なく、また信号（mode,re ）を論理エミュレーションにて設定することで同じコンフィギュレーションデータを論理シミュレーションの加速と論理エミュレーションで使用することができるという利点がある。
【００９１】
図２０には、この発明に係るブリッジ回路とＦＰＧＡモジュール間の他の一実施例のブロック図が示されている。図２０の回路は、検証対象論理のインタフェースに対する変更がなく、また検証対象論理に全く手を加えないように工夫されている。この実施例の特徴は、ブリッジ回路側の、ＦＰＧＡモジュールとのインタフェースを持つＩ／Ｏセル００８９の出力バッファの駆動力を、ＦＰＧＡモジュールのそれ００９０よりも充分に弱いものとし、一時的にブリッジ回路とＦＰＧＡモジュール間のワイヤ１３０４において信号を衝突させ、その時の信号変化を読み取ることにより、ＦＰＧＡモジュール側の双方向信号の方向を判定するというものである。
【００９２】
図２１には、上記２０の信号方向の判定方法を説明するためのレベル設定図が示されている。駆動力の強い出力バッファと駆動力の弱い出力バッファとで信号が衝突した場合、同図のように、両者の出力値が同一ならば、信号の電位はその出力値に従う。また異なる値の場合には、駆動力の強い出力バッファのドライブした値に近い電位をとる。前記図２０回路の場合、ブリッジ回路側ではＦＰＧＡモジュールに比べて充分に弱い出力バッファを使用しているため、ブリッジ回路のＩ／ＯセルのＨ／Ｌ（ハイレベル／ロウレベル）両方のスレッシュホールドよりも駆動力の強い出力バッファがドライブする値により近い電位となる。この結果、ブリッジ回路のＩ／ＯセルではＨ側のスレッシュホールドよりも電位が高ければ論理値‘1'、Ｌ側のスレッシュホールドよりも電位が低ければ論理値‘0'が取りこまれる。
【００９３】
これにより、ブリッジ回路からＨ（論理値‘1'），Ｌ（論理値‘0'）の２値を出力すれば、ＦＰＧＡモジュール側が値を出力していた場合にはどちらかが出力値と異なる値となり、出力していない場合には出力した値がそのまま読込まれるため、ＦＰＧＡモジュール側の信号方向をブリッジ回路側で判定することが可能となる。この判定を行う回路が図２０の回路００９０である。また回路００９１により、判定した結果をブリッジ回路側のＩ／Ｏセルの方向制御に反映させる。なお、図１８の実施例回路と同様に、論理シミュレータ側が各双方向信号の方向を認識している場合に、回路００９２にて、論理シミュレータ側からその双方向信号の方向を信号値と同様の方法で取得し、回路００９０の判定結果と比較することで、双方向信号の衝突が検出可能である。
【００９４】
図２２には、図２０の実施例回路の動作を説明するためのタイミングチャート図が示されている。ブリッジ側のＩ／Ｏセルの状態とＦＰＧＡモジュール側のＩ／Ｏセルの状態を説明する。ブリッジ回路とＦＰＧＡモジュールのクロックについては、前記図１９で説明した通りである。このタイミングチャートの最初の状態では、図１９と同様に、ＦＰＧＡ側モジュールが出力、ブリッジ回路側が入力となっている。
【００９５】
ＦＰＧＡモジュールのクロック変化により、ＦＰＧＡ側モジュールが論理値‘0'から‘1'に変化する。ブリッジ回路側では、クロックを発行した後、ＦＰＧＡモジュールが変化したクロックによって動作を確定するのに十分な時間を置いて、そのクロック変化に従ったサイクルのＦＰＧＡモジュール側のイネーブルの状態を読み出すために、最初に論理値‘1'を次に論理値‘0'をワイヤ００７３−２に出力する。なお、この際、論理値‘0'、‘1'の順に信号を出力しても構わない。この信号の出力タイミングは、図１９の信号（re）の発行タイミングと同じである。
【００９６】
同図に示した例の場合、ＦＰＧＡのＩ／Ｏは入力（Ｉ）となっているため、状態はＨｉ−Ｚ（出力ハイインピーダンス）である。このため、ワイヤ００７３−２上の信号値は、ブリッジ回路側で読込むと論理値‘1'出力時には論理値‘1'、‘0'出力時には論理値‘0'となる。この場合は、ブリッジ回路の出力バッファ０８８の出力値に対応してリードデータが変化するので、ブリッジ回路側は出力と判定される。
【００９７】
次のクロック変化で、ＦＰＧＡモジュール側のイネーブルが論理値‘0'に変化し、ＦＰＧＡモジュール側のＩ／Ｏが出力に変化する。ブリッジ回路は、そのクロック変化サイクルでのＦＰＧＡモジュール側のイネーブルの状態を読み出すために、出力バッファ００８８により再び最初に論理値‘1'を出力し、次に論理値‘0'をワイヤ００７３−２に出力する。ＦＰＧＡのＩ／Ｏは出力となっているため状態は、出力バッファ００８９が出力する論理値‘0'または‘1'のままとなる。
【００９８】
同図の例の場合は、出力バッファ００８９の出力が論理値‘0'であるから、ブリッジ回路側で読込むと出力バッファ００８８から論理値‘1'出力してもリードデータは‘0'、論理値‘0'出力してもリードデータは‘0'となる。この場合は、ブリッジ回路側は入力と判定される。これら一連の処理を繰り返すことで、クロック変化により値が変更されるＦＰＧＡモジュールにおけるイネーブルの値を、図１８の回路と同様にブリッジ回路のＩ／Ｏ制御に反映させることができる。
【００９９】
以上、述べたような手法をとることにより、検証対象論理のインタフェースに双方向信号があってもインタフェースを論理に依存して変更することがなく、また、ＦＰＧＡモジュールを使用すること、ＦＰＧＡモジュールのコネクタのピンに対する論理信号割りあてを論理エミュレーションマザーボードに合わせることにより、物理位置を含めて論理エミュレーションと論理シミュレーションの加速とでＦＰＧＡモジュールのインタフェースを一致させることができる。これらにより、論理エミュレーションと論理シミュレーションの２つの検証工程において、同一のＦＰＧＡモジュールと同一のコンフィギュレーションデータを使用することが可能となる。なお、ＦＰＧＡモジュールは、同タイプを個別に用意し、同一のコンフィギュレーションデータを使用することも可能である。
【０１００】
以上説明した実施例においては、論理エミュレーションと論理シミュレーションの２つの検証工程において、同一のＦＰＧＡモジュールと同一のコンフィギュレーションデータを使用することが可能であるため、２つの検証工程で個別にデータを用意する必要がない。すなわち、図１１のステップＳ０９０１からステップＳ０９０５までの作業をステップＳ０１０３で実施しておけば、ステップＳ０１０６ではこの作業を行う必要がないため、論理シミュレーションの加速から論理エミュレーションへの移行がスムーズに行える。
【０１０１】
また、ステップＳ０９０１からステップＳ０９０５での作業ミスなどにより論理シミュレーションの加速は正しく動作するが論理エミュレーションは動作しないまたはその逆の現象は発生せず、また、論理シミュレーションの工程においてある程度確認されたデータで論理エミュレーションを実行できるため、論理エミュレーションの立ち上げが容易である。このため、ステップＳ０１０３とステップＳ０１０６の２工程での検証工数を大幅に削減することができる。
【０１０２】
また、論理エミュレーションでの周辺部品とのインタフェースの不具合を、論理シミュレーションに戻って解析、確認することもできる。さらに、論理エミュレーションでしか検出できなかった双方向信号の衝突を、論理シミュレーションで先に検出することが可能となる。
【０１０３】
上記効果は、図１のステップＳ０１０３とステップＳ０１０６において使用するＦＰＧＡモジュールを共有する場合と、コンフィギュレーションデータのみを共有し、個別のＦＰＧＡモジュールを使用する場合との共通の効果であるが、コンフィギュレーションデータのみを共有する場合には、更に、ステップＳ０１０３とステップＳ０１０６の実施期間をある程度並走させることができ、論理検証期間の短縮が図れるという効果がある。また、離れた場所で作業している場合でも、データを送る手段（例えばインターネット）があれば論理シミュレーションの加速と論理エミュレーションが同一のデータを使って実施できる。
【０１０４】
上記のように論理シミュレーションの加速と論理エミュレーションが、同一のＦＰＧＡモジュールで、論理データを変更することなしに実現できる。つまり、ＦＰＧＡモジュール搭載論理の切り口を変更する必要がない。Ｈ／ＷとＳ／Ｗを連結するための論理の内容、タイミング、インタフェースが論理に依存して変更されないため、論理側のタイミング設計が容易となる。つまり、Ｈ／ＷとＳ／Ｗを連結するための論理が、ＦＰＧＡモジュール搭載論理に依存しないため、論理に合わせて作成し直す必要がない。Ｓ／Ｗ側で、双方向ポートに対するイネーブル情報を持っている場合に、この情報とＦＰＧＡモジュールから読み出した情報を比較できるのでバス衝突を検出できる。
【０１０５】
論理シミュレーションの実行時間の短縮が可能なためＬＳＩ開発における検証フェーズの期間を短縮できる。そして、論理シミュレーションである程度品質が確保された論理を搭載したＦＰＧＡモジュールをそのまま論理エミュレーションに適用できるため論理シミュレーションの実行時間の短縮が可能となりテストケースを多く実行できるとともに、論理エミュレーションにより論理シミュレーションでは検出が難しい論理不良を検出できるためＬＳＩ開発において設計品質を向上できる。
【０１０６】
図２３には、この発明が適用されるＬＳＩにおける設計及び検証方法を説明するためのフローチャート図が示されている。図２３においては前記図１の実施例と基本的には同様であり、ステップ（１）において、実現する回路の仕様を決定する仕様設計、つまりＬＳＩ方式設計を行う。次に、ステップ（２）で、ステップ（１）で決定した仕様、ＬＳＩ方式設計に基づき、例えば前記のようなＨＤＬ（ハードウェア記述言語）を用いて論理回路をレジスタトランスファレベルで記述し、論理設計を行う。
【０１０７】
その後、一方では、ステップ（３）で、ステップ（２）の論理回路を汎用プロセッサ上で擬似的に動作させることによりその動作を検証する機能を持つ論理シミュレータと呼ばれるシステムを用いて、設計した論理回路の論理検証を行う。この論理検証は、一般的には論理シミュレーションと呼ばれている。ここでは、論理機能が仕様通りかどうかを検証する。
【０１０８】
論理機能が確認されると、ステップ（４）の論理合成処理を行い、レジスタトランスファレベルで記述された回路を、ターゲットとなるＡＳＩＣ（ＬＳＩ）ゲート回路に変換する処理を行う。ステップ（５）では、実際にターゲットとなるＡＳＩＣゲート（ＬＳＩ）に回路が実装され、ＬＳＩ化されたサンプルが形成される。このＬＳＩを用いてステップ（６）により、タイミングが仕様を満たすか同化の実機検証が行われる。
【０１０９】
ステップ（８）〜（１１）にあるように、前記ステップ（３）の論理シミュレーションによる論理検証と並行して、前記ＦＰＧＡ (Field Programmable Gate Array)などの再構成可能なデバイスを利用した論理エミュレーションを行う。この検証は、ステップ（８）により論理設計の設計ファイルデータを取り出してステップ（９）〜（１１）によるＦＰＧＡ実装フローが行われる。つまり、ステップ（９）では、論理合成を行い、ステップ（１０）では論理を複数のＦＰＧＡに分割／配線処理を行い、ステップ（１１）では複数のＦＰＧＡとスイッチングデバイスによりＦＰＧＡ配置配線が行われてＦＰＧＡ化（サンプル）が形成される。上記ステップ（１０）での分割／配線において、この発明に係るＰＳＤ配線方法が適用される。
【０１１０】
このようなＦＰＧＡ実装フローによって再構成可能なデバイス（ＦＰＧＡモジュール）に設計した論理をプログラムすることで、実際の周辺部品と組み合わせて実動作に近い速度で論理を動作させることがきるので、ステップ（１２）の論理検証／ソフトウェアデバッグでは、出力やテストパターンが長大で論理シミュレーションでは実行が不可能なケースにおける不良などを前記ステップ（５）でのＬＳＩ製造前に摘出する。
【０１１１】
上記再構成可能なデバイスであるＦＰＧＡに設計した論理をプログラムすると、実動作に近い速度で論理を動作させることが可能であるため、組み込みシステムなどの開発のように、設計した論理と組み合わせて動くソフトウェアを同時期に設計する場合、ステップ（１２）のようにソフトウェアデバッグもＬＳＩのサンプル製造前から実施することができ、これによって設計期間を短縮することができる。つまり、ステップ（６）やステップ（７）では、最終確認のために実機検証を行うが、ステップ（１２）の論理エミュレーションを実施している場合、共通のテストデータや環境を使用することができ、また本来はこの時点でしか摘出できなかった不良を早期に検出しているため、実機検証期間を大幅に短くすることができる。
【０１１２】
図２４には、この発明に係るＦＰＧＡモジュールの一実施例のブロック図が示されている。この実施例のＦＰＧＡモジュールは、特に制限されないが、それぞれがＦＰＧＡから構成された４つプログラマブルデバイスＰＤと、上記４つのプログラマブルデバイスＰＤ間をプログラマブルに接続可能なスイッチングデバイスＰＳＤ及びＩ／Ｏコネクタを備える。
【０１１３】
図２５には、図２４のＦＰＧＡモジュールの一実施例の表面図が示されている。ＦＰＧＡモジュールの表面は、論理データ実装部を構成し、プリント基板等の実装基板の表面側に前記図２４の４つのプログラマブルデバイスＰＤに対応した４つのＦＰＧＡと、４つのコネタクとが搭載される。
【０１１４】
図２６には、図２４のＦＰＧＡモジュールの一実施例の裏面図が示されている。ＦＰＧＡモジュールの裏面は、スイッチコネクション部を構成し、上記実装基板の裏面側に前記スイッチングデバイスＰＳＤを構成する４つのＦＰＧＡと、４つのコネクタとが搭載される。このスイッチングデバイスＰＳＤを構成する４つのＦＰＧＡは、その回路規模が前記表面側に搭載されて論理データ実装部を構成するＦＰＧＡよりも小さい回路規模のものが用いられる。
【０１１５】
図２５のように、４つのＦＰＧＡを用いることにより、大規模な論理回路を再構成可能なデバイスにより実現することができる。実機では１つのＬＳＩチップに形成される論理回路を上記のように４つのＦＰＧＡに分割して実現する場合において、１つのＦＰＧＡにクロック生成回路を配置した場合、ＦＰＧＡを跨がってクロックが伝播されるものであり、しかも相互の接続が前記ＦＰＧＡを用いたスイッチングデバイスにより行われるものであるので、信号伝播遅延を均等にすることができず、４つのＦＰＧＡに供給されるクロックにスキューが発生してしまう。
【０１１６】
このようなクロックにスキューが存在する場合、１つのＦＰＧＡの論理出力を他のＦＰＧＡの論理入力として伝播させるとき、論理出力を送出するクロックと、上記論理入力を受けるクロックとの間にスキューがあると、かかるスキューのワーストケースを想定して正しく信号が伝播されるようなクロック周期を設定する必要があり、前記実機ＬＳＩで使用するようなクロックを用いることができない可能性が高くなる。したがって、ＦＰＧＡモジュールを用いた論理エミレーションでのタイミング検証が不十分になってしまうという問題が生じる。
【０１１７】
そこで、この実施例では、図２４のようにスイッチングデバイスＰＳＤにクロック生成部を設けるようにするものである。つまり、図２６に示したスイッチングデバイスを構成する４つのＦＰＧＡの中の１つのＦＰＧＡを用いてクロック生成回路を形成する。同図では、スイッチングデバイスＰＳＤは、１つのブロックとして示されているが、前記図２６のように４つのＦＰＧＡにより構成されている。このようなスイッチングデバイスＰＳＤを構成する１つのＦＰＧＡに設けられたクロック生成部は、ＦＰＧＡモジュールに供給される外部クロックに同期したクロックを生成し、４つのプログラマブルデバイスＰＤ（ＦＰＧＡ）に対して、ほぼ同じ配線長となるような配線経路を以てクロックを供給する。
【０１１８】
上記クロック生成部では、上記クロックをＮ倍した高い周波数にされた基準クロックが生成される。この基準クロックは、上記同様に等長のクロック供給経路を用いて４つのプログラマブルデバイスＰＤの多重化制御部及びスイッチングデバイスＰＳＤを構成する各ＦＰＧＡに設けられた多重化制御部及び境界レジスタ部に供給される。
【０１１９】
図２７には、図２４のスイッチングデバイスＰＳＤの一実施例のブロック図が示されている。基準クロック生成部は、外部から供給されたクロックに同期し、それをＮ倍にした基準クロックを生成する。上記外部から供給されたクロックは、論理クロック生成部に供給される。論理クロック生成部で形成されたクロックは、各ＦＰＧＡに対して４つのグループに分けられて、境界レジスタ部に設けられたフリップフロップ回路ＦＦを介して各プログラマブルデバイスＰＤに向けて出力される。これらのフリップフロップ回路ＦＦは、上記クロックのＮ倍にされた基準クロックを用いることにより同期化が図られる。
【０１２０】
つまり、各プログラマブルデバイスＰＤに対するスイッチングデバイスＰＳＤでの出力部において、そこまでの信号伝播によって生じるスキューを、最も遅く伝播されるクロックに対応したものに基準クロックを用いて同期化させることによりスキューを解消させるものである。そして、かかる出力部から先においては、信号配線の等長化等によって信号伝播遅延時間を互いに等しくなるようにして、各プログラマブルデバイスＰＤを構成するＦＰＧＡに伝えられる。上記境界レジスタ部に設けられたフリップフロップ回路ＦＦは、上記のような基準クロックを用いた同期化の他、後述するようにモジュールストップ制御部で発生された制御信号によりクロックの供給／停止が機能モジュール毎に制御可能とするためにも供される。
【０１２１】
図２８には、図２４のＦＰＧＡモジュールにおけるＰＤ及びＰＳＤに設けられる多重化制御部の一実施例のブロック図が示されている。２つのプログラマブルデバイスＰＤ間をスイッチングデバイスＰＳＤにより接続する場合、信号毎に配線経路を構成するとプログラマブルデバイスＰＤ及びスイッチングデバイスＰＳＤの端子数及び配線数が膨大となってしまう。この実施例では、上記ＰＤ−ＰＳＤ−ＰＤ間で伝播される複数の信号を、１つの端子及び配線を用いつつ上記基準クロックにより時分割を利用して信号伝播させる。
【０１２２】
例えば、プログラマブルデバイスＰＤ１からＰＤ２に向けて複数ビットのデータを転送する場合、信号送信側のプログラマブルデバイスＰＤ１では、基準クロックを計数するアドレスカウンタの計数値をデコードした信号で複数信号を受けるマルチプレクサを制御して、論理クロックの１周期内にパラレル／シリアル変換する。このシリアル変換されたデータは、上記基準クロックに同期し、信号伝播方向を制御する出力バッファを通してスイッチングデバイスＰＳＤに伝えられる。スイッチングデバイスＰＳＤでは、プログラマブルに信号伝達経路が形成されて、信号伝播方向を制御する入力バッファ及び出力バッファを介して受信側のプログラマブルデバイスＰＤ２の特定端子と接続する。
【０１２３】
受信送信側のプログラマブルデバイスＰＤ２では、基準クロックにより上記シリアル信号を受信し、基準クロックを計数するアドレスカウンタの計数値をデコーダした信号でシリアル信号を受けるデマルチプレクサ（シフトレジスタ又はフリップフロップ回路）を制御して、シリアル／パラレル変換する。このパラレル変換されたデータは、論理クロックに同期して内部論理回路に伝えられる。このような多重化制御部を用いることにより、論理データ実装部及びスイッチングコネクション部を構成するＦＰＧＡの外部端子及びそれらを接続する配線を少なくすることができる。
【０１２４】
上記とは逆に、プログラマブルデバイスＰＤ２からＰＤ１に向けて複数ビットのデータを転送する場合には、信号伝送方向を制御する信号によって、信号伝達方向が逆方向に設定されて、上記同様にプログラマブルデバイスＰＤ２ではパラレル／シリアル変換してデータ送信を行い、プログラマブルデバイスＰＤ１では、シリアル入力されたデータを受信する。そして、上記同様にシリアル受信したデータをパラレル変換して論理クロックに同期して内部論理回路に伝える。
【０１２５】
図２９には、図２４のＰＳＤの境界レジスタに設けられるモジュールストップ制御部の一実施例のブロック図が示されている。クロック生成回路で形成されたクロックは、複数個のフリップフロップ回路ＦＦ１〜ＦＦ４を介してプログラマブルデバイスＰＤに設けられた複数の機能モジュール１〜４に対応して供給される。各フリップフロップ回路ＦＦ１〜ＦＦ４は、基準クロックに同期してクロック生成回路で形成された論理クロックを送出する。モジュールストップ制御部では、上記プログラマブルデバイスＰＤに設けられた複数の機能モジュール１〜４毎に対応したモジュールストップ制御信号を形成する。このストップ制御信号により、上記フリップフロップ回路ＦＦ１〜ＦＦ４の動作が制限される。
【０１２６】
具体的には、フリップフロップ回路ＦＦ１〜ＦＦ４を強制リセット状態にしたり、あるいは基準クロックによる論理クロックの取り込みを停止させることにより、プログラマブルデバイスＰＤに設けられた特定の機能モジュールに対する論理クロックをロウレベルに固定して、その機能モジュールの論理動作そのものを停止させる。上記基準クロックとフリップフロップ回路ＦＦ１〜ＦＦ４を用いることにより、各プログラマブルデバイスＰＤに供給される論理クロックの同期化が図られるとともに、フリップフロップ回路ＦＦ１〜ＦＦ４の動作の制限によって、機能モジュール毎での選択的な論理クロックの供給／停止を実現することができる。
【０１２７】
図３０には、図２４のＰＳＤの境界レジスタに設けられる高速Ｉ／Ｏインタフェース部の説明図が示されている。図３０（Ａ）の例は、プログラマブルデバイスＰＤからＩ／Ｏコネクタを介して信号出力を行う原理図が示されている。本来は、同図のようにプログラマブルデバイスＰＤに設けられたフリップフロップ回路ＦＦを論理クロックで動作させて、Ｉ／Ｏコネクタに向けて信号出力を行う。
【０１２８】
しかしながら、ＦＰＧＡモジュールでは、プログラマブルデバイスＰＤに設けられたフリップフロップ回路ＦＦの出力は、そのままＩ／Ｏコネタクに向けて直結されるのではなく、いずれのＩ／Ｏコネクタに接続するがスイッチングデバイスＰＳＤによりプログラマブルに設定される。したがって、上記フリップフロップ回路ＦＦの出力信号は、実際にはスイッチングデバイスＰＳＤにより設定された接続経路を介して上記Ｉ／Ｏコネクタに至るため、そこでの信号遅延が大きくなってしまう。
【０１２９】
この実施例では図３０（Ｂ）に示すように、スイッチングデバイスＰＳＤに前記プログラマブルデバイスＰＤからの出力信号を受けるフリップフロップ回路ＦＦが設けられる。この結果、フリップフロップ回路ＦＦに取り込まれた信号は、短い配線経路によりＩ／Ｏコネタクに伝えられるので、そこでの信号遅延を大幅に小さくすることができる。この結果、ＦＰＧＡ及びスイッチングデバイスを用いつつ、高速Ｉ／Ｏインタフェースを実現することができる。
【０１３０】
図３１には、図２４のＰＳＤのダンプ機能部の一実施例のブロック図が示されている。ＰＳＤは、前記のようにプログラマブルなスイッチングデバイスであるが、その中身は論理データ実装部を構成するＦＰＧＡと同じであり、配線経路を設定するデータを格納するスタティック型メモリを備えている。そこで、このメモリの空き領域を利用し、プログラマブルデバイスＰＤ間を接続する配線経路の一部の信号をメモリ部に記憶させる。つまり、クロック生成回路で形成されたクロックをアドレスカウンタで計数してアドレス信号を生成し、ダンプ制御信号により上記空き領域のメモリセルを順次選択して、上記配線経路を通して伝えられる信号を記憶させる。そして、必要に応じてその読み出しを行ってコネクタから出力させる。
【０１３１】
つまり、動作に不具合が生じた場合には、プログラマブルな信号伝達経路の設定ができることを利用して、動作の不具合の原因となっている信号を上記メモリ部に記憶させる。これを読み出すことにより、観測する信号の値をトレースすることができ、不良原因を短時間で探し出すことができる。
【０１３２】
前記説明したように、ＦＰＧＡ、ＰＬＤ等を利用した論理エミュレーションシステムが、ＬＳＩ開発の論理検証工程の１つとして、導入されるようになってきている。ＦＰＧＡやＰＬＤを利用した論理エミュレーションを実施した場合、論理シミュレーションより高速な検証環境を実現でき、また論理回路を再実装可能であるという利点がある。つまり、ＬＳＩのサンプルを作成し、実機動作検証しないと検出できなかった周辺実部品とのインタフェース（ＩＦ）確認や、搭載基板の確認、論理シミュレーションでは確認し難い論理不良の摘出が早期可能となり、ＬＳＩ開発期間とＬＳＩ再製コストを削減することができる。
【０１３３】
ＬＳＩのシステム化による搭載論理回路の規模増加に伴い、論理検証工数が増加する傾向にある。このため、実装効率向上、検証環境の立ち上げ工数、及び不具合発生時の解析工数の削減が課題となる。本発明では、前記説明したようにこれらの課題を解決することで、論理検証工数を短時間で立ち上げることができるシステム及びそれに好適なＦＰＧＡモジュールを提供することができる。
【０１３４】
この実施例では、前記説明したように、論理回路を実装する再実装可能な複数のプログラマブル論理デバイスＰＤ（ＦＰＧＡ）、それらのＰＤをプログラマブルに接続し、かつ論理回路実装可能なスイッチングデバイスＰＳＤを含むブログラマブルデバイスモジュール（ＦＰＧＡモジュール）とし、各ＰＤ間の論理信号をＰＳＤ内でプログラマブルに物理接続可能とするようにコンピュータ上で設定（実装）する。
【０１３５】
このことを前提として、前記実施例ではＰＳＤ内に外部からクロックを供給することにより、プログラマブルデバイス（ＦＰＧＡ）モジュール全体の論理動作を管理できる論理クロック及びそれをＮ倍の周波数にした基準クロックを生成するクロック生成回路を設けられる。また、Ｉ／Ｏ境界部にフリップフロップ回路を構成可能なアーキテクチャが設けられる。
【０１３６】
上記スイッチングデバイスＰＳＤは、論理ネットの配線だけでなく、論理回路が実装できるものであり、ここにフリップフロップ回路を実装して、各ＰＤに基準クロックを用いて同期化された論理クロックを供給することにより、複数のプログラマブルデバイスＰＤに実装する論理回路の動作タイミングを中央制御部として司ることができる。ＰＳＤ上に１つのクロック制御論理を実装することにより、ＰＤ上での論理ゲート規模削減ができ、複数のＰＤのタイミングを容易に司ることが可能となる。つまり、各ＰＤにクロック制御論理を実装すると、ＰＤ間のクロックタイミングの調整が困難となるが、これを回避できる。
【０１３７】
上記ＰＳＤ内を配線する双方向ネットを含む論理ネットを送信側でパラレル／シリアル変換及び受信側でシリアル／パラレル変換による時分割多重化制御する論理回路（マルチプレクサ、デマルチプレクサ）をＰＤ及びＰＳＤに設け、基準クロックを利用して時分割多重化制御回路の動作タイミングを司る。論理ネットの配線経路に依存しない時分割多重化処理が可能となる。つまり、この実施例では、配線する位置に依存せず、実装レベルで処理可能となる。
【０１３８】
クロック生成回路及びプログラマブルデバイスＰＤに設けられる複数の機能モジュールで使用する論理クロックを停止／供給の選択的な制御を行うようにすることにより、論理クロックでの同期化処理とともに必要に応じた論理クロックの停止／供給が可能となる。各プログラマブルデバイスＰＤ及び機能モジュールで使用するクロックが低スキューで供給可能となり、論理回路上の修正が不要となる。
【０１３９】
上記ＰＳＤを経由してＩ／Ｏ端子と入出力インタフェースをもつ論理ネット、その論理ネットをラッチするフリップフロップ回路を実装可能とすることにより、通常プログラブルデバイスＰＤ内に実装するフリップフロップ回路をスイッチングデバイスＰＳＤ内に実装する様、実装形態を自動変更することにより、外部インタフェースの高速化が実現可能となる。つまり、配線する論理ネットがＰＳＤを通過するデバイス遅延を回避可能となり、論理クロックに同期した信号出力を行うことができる。
【０１４０】
上記ＰＳＤを配線する論理ネット、及びその信号状態を常時観測可能な機能をもつ制御回路を設けることにより、論理ネット信号値を常時一定期間分をメモリ内にダンプし、ある指定した信号をトリガーに上記制御回路をブレイクし、観測する信号の値をトレースすることにより、論理ネツトの動作を容易に確認可能となる。つまり、動作不具合が生じた場合に、その近辺での論理ネットの状態が観測可能な為に不良原因が短時間で解析できる。
【０１４１】
以上により、大規模ＬＳＩの論理検証環境の立上げ期間が短縮可能となる。複数プログラマブルデバイスの実装効率を向上させることができる。例えば、マイクロプロセッサあるいはマイクロプロセッサコアを搭載した大規模ＬＳＩの開発時のデバッグ効率と論理品質を向上、後工程のシステム検証期間を前倒し可能となる。また、コアＩＰ流用化可能となる。
【０１４２】
以上本発明者よりなされた発明を実施例に基づき具体的に説明したが、本願発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ＦＰＧＡモジュールやブリッジ回路等とそれに関連する各回路の具体的構成は種々の実施形態をとることができる。この発明は、論理検証システムとＦＰＧＡ（プログラマブル論理デバイス）モジュールとして広く利用できる。
【０１４３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。論理シミュレーション加速装置と、論理エミュレーション装置での検証工程に用いられるＦＰＧＡモジュールとブリッジ回路間において、ＦＰＧＡモジュールの全ピンを直結配線し、かつ論理シミュレーションの加速を行う場合に、ＦＰＧＡモジュールの外部インタフェースコネクタに検証対象論理の切り口を割り当て、上記ＦＰＧＡモジュールの外部インタフェースコネクタの各ピンと論理信号との対応付けを汎用プロセッサ上の論理シミュレータ上で行うようにすることにより、開発時間を改善し設計品質を向上させることができる。
【０１４４】
検証すべき論理回路を複数のＦＰＧＡに分割して実装し、複数のＦＰＧＡの相互の接続をスイッチングデバイスによってプログラマブルに行って上記検証すべき論理回路を実現しつつ、上記ＦＰＧＡに対してクロックを供給するクロック生成回路を上記スイッチングデバイスに備えることにより、上記複数のＦＰＧＡに供給されるクロックのスキューが低減でき、高いクロックでの検証が可能になる。
【図面の簡単な説明】
【０１４５】
【図１】この発明が適用されるＬＳＩにおける設計及び検証方法を説明するためのフローチャート図である。
【図２】この発明に係る論理エミュレーションシステムの一実施例を示す構成図である。
【図３】この発明に用いられるＦＰＧＡモジュールの一実施例を示すブロック図である。
【図４】この発明に係る論理シミュレーションアクセラレータの一実施例を示す構成図である。
【図５】この発明に用いられるＦＰＧＡモジュールに実現する検証対象論理を説明するためのブロック図である。
【図６】検証対象の論理をＦＰＧＡモジュール上の複数のＦＰＧＡに割り当てた実施例を示すブロック図である。
【図７】論理エミュレーション装置の複数ＦＰＧＡに論理を割り当てた例を示す参考図である。
【図８】スイッチングデバイスを搭載した論理エミュレーション装置の複数ＦＰＧＡに論理を割り当てた例を示す参考図である。
【図９】論理シミュレーションの加速装置の複数ＦＰＧＡに論理を割り当てた例を示す参考図である。
【図１０】複数のＦＰＧＡを搭載したＦＰＧＡモジュールに前記図５の論理を割り当てた例を示すブロック図である。
【図１１】ＦＰＧＡをモジュールに論理をプログラムする方法の一例を簡単に説明するためのフローチャート図である。
【図１２】この発明に係るＦＰＧＡモジュール及びＦＰＧＡモジュール搭載ボードの接続例を説明するための外観図である。
【図１３】この発明に係るＦＰＧＡモジュール及びＦＰＧＡモジュールコンフィギュレーションボードの接続例を説明するための外観図である。
【図１４】この発明に係る論理シミュレーションを加速する装置と論理エミュレーション装置とでＦＰＧＡモジュールのデータの共有例を示す説明図である。
【図１５】この発明に係る論理シミュレーションを加速する装置と論理エミュレーション装置とでＦＰＧＡモジュールのデータの共有例を示す説明図である。
【図１６】この発明に係るＦＰＧＡモジュールと論理シミュレータとの間で信号対応付けを行う手法を説明する構成図である。
【図１７】検証対象論理に双方向信号の方向制御信号を追加する一実施例を示す説明図である。
【図１８】この発明に係るブリッジ回路とＦＰＧＡモジュール間接続の一実施例を示すブロック図である。
【図１９】図１８の実施例回路の動作を説明するためのタイミングチャート図である。
【図２０】この発明に係るブリッジ回路とＦＰＧＡモジュール間接続の他の一実施例を示すブロック図である。
【図２１】上記図２０の信号方向の判定方法を説明するためのレベル設定図である。
【図２２】図２０の実施例回路の動作を説明するためのタイミングチャート図である。
【図２３】この発明が適用されるＬＳＩにおける設計及び検証方法を説明するためのフローチャート図である。
【図２４】この発明に係るＦＰＧＡモジュールの一実施例を示すブロック図である。
【図２５】図２４のＦＰＧＡモジュールの一実施例を示す表面図である。
【図２６】図２４のＦＰＧＡモジュールの一実施例を示す裏面図である。
【図２７】図２４のスイッチングデバイスＰＳＤの一実施例を示すブロック図である。
【図２８】図２４のＦＰＧＡモジュールにおけるＰＤ及びＰＳＤに設けられる多重化制御部の一実施例を示すブロック図である。
【図２９】図２４のＰＳＤの境界レジスタに設けられるモジュールストップ制御部の一実施例を示すブロック図である。
【図３０】図２４のＰＳＤの境界レジスタに設けられる高速Ｉ／Ｏインタフェース部の説明図である。
【図３１】図２４のＰＳＤのダンプ機能部の一実施例を示すブロック図である。
【符号の説明】
【０１４６】
０００１…論理エミュレーションマザーボード、０００２…信号入力／出力装置、０００３…コネクタ、０００６〜０００９…ＦＰＧＡ、０００８…既存ＬＳＩ、０００９…メモリ、００１１…ブリッジ回路、００１３…汎用プロセッサ、００１４…ディスク装置、００１５…表示装置、００１６…入力装置、００２７…ＦＰＧＡモジュール、００２８〜００３１…ＦＰＧＡ、００３２〜００３５…スイッチングデバイス、００３６〜００３９…コネクタ、００４０…マザーボード、００４１，００４２…ワイヤ、００１０−１…論理エミュレーションマザーボード、００４３〜００４７…機能ブロック、００５３〜００５６…ローカルバスインタフェース回路、００５７，００５８…ネット、００５９〜００６２…コネクタ、００６３…コンフィギュレーションデバイス、００６３−１…コンフィギュレーションデバイス、００６３〜００６６…コネクタ、００６７…オプションモジュール、００６８…コントロールデバイス、００６９…メモリ、００７０〜００７３…コネクタ、００７３−１…コンフィギュレーションデータ、００７３−２…ワイヤ、００７４…Ｉ／Ｏセル、
ＰＤ…プログラマブルデバイス、ＰＳＤ…スイッチングデバイス、ＦＦ１〜ＦＦ４…フリップフロップ回路。
【図１】
2004157986.tif 000003
【図２】
2004157986.tif 000004
【図３】
2004157986.tif 000005
【図４】
2004157986.tif 000006
【図５】
2004157986.tif 000007
【図６】
2004157986.tif 000008
【図７】
2004157986.tif 000009
【図８】
2004157986.tif 000010
【図９】
2004157986.tif 000011
【図１０】
2004157986.tif 000012
【図１１】
2004157986.tif 000013
【図１２】
2004157986.tif 000014
【図１３】
2004157986.tif 000015
【図１４】
2004157986.tif 000016
【図１５】
2004157986.tif 000017
【図１６】
2004157986.tif 000018
【図１７】
2004157986.tif 000019
【図１８】
2004157986.tif 000020
【図１９】
2004157986.tif 000021
【図２０】
2004157986.tif 000022
【図２１】
2004157986.tif 000023
【図２２】
2004157986.tif 000024
【図２３】
2004157986.tif 000025
【図２４】
2004157986.tif 000026
【図２５】
2004157986.tif 000027
【図２６】
2004157986.tif 000028
【図２７】
2004157986.tif 000029
【図２８】
2004157986.tif 000030
【図２９】
2004157986.tif 000031
【図３０】
2004157986.tif 000032
【図３１】
2004157986.tif 000033