論理検証システム基板
【課題】複数論理のアーリープロトタイピング検証を、同一のシステム基板で高速に実行することのできる技術を提供する。
【解決手段】FETスイッチ903を使用し、高速な配線経路切り替えを実現するとともに、そのオン/オフ制御をプログラマブルスイッチ(FPGA等)902で行うことで、論理分割、FPGA間配線処理時に、FPGA901にプログラムされるターゲット論理に合わせてFETスイッチ903の制御を決定する。
【解決手段】FETスイッチ903を使用し、高速な配線経路切り替えを実現するとともに、そのオン/オフ制御をプログラマブルスイッチ(FPGA等)902で行うことで、論理分割、FPGA間配線処理時に、FPGA901にプログラムされるターゲット論理に合わせてFETスイッチ903の制御を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模集積回路(LSI)の開発・設計過程における論理検証技術に関し、特に、複数のFPGA(フィールドプログラマブルゲートアレイ)を搭載したアーリープロトタイピングボードを高速に動作させるための構造に適用して有効な技術に関する。
【背景技術】
【0002】
本発明者が検討した技術として、例えば、LSIの開発・設計過程における論理検証においては、以下の技術が考えられる。
【0003】
LSIの論理規模は高集積化に伴い年々増加しており、また、機能面で複雑度を増している。このため、品質を確保しながらも開発期間の短縮を図ることが可能なソリューションが重要となってきた。この課題に対する解決策の1つに、FPGAを利用したアーリープロトタイピング技術がある。アーリープロトタイピング技術とは、LSI設計の初期段階で、検証対象の論理をFPGA等のプログラマブルデバイスに構築し、そのFPGA等を擬似LSIとして実際のシステムに組み込んで、論理エミュレーションを行い、ソフトウェアのデバッグ等を含むシステム全体の動作確認を行う技術である。
【0004】
この技術を適用した場合、本来、実LSIを作成しないと検出できなかった、周辺実部品とのI/F(インターフェース)動作確認や、搭載基板の確認、論理シミュレーションでは検出し難い不良の摘出等が可能となり、設計期間とコストを削減することができる。この技術では1つのFPGAには収まらない大規模な論理を如何に複数のFPGAに割り当て、如何に高速に動作させるかが、検証速度の確保、動作速度帯に制限のある外部I/Fと接続する上で非常に重要である。
【0005】
本発明に関連する技術文献として、例えば特許文献1,2がある。
【特許文献1】特開平11−352190号公報
【特許文献2】特開平8−194725号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、前記のようなFPGAを利用したアーリープロトタイピング技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0007】
例えば、検証対象の論理を複数のFPGAに分割し、それらを接続する方法として、以下の3つの技術が考えられる。
【0008】
図1に、本発明者が本発明の前提として検討した第1の技術による論理検証システム基板の概略構成を示す。
【0009】
第1の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、プログラマブルスイッチ(SW)、コネクタ(Connector)などから構成される。第1の技術は、図1に示すように、システム基板上に複数個のプログラマブルスイッチ(スイッチデバイス)を配置し、基板上のFPGA若しくはFPGAモジュールとプログラマブルスイッチ間を固定的に配線し、FPGA若しくはFPGAモジュール間の接続をプログラマブルスイッチ経由で行うようにしたものである。
【0010】
この技術は、分割論理間の配線がすべてスイッチ経由接続となるため、分割境界の各々の結線数が偏っていたとしても比較的容易にFPGA間の配線を行うことが可能である。
【0011】
しかし、スイッチ通過配線ディレイにより動作速度が低下するという欠点がある。
【0012】
図2に、本発明者が本発明の前提として検討した第2の技術による論理検証システム基板の概略構成を示す。
【0013】
第2の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、コネクタ(Connector)などから構成される。第2の技術は、図2に示すように、システム基板上にFPGAモジュールを搭載可能なコネクタを用意し、若しくはFPGAを直接搭載し、各FPGA/FPGAモジュール間を基板配線若しくはケーブリングにより直接接続するものである。
【0014】
この技術は、各々のFPGA間で信号を高速に転送することが可能である。
【0015】
しかし、FPGA間結線が固定のため、分割境界の各々の結線数によっては、ピン数がFPGAの制限内に収まっていたとしても配線不可となる可能性があり、その場合にはLogic部分を信号が通過せざるをえないため、その遅延で動作速度が悪化する。また、この場合の遅延は、FPGA内部のおおよそを論理が占めるため、スイッチデバイス通過遅延よりも大きい傾向にあり、また通過するFPGAのピンを余分に使用することになる。さらに、バス接続(全FPGAへの直結配線)に関しては、同数以上の分岐論理ネットが存在する場合は有利ではあるものの、そうでない場合には物理接続よりも少ない論理信号接続をその配線経路で使用することになるため、その結果、未接続となったFPGAのピンが使用不可となるという問題がある(図6参照)。
【0016】
図3に、本発明者が本発明の前提として検討した第3の技術による論理検証システム基板の概略構成を示す。
【0017】
第3の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、プログラマブルスイッチ(SW)、コネクタ(Connector)などから構成される。第3の技術は、図3に示すように、FPGAを複数個搭載したモジュール、論理を実装するFPGA、スイッチデバイス(FPGA等)をモジュールに直接搭載し、その間を固定配線する。この技術は、FPGA間を直接結ぶ配線とスイッチデバイスを含む配線を持つことを特徴とする。
【0018】
この技術は、配線自由度を保ちながら、高速動作が必要な論理接続については直結配線を使用することで、動作速度低下を防ぐことが可能である。前記第1及び第2の技術の問題をある程度解決できる。
【0019】
しかし、バス接続がなく、多ピンの双方向バスの実現が難しい。分割境界によっては、前記第1及び第2の技術ほどではないが、経路不足によるクリティカルパス(高速動作が必要な論理接続)がスイッチ通過となる可能性がある。
【0020】
この第3の技術は、前記第1及び第2の技術のそれぞれのメリットを活かしつつ、デメリットをなくすための構成であるが、次の2つの問題点がある。
【0021】
問題点1:バス接続の双方向信号はスイッチ経由しか経路がなく、内部バスを持つ論理の高速動作が難しくなる(図4参照)。すなわち、I/O(入出力)バッファ付きのスイッチデバイス(FPGA等)は、双方向配線を通す場合に、スイッチ内でイネーブル制御が必要であり、イネーブルの引き出しによるリソース増加とスイッチ内での制御が必要となる。
【0022】
問題点2:FPGAモジュールの規模拡張方法として、図5に示すように、2通りの手法(スタッキング方式と並列配置方式)があるが、規模拡張に従いモジュール間の配線経路確保が難しくなる。すなわち、スタッキング方式の場合、スタック数増加に伴い、中間部分の通過配線が増大する((N−1)×2)。また、並列配置方式の場合、並列数に伴い、2モジュール間結線数が減少する(1/N)。なお、図5において、Sはスイッチデバイス(Switch−Device)、Cはコネクタ(Connector)、FはFPGAである。
【0023】
問題点1については、例えば前述したように、全FPGA間を直結接続するバス配線を用意することにより回避できるが、分割されたターゲット論理が1対1接続多数の場合、図6に示すように使用不可ピンが生じ、FPGAピン数をフルに使用することができなくなる。
【0024】
また、図7のようなI/Oバッファのないクロスバスイッチデバイスを利用すれば双方向配線を制御なしで通過させることが可能になるが、実質的にはFPGAがドライブする配線の負荷が大きくなり、通常のI/Oバッファ付きのスイッチデバイスよりも通過遅延が大きくなることが多い。
【0025】
問題点2については、図8のようにバス接続を利用し、システム固有のバスI/F論理を分割時に埋め込むことでFPGA数を増やし規模拡張を図る技術がある。この技術は、分割境界を論理バスとした場合や分割境界の結線数が非常に多い場合には有効ではあるものの、一般的にはバスを通過する信号がFPGA間の全I/F信号となることから、1対1接続と比較して全体の動作速度が低下するという問題がある。なお、図8において、LogicはFPGA又はFPGAモジュール、Connectorはコネクタである。
【0026】
そこで、本発明の目的は、論理検証システム基板において、前記問題点1及び2を解決することができる技術を提供することにある。
【0027】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0028】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0029】
すなわち、本発明による論理検証システム基板は、FET(Field Effect Transistor)スイッチを使用し、高速な配線経路切り替えを実現するとともに、そのオン/オフ制御をプログラム可能な素子(FPGA等)で行うことで、論理分割、FPGA間配線処理時にターゲット論理に合わせて前記FETスイッチの制御を決定することを特徴とするものである。
【発明の効果】
【0030】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【0031】
(1)複数FPGAに分割された論理の切り口に合わせて、分割境界の論理信号の配線経路を配線時に切り替えられるようにすることで、分割境界の論理信号接続に合わせてFPGAモジュールのアーキテクチャが選択可能となるため、複数論理のアーリープロトタイピング検証を同一のモジュールで高速に実行できる。
【0032】
(2)複数FPGAに分割された論理の切り口に合わせて、外部I/Fと内部配線リソースをFPGAモジュール内配線時に選択可能とすることで、スタック時に最上部のモジュールにも直接信号を入力可能な構成に切り替えられる。また、搭載するシステムに合わせて配線経路を選択できる。
【0033】
(3)配線結果として経路設定情報を含むため、データとハードウェア設定が不一致となることがない。
【0034】
(4)検証済のものからハードに落としていくような設計フローの適用を容易にすることができる。
【0035】
(5)検証速度を向上させることで、短期間で多数のテストを実施することが可能となる。
【0036】
(6)実チップ製造前からソフトウェアのデバッグ、実基板を含めたシステム検証が可能となる。
【発明を実施するための最良の形態】
【0037】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0038】
(実施の形態1)
図9は本発明の実施の形態1による論理検証システム基板の概略構成を示す図である。
【0039】
まず、図9により、本実施の形態1による論理検証システム基板の構成の一例を説明する。本実施の形態1による論理検証システム基板は、例えば、複数のFPGA901、プログラマブルスイッチ(FPGA等)902、FETスイッチ903などから構成されている。複数のFPGA901は、それぞれ直結配線で接続されている。
【0040】
本実施の形態1では、図9に示すように、FETスイッチ903を直結FPGA配線間に挿入し、その制御信号をプログラマブルスイッチ902(FPGA等のプログラマブルデバイス)と接続する。
【0041】
一般に、プログラマブルスイッチはピン間の接続を比較的自由に決定することができるが、その反面、複雑な内部構造となる(多数の配線リソースとスイッチで構成される)ことから通過配線ディレイが大きくなる(10ns程度)。一方、FETスイッチ903は単純なオン(ON)/オフ(OFF)を実現するものであるため、通過ディレイは高速となる(100ps程度)。
【0042】
図9のような接続構成の場合、多分岐の双方向配線はFETスイッチ903をオンすることで直結の配線リソースを確保することができる。また、1対1接続が多い論理分割結果に対してはFETスイッチ903をオフにすることで対応することができる。さらにまた、プログラマブルスイッチ902に論理を搭載することで論理動作中に経路を切り替えることができる。
【0043】
(実施の形態2)
図10は本発明の実施の形態2による論理検証システム基板の概略構成を示す図である。
【0044】
図10により、本実施の形態2による論理検証システム基板の構成の一例を説明する。本実施の形態2による論理検証システム基板は、例えば、複数のFPGA901、複数のプログラマブルスイッチ902、FETスイッチ904などから構成されている。
【0045】
本実施の形態2では、FPGA901とプログラマブルスイッチ902の間に図11のような構成のFETスイッチ904を挿入する。
【0046】
このような構成とすれば、分割された論理I/Fに1対1接続が多く、かつ偏りがある場合でも高速な動作を実現できる。
【0047】
図12に、比較のために、(a)従来型の構成と(b)実施の形態2の構成を示す。(a)従来型の構成は、スイッチを利用して配線しているため、結線数が多く、配線リソース不足が生じるが、(b)実施の形態2では、配線リソース不足が生じない。
【0048】
(実施の形態3)
前記実施の形態1及び2はモジュール内部の配線切り替えの実現を目的とするものだが、モジュール外部とのインターフェースにも応用することができる。
【0049】
図13は拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【0050】
例えば、拡張用コネクタ905−FPGA901間の配線にFETスイッチ903を接続することで、コネクタ未使用時にモジュール内部のFPGA間結線数を増加させることが可能となる。すなわち、コネクタ905未使用時に、FETスイッチ903を内部配線として利用することができる。
【0051】
図14はバスラインの外部接続方法を示す説明図である。
【0052】
図14のように、FETスイッチ903をコネクタ905−FPGA901間及びFPGA901間直結配線に付加することで、モジュール内部に外部から接続可能なバスラインを実現させることもできる。この切り替えにより、モジュール単体で使用する場合及び外部から図8のようなアクセスをするもののモジュール内の複数FPGAでは、1つの機能を実現する(1つの纏まり)場合には通常の配線経路の確保ができ、モジュール内の個々のFPGAで1つの機能を実現する場合には、図8のシステムバスを各FPGAに接続することが可能となる。
【0053】
さらに、上下(または左右)のコネクタにそのラインを突き抜けさせることで、スタック型でモジュール間を連結した場合でもI/O側から遠い位置のモジュール内FPGAに対してもバス接続が可能となる。すなわち、論理検証システム基板の両面のコネクタに、前記バスの接続線を突き抜けて接続することにより、スタック等のハードウェア構成や検証手法に合わせて、ハードウェアアーキテクチャを選択することが可能となる。
【0054】
なお、図15のように、FETスイッチ903をFPGAモジュール906内ではなく、FPGAを搭載する基板に搭載することで、前記実施の形態1,2,3はFPGAモジュール906を複数搭載可能な基板配線でも応用できる。
【0055】
さらに、このような構成をとることで、図16のように、バス909に任意のCPU907やIP908が接続されていく論理の検証環境の構築がし易くなる。すなわち、図16のように、固定バスI/F論理を1個版のFPGAモジュール910に搭載してもよい。また、シミュレーションアクセラレータ接続において、固定バスを切断面とし、検証済のものからハードウェアに落としていくような設計フローの適用を容易にすることができる。
【0056】
したがって、本実施の形態1〜3の論理検証システム基板は、高速にオン/オフ可能なFETスイッチをFPGAモジュールに搭載し、2種類以上の配線経路構成を選択可能としたこと、そのスイッチのオン/オフ手段をプログラマブルデバイスで制御する構成としたこと、論理分割後の配線処理時にそのスイッチのオン/オフを決定し、論理データの一部としてその設定を出力するようにしたことで、分割された論理の状態にあわせて配線経路を切り替えることが可能となる。
【0057】
さらに、実施の形態3によれば、コネクタ−FPGA間配線とFPGA−FPGA間配線間にFETスイッチを付加することで、モジュール内で全FPGAに接続され、かつコネクタを突き抜ける配線経路が構成できるため、何段スタックしてもその経路経由での信号伝達が可能となることから、検証対象とハードウェア構成に合わせて同一のモジュールを別々の接続構成で使い分けることが可能となる。
【0058】
この使い分けの方法としては、例えば、モジュールを1個利用し検証対象全体の場合はオフ、モジュールを1個利用するがそれが検証対象の一部の場合はオン、 モジュールを複数個利用し検証対象が全体の場合はオフ(最下部)・オン(上部)、モジュールを複数個利用しそれが検証対象の一部の場合はオンとする。
【実施例】
【0059】
次に、前記実施の形態1〜3の実施例を詳細に説明する。
【0060】
最初に、図17により、LSIにおける設計及び検証の工程について説明する。図17は、LSIの設計/検証工程を示すフローチャートである。
【0061】
まず、実現する回路の仕様を決定する仕様設計を行う(ステップS1701)。
【0062】
次に、決定した仕様に基づきHDL(ハードウェア記述言語)を用いて論理回路をレジスタトランスファレベルで記述し、論理設計を行う(ステップS1702)。
【0063】
その後、論理回路を汎用プロセッサ上で擬似的に動作させることにより、その動作を検証する機能を持つ論理シミュレータと呼ばれるシステムを用いて、設計した論理回路の検証を行う(ステップS1703)。この検証は、一般的には論理シミュレーションと呼ばれている。ここでは、論理機能が仕様通りかどうかを検証する。
【0064】
論理機能が確認されると、論理合成処理を行い、レジスタトランスファレベルで記述された回路を、ターゲットとなるASICゲート回路に変換する処理を行う(ステップS1704)。
【0065】
論理合成後には実際にターゲットとなるASICゲートで構成された回路が出力として得られるため、タイミングが仕様を満たすかどうかの検証をこの時点で行うことが一般的に行われている(ステップS1705)。
【0066】
また、ステップS1706にあるように、論理シミュレーションによる検証の終わり頃から、論理シミュレーションによる検証、論理合成、レイアウトと並行して、FPGA(Field programmable Gate Array)などの再構成可能なデバイスを利用した論理エミュレーションを行うことが一般的となっている。この検証は、再構成可能なデバイスに設計した論理をプログラムすることで、実際の周辺部品と組み合わせて実動作に近い速度で論理を動作させ、実部品の仕様誤解の検出やテストパターンが長大で論理シミュレーションでは実行が不可能なケースにおける不良などをLSI製造前に摘出することを目的としたものである。
【0067】
また、再構成可能なデバイスに設計した論理をプログラムすると、実動作に近い速度で論理を動作させることが可能であるため、組み込みシステムなどの開発のように、設計した論理と組み合わせて動くソフトウェアを同時期に設計する場合、ステップS1707のように、ソフトウェアデバッグをLSIのサンプル製造前から実施することができる。これによって設計期間を短縮することができる。
【0068】
論理合成後のタイミングに問題がなければ、論理合成によりターゲットとなるASICゲート回路に変換された論理を入力として、セルをチップに配置し、そのセルのピン同士を各セル間の論理接続に従って配線するレイアウト処理を行う(ステップS1708)。
【0069】
この後、レイアウト結果におけるタイミングが仕様を満たすかどうかの最終検証を行う(ステップS1709)。
【0070】
この検証及びプロトタイピング検証が終わると、実際にLSIを製造する(ステップS1710)。
【0071】
この後、最終確認のために実機検証を行うが(ステップS1711)、プロトタイピング検証を実施している場合、共通のテストデータや環境を使用することができ、また本来はこの時点でしか摘出できなかった不良を早期に検出しているため、実機検証期間を大幅に短くすることができる。一般的に、このようなフローでLSIの開発は行われる。
【0072】
本発明は、このフローのうち、主に論理エミュレーション(ステップS1706)、ソフトウェアデバッグ(ステップS1707)、及び論理検証における再構成可能なデバイスであるFPGAを利用した論理シミュレーションの加速手法に関する。
【0073】
次に図18により、複数のFPGAを搭載したFPGAモジュールを利用したプロトタイピングにおいて、検証対象となる論理をFPGAモジュールにプログラムする方法について説明する。図18は、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【0074】
最初に、FPGAモジュールに実現する検証対象論理を、設計中のLSIから切り出す処理を行う(ステップS1801)。最終的には検証対象論理は設計中のLSI全体となるが、設計の終了した機能からFPGAモジュールに実現することで、論理シミュレーションの加速や論理エミュレーションを実行することができる。本説明においては、再構成可能なデバイスをFPGAと言い表す。
【0075】
次に、検証対象の論理をFPGAモジュール上の複数のFPGAに割り当てる(ステップS1802)。このステップは通常、論理分割と呼ばれる。本処理例を図19に示す。論理分割は、機能ブロック単位で行うことが一般的に用いられているが(例えば、特開平8−194725号公報参照)、機能ブロックをまたいで複数のFPGAへの割り当てを行っても良い。図19では、検証対象論理の機能ブロックA,B,C,D,Eにつき、機能ブロックAをFPGA901aに、機能ブロックBをFPGA901bに、機能ブロックCをFPGA901cに、機能ブロックD,EをFPGA901dに、割り当てている。
【0076】
次に、FPGAモジュール906のコネクタ905のピンに、検証対象論理のポートを割り当てるとともに、FPGAモジュール906上で複数のFPGA901への割り当てを行った論理間および論理とポート間の論理接続を、実際のFPGAモジュール906のワイヤに割り当てる処理を行う(ステップS1803)。
【0077】
図20にFPGAモジュール906のアーキテクチャ例を、図21に本処理例を示す。
【0078】
コネクタ905、FPGA901等各搭載部品間は、基板配線(ワイヤ)で接続される。通常、各部品間は複数のワイヤで構成される。コネクタ905は、FPGAモジュール906外部とピン単位で接続される。分割論理間の論理接続(ネット)を、FPGAモジュール906のワイヤに割り当てて配線経路を決定する。通常、FPGAモジュール906では部品間に複数のワイヤが接続されているが、この処理で、どのワイヤかまで決定する。コネクタ905のピンに論理ポートを割り当てる。通常、搭載基板側の配線割り当てに併せて決定することが多い。なお、FPGAモジュール906のコネクタ905のピンに検証対象論理のポートを割り当てる処理は、通常、FPGAモジュール906を搭載する基板側の配線に従って行うことが一般的である。この際、FPGAモジュール906に搭載されたスイッチングデバイス内の接続も決定される。
【0079】
この後、分割された各論理を、ターゲットとなる再構成可能なデバイスのゲートで記述された回路に変換(論理合成)する(ステップS1804)。
【0080】
さらに、各FPGA901に割り当てた分割結果論理毎に、FPGA間配線処理で決定された論理間接続のワイヤ割り当て結果をFPGA901のピン配置制約として入力し、FPGA901内の配置配線処理を行う(ステップS1805)。
【0081】
この処理が終了すると、FPGA間配線処理で決定されたスイッチグデバイス内の接続と、FPGA内配置配線処理結果とをFPGA901にプログラム(コンフィギュレーション)する処理を行う(ステップS1806)。この処理を行うことで、プログラムした論理をFPGAモジュール906で動作させることが可能となる。なお、FPGAやスイッチングデバイスに論理をプログラム(コンフィギュレーション)する方法は、FPGAメーカやスイッチグデバイスメーカによりさまざまな方法が提供・提示されているが、一般的にはメモリにコンフィギュレーションデータを格納しておき、直接または、コンフィギュレーションを制御するLSIを経由してFPGAやスイッチングデバイスにコンフィギュレーションデータをプログラムする手法が用いられている。
【0082】
次に、図22に、ステップS1802の論理分割結果に合わせて、ステップS1803のFPGA間配線処理でFETスイッチのオン/オフ判定を行う処理の一例を示す。
【0083】
図23に、分割処理結果を示す。図22のフロー例に従い、ステップS1802の結果が図23のような接続となったと仮定し、図24のようなアーキテクチャで、かつ、図9のようにFETスイッチが搭載されたFPGAモジュール(結線数を図25のように仮定する)をターゲットとした場合を想定する。配置配線処理(ステップS1803の処理)を行うと、まずは分岐配線が存在するため、その分岐配線が双方向かどうか、タイミングクリティカルかどうかが判定される。この分岐ネットすべてがタイミングクリティカルだとした場合、オフのFETスイッチがなくなるまではFETスイッチをオンにして配線処理を行う。
【0084】
図24の場合、FETスイッチをオンすることで全FPGA901と接続されるワイヤ数は60本であるから、30/60がオンとなり、残りがオフとなる。なお、このようなケースではどのFETスイッチをオンにし、どのFETスイッチをオフにするかを決定する必要があるが、例えば各FPGA間の結線数を評価し、ターゲットとなるFPGAモジュール上でのFPGA間ワイヤ数と分割結果での該結線数との差分が大きいものから選択していく等の処理が考えられる。図23の場合、FPGA間ワイヤ数が均一だとすれば、分割結果(1)−(4)、分割結果(2)−(3)間に論理接続なしのため、これらを接続するFETスイッチからオンに設定していく。
【0085】
次に、分割結果(1)−(2)、分割結果(3)−(4)間が選択され、この時点でのFPGAモジュールの接続は図26となる。
【0086】
次に、FPGA間直結配線が不足しているかどうかが判定されるが、分割結果(1)−(3)間がリソース60本に対し、接続数が70本のため該当となる。この溢れ分10本は分割結果(1)−(2)、分割結果(3)−(4)間のFETスイッチをオンにすれば吸収可能で、このスイッチをオンにしても分割結果(1)−(2)、分割結果(3)−(4)間はワイヤリソース40本に対して20本、10本と余裕があるため、分割結果(1)−(2)、分割結果(3)−(4)間のFETスイッチの残り10がオンと設定され、最終的なFETスイッチの設定と配線割り当ては図27のようになる。
【0087】
本発明と異なりFETスイッチを搭載していない場合、図18のステップS1803のFPGA間配線処理結果はFETスイッチを経由していたネットすべてが遅延の大きいプログラマブルスイッチを経由することになり、FPGAモジュール全体での動作周波数が低下する原因となる。また、図4の問題点1の発生も抑止できなくなる。
【0088】
さらにFETスイッチ制御信号をプログラマブルデバイスと接続することで、論理分割、FPGA間配線処理時にターゲット論理に合わせて前記FETスイッチの制御を決定した結果をコンフィギュレーションデータに内包することができるため、データとハードウェア設定が不一致となることなく、設定誤りによる誤動作を抑止でき、さらに同一のFPGAモジュールを搭載したまま、スイッチ切り替え等のハードウェアの設定変更なしに異なる配線経路設定を持つ複数の論理をプログラムすることも可能となる。さらに、本スイッチの制御信号がプログラマブルデバイスと接続されていることで、配線経路の動作中の切り替えも可能となる。これについての一例は後述する。
【0089】
なお、前記の実施例は図9のFETスイッチ挿入を前提とした説明となっているが、図10、図13、図14についても同様の考え方でオン/オフの設定を決定できる。図10、図13は1対1接続が局所的に多い場合に有効であり、図14はインターフェース(ポート)の分岐や双方向接続に有効である。さらに、図14はFPGAモジュールの積み重ね使用時(スタック)でも有効となりえる。
【0090】
図28にバス接続例、図29に個別接続例を示す。
【0091】
FPGA間の結線数がある程度確保できる場合には、複数のFPGA間での信号送受信は図28のような共通バス接続で複数FPGAを接続するよりも図29のように個別接続した方が、配線リソースが不足し時分列多重化(図30)を行ったとしても動作速度が低下しない。なお、図30は、パラレル−シリアル変換、シリアル−パラレル変換回路を付加し1本のワイヤで複数の論理信号を転送する方式を示す。
【0092】
FPGAモジュールをスタック構成で接続する場合、図5のようにスタック数が増加するにつれて中間部分のコネクタ接続を通過するネット数が増加するため各モジュール間で使用可能な配線リソースは大幅に減少する。このため、論理分割結果によっては図28の方が図29よりも高速動作する可能性がある。
【0093】
また、図29に対して図28の方が、無関係なモジュールの通過がないため比較的容易に信号送受信回路を構成、接続できるというメリットもある。本発明の図14の構成をとれば、図18のステップS1803の処理時に分割結果とモジュール構成に合わせて図28と図29のいずれかの構成を、ハードウェアを変更することなく選択することが可能となる。なお、この考え方は図5の並列配置方式による規模拡張でも同様である。さらに、FPGAモジュールを図14の構成とすることで、バスに任意のCPUやIPが接続されていくような論理の検証もまた容易になる。
【0094】
図31に、FPGAを利用したシミュレーションアクセラレータの構成例を示す。FPGAを利用したシミュレーションアクセラレータは、例えば本構成例のように入出力データ及びそのデータをFPGAモジュール906に送受信するソフトウェアをディスク3104等の記憶装置に持つパーソナルコンピュータ(PC)3101(又はワークステーション)と、PC3101に接続可能な汎用のインターフェース(PCI等)とFPGAモジュール906との間でデータの受け渡しをするブリッジ回路3102を実現したデバイスを搭載したマザーボード3103及びそのマザーボード上に搭載するFPGAモジュール906からなる。
【0095】
次に、図32に、バスに任意のCPU907やIP908が接続されていく論理の検証手法についての概念図を示す。図32において、3201は設計(検証)済みIPである。
【0096】
設計未のものはPC上のファンクションモデル等を利用し、設計済のものからハードウェア(FPGA)にプログラムしていく。なお、設計済の場合でもそれが検証対象の場合にはPC上に置いたほうがデバッガビリティ面で有利なことから、あえてPC上に置くこともありえる。その場合には設計、検証済のものからFPGAにプログラムすることで全体のシミュレーション速度を向上させていく。
【0097】
このような検証手法を実施する場合、図29の構成をとっている場合には図33のように新たなFPGA化対象論理が追加されるたびに、対象論理全体でプログラムデータ作成処理をやり直すことが必要になる。このやり直しは対象の論理規模に比例して難しくなるため、データを作り直すのに多大な時間がかかってしまう。一方、図28の構成の場合、対象論理の切り口とハードウェア(FPGAモジュール)のインタフェースバスとのブリッジ回路の作成と挿入は必要となるが、図34のように追加する検証対象のみを処理すればよいため、図33よりも早くプログラムデータを用意することが可能になる。なお、図34において、バスブリッジ回路の挿入では、論理バスをハードウェア接続に合わせて用意されたバスに接続するための回路を挿入する。バス構成に合わせて作成する。
【0098】
よって、FPGAモジュールを図14のようにしておけば、本例や前記スタック構成例のようにバス接続のほうが有利な場合と、配線数が比較的少ない等1対1接続を基本とするアーキテクチャが有利な場合との両者を同一のFPGAモジュールで実現することが可能となり、対象論理や検証手法に合わせて個別にFPGAモジュールを用意する必要がなくなる。
【0099】
本発明の応用例として、図35に、FETスイッチのオン/オフがプログラマブルデバイスにより制御される特徴を活用し、FPGAモジュールにプログラムする論理が動作している時にダイナミックにスイッチ切り替えを行うことで、FPGAモジュール内部の配線を、論理内部接続として利用しながらプローブ用途でも使用可能とする実現例を、図36にそのタイムチャートを示す。なお、この場合のFETスイッチ挿入箇所は図13を前提としている。なお、プローブとはロジックアナライザ等の波形観測手段と接続するために論理の内部信号をそのインターフェース(コネクタ)まで引き出す処理を意味する。FETスイッチの制御信号をプログラマブルデバイスから供給するようにすることで、個別の用途で同一の配線経路を論理動作に合わせて切り替えながら利用することを、高速性を保って実現できる。
【0100】
この応用例では、内部配線リソースを減少させることなく、内部波形の信号観測を行うことができる。
【0101】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0102】
本発明は、大規模LSI、大規模LSIに搭載するIP部品等について利用可能である。
【図面の簡単な説明】
【0103】
【図1】本発明者が本発明の前提として検討した第1の技術による論理検証システム基板の概略構成を示す図である。
【図2】本発明者が本発明の前提として検討した第2の技術による論理検証システム基板の概略構成を示す図である。
【図3】本発明者が本発明の前提として検討した第3の技術による論理検証システム基板の概略構成を示す図である。
【図4】本発明者が本発明の前提として検討した問題点1の説明図である。
【図5】本発明者が本発明の前提として検討した問題点2の説明図である。
【図6】本発明者が本発明の前提として検討した問題点1の説明図である。
【図7】問題点1において、I/Oバッファのないクロスバスイッチデバイスを示す図である。
【図8】問題点2において、バス接続を利用してFPGA数を増やして規模拡張を図る技術を示す説明図である。
【図9】本発明の実施の形態1による論理検証システム基板の概略構成を示す図である。
【図10】本発明の実施の形態2による論理検証システム基板の概略構成を示す図である。
【図11】図10のFETスイッチの構成を示す説明図である。
【図12】(a)従来型の構成と(b)実施の形態2の構成を比較した図である。
【図13】本発明の実施の形態3において、拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【図14】本発明の実施の形態3において、バスラインの外部接続方法を示す説明図である。
【図15】本発明の実施の形態3において、FPGAモジュールを複数搭載可能な基板配線に応用した例を示す図である。
【図16】本発明の実施の形態3において、バスに任意のCPUやIPが接続されていく論理の検証環境の構築例を示す図である。
【図17】本発明の実施例において、LSIの設計/検証工程を示すフローチャートである。
【図18】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図19】図18のフローの論理分割の処理例を示す図である。
【図20】本発明の実施例において、FPGAモジュールのアーキテクチャ例を示す図である。
【図21】図18のフローのFPGA間配線の処理例を示す図である。
【図22】図18のフローのFPGA間配線処理でFETスイッチのオン/オフ判定を行う処理の一例を示すフローチャートである。
【図23】図18のフローの分割処理結果を示す図である。
【図24】図18のフローのFPGA間配線の処理例を示す図である。
【図25】図18のフローのFPGA間配線の処理例を示す図である。
【図26】図18のフローのFPGA間配線の処理例を示す図である。
【図27】図18のフローのFPGA間配線の処理例を示す図である。
【図28】本発明の実施例において、FPGA間配線のバス接続例を示す図である。
【図29】本発明の実施例において、FPGA間配線の個別接続例を示す図である。
【図30】本発明の実施例において、1本のワイヤで複数の論理信号を転送する方式を示す図である。
【図31】本発明の実施例において、FPGAを利用したシミュレーションアクセラレータの構成例を示す図である。
【図32】本発明の実施例において、バスに任意のCPU、IP等が接続されていく論理の検証手法についての概念図である。
【図33】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図34】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図35】本発明の応用例を示す図である。
【図36】図35の応用例の動作を示すタイムチャートである。
【符号の説明】
【0104】
901 FPGA
902 プログラマブルスイッチ
903,904 FETスイッチ
905 コネクタ
906,910 FPGAモジュール
907 CPU
908 IP
909 バス
3101 パーソナルコンピュータ(PC)
3102 ブリッジ回路
3103 マザーボード
3104 ディスク
【技術分野】
【0001】
本発明は、大規模集積回路(LSI)の開発・設計過程における論理検証技術に関し、特に、複数のFPGA(フィールドプログラマブルゲートアレイ)を搭載したアーリープロトタイピングボードを高速に動作させるための構造に適用して有効な技術に関する。
【背景技術】
【0002】
本発明者が検討した技術として、例えば、LSIの開発・設計過程における論理検証においては、以下の技術が考えられる。
【0003】
LSIの論理規模は高集積化に伴い年々増加しており、また、機能面で複雑度を増している。このため、品質を確保しながらも開発期間の短縮を図ることが可能なソリューションが重要となってきた。この課題に対する解決策の1つに、FPGAを利用したアーリープロトタイピング技術がある。アーリープロトタイピング技術とは、LSI設計の初期段階で、検証対象の論理をFPGA等のプログラマブルデバイスに構築し、そのFPGA等を擬似LSIとして実際のシステムに組み込んで、論理エミュレーションを行い、ソフトウェアのデバッグ等を含むシステム全体の動作確認を行う技術である。
【0004】
この技術を適用した場合、本来、実LSIを作成しないと検出できなかった、周辺実部品とのI/F(インターフェース)動作確認や、搭載基板の確認、論理シミュレーションでは検出し難い不良の摘出等が可能となり、設計期間とコストを削減することができる。この技術では1つのFPGAには収まらない大規模な論理を如何に複数のFPGAに割り当て、如何に高速に動作させるかが、検証速度の確保、動作速度帯に制限のある外部I/Fと接続する上で非常に重要である。
【0005】
本発明に関連する技術文献として、例えば特許文献1,2がある。
【特許文献1】特開平11−352190号公報
【特許文献2】特開平8−194725号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、前記のようなFPGAを利用したアーリープロトタイピング技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0007】
例えば、検証対象の論理を複数のFPGAに分割し、それらを接続する方法として、以下の3つの技術が考えられる。
【0008】
図1に、本発明者が本発明の前提として検討した第1の技術による論理検証システム基板の概略構成を示す。
【0009】
第1の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、プログラマブルスイッチ(SW)、コネクタ(Connector)などから構成される。第1の技術は、図1に示すように、システム基板上に複数個のプログラマブルスイッチ(スイッチデバイス)を配置し、基板上のFPGA若しくはFPGAモジュールとプログラマブルスイッチ間を固定的に配線し、FPGA若しくはFPGAモジュール間の接続をプログラマブルスイッチ経由で行うようにしたものである。
【0010】
この技術は、分割論理間の配線がすべてスイッチ経由接続となるため、分割境界の各々の結線数が偏っていたとしても比較的容易にFPGA間の配線を行うことが可能である。
【0011】
しかし、スイッチ通過配線ディレイにより動作速度が低下するという欠点がある。
【0012】
図2に、本発明者が本発明の前提として検討した第2の技術による論理検証システム基板の概略構成を示す。
【0013】
第2の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、コネクタ(Connector)などから構成される。第2の技術は、図2に示すように、システム基板上にFPGAモジュールを搭載可能なコネクタを用意し、若しくはFPGAを直接搭載し、各FPGA/FPGAモジュール間を基板配線若しくはケーブリングにより直接接続するものである。
【0014】
この技術は、各々のFPGA間で信号を高速に転送することが可能である。
【0015】
しかし、FPGA間結線が固定のため、分割境界の各々の結線数によっては、ピン数がFPGAの制限内に収まっていたとしても配線不可となる可能性があり、その場合にはLogic部分を信号が通過せざるをえないため、その遅延で動作速度が悪化する。また、この場合の遅延は、FPGA内部のおおよそを論理が占めるため、スイッチデバイス通過遅延よりも大きい傾向にあり、また通過するFPGAのピンを余分に使用することになる。さらに、バス接続(全FPGAへの直結配線)に関しては、同数以上の分岐論理ネットが存在する場合は有利ではあるものの、そうでない場合には物理接続よりも少ない論理信号接続をその配線経路で使用することになるため、その結果、未接続となったFPGAのピンが使用不可となるという問題がある(図6参照)。
【0016】
図3に、本発明者が本発明の前提として検討した第3の技術による論理検証システム基板の概略構成を示す。
【0017】
第3の技術による論理検証システム基板は、例えば、複数のFPGA若しくはFPGAモジュール(Logic)、プログラマブルスイッチ(SW)、コネクタ(Connector)などから構成される。第3の技術は、図3に示すように、FPGAを複数個搭載したモジュール、論理を実装するFPGA、スイッチデバイス(FPGA等)をモジュールに直接搭載し、その間を固定配線する。この技術は、FPGA間を直接結ぶ配線とスイッチデバイスを含む配線を持つことを特徴とする。
【0018】
この技術は、配線自由度を保ちながら、高速動作が必要な論理接続については直結配線を使用することで、動作速度低下を防ぐことが可能である。前記第1及び第2の技術の問題をある程度解決できる。
【0019】
しかし、バス接続がなく、多ピンの双方向バスの実現が難しい。分割境界によっては、前記第1及び第2の技術ほどではないが、経路不足によるクリティカルパス(高速動作が必要な論理接続)がスイッチ通過となる可能性がある。
【0020】
この第3の技術は、前記第1及び第2の技術のそれぞれのメリットを活かしつつ、デメリットをなくすための構成であるが、次の2つの問題点がある。
【0021】
問題点1:バス接続の双方向信号はスイッチ経由しか経路がなく、内部バスを持つ論理の高速動作が難しくなる(図4参照)。すなわち、I/O(入出力)バッファ付きのスイッチデバイス(FPGA等)は、双方向配線を通す場合に、スイッチ内でイネーブル制御が必要であり、イネーブルの引き出しによるリソース増加とスイッチ内での制御が必要となる。
【0022】
問題点2:FPGAモジュールの規模拡張方法として、図5に示すように、2通りの手法(スタッキング方式と並列配置方式)があるが、規模拡張に従いモジュール間の配線経路確保が難しくなる。すなわち、スタッキング方式の場合、スタック数増加に伴い、中間部分の通過配線が増大する((N−1)×2)。また、並列配置方式の場合、並列数に伴い、2モジュール間結線数が減少する(1/N)。なお、図5において、Sはスイッチデバイス(Switch−Device)、Cはコネクタ(Connector)、FはFPGAである。
【0023】
問題点1については、例えば前述したように、全FPGA間を直結接続するバス配線を用意することにより回避できるが、分割されたターゲット論理が1対1接続多数の場合、図6に示すように使用不可ピンが生じ、FPGAピン数をフルに使用することができなくなる。
【0024】
また、図7のようなI/Oバッファのないクロスバスイッチデバイスを利用すれば双方向配線を制御なしで通過させることが可能になるが、実質的にはFPGAがドライブする配線の負荷が大きくなり、通常のI/Oバッファ付きのスイッチデバイスよりも通過遅延が大きくなることが多い。
【0025】
問題点2については、図8のようにバス接続を利用し、システム固有のバスI/F論理を分割時に埋め込むことでFPGA数を増やし規模拡張を図る技術がある。この技術は、分割境界を論理バスとした場合や分割境界の結線数が非常に多い場合には有効ではあるものの、一般的にはバスを通過する信号がFPGA間の全I/F信号となることから、1対1接続と比較して全体の動作速度が低下するという問題がある。なお、図8において、LogicはFPGA又はFPGAモジュール、Connectorはコネクタである。
【0026】
そこで、本発明の目的は、論理検証システム基板において、前記問題点1及び2を解決することができる技術を提供することにある。
【0027】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0028】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0029】
すなわち、本発明による論理検証システム基板は、FET(Field Effect Transistor)スイッチを使用し、高速な配線経路切り替えを実現するとともに、そのオン/オフ制御をプログラム可能な素子(FPGA等)で行うことで、論理分割、FPGA間配線処理時にターゲット論理に合わせて前記FETスイッチの制御を決定することを特徴とするものである。
【発明の効果】
【0030】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【0031】
(1)複数FPGAに分割された論理の切り口に合わせて、分割境界の論理信号の配線経路を配線時に切り替えられるようにすることで、分割境界の論理信号接続に合わせてFPGAモジュールのアーキテクチャが選択可能となるため、複数論理のアーリープロトタイピング検証を同一のモジュールで高速に実行できる。
【0032】
(2)複数FPGAに分割された論理の切り口に合わせて、外部I/Fと内部配線リソースをFPGAモジュール内配線時に選択可能とすることで、スタック時に最上部のモジュールにも直接信号を入力可能な構成に切り替えられる。また、搭載するシステムに合わせて配線経路を選択できる。
【0033】
(3)配線結果として経路設定情報を含むため、データとハードウェア設定が不一致となることがない。
【0034】
(4)検証済のものからハードに落としていくような設計フローの適用を容易にすることができる。
【0035】
(5)検証速度を向上させることで、短期間で多数のテストを実施することが可能となる。
【0036】
(6)実チップ製造前からソフトウェアのデバッグ、実基板を含めたシステム検証が可能となる。
【発明を実施するための最良の形態】
【0037】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0038】
(実施の形態1)
図9は本発明の実施の形態1による論理検証システム基板の概略構成を示す図である。
【0039】
まず、図9により、本実施の形態1による論理検証システム基板の構成の一例を説明する。本実施の形態1による論理検証システム基板は、例えば、複数のFPGA901、プログラマブルスイッチ(FPGA等)902、FETスイッチ903などから構成されている。複数のFPGA901は、それぞれ直結配線で接続されている。
【0040】
本実施の形態1では、図9に示すように、FETスイッチ903を直結FPGA配線間に挿入し、その制御信号をプログラマブルスイッチ902(FPGA等のプログラマブルデバイス)と接続する。
【0041】
一般に、プログラマブルスイッチはピン間の接続を比較的自由に決定することができるが、その反面、複雑な内部構造となる(多数の配線リソースとスイッチで構成される)ことから通過配線ディレイが大きくなる(10ns程度)。一方、FETスイッチ903は単純なオン(ON)/オフ(OFF)を実現するものであるため、通過ディレイは高速となる(100ps程度)。
【0042】
図9のような接続構成の場合、多分岐の双方向配線はFETスイッチ903をオンすることで直結の配線リソースを確保することができる。また、1対1接続が多い論理分割結果に対してはFETスイッチ903をオフにすることで対応することができる。さらにまた、プログラマブルスイッチ902に論理を搭載することで論理動作中に経路を切り替えることができる。
【0043】
(実施の形態2)
図10は本発明の実施の形態2による論理検証システム基板の概略構成を示す図である。
【0044】
図10により、本実施の形態2による論理検証システム基板の構成の一例を説明する。本実施の形態2による論理検証システム基板は、例えば、複数のFPGA901、複数のプログラマブルスイッチ902、FETスイッチ904などから構成されている。
【0045】
本実施の形態2では、FPGA901とプログラマブルスイッチ902の間に図11のような構成のFETスイッチ904を挿入する。
【0046】
このような構成とすれば、分割された論理I/Fに1対1接続が多く、かつ偏りがある場合でも高速な動作を実現できる。
【0047】
図12に、比較のために、(a)従来型の構成と(b)実施の形態2の構成を示す。(a)従来型の構成は、スイッチを利用して配線しているため、結線数が多く、配線リソース不足が生じるが、(b)実施の形態2では、配線リソース不足が生じない。
【0048】
(実施の形態3)
前記実施の形態1及び2はモジュール内部の配線切り替えの実現を目的とするものだが、モジュール外部とのインターフェースにも応用することができる。
【0049】
図13は拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【0050】
例えば、拡張用コネクタ905−FPGA901間の配線にFETスイッチ903を接続することで、コネクタ未使用時にモジュール内部のFPGA間結線数を増加させることが可能となる。すなわち、コネクタ905未使用時に、FETスイッチ903を内部配線として利用することができる。
【0051】
図14はバスラインの外部接続方法を示す説明図である。
【0052】
図14のように、FETスイッチ903をコネクタ905−FPGA901間及びFPGA901間直結配線に付加することで、モジュール内部に外部から接続可能なバスラインを実現させることもできる。この切り替えにより、モジュール単体で使用する場合及び外部から図8のようなアクセスをするもののモジュール内の複数FPGAでは、1つの機能を実現する(1つの纏まり)場合には通常の配線経路の確保ができ、モジュール内の個々のFPGAで1つの機能を実現する場合には、図8のシステムバスを各FPGAに接続することが可能となる。
【0053】
さらに、上下(または左右)のコネクタにそのラインを突き抜けさせることで、スタック型でモジュール間を連結した場合でもI/O側から遠い位置のモジュール内FPGAに対してもバス接続が可能となる。すなわち、論理検証システム基板の両面のコネクタに、前記バスの接続線を突き抜けて接続することにより、スタック等のハードウェア構成や検証手法に合わせて、ハードウェアアーキテクチャを選択することが可能となる。
【0054】
なお、図15のように、FETスイッチ903をFPGAモジュール906内ではなく、FPGAを搭載する基板に搭載することで、前記実施の形態1,2,3はFPGAモジュール906を複数搭載可能な基板配線でも応用できる。
【0055】
さらに、このような構成をとることで、図16のように、バス909に任意のCPU907やIP908が接続されていく論理の検証環境の構築がし易くなる。すなわち、図16のように、固定バスI/F論理を1個版のFPGAモジュール910に搭載してもよい。また、シミュレーションアクセラレータ接続において、固定バスを切断面とし、検証済のものからハードウェアに落としていくような設計フローの適用を容易にすることができる。
【0056】
したがって、本実施の形態1〜3の論理検証システム基板は、高速にオン/オフ可能なFETスイッチをFPGAモジュールに搭載し、2種類以上の配線経路構成を選択可能としたこと、そのスイッチのオン/オフ手段をプログラマブルデバイスで制御する構成としたこと、論理分割後の配線処理時にそのスイッチのオン/オフを決定し、論理データの一部としてその設定を出力するようにしたことで、分割された論理の状態にあわせて配線経路を切り替えることが可能となる。
【0057】
さらに、実施の形態3によれば、コネクタ−FPGA間配線とFPGA−FPGA間配線間にFETスイッチを付加することで、モジュール内で全FPGAに接続され、かつコネクタを突き抜ける配線経路が構成できるため、何段スタックしてもその経路経由での信号伝達が可能となることから、検証対象とハードウェア構成に合わせて同一のモジュールを別々の接続構成で使い分けることが可能となる。
【0058】
この使い分けの方法としては、例えば、モジュールを1個利用し検証対象全体の場合はオフ、モジュールを1個利用するがそれが検証対象の一部の場合はオン、 モジュールを複数個利用し検証対象が全体の場合はオフ(最下部)・オン(上部)、モジュールを複数個利用しそれが検証対象の一部の場合はオンとする。
【実施例】
【0059】
次に、前記実施の形態1〜3の実施例を詳細に説明する。
【0060】
最初に、図17により、LSIにおける設計及び検証の工程について説明する。図17は、LSIの設計/検証工程を示すフローチャートである。
【0061】
まず、実現する回路の仕様を決定する仕様設計を行う(ステップS1701)。
【0062】
次に、決定した仕様に基づきHDL(ハードウェア記述言語)を用いて論理回路をレジスタトランスファレベルで記述し、論理設計を行う(ステップS1702)。
【0063】
その後、論理回路を汎用プロセッサ上で擬似的に動作させることにより、その動作を検証する機能を持つ論理シミュレータと呼ばれるシステムを用いて、設計した論理回路の検証を行う(ステップS1703)。この検証は、一般的には論理シミュレーションと呼ばれている。ここでは、論理機能が仕様通りかどうかを検証する。
【0064】
論理機能が確認されると、論理合成処理を行い、レジスタトランスファレベルで記述された回路を、ターゲットとなるASICゲート回路に変換する処理を行う(ステップS1704)。
【0065】
論理合成後には実際にターゲットとなるASICゲートで構成された回路が出力として得られるため、タイミングが仕様を満たすかどうかの検証をこの時点で行うことが一般的に行われている(ステップS1705)。
【0066】
また、ステップS1706にあるように、論理シミュレーションによる検証の終わり頃から、論理シミュレーションによる検証、論理合成、レイアウトと並行して、FPGA(Field programmable Gate Array)などの再構成可能なデバイスを利用した論理エミュレーションを行うことが一般的となっている。この検証は、再構成可能なデバイスに設計した論理をプログラムすることで、実際の周辺部品と組み合わせて実動作に近い速度で論理を動作させ、実部品の仕様誤解の検出やテストパターンが長大で論理シミュレーションでは実行が不可能なケースにおける不良などをLSI製造前に摘出することを目的としたものである。
【0067】
また、再構成可能なデバイスに設計した論理をプログラムすると、実動作に近い速度で論理を動作させることが可能であるため、組み込みシステムなどの開発のように、設計した論理と組み合わせて動くソフトウェアを同時期に設計する場合、ステップS1707のように、ソフトウェアデバッグをLSIのサンプル製造前から実施することができる。これによって設計期間を短縮することができる。
【0068】
論理合成後のタイミングに問題がなければ、論理合成によりターゲットとなるASICゲート回路に変換された論理を入力として、セルをチップに配置し、そのセルのピン同士を各セル間の論理接続に従って配線するレイアウト処理を行う(ステップS1708)。
【0069】
この後、レイアウト結果におけるタイミングが仕様を満たすかどうかの最終検証を行う(ステップS1709)。
【0070】
この検証及びプロトタイピング検証が終わると、実際にLSIを製造する(ステップS1710)。
【0071】
この後、最終確認のために実機検証を行うが(ステップS1711)、プロトタイピング検証を実施している場合、共通のテストデータや環境を使用することができ、また本来はこの時点でしか摘出できなかった不良を早期に検出しているため、実機検証期間を大幅に短くすることができる。一般的に、このようなフローでLSIの開発は行われる。
【0072】
本発明は、このフローのうち、主に論理エミュレーション(ステップS1706)、ソフトウェアデバッグ(ステップS1707)、及び論理検証における再構成可能なデバイスであるFPGAを利用した論理シミュレーションの加速手法に関する。
【0073】
次に図18により、複数のFPGAを搭載したFPGAモジュールを利用したプロトタイピングにおいて、検証対象となる論理をFPGAモジュールにプログラムする方法について説明する。図18は、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【0074】
最初に、FPGAモジュールに実現する検証対象論理を、設計中のLSIから切り出す処理を行う(ステップS1801)。最終的には検証対象論理は設計中のLSI全体となるが、設計の終了した機能からFPGAモジュールに実現することで、論理シミュレーションの加速や論理エミュレーションを実行することができる。本説明においては、再構成可能なデバイスをFPGAと言い表す。
【0075】
次に、検証対象の論理をFPGAモジュール上の複数のFPGAに割り当てる(ステップS1802)。このステップは通常、論理分割と呼ばれる。本処理例を図19に示す。論理分割は、機能ブロック単位で行うことが一般的に用いられているが(例えば、特開平8−194725号公報参照)、機能ブロックをまたいで複数のFPGAへの割り当てを行っても良い。図19では、検証対象論理の機能ブロックA,B,C,D,Eにつき、機能ブロックAをFPGA901aに、機能ブロックBをFPGA901bに、機能ブロックCをFPGA901cに、機能ブロックD,EをFPGA901dに、割り当てている。
【0076】
次に、FPGAモジュール906のコネクタ905のピンに、検証対象論理のポートを割り当てるとともに、FPGAモジュール906上で複数のFPGA901への割り当てを行った論理間および論理とポート間の論理接続を、実際のFPGAモジュール906のワイヤに割り当てる処理を行う(ステップS1803)。
【0077】
図20にFPGAモジュール906のアーキテクチャ例を、図21に本処理例を示す。
【0078】
コネクタ905、FPGA901等各搭載部品間は、基板配線(ワイヤ)で接続される。通常、各部品間は複数のワイヤで構成される。コネクタ905は、FPGAモジュール906外部とピン単位で接続される。分割論理間の論理接続(ネット)を、FPGAモジュール906のワイヤに割り当てて配線経路を決定する。通常、FPGAモジュール906では部品間に複数のワイヤが接続されているが、この処理で、どのワイヤかまで決定する。コネクタ905のピンに論理ポートを割り当てる。通常、搭載基板側の配線割り当てに併せて決定することが多い。なお、FPGAモジュール906のコネクタ905のピンに検証対象論理のポートを割り当てる処理は、通常、FPGAモジュール906を搭載する基板側の配線に従って行うことが一般的である。この際、FPGAモジュール906に搭載されたスイッチングデバイス内の接続も決定される。
【0079】
この後、分割された各論理を、ターゲットとなる再構成可能なデバイスのゲートで記述された回路に変換(論理合成)する(ステップS1804)。
【0080】
さらに、各FPGA901に割り当てた分割結果論理毎に、FPGA間配線処理で決定された論理間接続のワイヤ割り当て結果をFPGA901のピン配置制約として入力し、FPGA901内の配置配線処理を行う(ステップS1805)。
【0081】
この処理が終了すると、FPGA間配線処理で決定されたスイッチグデバイス内の接続と、FPGA内配置配線処理結果とをFPGA901にプログラム(コンフィギュレーション)する処理を行う(ステップS1806)。この処理を行うことで、プログラムした論理をFPGAモジュール906で動作させることが可能となる。なお、FPGAやスイッチングデバイスに論理をプログラム(コンフィギュレーション)する方法は、FPGAメーカやスイッチグデバイスメーカによりさまざまな方法が提供・提示されているが、一般的にはメモリにコンフィギュレーションデータを格納しておき、直接または、コンフィギュレーションを制御するLSIを経由してFPGAやスイッチングデバイスにコンフィギュレーションデータをプログラムする手法が用いられている。
【0082】
次に、図22に、ステップS1802の論理分割結果に合わせて、ステップS1803のFPGA間配線処理でFETスイッチのオン/オフ判定を行う処理の一例を示す。
【0083】
図23に、分割処理結果を示す。図22のフロー例に従い、ステップS1802の結果が図23のような接続となったと仮定し、図24のようなアーキテクチャで、かつ、図9のようにFETスイッチが搭載されたFPGAモジュール(結線数を図25のように仮定する)をターゲットとした場合を想定する。配置配線処理(ステップS1803の処理)を行うと、まずは分岐配線が存在するため、その分岐配線が双方向かどうか、タイミングクリティカルかどうかが判定される。この分岐ネットすべてがタイミングクリティカルだとした場合、オフのFETスイッチがなくなるまではFETスイッチをオンにして配線処理を行う。
【0084】
図24の場合、FETスイッチをオンすることで全FPGA901と接続されるワイヤ数は60本であるから、30/60がオンとなり、残りがオフとなる。なお、このようなケースではどのFETスイッチをオンにし、どのFETスイッチをオフにするかを決定する必要があるが、例えば各FPGA間の結線数を評価し、ターゲットとなるFPGAモジュール上でのFPGA間ワイヤ数と分割結果での該結線数との差分が大きいものから選択していく等の処理が考えられる。図23の場合、FPGA間ワイヤ数が均一だとすれば、分割結果(1)−(4)、分割結果(2)−(3)間に論理接続なしのため、これらを接続するFETスイッチからオンに設定していく。
【0085】
次に、分割結果(1)−(2)、分割結果(3)−(4)間が選択され、この時点でのFPGAモジュールの接続は図26となる。
【0086】
次に、FPGA間直結配線が不足しているかどうかが判定されるが、分割結果(1)−(3)間がリソース60本に対し、接続数が70本のため該当となる。この溢れ分10本は分割結果(1)−(2)、分割結果(3)−(4)間のFETスイッチをオンにすれば吸収可能で、このスイッチをオンにしても分割結果(1)−(2)、分割結果(3)−(4)間はワイヤリソース40本に対して20本、10本と余裕があるため、分割結果(1)−(2)、分割結果(3)−(4)間のFETスイッチの残り10がオンと設定され、最終的なFETスイッチの設定と配線割り当ては図27のようになる。
【0087】
本発明と異なりFETスイッチを搭載していない場合、図18のステップS1803のFPGA間配線処理結果はFETスイッチを経由していたネットすべてが遅延の大きいプログラマブルスイッチを経由することになり、FPGAモジュール全体での動作周波数が低下する原因となる。また、図4の問題点1の発生も抑止できなくなる。
【0088】
さらにFETスイッチ制御信号をプログラマブルデバイスと接続することで、論理分割、FPGA間配線処理時にターゲット論理に合わせて前記FETスイッチの制御を決定した結果をコンフィギュレーションデータに内包することができるため、データとハードウェア設定が不一致となることなく、設定誤りによる誤動作を抑止でき、さらに同一のFPGAモジュールを搭載したまま、スイッチ切り替え等のハードウェアの設定変更なしに異なる配線経路設定を持つ複数の論理をプログラムすることも可能となる。さらに、本スイッチの制御信号がプログラマブルデバイスと接続されていることで、配線経路の動作中の切り替えも可能となる。これについての一例は後述する。
【0089】
なお、前記の実施例は図9のFETスイッチ挿入を前提とした説明となっているが、図10、図13、図14についても同様の考え方でオン/オフの設定を決定できる。図10、図13は1対1接続が局所的に多い場合に有効であり、図14はインターフェース(ポート)の分岐や双方向接続に有効である。さらに、図14はFPGAモジュールの積み重ね使用時(スタック)でも有効となりえる。
【0090】
図28にバス接続例、図29に個別接続例を示す。
【0091】
FPGA間の結線数がある程度確保できる場合には、複数のFPGA間での信号送受信は図28のような共通バス接続で複数FPGAを接続するよりも図29のように個別接続した方が、配線リソースが不足し時分列多重化(図30)を行ったとしても動作速度が低下しない。なお、図30は、パラレル−シリアル変換、シリアル−パラレル変換回路を付加し1本のワイヤで複数の論理信号を転送する方式を示す。
【0092】
FPGAモジュールをスタック構成で接続する場合、図5のようにスタック数が増加するにつれて中間部分のコネクタ接続を通過するネット数が増加するため各モジュール間で使用可能な配線リソースは大幅に減少する。このため、論理分割結果によっては図28の方が図29よりも高速動作する可能性がある。
【0093】
また、図29に対して図28の方が、無関係なモジュールの通過がないため比較的容易に信号送受信回路を構成、接続できるというメリットもある。本発明の図14の構成をとれば、図18のステップS1803の処理時に分割結果とモジュール構成に合わせて図28と図29のいずれかの構成を、ハードウェアを変更することなく選択することが可能となる。なお、この考え方は図5の並列配置方式による規模拡張でも同様である。さらに、FPGAモジュールを図14の構成とすることで、バスに任意のCPUやIPが接続されていくような論理の検証もまた容易になる。
【0094】
図31に、FPGAを利用したシミュレーションアクセラレータの構成例を示す。FPGAを利用したシミュレーションアクセラレータは、例えば本構成例のように入出力データ及びそのデータをFPGAモジュール906に送受信するソフトウェアをディスク3104等の記憶装置に持つパーソナルコンピュータ(PC)3101(又はワークステーション)と、PC3101に接続可能な汎用のインターフェース(PCI等)とFPGAモジュール906との間でデータの受け渡しをするブリッジ回路3102を実現したデバイスを搭載したマザーボード3103及びそのマザーボード上に搭載するFPGAモジュール906からなる。
【0095】
次に、図32に、バスに任意のCPU907やIP908が接続されていく論理の検証手法についての概念図を示す。図32において、3201は設計(検証)済みIPである。
【0096】
設計未のものはPC上のファンクションモデル等を利用し、設計済のものからハードウェア(FPGA)にプログラムしていく。なお、設計済の場合でもそれが検証対象の場合にはPC上に置いたほうがデバッガビリティ面で有利なことから、あえてPC上に置くこともありえる。その場合には設計、検証済のものからFPGAにプログラムすることで全体のシミュレーション速度を向上させていく。
【0097】
このような検証手法を実施する場合、図29の構成をとっている場合には図33のように新たなFPGA化対象論理が追加されるたびに、対象論理全体でプログラムデータ作成処理をやり直すことが必要になる。このやり直しは対象の論理規模に比例して難しくなるため、データを作り直すのに多大な時間がかかってしまう。一方、図28の構成の場合、対象論理の切り口とハードウェア(FPGAモジュール)のインタフェースバスとのブリッジ回路の作成と挿入は必要となるが、図34のように追加する検証対象のみを処理すればよいため、図33よりも早くプログラムデータを用意することが可能になる。なお、図34において、バスブリッジ回路の挿入では、論理バスをハードウェア接続に合わせて用意されたバスに接続するための回路を挿入する。バス構成に合わせて作成する。
【0098】
よって、FPGAモジュールを図14のようにしておけば、本例や前記スタック構成例のようにバス接続のほうが有利な場合と、配線数が比較的少ない等1対1接続を基本とするアーキテクチャが有利な場合との両者を同一のFPGAモジュールで実現することが可能となり、対象論理や検証手法に合わせて個別にFPGAモジュールを用意する必要がなくなる。
【0099】
本発明の応用例として、図35に、FETスイッチのオン/オフがプログラマブルデバイスにより制御される特徴を活用し、FPGAモジュールにプログラムする論理が動作している時にダイナミックにスイッチ切り替えを行うことで、FPGAモジュール内部の配線を、論理内部接続として利用しながらプローブ用途でも使用可能とする実現例を、図36にそのタイムチャートを示す。なお、この場合のFETスイッチ挿入箇所は図13を前提としている。なお、プローブとはロジックアナライザ等の波形観測手段と接続するために論理の内部信号をそのインターフェース(コネクタ)まで引き出す処理を意味する。FETスイッチの制御信号をプログラマブルデバイスから供給するようにすることで、個別の用途で同一の配線経路を論理動作に合わせて切り替えながら利用することを、高速性を保って実現できる。
【0100】
この応用例では、内部配線リソースを減少させることなく、内部波形の信号観測を行うことができる。
【0101】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0102】
本発明は、大規模LSI、大規模LSIに搭載するIP部品等について利用可能である。
【図面の簡単な説明】
【0103】
【図1】本発明者が本発明の前提として検討した第1の技術による論理検証システム基板の概略構成を示す図である。
【図2】本発明者が本発明の前提として検討した第2の技術による論理検証システム基板の概略構成を示す図である。
【図3】本発明者が本発明の前提として検討した第3の技術による論理検証システム基板の概略構成を示す図である。
【図4】本発明者が本発明の前提として検討した問題点1の説明図である。
【図5】本発明者が本発明の前提として検討した問題点2の説明図である。
【図6】本発明者が本発明の前提として検討した問題点1の説明図である。
【図7】問題点1において、I/Oバッファのないクロスバスイッチデバイスを示す図である。
【図8】問題点2において、バス接続を利用してFPGA数を増やして規模拡張を図る技術を示す説明図である。
【図9】本発明の実施の形態1による論理検証システム基板の概略構成を示す図である。
【図10】本発明の実施の形態2による論理検証システム基板の概略構成を示す図である。
【図11】図10のFETスイッチの構成を示す説明図である。
【図12】(a)従来型の構成と(b)実施の形態2の構成を比較した図である。
【図13】本発明の実施の形態3において、拡張時に使用するコネクタ向け配線の内部利用方法を示す説明図である。
【図14】本発明の実施の形態3において、バスラインの外部接続方法を示す説明図である。
【図15】本発明の実施の形態3において、FPGAモジュールを複数搭載可能な基板配線に応用した例を示す図である。
【図16】本発明の実施の形態3において、バスに任意のCPUやIPが接続されていく論理の検証環境の構築例を示す図である。
【図17】本発明の実施例において、LSIの設計/検証工程を示すフローチャートである。
【図18】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図19】図18のフローの論理分割の処理例を示す図である。
【図20】本発明の実施例において、FPGAモジュールのアーキテクチャ例を示す図である。
【図21】図18のフローのFPGA間配線の処理例を示す図である。
【図22】図18のフローのFPGA間配線処理でFETスイッチのオン/オフ判定を行う処理の一例を示すフローチャートである。
【図23】図18のフローの分割処理結果を示す図である。
【図24】図18のフローのFPGA間配線の処理例を示す図である。
【図25】図18のフローのFPGA間配線の処理例を示す図である。
【図26】図18のフローのFPGA間配線の処理例を示す図である。
【図27】図18のフローのFPGA間配線の処理例を示す図である。
【図28】本発明の実施例において、FPGA間配線のバス接続例を示す図である。
【図29】本発明の実施例において、FPGA間配線の個別接続例を示す図である。
【図30】本発明の実施例において、1本のワイヤで複数の論理信号を転送する方式を示す図である。
【図31】本発明の実施例において、FPGAを利用したシミュレーションアクセラレータの構成例を示す図である。
【図32】本発明の実施例において、バスに任意のCPU、IP等が接続されていく論理の検証手法についての概念図である。
【図33】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図34】本発明の実施例において、FPGAモジュールに論理をプログラムする処理工程を示すフローチャートである。
【図35】本発明の応用例を示す図である。
【図36】図35の応用例の動作を示すタイムチャートである。
【符号の説明】
【0104】
901 FPGA
902 プログラマブルスイッチ
903,904 FETスイッチ
905 コネクタ
906,910 FPGAモジュール
907 CPU
908 IP
909 バス
3101 パーソナルコンピュータ(PC)
3102 ブリッジ回路
3103 マザーボード
3104 ディスク
【特許請求の範囲】
【請求項1】
論理検証対象の論理データがプログラムされる複数のFPGAと、
前記複数のFPGAの間を直結する第1及び第2の接続線と、
前記第1の接続線と前記第2の接続線とを接続するためのFETと、
前記FETのオン/オフ制御を行うプログラム可能な素子とを有することを特徴とする論理検証システム基板。
【請求項2】
請求項1記載の論理検証システム基板において、
前記プログラム可能な素子は、FPGAであることを特徴とする論理検証システム基板。
【請求項3】
請求項1記載の論理検証システム基板において、
前記論理検証対象の論理データに応じて、前記FETのオン/オフ制御が動的に変化するものであることを特徴とする論理検証システム基板。
【請求項4】
請求項1記載の論理検証システム基板において、
前記第1及び第2の接続線は、バスであることを特徴とする論理検証システム基板。
【請求項5】
請求項4記載の論理検証システム基板において、
前記論理検証システム基板の両面のコネクタに、前記バスの接続線が突き抜けて接続されていることを特徴とする論理検証システム基板。
【請求項1】
論理検証対象の論理データがプログラムされる複数のFPGAと、
前記複数のFPGAの間を直結する第1及び第2の接続線と、
前記第1の接続線と前記第2の接続線とを接続するためのFETと、
前記FETのオン/オフ制御を行うプログラム可能な素子とを有することを特徴とする論理検証システム基板。
【請求項2】
請求項1記載の論理検証システム基板において、
前記プログラム可能な素子は、FPGAであることを特徴とする論理検証システム基板。
【請求項3】
請求項1記載の論理検証システム基板において、
前記論理検証対象の論理データに応じて、前記FETのオン/オフ制御が動的に変化するものであることを特徴とする論理検証システム基板。
【請求項4】
請求項1記載の論理検証システム基板において、
前記第1及び第2の接続線は、バスであることを特徴とする論理検証システム基板。
【請求項5】
請求項4記載の論理検証システム基板において、
前記論理検証システム基板の両面のコネクタに、前記バスの接続線が突き抜けて接続されていることを特徴とする論理検証システム基板。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【公開番号】特開2007−178231(P2007−178231A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−376068(P2005−376068)
【出願日】平成17年12月27日(2005.12.27)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願日】平成17年12月27日(2005.12.27)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
[ Back to top ]