(57)【要約】【課題】複数論理のアーリープロトタイピング検証を、同一のシステム基板で高速に実行することのできる技術を提供する。【解決手段】ＦＥＴスイッチ９０３を使用し、高速な配線経路切り替えを実現するとともに、そのオン／オフ制御をプログラマブルスイッチ（ＦＰＧＡ等）９０２で行うことで、論理分割、ＦＰＧＡ間配線処理時に、ＦＰＧＡ９０１にプログラムされるターゲット論理に合わせてＦＥＴスイッチ９０３の制御を決定する。【選択図】図９
2007178231.tif 000002
【特許請求の範囲】
【請求項１】
論理検証対象の論理データがプログラムされる複数のＦＰＧＡと、
前記複数のＦＰＧＡの間を直結する第１及び第２の接続線と、
前記第１の接続線と前記第２の接続線とを接続するためのＦＥＴと、
前記ＦＥＴのオン／オフ制御を行うプログラム可能な素子とを有することを特徴とする論理検証システム基板。
【請求項２】
請求項１記載の論理検証システム基板において、
前記プログラム可能な素子は、ＦＰＧＡであることを特徴とする論理検証システム基板。
【請求項３】
請求項１記載の論理検証システム基板において、
前記論理検証対象の論理データに応じて、前記ＦＥＴのオン／オフ制御が動的に変化するものであることを特徴とする論理検証システム基板。
【請求項４】
請求項１記載の論理検証システム基板において、
前記第１及び第２の接続線は、バスであることを特徴とする論理検証システム基板。
【請求項５】
請求項４記載の論理検証システム基板において、
前記論理検証システム基板の両面のコネクタに、前記バスの接続線が突き抜けて接続されていることを特徴とする論理検証システム基板。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模集積回路（ＬＳＩ）の開発・設計過程における論理検証技術に関し、特に、複数のＦＰＧＡ（フィールドプログラマブルゲートアレイ）を搭載したアーリープロトタイピングボードを高速に動作させるための構造に適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討した技術として、例えば、ＬＳＩの開発・設計過程における論理検証においては、以下の技術が考えられる。
【０００３】
ＬＳＩの論理規模は高集積化に伴い年々増加しており、また、機能面で複雑度を増している。このため、品質を確保しながらも開発期間の短縮を図ることが可能なソリューションが重要となってきた。この課題に対する解決策の１つに、ＦＰＧＡを利用したアーリープロトタイピング技術がある。アーリープロトタイピング技術とは、ＬＳＩ設計の初期段階で、検証対象の論理をＦＰＧＡ等のプログラマブルデバイスに構築し、そのＦＰＧＡ等を擬似ＬＳＩとして実際のシステムに組み込んで、論理エミュレーションを行い、ソフトウェアのデバッグ等を含むシステム全体の動作確認を行う技術である。
【０００４】
この技術を適用した場合、本来、実ＬＳＩを作成しないと検出できなかった、周辺実部品とのＩ／Ｆ（インターフェース）動作確認や、搭載基板の確認、論理シミュレーションでは検出し難い不良の摘出等が可能となり、設計期間とコストを削減することができる。この技術では１つのＦＰＧＡには収まらない大規模な論理を如何に複数のＦＰＧＡに割り当て、如何に高速に動作させるかが、検証速度の確保、動作速度帯に制限のある外部Ｉ／Ｆと接続する上で非常に重要である。
【０００５】
本発明に関連する技術文献として、例えば特許文献１，２がある。
【特許文献１】特開平１１−３５２１９０号公報
【特許文献２】特開平８−１９４７２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、前記のようなＦＰＧＡを利用したアーリープロトタイピング技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００７】
例えば、検証対象の論理を複数のＦＰＧＡに分割し、それらを接続する方法として、以下の３つの技術が考えられる。
【０００８】
図１に、本発明者が本発明の前提として検討した第１の技術による論理検証システム基板の概略構成を示す。
【０００９】
第１の技術による論理検証システム基板は、例えば、複数のＦＰＧＡ若しくはＦＰＧＡモジュール（Ｌｏｇｉｃ）、プログラマブルスイッチ（ＳＷ）、コネクタ（Ｃｏｎｎｅｃｔｏｒ）などから構成される。第１の技術は、図１に示すように、システム基板上に複数個のプログラマブルスイッチ（スイッチデバイス）を配置し、基板上のＦＰＧＡ若しくはＦＰＧＡモジュールとプログラマブルスイッチ間を固定的に配線し、ＦＰＧＡ若しくはＦＰＧＡモジュール間の接続をプログラマブルスイッチ経由で行うようにしたものである。
【００１０】
この技術は、分割論理間の配線がすべてスイッチ経由接続となるため、分割境界の各々の結線数が偏っていたとしても比較的容易にＦＰＧＡ間の配線を行うことが可能である。
【００１１】
しかし、スイッチ通過配線ディレイにより動作速度が低下するという欠点がある。
【００１２】
図２に、本発明者が本発明の前提として検討した第２の技術による論理検証システム基板の概略構成を示す。
【００１３】
第２の技術による論理検証システム基板は、例えば、複数のＦＰＧＡ若しくはＦＰＧＡモジュール（Ｌｏｇｉｃ）、コネクタ（Ｃｏｎｎｅｃｔｏｒ）などから構成される。第２の技術は、図２に示すように、システム基板上にＦＰＧＡモジュールを搭載可能なコネクタを用意し、若しくはＦＰＧＡを直接搭載し、各ＦＰＧＡ／ＦＰＧＡモジュール間を基板配線若しくはケーブリングにより直接接続するものである。
【００１４】
この技術は、各々のＦＰＧＡ間で信号を高速に転送することが可能である。
【００１５】
しかし、ＦＰＧＡ間結線が固定のため、分割境界の各々の結線数によっては、ピン数がＦＰＧＡの制限内に収まっていたとしても配線不可となる可能性があり、その場合にはＬｏｇｉｃ部分を信号が通過せざるをえないため、その遅延で動作速度が悪化する。また、この場合の遅延は、ＦＰＧＡ内部のおおよそを論理が占めるため、スイッチデバイス通過遅延よりも大きい傾向にあり、また通過するＦＰＧＡのピンを余分に使用することになる。さらに、バス接続（全ＦＰＧＡへの直結配線）に関しては、同数以上の分岐論理ネットが存在する場合は有利ではあるものの、そうでない場合には物理接続よりも少ない論理信号接続をその配線経路で使用することになるため、その結果、未接続となったＦＰＧＡのピンが使用不可となるという問題がある（図６参照）。
【００１６】
図３に、本発明者が本発明の前提として検討した第３の技術による論理検証システム基板の概略構成を示す。
【００１７】
第３の技術による論理検証システム基板は、例えば、複数のＦＰＧＡ若しくはＦＰＧＡモジュール（Ｌｏｇｉｃ）、プログラマブルスイッチ（ＳＷ）、コネクタ（Ｃｏｎｎｅｃｔｏｒ）などから構成される。第３の技術は、図３に示すように、ＦＰＧＡを複数個搭載したモジュール、論理を実装するＦＰＧＡ、スイッチデバイス（ＦＰＧＡ等）をモジュールに直接搭載し、その間を固定配線する。この技術は、ＦＰＧＡ間を直接結ぶ配線とスイッチデバイスを含む配線を持つことを特徴とする。
【００１８】
この技術は、配線自由度を保ちながら、高速動作が必要な論理接続については直結配線を使用することで、動作速度低下を防ぐことが可能である。前記第１及び第２の技術の問題をある程度解決できる。
【００１９】
しかし、バス接続がなく、多ピンの双方向バスの実現が難しい。分割境界によっては、前記第１及び第２の技術ほどではないが、経路不足によるクリティカルパス（高速動作が必要な論理接続）がスイッチ通過となる可能性がある。
【００２０】
この第３の技術は、前記第１及び第２の技術のそれぞれのメリットを活かしつつ、デメリットをなくすための構成であるが、次の２つの問題点がある。
【００２１】
問題点１：バス接続の双方向信号はスイッチ経由しか経路がなく、内部バスを持つ論理の高速動作が難しくなる（図４参照）。すなわち、Ｉ／Ｏ（入出力）バッファ付きのスイッチデバイス（ＦＰＧＡ等）は、双方向配線を通す場合に、スイッチ内でイネーブル制御が必要であり、イネーブルの引き出しによるリソース増加とスイッチ内での制御が必要となる。
【００２２】
問題点２：ＦＰＧＡモジュールの規模拡張方法として、図５に示すように、２通りの手法（スタッキング方式と並列配置方式）があるが、規模拡張に従いモジュール間の配線経路確保が難しくなる。すなわち、スタッキング方式の場合、スタック数増加に伴い、中間部分の通過配線が増大する（（Ｎ−１）×２）。また、並列配置方式の場合、並列数に伴い、２モジュール間結線数が減少する（１／Ｎ）。なお、図５において、Ｓはスイッチデバイス（Ｓｗｉｔｃｈ−Ｄｅｖｉｃｅ）、Ｃはコネクタ（Ｃｏｎｎｅｃｔｏｒ）、ＦはＦＰＧＡである。
【００２３】
問題点１については、例えば前述したように、全ＦＰＧＡ間を直結接続するバス配線を用意することにより回避できるが、分割されたターゲット論理が１対１接続多数の場合、図６に示すように使用不可ピンが生じ、ＦＰＧＡピン数をフルに使用することができなくなる。
【００２４】
また、図７のようなＩ／Ｏバッファのないクロスバスイッチデバイスを利用すれば双方向配線を制御なしで通過させることが可能になるが、実質的にはＦＰＧＡがドライブする配線の負荷が大きくなり、通常のＩ／Ｏバッファ付きのスイッチデバイスよりも通過遅延が大きくなることが多い。
【００２５】
問題点２については、図８のようにバス接続を利用し、システム固有のバスＩ／Ｆ論理を分割時に埋め込むことでＦＰＧＡ数を増やし規模拡張を図る技術がある。この技術は、分割境界を論理バスとした場合や分割境界の結線数が非常に多い場合には有効ではあるものの、一般的にはバスを通過する信号がＦＰＧＡ間の全Ｉ／Ｆ信号となることから、１対１接続と比較して全体の動作速度が低下するという問題がある。なお、図８において、ＬｏｇｉｃはＦＰＧＡ又はＦＰＧＡモジュール、Ｃｏｎｎｅｃｔｏｒはコネクタである。
【００２６】
そこで、本発明の目的は、論理検証システム基板において、前記問題点１及び２を解決することができる技術を提供することにある。
【００２７】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００２９】
すなわち、本発明による論理検証システム基板は、ＦＥＴ（Field Effect Transistor）スイッチを使用し、高速な配線経路切り替えを実現するとともに、そのオン／オフ制御をプログラム可能な素子（ＦＰＧＡ等）で行うことで、論理分割、ＦＰＧＡ間配線処理時にターゲット論理に合わせて前記ＦＥＴスイッチの制御を決定することを特徴とするものである。
【発明の効果】
【００３０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００３１】
（１）複数ＦＰＧＡに分割された論理の切り口に合わせて、分割境界の論理信号の配線経路を配線時に切り替えられるようにすることで、分割境界の論理信号接続に合わせてＦＰＧＡモジュールのアーキテクチャが選択可能となるため、複数論理のアーリープロトタイピング検証を同一のモジュールで高速に実行できる。
【００３２】
（２）複数ＦＰＧＡに分割された論理の切り口に合わせて、外部Ｉ／Ｆと内部配線リソースをＦＰＧＡモジュール内配線時に選択可能とすることで、スタック時に最上部のモジュールにも直接信号を入力可能な構成に切り替えられる。また、搭載するシステムに合わせて配線経路を選択できる。
【００３３】
（３）配線結果として経路設定情報を含むため、データとハードウェア設定が不一致となることがない。
【００３４】
（４）検証済のものからハードに落としていくような設計フローの適用を容易にすることができる。
【００３５】
（５）検証速度を向上させることで、短期間で多数のテストを実施することが可能となる。
【００３６】
（６）実チップ製造前からソフトウェアのデバッグ、実基板を含めたシステム検証が可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３８】
（実施の形態１）
図９は本発明の実施の形態１による論理検証システム基板の概略構成を示す図である。
【００３９】
まず、図９により、本実施の形態１による論理検証システム基板の構成の一例を説明する。本実施の形態１による論理検証システム基板は、例えば、複数のＦＰＧＡ９０１、プログラマブルスイッチ（ＦＰＧＡ等）９０２、ＦＥＴスイッチ９０３などから構成されている。複数のＦＰＧＡ９０１は、それぞれ直結配線で接続されている。
【００４０】
本実施の形態１では、図９に示すように、ＦＥＴスイッチ９０３を直結ＦＰＧＡ配線間に挿入し、その制御信号をプログラマブルスイッチ９０２（ＦＰＧＡ等のプログラマブルデバイス）と接続する。
【００４１】
一般に、プログラマブルスイッチはピン間の接続を比較的自由に決定することができるが、その反面、複雑な内部構造となる（多数の配線リソースとスイッチで構成される）ことから通過配線ディレイが大きくなる（１０ｎｓ程度）。一方、ＦＥＴスイッチ９０３は単純なオン（ＯＮ）／オフ（ＯＦＦ）を実現するものであるため、通過ディレイは高速となる（１００ｐｓ程度）。
【００４２】
図９のような接続構成の場合、多分岐の双方向配線はＦＥＴスイッチ９０３をオンすることで直結の配線リソースを確保することができる。また、１対１接続が多い論理分割結果に対してはＦＥＴスイッチ９０３をオフにすることで対応することができる。さらにまた、プログラマブルスイッチ９０２に論理を搭載することで論理動作中に経路を切り替えることができる。
【００４３】
（実施の形態２）
図１０は本発明の実施の形態２による論理検証システム基板の概略構成を示す図である。
【００４４】
図１０により、本実施の形態２による論理検証システム基板の構成の一例を説明する。本実施の形態２による論理検証システム基板は、例えば、複数のＦＰＧＡ９０１、複数のプログラマブルスイッチ９０２、ＦＥＴスイッチ９０４などから構成されている。
【００４５】
本実施の形態２では、ＦＰＧＡ９０１とプログラマブルスイッチ９０２の間に図１１のような構成のＦＥＴスイッチ９０４を挿入する。
【００４６】
このような構成とすれば、分割された論理Ｉ／Ｆに１対１接続が多く、かつ偏りがある場合でも高速な動作を実現できる。
【００４７】
図１２に、比較のために、（ａ）従来型の構成と（ｂ）実施の形態２の構成を示す。（ａ）従来型の構成は、スイッチを利用して配線しているため、結線数が多く、配線リソース不足が生じるが、（ｂ）実施の形態２では、配線リソース不足が生じない。
【００４８】
（実施の形態３）
前記実施の形態１及び２はモジュール内部の配線切り替えの実現を目的とするものだが、モジュール外部とのインターフェースにも応用することができる。
【００４９】
図１３は拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【００５０】
例えば、拡張用コネクタ９０５−ＦＰＧＡ９０１間の配線にＦＥＴスイッチ９０３を接続することで、コネクタ未使用時にモジュール内部のＦＰＧＡ間結線数を増加させることが可能となる。すなわち、コネクタ９０５未使用時に、ＦＥＴスイッチ９０３を内部配線として利用することができる。
【００５１】
図１４はバスラインの外部接続方法を示す説明図である。
【００５２】
図１４のように、ＦＥＴスイッチ９０３をコネクタ９０５−ＦＰＧＡ９０１間及びＦＰＧＡ９０１間直結配線に付加することで、モジュール内部に外部から接続可能なバスラインを実現させることもできる。この切り替えにより、モジュール単体で使用する場合及び外部から図８のようなアクセスをするもののモジュール内の複数ＦＰＧＡでは、１つの機能を実現する（１つの纏まり）場合には通常の配線経路の確保ができ、モジュール内の個々のＦＰＧＡで１つの機能を実現する場合には、図８のシステムバスを各ＦＰＧＡに接続することが可能となる。
【００５３】
さらに、上下（または左右）のコネクタにそのラインを突き抜けさせることで、スタック型でモジュール間を連結した場合でもＩ／Ｏ側から遠い位置のモジュール内ＦＰＧＡに対してもバス接続が可能となる。すなわち、論理検証システム基板の両面のコネクタに、前記バスの接続線を突き抜けて接続することにより、スタック等のハードウェア構成や検証手法に合わせて、ハードウェアアーキテクチャを選択することが可能となる。
【００５４】
なお、図１５のように、ＦＥＴスイッチ９０３をＦＰＧＡモジュール９０６内ではなく、ＦＰＧＡを搭載する基板に搭載することで、前記実施の形態１，２，３はＦＰＧＡモジュール９０６を複数搭載可能な基板配線でも応用できる。
【００５５】
さらに、このような構成をとることで、図１６のように、バス９０９に任意のＣＰＵ９０７やＩＰ９０８が接続されていく論理の検証環境の構築がし易くなる。すなわち、図１６のように、固定バスＩ／Ｆ論理を１個版のＦＰＧＡモジュール９１０に搭載してもよい。また、シミュレーションアクセラレータ接続において、固定バスを切断面とし、検証済のものからハードウェアに落としていくような設計フローの適用を容易にすることができる。
【００５６】
したがって、本実施の形態１〜３の論理検証システム基板は、高速にオン／オフ可能なＦＥＴスイッチをＦＰＧＡモジュールに搭載し、２種類以上の配線経路構成を選択可能としたこと、そのスイッチのオン／オフ手段をプログラマブルデバイスで制御する構成としたこと、論理分割後の配線処理時にそのスイッチのオン／オフを決定し、論理データの一部としてその設定を出力するようにしたことで、分割された論理の状態にあわせて配線経路を切り替えることが可能となる。
【００５７】
さらに、実施の形態３によれば、コネクタ−ＦＰＧＡ間配線とＦＰＧＡ−ＦＰＧＡ間配線間にＦＥＴスイッチを付加することで、モジュール内で全ＦＰＧＡに接続され、かつコネクタを突き抜ける配線経路が構成できるため、何段スタックしてもその経路経由での信号伝達が可能となることから、検証対象とハードウェア構成に合わせて同一のモジュールを別々の接続構成で使い分けることが可能となる。
【００５８】
この使い分けの方法としては、例えば、モジュールを１個利用し検証対象全体の場合はオフ、モジュールを１個利用するがそれが検証対象の一部の場合はオン、 モジュールを複数個利用し検証対象が全体の場合はオフ（最下部）・オン（上部）、モジュールを複数個利用しそれが検証対象の一部の場合はオンとする。
【実施例】
【００５９】
次に、前記実施の形態１〜３の実施例を詳細に説明する。
【００６０】
最初に、図１７により、ＬＳＩにおける設計及び検証の工程について説明する。図１７は、ＬＳＩの設計／検証工程を示すフローチャートである。
【００６１】
まず、実現する回路の仕様を決定する仕様設計を行う（ステップＳ１７０１）。
【００６２】
次に、決定した仕様に基づきＨＤＬ（ハードウェア記述言語）を用いて論理回路をレジスタトランスファレベルで記述し、論理設計を行う（ステップＳ１７０２）。
【００６３】
その後、論理回路を汎用プロセッサ上で擬似的に動作させることにより、その動作を検証する機能を持つ論理シミュレータと呼ばれるシステムを用いて、設計した論理回路の検証を行う（ステップＳ１７０３）。この検証は、一般的には論理シミュレーションと呼ばれている。ここでは、論理機能が仕様通りかどうかを検証する。
【００６４】
論理機能が確認されると、論理合成処理を行い、レジスタトランスファレベルで記述された回路を、ターゲットとなるＡＳＩＣゲート回路に変換する処理を行う（ステップＳ１７０４）。
【００６５】
論理合成後には実際にターゲットとなるＡＳＩＣゲートで構成された回路が出力として得られるため、タイミングが仕様を満たすかどうかの検証をこの時点で行うことが一般的に行われている（ステップＳ１７０５）。
【００６６】
また、ステップＳ１７０６にあるように、論理シミュレーションによる検証の終わり頃から、論理シミュレーションによる検証、論理合成、レイアウトと並行して、ＦＰＧＡ（Field programmable Gate Array）などの再構成可能なデバイスを利用した論理エミュレーションを行うことが一般的となっている。この検証は、再構成可能なデバイスに設計した論理をプログラムすることで、実際の周辺部品と組み合わせて実動作に近い速度で論理を動作させ、実部品の仕様誤解の検出やテストパターンが長大で論理シミュレーションでは実行が不可能なケースにおける不良などをＬＳＩ製造前に摘出することを目的としたものである。
【００６７】
また、再構成可能なデバイスに設計した論理をプログラムすると、実動作に近い速度で論理を動作させることが可能であるため、組み込みシステムなどの開発のように、設計した論理と組み合わせて動くソフトウェアを同時期に設計する場合、ステップＳ１７０７のように、ソフトウェアデバッグをＬＳＩのサンプル製造前から実施することができる。これによって設計期間を短縮することができる。
【００６８】
論理合成後のタイミングに問題がなければ、論理合成によりターゲットとなるＡＳＩＣゲート回路に変換された論理を入力として、セルをチップに配置し、そのセルのピン同士を各セル間の論理接続に従って配線するレイアウト処理を行う（ステップＳ１７０８）。
【００６９】
この後、レイアウト結果におけるタイミングが仕様を満たすかどうかの最終検証を行う（ステップＳ１７０９）。
【００７０】
この検証及びプロトタイピング検証が終わると、実際にＬＳＩを製造する（ステップＳ１７１０）。
【００７１】
この後、最終確認のために実機検証を行うが（ステップＳ１７１１）、プロトタイピング検証を実施している場合、共通のテストデータや環境を使用することができ、また本来はこの時点でしか摘出できなかった不良を早期に検出しているため、実機検証期間を大幅に短くすることができる。一般的に、このようなフローでＬＳＩの開発は行われる。
【００７２】
本発明は、このフローのうち、主に論理エミュレーション（ステップＳ１７０６）、ソフトウェアデバッグ（ステップＳ１７０７）、及び論理検証における再構成可能なデバイスであるＦＰＧＡを利用した論理シミュレーションの加速手法に関する。
【００７３】
次に図１８により、複数のＦＰＧＡを搭載したＦＰＧＡモジュールを利用したプロトタイピングにおいて、検証対象となる論理をＦＰＧＡモジュールにプログラムする方法について説明する。図１８は、ＦＰＧＡモジュールに論理をプログラムする処理工程を示すフローチャートである。
【００７４】
最初に、ＦＰＧＡモジュールに実現する検証対象論理を、設計中のＬＳＩから切り出す処理を行う（ステップＳ１８０１）。最終的には検証対象論理は設計中のＬＳＩ全体となるが、設計の終了した機能からＦＰＧＡモジュールに実現することで、論理シミュレーションの加速や論理エミュレーションを実行することができる。本説明においては、再構成可能なデバイスをＦＰＧＡと言い表す。
【００７５】
次に、検証対象の論理をＦＰＧＡモジュール上の複数のＦＰＧＡに割り当てる（ステップＳ１８０２）。このステップは通常、論理分割と呼ばれる。本処理例を図１９に示す。論理分割は、機能ブロック単位で行うことが一般的に用いられているが（例えば、特開平８−１９４７２５号公報参照）、機能ブロックをまたいで複数のＦＰＧＡへの割り当てを行っても良い。図１９では、検証対象論理の機能ブロックＡ，Ｂ，Ｃ，Ｄ，Ｅにつき、機能ブロックＡをＦＰＧＡ９０１ａに、機能ブロックＢをＦＰＧＡ９０１ｂに、機能ブロックＣをＦＰＧＡ９０１ｃに、機能ブロックＤ，ＥをＦＰＧＡ９０１ｄに、割り当てている。
【００７６】
次に、ＦＰＧＡモジュール９０６のコネクタ９０５のピンに、検証対象論理のポートを割り当てるとともに、ＦＰＧＡモジュール９０６上で複数のＦＰＧＡ９０１への割り当てを行った論理間および論理とポート間の論理接続を、実際のＦＰＧＡモジュール９０６のワイヤに割り当てる処理を行う（ステップＳ１８０３）。
【００７７】
図２０にＦＰＧＡモジュール９０６のアーキテクチャ例を、図２１に本処理例を示す。
【００７８】
コネクタ９０５、ＦＰＧＡ９０１等各搭載部品間は、基板配線（ワイヤ）で接続される。通常、各部品間は複数のワイヤで構成される。コネクタ９０５は、ＦＰＧＡモジュール９０６外部とピン単位で接続される。分割論理間の論理接続（ネット）を、ＦＰＧＡモジュール９０６のワイヤに割り当てて配線経路を決定する。通常、ＦＰＧＡモジュール９０６では部品間に複数のワイヤが接続されているが、この処理で、どのワイヤかまで決定する。コネクタ９０５のピンに論理ポートを割り当てる。通常、搭載基板側の配線割り当てに併せて決定することが多い。なお、ＦＰＧＡモジュール９０６のコネクタ９０５のピンに検証対象論理のポートを割り当てる処理は、通常、ＦＰＧＡモジュール９０６を搭載する基板側の配線に従って行うことが一般的である。この際、ＦＰＧＡモジュール９０６に搭載されたスイッチングデバイス内の接続も決定される。
【００７９】
この後、分割された各論理を、ターゲットとなる再構成可能なデバイスのゲートで記述された回路に変換（論理合成）する（ステップＳ１８０４）。
【００８０】
さらに、各ＦＰＧＡ９０１に割り当てた分割結果論理毎に、ＦＰＧＡ間配線処理で決定された論理間接続のワイヤ割り当て結果をＦＰＧＡ９０１のピン配置制約として入力し、ＦＰＧＡ９０１内の配置配線処理を行う（ステップＳ１８０５）。
【００８１】
この処理が終了すると、ＦＰＧＡ間配線処理で決定されたスイッチグデバイス内の接続と、ＦＰＧＡ内配置配線処理結果とをＦＰＧＡ９０１にプログラム（コンフィギュレーション）する処理を行う（ステップＳ１８０６）。この処理を行うことで、プログラムした論理をＦＰＧＡモジュール９０６で動作させることが可能となる。なお、ＦＰＧＡやスイッチングデバイスに論理をプログラム（コンフィギュレーション）する方法は、ＦＰＧＡメーカやスイッチグデバイスメーカによりさまざまな方法が提供・提示されているが、一般的にはメモリにコンフィギュレーションデータを格納しておき、直接または、コンフィギュレーションを制御するＬＳＩを経由してＦＰＧＡやスイッチングデバイスにコンフィギュレーションデータをプログラムする手法が用いられている。
【００８２】
次に、図２２に、ステップＳ１８０２の論理分割結果に合わせて、ステップＳ１８０３のＦＰＧＡ間配線処理でＦＥＴスイッチのオン／オフ判定を行う処理の一例を示す。
【００８３】
図２３に、分割処理結果を示す。図２２のフロー例に従い、ステップＳ１８０２の結果が図２３のような接続となったと仮定し、図２４のようなアーキテクチャで、かつ、図９のようにＦＥＴスイッチが搭載されたＦＰＧＡモジュール（結線数を図２５のように仮定する）をターゲットとした場合を想定する。配置配線処理（ステップＳ１８０３の処理）を行うと、まずは分岐配線が存在するため、その分岐配線が双方向かどうか、タイミングクリティカルかどうかが判定される。この分岐ネットすべてがタイミングクリティカルだとした場合、オフのＦＥＴスイッチがなくなるまではＦＥＴスイッチをオンにして配線処理を行う。
【００８４】
図２４の場合、ＦＥＴスイッチをオンすることで全ＦＰＧＡ９０１と接続されるワイヤ数は６０本であるから、３０／６０がオンとなり、残りがオフとなる。なお、このようなケースではどのＦＥＴスイッチをオンにし、どのＦＥＴスイッチをオフにするかを決定する必要があるが、例えば各ＦＰＧＡ間の結線数を評価し、ターゲットとなるＦＰＧＡモジュール上でのＦＰＧＡ間ワイヤ数と分割結果での該結線数との差分が大きいものから選択していく等の処理が考えられる。図２３の場合、ＦＰＧＡ間ワイヤ数が均一だとすれば、分割結果（１）−（４）、分割結果（２）−（３）間に論理接続なしのため、これらを接続するＦＥＴスイッチからオンに設定していく。
【００８５】
次に、分割結果（１）−（２）、分割結果（３）−（４）間が選択され、この時点でのＦＰＧＡモジュールの接続は図２６となる。
【００８６】
次に、ＦＰＧＡ間直結配線が不足しているかどうかが判定されるが、分割結果（１）−（３）間がリソース６０本に対し、接続数が７０本のため該当となる。この溢れ分１０本は分割結果（１）−（２）、分割結果（３）−（４）間のＦＥＴスイッチをオンにすれば吸収可能で、このスイッチをオンにしても分割結果（１）−（２）、分割結果（３）−（４）間はワイヤリソース４０本に対して２０本、１０本と余裕があるため、分割結果（１）−（２）、分割結果（３）−（４）間のＦＥＴスイッチの残り１０がオンと設定され、最終的なＦＥＴスイッチの設定と配線割り当ては図２７のようになる。
【００８７】
本発明と異なりＦＥＴスイッチを搭載していない場合、図１８のステップＳ１８０３のＦＰＧＡ間配線処理結果はＦＥＴスイッチを経由していたネットすべてが遅延の大きいプログラマブルスイッチを経由することになり、ＦＰＧＡモジュール全体での動作周波数が低下する原因となる。また、図４の問題点１の発生も抑止できなくなる。
【００８８】
さらにＦＥＴスイッチ制御信号をプログラマブルデバイスと接続することで、論理分割、ＦＰＧＡ間配線処理時にターゲット論理に合わせて前記ＦＥＴスイッチの制御を決定した結果をコンフィギュレーションデータに内包することができるため、データとハードウェア設定が不一致となることなく、設定誤りによる誤動作を抑止でき、さらに同一のＦＰＧＡモジュールを搭載したまま、スイッチ切り替え等のハードウェアの設定変更なしに異なる配線経路設定を持つ複数の論理をプログラムすることも可能となる。さらに、本スイッチの制御信号がプログラマブルデバイスと接続されていることで、配線経路の動作中の切り替えも可能となる。これについての一例は後述する。
【００８９】
なお、前記の実施例は図９のＦＥＴスイッチ挿入を前提とした説明となっているが、図１０、図１３、図１４についても同様の考え方でオン／オフの設定を決定できる。図１０、図１３は1対１接続が局所的に多い場合に有効であり、図１４はインターフェース（ポート）の分岐や双方向接続に有効である。さらに、図１４はＦＰＧＡモジュールの積み重ね使用時（スタック）でも有効となりえる。
【００９０】
図２８にバス接続例、図２９に個別接続例を示す。
【００９１】
ＦＰＧＡ間の結線数がある程度確保できる場合には、複数のＦＰＧＡ間での信号送受信は図２８のような共通バス接続で複数ＦＰＧＡを接続するよりも図２９のように個別接続した方が、配線リソースが不足し時分列多重化（図３０）を行ったとしても動作速度が低下しない。なお、図３０は、パラレル−シリアル変換、シリアル−パラレル変換回路を付加し１本のワイヤで複数の論理信号を転送する方式を示す。
【００９２】
ＦＰＧＡモジュールをスタック構成で接続する場合、図５のようにスタック数が増加するにつれて中間部分のコネクタ接続を通過するネット数が増加するため各モジュール間で使用可能な配線リソースは大幅に減少する。このため、論理分割結果によっては図２８の方が図２９よりも高速動作する可能性がある。
【００９３】
また、図２９に対して図２８の方が、無関係なモジュールの通過がないため比較的容易に信号送受信回路を構成、接続できるというメリットもある。本発明の図１４の構成をとれば、図１８のステップＳ１８０３の処理時に分割結果とモジュール構成に合わせて図２８と図２９のいずれかの構成を、ハードウェアを変更することなく選択することが可能となる。なお、この考え方は図５の並列配置方式による規模拡張でも同様である。さらに、ＦＰＧＡモジュールを図１４の構成とすることで、バスに任意のＣＰＵやＩＰが接続されていくような論理の検証もまた容易になる。
【００９４】
図３１に、ＦＰＧＡを利用したシミュレーションアクセラレータの構成例を示す。ＦＰＧＡを利用したシミュレーションアクセラレータは、例えば本構成例のように入出力データ及びそのデータをＦＰＧＡモジュール９０６に送受信するソフトウェアをディスク３１０４等の記憶装置に持つパーソナルコンピュータ（ＰＣ）３１０１（又はワークステーション）と、ＰＣ３１０１に接続可能な汎用のインターフェース（ＰＣＩ等）とＦＰＧＡモジュール９０６との間でデータの受け渡しをするブリッジ回路３１０２を実現したデバイスを搭載したマザーボード３１０３及びそのマザーボード上に搭載するＦＰＧＡモジュール９０６からなる。
【００９５】
次に、図３２に、バスに任意のＣＰＵ９０７やＩＰ９０８が接続されていく論理の検証手法についての概念図を示す。図３２において、３２０１は設計（検証）済みＩＰである。
【００９６】
設計未のものはＰＣ上のファンクションモデル等を利用し、設計済のものからハードウェア（ＦＰＧＡ）にプログラムしていく。なお、設計済の場合でもそれが検証対象の場合にはＰＣ上に置いたほうがデバッガビリティ面で有利なことから、あえてＰＣ上に置くこともありえる。その場合には設計、検証済のものからＦＰＧＡにプログラムすることで全体のシミュレーション速度を向上させていく。
【００９７】
このような検証手法を実施する場合、図２９の構成をとっている場合には図３３のように新たなＦＰＧＡ化対象論理が追加されるたびに、対象論理全体でプログラムデータ作成処理をやり直すことが必要になる。このやり直しは対象の論理規模に比例して難しくなるため、データを作り直すのに多大な時間がかかってしまう。一方、図２８の構成の場合、対象論理の切り口とハードウェア（ＦＰＧＡモジュール）のインタフェースバスとのブリッジ回路の作成と挿入は必要となるが、図３４のように追加する検証対象のみを処理すればよいため、図３３よりも早くプログラムデータを用意することが可能になる。なお、図３４において、バスブリッジ回路の挿入では、論理バスをハードウェア接続に合わせて用意されたバスに接続するための回路を挿入する。バス構成に合わせて作成する。
【００９８】
よって、ＦＰＧＡモジュールを図１４のようにしておけば、本例や前記スタック構成例のようにバス接続のほうが有利な場合と、配線数が比較的少ない等１対１接続を基本とするアーキテクチャが有利な場合との両者を同一のＦＰＧＡモジュールで実現することが可能となり、対象論理や検証手法に合わせて個別にＦＰＧＡモジュールを用意する必要がなくなる。
【００９９】
本発明の応用例として、図３５に、ＦＥＴスイッチのオン／オフがプログラマブルデバイスにより制御される特徴を活用し、ＦＰＧＡモジュールにプログラムする論理が動作している時にダイナミックにスイッチ切り替えを行うことで、ＦＰＧＡモジュール内部の配線を、論理内部接続として利用しながらプローブ用途でも使用可能とする実現例を、図３６にそのタイムチャートを示す。なお、この場合のＦＥＴスイッチ挿入箇所は図１３を前提としている。なお、プローブとはロジックアナライザ等の波形観測手段と接続するために論理の内部信号をそのインターフェース（コネクタ）まで引き出す処理を意味する。ＦＥＴスイッチの制御信号をプログラマブルデバイスから供給するようにすることで、個別の用途で同一の配線経路を論理動作に合わせて切り替えながら利用することを、高速性を保って実現できる。
【０１００】
この応用例では、内部配線リソースを減少させることなく、内部波形の信号観測を行うことができる。
【０１０１】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１０２】
本発明は、大規模ＬＳＩ、大規模ＬＳＩに搭載するＩＰ部品等について利用可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明者が本発明の前提として検討した第１の技術による論理検証システム基板の概略構成を示す図である。
【図２】本発明者が本発明の前提として検討した第２の技術による論理検証システム基板の概略構成を示す図である。
【図３】本発明者が本発明の前提として検討した第３の技術による論理検証システム基板の概略構成を示す図である。
【図４】本発明者が本発明の前提として検討した問題点１の説明図である。
【図５】本発明者が本発明の前提として検討した問題点２の説明図である。
【図６】本発明者が本発明の前提として検討した問題点１の説明図である。
【図７】問題点１において、Ｉ／Ｏバッファのないクロスバスイッチデバイスを示す図である。
【図８】問題点２において、バス接続を利用してＦＰＧＡ数を増やして規模拡張を図る技術を示す説明図である。
【図９】本発明の実施の形態１による論理検証システム基板の概略構成を示す図である。
【図１０】本発明の実施の形態２による論理検証システム基板の概略構成を示す図である。
【図１１】図１０のＦＥＴスイッチの構成を示す説明図である。
【図１２】（ａ）従来型の構成と（ｂ）実施の形態２の構成を比較した図である。
【図１３】本発明の実施の形態３において、拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【図１４】本発明の実施の形態３において、バスラインの外部接続方法を示す説明図である。
【図１５】本発明の実施の形態３において、ＦＰＧＡモジュールを複数搭載可能な基板配線に応用した例を示す図である。
【図１６】本発明の実施の形態３において、バスに任意のＣＰＵやＩＰが接続されていく論理の検証環境の構築例を示す図である。
【図１７】本発明の実施例において、ＬＳＩの設計／検証工程を示すフローチャートである。
【図１８】本発明の実施例において、ＦＰＧＡモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図１９】図１８のフローの論理分割の処理例を示す図である。
【図２０】本発明の実施例において、ＦＰＧＡモジュールのアーキテクチャ例を示す図である。
【図２１】図１８のフローのＦＰＧＡ間配線の処理例を示す図である。
【図２２】図１８のフローのＦＰＧＡ間配線処理でＦＥＴスイッチのオン／オフ判定を行う処理の一例を示すフローチャートである。
【図２３】図１８のフローの分割処理結果を示す図である。
【図２４】図１８のフローのＦＰＧＡ間配線の処理例を示す図である。
【図２５】図１８のフローのＦＰＧＡ間配線の処理例を示す図である。
【図２６】図１８のフローのＦＰＧＡ間配線の処理例を示す図である。
【図２７】図１８のフローのＦＰＧＡ間配線の処理例を示す図である。
【図２８】本発明の実施例において、ＦＰＧＡ間配線のバス接続例を示す図である。
【図２９】本発明の実施例において、ＦＰＧＡ間配線の個別接続例を示す図である。
【図３０】本発明の実施例において、１本のワイヤで複数の論理信号を転送する方式を示す図である。
【図３１】本発明の実施例において、ＦＰＧＡを利用したシミュレーションアクセラレータの構成例を示す図である。
【図３２】本発明の実施例において、バスに任意のＣＰＵ、ＩＰ等が接続されていく論理の検証手法についての概念図である。
【図３３】本発明の実施例において、ＦＰＧＡモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図３４】本発明の実施例において、ＦＰＧＡモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図３５】本発明の応用例を示す図である。
【図３６】図３５の応用例の動作を示すタイムチャートである。
【符号の説明】
【０１０４】
９０１  ＦＰＧＡ
９０２  プログラマブルスイッチ
９０３，９０４  ＦＥＴスイッチ
９０５  コネクタ
９０６，９１０  ＦＰＧＡモジュール
９０７  ＣＰＵ
９０８  ＩＰ
９０９  バス
３１０１  パーソナルコンピュータ（ＰＣ）
３１０２  ブリッジ回路
３１０３  マザーボード
３１０４  ディスク  
【図１】
2007178231.tif 000003
【図２】
2007178231.tif 000004
【図３】
2007178231.tif 000005
【図４】
2007178231.tif 000006
【図５】
2007178231.tif 000007
【図６】
2007178231.tif 000008
【図７】
2007178231.tif 000009
【図８】
2007178231.tif 000010
【図９】
2007178231.tif 000011
【図１０】
2007178231.tif 000012
【図１１】
2007178231.tif 000013
【図１２】
2007178231.tif 000014
【図１３】
2007178231.tif 000015
【図１４】
2007178231.tif 000016
【図１５】
2007178231.tif 000017
【図１６】
2007178231.tif 000018
【図１７】
2007178231.tif 000019
【図１８】
2007178231.tif 000020
【図１９】
2007178231.tif 000021
【図２０】
2007178231.tif 000022
【図２１】
2007178231.tif 000023
【図２２】
2007178231.tif 000024
【図２３】
2007178231.tif 000025
【図２４】
2007178231.tif 000026
【図２５】
2007178231.tif 000027
【図２６】
2007178231.tif 000028
【図２７】
2007178231.tif 000029
【図２８】
2007178231.tif 000030
【図２９】
2007178231.tif 000031
【図３０】
2007178231.tif 000032
【図３１】
2007178231.tif 000033
【図３２】
2007178231.tif 000034
【図３３】
2007178231.tif 000035
【図３４】
2007178231.tif 000036
【図３５】
2007178231.tif 000037
【図３６】
2007178231.tif 000038