(57)【特許請求の範囲】
【請求項１】
基板上に実装され、動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、
前記基板上に実装され、前記プログラマブル・ロジック・デバイスに対応して前記プログラマブル・ロジック・デバイスの内部回路を動的に再構成するコンフィグレーションデータをＲＴＬ及びラッパーＲＴＬとして格納されるコンフィグレーションメモリと、
前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、
前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、
を備え、
前記コンフィグレーションデータのラッパーＲＴＬが、当該コンフィグレーションデータのＲＴＬに一意に対応するＲＴＬ識別情報を有すると共に、当該ＲＴＬ識別情報と前記ＰＬＤ識別情報とを比較して相違の有無を判定する判定機能を有することを特徴とする論理検証装置。
【請求項２】
前記請求項１に記載の論理検証装置において、
前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに設定されるコンフィグレーションデータのバージョンを示すＰＬＤ版数情報を、前記プログラマブル・ロジック・デバイスに対して出力するＰＬＤ版数情報保持部と、
前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ版数情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第２の出力部と、
を備え、
前記ラッパーＲＴＬが、前記ＲＴＬに一意に対応し且つＲＴＬのバージョンを示すＲＴＬ版数情報を有すると共に、当該ＲＴＬ版数情報と前記ＰＬＤ版数情報とを比較して相違の有無を判定する判定機能を有することを特徴とする論理検証装置。
【請求項３】
前記請求項１又は２に記載の論理検証装置を接続するユーザ側の端末装置とデザインサービス側の端末装置とが通信網を介して接続可能とし、前記論理検証装置の論理検証を支援する論理検証支援装置であって、
前記ＲＴＬが修正された修正ＲＴＬを格納する格納手段と、
前記格納手段における修正ＲＴＬの格納場所の情報並びに当該修正ＲＴＬに一意に対応する前記ＲＴＬ識別情報及び／又はＲＴＬ版数情報を含むメールによる、前記論理検証装置のプログラマブル・ロジック・デバイスに対する論理合成の依頼メールを受信する受信手段と、
前記修正ＲＴＬの格納場所情報並びにＲＴＬ識別情報及び／又はＲＴＬ版数情報を前記依頼メールから抽出する抽出手段と、
前記抽出された修正ＲＴＬの格納場所情報に基づき前記格納手段から修正ＲＴＬを読み出すと共に、当該修正ＲＴＬ並びに前記抽出されたＲＴＬ識別情報及び／又はＲＴＬ版数情報を含む前記ラッパーＲＴＬから前記コンフィグレーションデータを生成するコンフィグレーションデータ生成手段と、
を備えていることを特徴とする論理検証支援装置。
【請求項４】
前記請求項３に記載の論理検証支援装置において、
前記コンフィグレーションデータは、前記修正ＲＴＬ及びラッパーＲＴＬが、論理合成され、前記プログラマブル・ロジック・デバイスの配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報であることを特徴とする論理検証支援装置。
【請求項５】
動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスの内部回路を動的に再構成するデータとなるＲＴＬ及びラッパーＲＴＬからなるコンフィグレーションデータが格納されるコンフィグレーションメモリと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、当該プログラマブル・ロジック・デバイスに対応して当該ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、が基板上に実装された論理検証装置を用いた、当該コンフィグレーションメモリに書き込まれるコンフィグレーションデータの誤書き込みを検証する論理検証方法であって、
前記論理検証装置の電源投入により、前記プログラマブル・ロジック・デバイスに対して、前記ＲＴＬにおける所望の論理回路、並びに前記ラッパーＲＴＬにおける当該ＲＴＬに一意に対応するＲＴＬ識別情報が組み込まれたＲＴＬ識別情報保持部並びに当該ＲＴＬ識別情報及び前記ＰＬＤ識別情報を比較する識別情報比較部がそれぞれ設定されるステップと、
前記識別情報比較部に対して前記ＰＬＤ識別情報が出力されるステップと、
前記識別情報比較部に対して前記ＲＴＬ識別情報が出力されるステップと、
前記ＰＬＤ識別情報及びＲＴＬ識別情報が比較され、当該ＰＬＤ識別情報及びＲＴＬ識別情報の相違の有無が判定されるステップと、
前記識別情報比較部による判定結果が出力されるステップと、
を含むことを特徴とする論理検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・デバイス（Programmable Logic Device：ＰＬＤ）、特に、ＦＰＧＡ（Field Programable Gate Arry）を基板上に実装した論理検証装置、論理検証支援装置及び論理検証方法に関し、特に、論理検証装置に実装したコンフィグレーションメモリに格納するコンフィグレーションデータの誤書き込みを検証できる論理検証装置及びその方法並びにその論理検証装置の論理検証を支援する論理検証支援装置に関する。
【０００２】
更に詳しくは、集積回路の開発におけるプログラマブル・ロジック・デバイス構成方法に係り、回路アーキテクチャ検討結果、及び論理設計ドキュメントの一部であるブロックのポート仕様の接続情報のみを用いてデバイス・テクノロジに依存しないブロックのポートとポート間を結ぶネットからなるコア（論理コア）と呼ぶネットリストを生成する。そして、コア（論理コア）から対象ブロックを選択、グループ化し、グループ化したコア（論理コア）のデータを使用し、集積回路の開発を行なう集積回路の開発方法、並びにＡＳＩＣ（Application Specific Integrated Circuit）とプログラマブル・ロジック・デバイスのシームレスなコンカレント開発を可能とする。そして、設計品質確保と開発期間短縮を両立すると共に、開発にかかる人的資源とコストを低減することができるＡＳＩＣとプログラマブル・ロジック・デバイスのコンカレント開発システムに使用する品質を向上させた論理検証装置に関する。
【背景技術】
【０００３】
集積回路の開発手順では、先ず仕様を決定する際、洩れ等がないか慎重に検討した後、その仕様に従い設計を行なうようになっている。
先ず、製品仕様からＡＳＩＣ（特定用途向けＩＣ）のスペックを取得する（ｇ１）。次に、回路アーキテクチャを検討する（ｇ２）。次に、回路アーキテクチャ検討結果に基づいて回路設計を行なう（ｇ３）。この回路設計は、論理検証（ｇ４）を行ないながら行なう。
【０００４】
次に、回路設計が終了したら回路の論理合成を行なう（ｇ５）。論理合成が終了したら、論理合成結果に基づいてレイアウト展開する（ｇ６）。この段階で回路が設計できたことになる。回路が設計できたら、当該回路を製造し（ｇ７）、製造した回路を用いて実機の評価を行なう（ｇ８）。なお、以上のシーケンスのうち、図１１に示す集積回路設計手順に係る部分は、ステップ(ｇ５)の論理合成に係る部分である。なお、図１１は従来方法の原理を示すフローチャートである。
【０００５】
集積回路開発において、仕様を入力として実現する機能の検討、機能を実現する回路構成の検討を行なう回路アーキテクチャ検討を以下のような流れで実施している。通常、集積回路の開発では、製品の仕様から製品を実現する機能を洩れなく洗い出し、洗い出した機能を実現する回路構成の検討や、ＩＰ（Intellectual Property：知的財産）等のマクロ検討を行なう。ここで、マクロとはＩＰも含むＲＡＭ、ＲＯＭ等、変更しなくても使えるものをいう。
【０００６】
構成を検討した回路やＩＰの実現規模の初期見積りを行ない、この時、回路やＩＰの実現規模が予め判っていればゲート数で算出し、ゲート数が判らない場合は必要な信号数と処理に必要な時間からフリップフロップ数を算出して実現規模を見積もっている。ここで、見積もった規模と各機能の入出力信号本数を基に複数の機能をグループ化し１つのブロックとする。このグループ化を全機能について行なう。
【０００７】
論理設計では、前述の機能と見積り規模を基にＨＤＬ（ハードウェア記述言語）等の手段によりプログラマブル・ロジック・デバイスを対象に回路設計を行ない、オンボードでの機能評価が行なわれる。評価完了後、ＡＳＩＣ化する場合に再設計及び再検証が行なわれていた。
【０００８】
また、従来のＦＰＧＡ及びＡＳＩＣのネットリストを作成する方法は、回路アーキテクチャ検討結果であり論理設計ドキュメントの一部であるブロックのポート仕様の接続情報のみを用いてデバイス・テクノロジに依存しないブロックのポートとポート間を結ぶネットからなるコア（論理コア）と呼ぶネットリストを生成し、コア（論理コア）から対象ブロックを選択、グループ化し、グループ化したコア（論理コア）のデータを使用する集積回路の開発方法である（例えば、特許文献１参照）。
【０００９】
この従来のＦＰＧＡ及びＡＳＩＣのネットリストを作成する方法は、前述した集積回路の開発手順に対して、開発ＴＡＴ（Turn Around Time）及び開発リソース（人員）の効率化を図った開発手法が開示されている。
【００１０】
特に、従来のＦＰＧＡ及びＡＳＩＣのネットリストを作成する方法においては、ＦＰＧＡを基板上に搭載したプロトタイピング用基板を、コンカレント開発システム側にて開発する場合に、図１２に示すＳ１０２のフェーズにて取得するネットリストから、プロトタイピング用基板に搭載するＦＰＧＡの個数、及び複数のＦＰＧＡ間の接続情報を決定し、プロトタイピング用基板の回路図に反映する。なお、図１２は従来のコンカレント開発システムの動作説明図である。
【００１１】
そして、コンカレント開発システム側におけるプロトタイピング用基板のアーキテクチャ検討では、電源系統、クロック系統、リセット系統、及びＦＰＧＡへのデータ転送方式を重点的に検討して回路図化を行ない、プロトタイピング用基板の製造及び製造性試験を実施する。なお、この製造性試験とは、プロトタイピング用基板に搭載された複数のＦＰＧＡ間の接続性、及びＦＰＧＡと外部デバイスとの間の接続性を試験するものであり、ユーザがデザインした回路図のＲＴＬ（以下、ターゲットデザインＲＴＬと称す）の妥当性を確認するものではない。ここで、ＲＴＬ（Register Transfer Level：レジスタ転送レベル）とは、ＦＰＧＡで論理動作を検証する集積回路の機能仕様をハードウェア記述言語で表現した論理合成可能な記述レベルの設計データである。
【特許文献１】特開２００７−１０２８１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のプログラマブル・ロジック・デバイスであるＦＰＧＡや、ＡＳＩＣのネットリストを作成する方法は、ＦＰＧＡの内部回路のデータ（ＲＴＬ）が、ターゲットデザインＲＴＬの品質や版数の管理に依存している。
【００１３】
すなわち、ユーザは、コンカレント開発システム側に論理合成の依頼を行なったターゲットデザインＲＴＬが、コンカレント開発システム側において図１２に示すＳ１０１〜Ｓ１０３のフローを経て作成されたプロトタイピング用基板上の各ＦＰＧＡにそれぞれ対応するＲＯＭ（Read-Only Memory：読み出し専用メモリ）に書き込むＲＯＭデータとして、正しい位置のＲＯＭに書き込まれているかの妥当性を確認する必要がある。また、ユーザは、ユーザが意図する版数のＲＯＭデータがＲＯＭに書き込まれているかの妥当性を確認する必要がある。
【００１４】
このため、ユーザは、別途、ＦＰＧＡベンダーが提供する有償のツールを購入し、購入した有償のツールを使用してＲＯＭに書き込まれたＲＯＭデータの妥当性を確認する必要があるという課題があった。
また、プロトタイピング用基板に搭載するＦＰＧＡの個数は、近年、数十個を搭載する場合があり、ＦＰＧＡ毎のＲＯＭデータの管理が複雑化している。
【００１５】
これに対し、コンカレント開発システム側からユーザにプロトタイピング用基板を最初に提供する場合に、プロトタイピング用基板に搭載されたＲＯＭにＲＯＭデータを書き込んだうえで提供するのであるが、コンカレント開発システム側の人為的なミスにより、ある特定のＲＯＭに本来書き込むべきＲＯＭデータを、当該ＲＯＭと異なるＲＯＭに書き込むことがある。また、コンカレント開発システム側は、ユーザが意図する版数と異なる版数のＲＯＭデータをＲＯＭに書き込むこともある。
【００１６】
これにより、コンカレント開発システム側にて製造性試験を行なう場合に、製造性試験に合格することができず、製造性試験を不合格となった原因をコンカレント開発システム側にて究明する必要がある。
【００１７】
したがって、コンカレント開発システム側は、ＦＰＧＡベンダーが提供する有償のツールを使用して、プロトタイピング用基板に搭載している各ＦＰＧＡに対して、本来書き込むべきＲＯＭデータと実際にＲＯＭに書き込まれたＲＯＭデータとを照合、又は本来書き込むべきＲＯＭデータとＦＰＧＡに設定されているＲＯＭデータとの照合を行なうことによって原因を究明する。
【００１８】
なお、ＦＰＧＡベンダーが提供する有償のツールを使用したデータ照合は、ビット単位のチェックを行なうために、１個のＦＰＧＡに対するデータ照合に掛かる時間が５分程度を要してしまう。このため、プロトタイピング用基板に搭載しているＦＰＧＡが数十個にもなると、製造性試験にて人為的ミスが発生した場合における原因究明に際して、多大な時間を要するという課題があった。
【００１９】
さらに、ユーザによっては、単一のプロトタイピング用基板を使用して、機能の異なるＡＳＩＣを開発する場合がある。この場合には、ＲＴＬの版数毎に機能の異なるＡＳＩＣを割り当て、ターゲットデザインＲＴＬ内のＣＰＵ用レジスタ等にて版数管理を行ない、機能別のＡＳＩＣの評価を進めていく。
なお、この場合に、ターゲットデザインＲＴＬを評価するためにＦＰＧＡを立上げた時には、ＣＰＵＩ／Ｆが立ち上がっていないことが多い。
【００２０】
このため、ＦＰＧＡベンダーが提供する有償のツールを使用し、各ＦＰＧＡに設定されているＲＯＭデータとターゲットデザインＲＴＬとの照合を行なうことで、デバッグが進められている。
しかしながら、初期のデバッグに要する時間が莫大なものになり、効率的なデバッグを達成するために支障をきたしているという課題があった。
【００２１】
この発明は、上述のような課題を解決するためになされたもので、簡易且つ効率的なデバッグを実現することが可能となる論理検証装置及びその方法並びにその論理検証装置の論理検証を支援する論理検証支援装置を提供するものである。
【課題を解決するための手段】
【００２２】
この論理検証装置は、基板上に実装され、動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、前記基板上に実装され、前記プログラマブル・ロジック・デバイスに対応して前記プログラマブル・ロジック・デバイスの内部回路を動的に再構成するコンフィグレーションデータをＲＴＬ及びラッパーＲＴＬとして格納されるコンフィグレーションメモリと、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、を備え、前記コンフィグレーションデータのラッパーＲＴＬが、当該コンフィグレーションデータのＲＴＬに一意に対応するＲＴＬ識別情報を有すると共に、当該ＲＴＬ識別情報と前記ＰＬＤ識別情報とを比較して相違の有無を判定する判定機能を有するものである。
【００２３】
このように、ラッパーＲＴＬが、ＲＴＬに一意に対応するＲＴＬ識別情報を有すると共に、ＲＴＬ識別情報とＰＬＤ識別情報とを比較して相違の有無を判定する判定機能を有することにより、コンフィグレーションデータが正しい位置のコンフィグレーションメモリに書き込まれているかの妥当性を容易且つ短時間に確認することができるというという効果を奏する。
【００２４】
また、この論理検証装置は、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに設定されるコンフィグレーションデータのバージョンを示すＰＬＤ版数情報を、前記プログラマブル・ロジック・デバイスに対して出力するＰＬＤ版数情報保持部と、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ版数情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第２の出力部と、を備え、前記ラッパーＲＴＬが、前記ＲＴＬに一意に対応し且つＲＴＬのバージョンを示すＲＴＬ版数情報を有すると共に、当該ＲＴＬ版数情報と前記ＰＬＤ版数情報とを比較して相違の有無を判定する判定機能を有するものである。
【００２５】
このように、ラッパーＲＴＬが、ＲＴＬに一意に対応し且つＲＴＬのバージョンを示すＲＴＬ版数情報を有すると共に、ＲＴＬ版数情報とＰＬＤ版数情報とを比較して相違の有無を判定する判定機能を有することにより、正しい版数のコンフィグレーションデータがコンフィグレーションメモリに書き込まれているかの妥当性を容易且つ短時間に確認という効果を奏する。
【００２６】
この論理検証支援装置は、前記ＲＴＬが修正された修正ＲＴＬを格納する格納手段と、前記格納手段における修正ＲＴＬの格納場所の情報並びに当該修正ＲＴＬに一意に対応する前記ＲＴＬ識別情報及び／又はＲＴＬ版数情報を含むメールによる、前記論理検証装置のプログラマブル・ロジック・デバイスに対する論理合成の依頼メールを受信する受信手段と、前記修正ＲＴＬの格納場所情報並びにＲＴＬ識別情報及び／又はＲＴＬ版数情報を前記依頼メールから抽出する抽出手段と、前記抽出された修正ＲＴＬの格納場所情報に基づき前記格納手段から修正ＲＴＬを読み出すと共に、当該修正ＲＴＬ並びに前記抽出されたＲＴＬ識別情報及び／又はＲＴＬ版数情報を含む前記ラッパーＲＴＬから前記コンフィグレーションデータを生成するコンフィグレーションデータ生成手段と、を備えているものである。
【００２７】
このように、論理検証支援装置は、前記ＲＴＬが修正された修正ＲＴＬを格納する格納手段と、前記格納手段における修正ＲＴＬの格納場所の情報並びに当該修正ＲＴＬに一意に対応する前記ＲＴＬ識別情報及び／又はＲＴＬ版数情報を含むメールによる、前記論理検証装置のプログラマブル・ロジック・デバイスに対する論理合成の依頼メールを受信する受信手段と、前記修正ＲＴＬの格納場所情報並びにＲＴＬ識別情報及び／又はＲＴＬ版数情報を前記依頼メールから抽出する抽出手段と、前記抽出された修正ＲＴＬの格納場所情報に基づき前記格納手段から修正ＲＴＬを読み出すと共に、当該修正ＲＴＬ並びに前記抽出されたＲＴＬ識別情報及び／又はＲＴＬ版数情報を含む前記ラッパーＲＴＬから前記コンフィグレーションデータを生成するコンフィグレーションデータ生成手段と、を備えていることにより、ユーザからの依頼メールからＲＴＬ識別情報及び／又はＲＴＬ版数情報を自動的に抽出することができ、依頼されたＲＴＬ識別情報及び／又はＲＴＬ版数情報の誤認識による誤ったコンフィグレーションデータを生成するという人的操作ミスを抑制することができるという効果を奏する。
【００２８】
また、この論理検証支援装置は、前記コンフィグレーションデータは、前記修正ＲＴＬ及びラッパーＲＴＬが、論理合成され、前記プログラマブル・ロジック・デバイスの配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報である。
【００２９】
このように、論理検証支援装置は、前記コンフィグレーションデータは、前記修正ＲＴＬ及びラッパーＲＴＬが、論理合成され、前記プログラマブル・ロジック・デバイスの配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報であることにより、コンフィグレーションデータが正しい位置のコンフィグレーションメモリに正しい版数で書き込まれた場合に、論理検証装置により論理検証を行なう回路がプログラマブル・ロジック・デバイスに設定することができるという効果を奏する。
【００３０】
論理検証方法は、動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスの内部回路を動的に再構成するデータとなるＲＴＬ及びラッパーＲＴＬからなるコンフィグレーションデータが格納されるコンフィグレーションメモリと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、当該プログラマブル・ロジック・デバイスに対応して当該ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、が基板上に実装された論理検証装置を用いた、当該コンフィグレーションメモリに書き込まれるコンフィグレーションデータの誤書き込みを検証する論理検証方法であって、前記論理検証装置の電源投入により、前記プログラマブル・ロジック・デバイスに対して、前記ＲＴＬにおける所望の論理回路、並びに前記ラッパーＲＴＬにおける当該ＲＴＬに一意に対応するＲＴＬ識別情報が組み込まれたＲＴＬ識別情報保持部並びに当該ＲＴＬ識別情報及び前記ＰＬＤ識別情報を比較する識別情報比較部がそれぞれ設定されるステップと、前記識別情報比較部に対して前記ＰＬＤ識別情報が出力されるステップと、前記識別情報比較部に対して前記ＲＴＬ識別情報が出力されるステップと、前記ＰＬＤ識別情報及びＲＴＬ識別情報が比較され、当該ＰＬＤ識別情報及びＲＴＬ識別情報の相違の有無が判定されるステップと、前記識別情報比較部による判定結果が出力されるステップと、を含む方法である。
【００３１】
このように、論理検証方法は、動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスの内部回路を動的に再構成するデータとなるＲＴＬ及びラッパーＲＴＬからなるコンフィグレーションデータが格納されるコンフィグレーションメモリと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、当該プログラマブル・ロジック・デバイスに対応して当該ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、が基板上に実装された論理検証装置を用いた、当該コンフィグレーションメモリに書き込まれるコンフィグレーションデータの誤書き込みを検証する論理検証方法であって、前記論理検証装置の電源投入により、前記プログラマブル・ロジック・デバイスに対して、前記ＲＴＬにおける所望の論理回路、並びに前記ラッパーＲＴＬにおける当該ＲＴＬに一意に対応するＲＴＬ識別情報が組み込まれたＲＴＬ識別情報保持部並びに当該ＲＴＬ識別情報及び前記ＰＬＤ識別情報を比較する識別情報比較部がそれぞれ設定されるステップと、前記識別情報比較部に対して前記ＰＬＤ識別情報が出力されるステップと、前記識別情報比較部に対して前記ＲＴＬ識別情報が出力されるステップと、前記ＰＬＤ識別情報及びＲＴＬ識別情報が比較され、当該ＰＬＤ識別情報及びＲＴＬ識別情報の相違の有無が判定されるステップと、前記識別情報比較部による判定結果が出力されるステップと、を含むことにより、コンフィグレーションデータが正しい位置のコンフィグレーションメモリに書き込まれているかの妥当性を容易且つ短時間に確認することができるというという効果を奏する。
【発明を実施するための最良の形態】
【００３２】
（本発明の第１の実施形態）
図１は本実施形態に係る論理検証装置の主要な構成を示す概略図、図２（ａ）は図１に示すＦＰＧＡ内部におけるＲＴＬの構成を示す概念図、図２（ｂ）は図２（ａ）に示すラッパーＲＴＬの構成を示す概念図、図３はＰＬＤ識別情報及びＲＴＬ識別情報を説明するための説明図、図４は本実施形態に係る論理検証装置の動作を示すフローチャートである。なお、この第１の実施形態では、プログラマブル・ロジック・デバイスの１種であるＦＰＧＡを用いる場合について説明する。
【００３３】
論理検証装置１０は、従来のＦＰＧＡ評価ボードの構成要素である、基板１と、基板１上に実装され動的に再構成可能なＦＰＧＡ２と、基板１上にＦＰＧＡ２に対応して実装されＦＰＧＡ２に設定されるコンフィグレーションデータ３００が格納されるコンフィグレーションメモリ３（例えば、ＲＯＭ）とを少なくとも備えている。
【００３４】
また、論理検証装置１０は、従来のＦＰＧＡ評価ボードの構成要素に加えて、基板１上にＦＰＧＡ２に対応して実装されＦＰＧＡ２に一意に対応するＦＰＧＡを識別するＩＤ（以下、ＰＬＤ識別情報と称す）をＦＰＧＡ２に対して出力するＰＬＤ識別情報保持部４と、基板１上にＦＰＧＡ２に対応して実装されＦＰＧＡ２に設定されるコンフィグレーションデータのバージョンを示す版数情報（以下、ＰＬＤ版数情報と称す）をＦＰＧＡ２に対して出力するＰＬＤ版数情報保持部５と、基板１上にＦＰＧＡ２に対応して実装されＰＬＤ識別情報に基づくＦＰＧＡ２による判定結果を出力する第１の出力部６と、基板１上にＦＰＧＡ２に対応して実装されＰＬＤ版数情報に基づくＦＰＧＡ２による判定結果を出力する第２の出力部７と、を備えている。
【００３５】
ＦＰＧＡ２は、１つの基板１に対して１又は複数配設されており、本実施形態においては、図１に示すように、例えば、１６個のＦＰＧＡ２をマトリクス状に配列させている。なお、図１においては、各ＦＰＧＡ２に対して、第１のＦＰＧＡ（ＦＰＧＡ−１）２ａ、第２のＦＰＧＡ（ＦＰＧＡ−２）２ｂ、・・・、第４のＦＰＧＡ（ＦＰＧＡ−４）２ｄ、・・・、第８のＦＰＧＡ（ＦＰＧＡ−８）２ｈ、・・・、第１６のＦＰＧＡ（ＦＰＧＡ−１６）２ｐとして符号を付している。
【００３６】
また、コンフィグレーションメモリ３、ＰＬＤ識別情報保持部４、ＰＬＤ版数情報保持部５、第１の出力部６及び第２の出力部７は、各ＦＰＧＡ２に対応してそれぞれ配設されるものであり、図１においては、各ＦＰＧＡ２に対応付けて符号（ａ〜ｐ）を付している。
【００３７】
コンフィグレーションデータ３００は、ＦＰＧＡ２で論理動作を検証する集積回路の機能仕様をハードウェア記述言語で表現した論理合成可能な記述レベルの設計データであり、ユーザが意図した回路図のＲＴＬ（ターゲットデザインＲＴＬ３１０）、並びにＦＰＧＡ２の機能を実現するためのデバイス依存部分及びターゲットデザインＲＴＬ３１０をコンカレントにするラッパーＲＴＬ３２０が論理合成され、ＦＰＧＡ２の配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報である。
【００３８】
なお、本実施形態に係るラッパーＲＴＬ３２０は、ターゲットデザインＲＴＬ３１０に一意に対応するターゲットデザインＲＴＬ３１０を識別するＩＤ（以下、ＲＴＬ識別情報と称す）を有すると共に、ＲＴＬ識別情報とＰＬＤ識別情報とを比較して相違の有無を判定する判定機能を有する。すなわち、論理検証装置１０の電源投入によって、コンフィグレーションメモリ３からＦＰＧＡ２に対して自動的にコンフィグレーションが行なわれることで、ＦＰＧＡ２内にＲＴＬ識別情報保持部３２１がマッピングされ、ＲＴＬ識別情報保持部３２１にＲＴＬ識別情報が組み込まれることになる。同様に、論理検証装置１０の電源投入によって、ＦＰＧＡ２内に識別情報比較部３２２がマッピングされ、ＰＬＤ識別情報保持部４からのアクセスに対して、動作できるような回路が組み込まれることになる。
【００３９】
また、本実施形態に係るラッパーＲＴＬ３２０は、ターゲットデザインＲＴＬ３１０に一意に対応するターゲットデザインＲＴＬ３１０のバージョンを示す版数情報（以下、ＲＴＬ版数情報と称す）を有すると共に、ＲＴＬ版数情報とＰＬＤ版数情報とを比較して相違の有無を判定する判定機能を有する。すなわち、論理検証装置１０の電源投入によって、コンフィグレーションメモリ３からＦＰＧＡ２に対して自動的にコンフィグレーションが行なわれることで、ＦＰＧＡ２内にＲＴＬ版数情報保持部３２３がマッピングされ、ＲＴＬ版数情報保持部３２３にＲＴＬ版数情報が組み込まれることになる。同様に、論理検証装置１０の電源投入によって、ＦＰＧＡ２内に版数情報比較部３２４がマッピングされ、ＰＬＤ版数情報保持部５からのアクセスに対して、動作できるような回路が組み込まれることになる。
【００４０】
ここで、ＰＬＤ識別情報は、各ＦＰＧＡ２に対してそれぞれ付与される固定されたＩＤであり、例えば、図３に示すように、５桁の二進数のコードで表わされる。
ＰＬＤ識別情報保持部４は、ＰＬＤ識別情報であるコードのうち、「１」を電源Ｖｃｃ、「０」をグランドＧＮＤにより表現した信号を、Ｉ／Ｏ（Input/Output）ピンを介してＦＰＧＡ２内の識別情報比較部３２２に対して出力する。
【００４１】
また、ＰＬＤ版数情報は、各ＦＰＧＡ２に対して、例えば、ロータリースイッチ、スライドスイッチ又はプッシュロックスイッチで構成されるディップスイッチ（Dual In-line Package switch）などによって、論理検証装置１０のユーザが選択する任意の版数情報である。
【００４２】
ＰＬＤ版数情報保持部５は、例えば、ロータリースイッチであれば、ユーザが選択した版数に対応する二進数又は二進化十進数（ＢＣＤ：Binary-Coded Decimal）のコードを、ＦＰＧＡ２内の版数情報比較部３２４に対して出力する。
【００４３】
第１の出力部６は、ＦＰＧＡ２内の識別情報比較部３２２によるＰＬＤ識別情報とＲＴＬ識別情報との比較結果を、論理検証装置１０のユーザに報知するための手段である。例えば、第１の出力部６を発光ダイオード（ＬＥＤ：Light-Emitting Diode）とし、識別情報比較部３２２によりＰＬＤ識別情報とＲＴＬ識別情報とが異なっていると判断された場合には、識別情報比較部３２２からの信号に基づき、第１の出力部６である発光ダイオードを点灯させ、論理検証装置１０の外部から視認できる構成としてもよい。また、第１の出力部６を外部接続コネクタとして、図示しない表示装置に接続することで、ＦＰＧＡ２内の識別情報比較部３２２によるＰＬＤ識別情報とＲＴＬ識別情報との比較結果を、表示装置の表示画面に表示させてもよい。
【００４４】
第２の出力部７は、ＦＰＧＡ２内の版数情報比較部３２４によるＰＬＤ版数情報とＲＴＬ版数情報との比較結果を、論理検証装置１０のユーザに報知するための手段である。例えば、第２の出力部７を発光ダイオードとし、版数情報比較部３２４によりＰＬＤ版数情報とＲＴＬ版数情報とが異なっていると判断された場合には、版数情報比較部３２４からの信号に基づき、第２の出力部７である発光ダイオードを点灯させ、論理検証装置１０の外部から視認できる構成としてもよい。また、第２の出力部７を外部接続コネクタとして、図示しない表示装置に接続することで、ＦＰＧＡ２内の版数情報比較部３２４によるＰＬＤ版数情報とＲＴＬ版数情報との比較結果を、表示装置の表示画面に表示させてもよい。
【００４５】
次に、本実施形態に係る論理検証装置１０の動作について図４を用いて説明する。
まず、論理検証装置１０の電源を投入すると（ステップＳ１）、論理検証装置１０は、各ＦＰＧＡ２に対して、対応するコンフィグレーションメモリ３からコンフィグレーションデータ３００が読み出されてコンフィグレーションを開始する（ステップＳ２）。
【００４６】
そして、論理検証装置１０は、各ＦＰＧＡ２に対して、所望の論理回路、ＲＴＬ識別情報保持部３２１及び識別情報比較部３２２並びにＲＴＬ版数情報保持部３２３及び版数情報比較部３２４がそれぞれ設定されてコンフィグレーションを終了する（ステップＳ３）。
【００４７】
各ＰＬＤ識別情報保持部４は、対応するＦＰＧＡ２内の識別情報比較部３２２にＰＬＤ識別情報を出力し（ステップＳ４ａ）、各ＰＬＤ版数情報保持部５は、対応するＦＰＧＡ２内の版数情報比較部３２４にＰＬＤ版数情報を出力する（ステップＳ４ｂ）。
【００４８】
また、各ＲＴＬ識別情報保持部３２１は、対応するＦＰＧＡ２内の識別情報比較部３２２にＲＴＬ識別情報を出力し（ステップＳ５ａ）、各ＲＴＬ版数情報保持部３２３は、対応するＦＰＧＡ２内の版数情報比較部３２４にＲＴＬ版数情報を出力する（ステップＳ５ｂ）。
【００４９】
そして、各識別情報比較部３２２は、入力されたＰＬＤ識別情報とＲＴＬ識別情報とを比較してＰＬＤ識別情報とＲＴＬ識別情報とが相違するか否かを判断する（ステップＳ６ａ）。また、各版数情報比較部３２４は、入力されたＰＬＤ版数情報とＲＴＬ版数情報とを比較してＰＬＤ版数情報とＲＴＬ版数情報とが相違するか否かを判断する（ステップＳ６ｂ）。
【００５０】
ステップＳ６ａにおいて、ＰＬＤ識別情報とＲＴＬ識別情報とが相違すると判断した場合には、該当する識別情報比較部３２２は対応する第１の出力部６に判断結果を出力する（ステップＳ７ａ）。なお、本実施形態においては、第１の出力部６として発光ダイオードを使用し、この発光ダイオードを点灯させることにより、ＰＬＤ識別情報とＲＴＬ識別情報とが相違することをユーザに報知している。逆に、この発光ダイオードを点灯させないことにより、ＰＬＤ識別情報とＲＴＬ識別情報とが相違することをユーザに報知してもよい。
【００５１】
また、ステップＳ６ａにおいて、ＰＬＤ識別情報とＲＴＬ識別情報とが相違しないと判断した場合には、該当する識別情報比較部３２２は対応する第１の出力部６に判断結果を出力する（ステップＳ８ａ）。なお、本実施形態においては、第１の出力部６として発光ダイオードを使用し、この発光ダイオードを点灯させないことにより、ＰＬＤ識別情報とＲＴＬ識別情報とが相違しないことをユーザに報知している。逆に、この発光ダイオードを点灯させることにより、ＰＬＤ識別情報とＲＴＬ識別情報とが相違しないことをユーザに報知してもよい。
【００５２】
ステップＳ６ｂにおいて、ＰＬＤ版数情報とＲＴＬ版数情報とが相違すると判断した場合には、該当する版数情報比較部３２４は対応する第２の出力部７に判断結果を出力する（ステップＳ７ｂ）。なお、本実施形態においては、第２の出力部７として発光ダイオードを使用し、この発光ダイオードを点灯させることにより、ＰＬＤ版数情報とＲＴＬ版数情報とが相違することをユーザに報知している。逆に、この発光ダイオードを点灯させないことにより、ＰＬＤ版数情報とＲＴＬ版数情報とが相違することをユーザに報知してもよい。
【００５３】
また、ステップＳ６ｂにおいて、ＰＬＤ版数情報とＲＴＬ版数情報とが相違しないと判断した場合には、該当する版数情報比較部３２４は対応する第２の出力部７に判断結果を出力する（ステップＳ８ｂ）。なお、本実施形態においては、第２の出力部７として発光ダイオードを使用し、この発光ダイオードを点灯させないことにより、ＰＬＤ版数情報とＲＴＬ版数情報とが相違しないことをユーザに報知している。逆に、この発光ダイオードを点灯させることにより、ＰＬＤ版数情報とＲＴＬ版数情報とが相違しないことをユーザに報知してもよい。
【００５４】
なお、論理検証装置１０上の第１の出力部６及び第２の出力部７である発光ダイオードが全て点灯していないのであれば、コンフィグレーションデータ３００が、正しい版数であり、正しい位置のコンフィグレーションメモリ３に書き込まれていると判断でき、論理検証装置１０に対して、ＦＰＧＡ評価ボードとしての本来の動作を行なわせることになる。
【００５５】
また、論理検証装置１０上の第１の出力部６及び第２の出力部７である発光ダイオードが１個でも点灯しているのであれば、当該点灯した発光ダイオードに対応するＦＰＧＡ２のコンフィグレーションメモリ３には、本来書き込まれるべきコンフィグレーションデータ３００が書き込まれていないと判断できる。したがって、点灯した発光ダイオードに対応するＦＰＧＡ２のコンフィグレーションメモリ３に対して、正しいコンフィグレーションデータ３００を新たに書き込むことになる。
【００５６】
以上のように、本実施形態に係る論理検証装置１０においては、第１の出力部６及び第２の出力部７から出力される情報（例えば、第１の出力部６及び第２の出力部７が発光ダイオードであれば、発光ダイオードの点灯の有無）を確認することにより、コンフィグレーションデータ３００が、正しい位置のコンフィグレーションメモリ３に書き込まれているかの妥当性及び正しい版数のコンフィグレーションデータ３００がコンフィグレーションメモリ３に書き込まれているかの妥当性を容易且つ短時間に確認することができるという作用効果を奏する。
【００５７】
また、市販のＦＰＧＡツールを用いることなく、コンフィグレーションデータ３００が正しい位置のコンフィグレーションメモリ３に書き込まれているかの妥当性及び正しい版数のコンフィグレーションデータ３００がコンフィグレーションメモリ３に書き込まれているかの妥当性を確認することができるという作用効果を奏する。
【００５８】
（本発明の第２の実施形態）
図５は第２の実施形態に係るＦＰＧＡ及びＡＳＩＣのコンカレント開発の概要を示す説明図、図６は図５に示す論理検証支援装置の概略構成を示すブロック図、図７は本実施形態に係る論理検証支援装置におけるデザインサービスを利用した処理手順を示すフローチャート、図８は図７に示すフローチャートの続きを示すフローチャート、図９は再合成依頼メールの内容の一例を示す説明図、図１０は本実施形態に係る論理検証支援装置におけるデザインサービスの付加機能を説明するための説明図である。図５〜図１０において、図１〜図４と同じ符号は、同一又は相当部分を示し、その説明を省略する。
【００５９】
論理検証支援装置１００は、受信手段であるメールサーバ１１０、メール管理サーバ１２０、格納手段であるＦＴＰサーバ１３０、ＲＴＬ版数監視サーバ１４０、抽出手段である合成管理サーバ１５０、並びにコンフィグレーションデータ生成手段である合成端末装置１６０及びＰ＆Ｒ端末装置１７０から構成される。
【００６０】
メールサーバ１１０は、メール送受信ソフトウェアを有するコンピュータであり、メールのフィルタリングを行ない、後述するユーザ端末装置２００からの情報を後述するメール管理サーバ１２０に出力する。
【００６１】
メール管理サーバ１２０は、依頼メールのスケジューリングを行なうコンピュータであり、依頼メールの情報を格納し、後述する合成端末装置１６０及びＰ＆Ｒ端末装置１７０との間でデータをやりとりする。
【００６２】
ＦＴＰサーバ１３０は、ファイル転送プロトコル（ＦＴＰ：File Transfer Protocol）を利用してファイルの送受信を行なうサーバソフトウェアを動作させるコンピュータであり、ユーザ端末装置２００からのＲＴＬソースファイル（ターゲットデザインＲＴＬ３１０）を格納する。
ＲＴＬ版数監視サーバ１４０は、ＦＴＰサーバ１３０及び後述する合成管理サーバ１５０からのＲＴＬ版数情報を格納するコンピュータである。
【００６３】
なお、ＲＴＬの版数を管理する必要性としては、ユーザが所有する論理検証装置１０を再利用して、例えば、ターゲットとするＳｏＣ（System-on-Chip）の機能を高めるべく、特定のＦＰＧＡ２内におけるターゲットデザインＲＴＬ３１０の一部分を修正したＲＴＬに対して版数を増やして管理する場合が挙げられる。すなわち、ターゲットＳｏＣに対して過去の版数のＲＴＬを流用して設計する場合が想定できる。
【００６４】
また、ユーザによっては、ターゲットＳｏＣのフル機能版や廉価版（機能削減版）を同時に開発する場合があり、特定のＦＰＧＡ２内のターゲットデザインＲＴＬ３１０を二重管理（フル機能版、廉価版）する場合が想定できる。ただし、ＲＴＬの版数の変更にあたり、論理検証装置１０の結線情報に変更がないことを前提条件としている。
【００６５】
合成管理サーバ１５０は、メール管理サーバ１２０に格納された依頼メールの情報を参照し、依頼メールの情報からＲＴＬ識別情報及びＲＴＬ版数情報を抽出する。また、合成管理サーバ１５０は、抽出したＲＴＬ版数情報をＲＴＬ版数監視サーバ１４０に出力すると共に、抽出したＲＴＬ識別情報及びＲＴＬ版数情報を後述する合成端末装置１６０に出力して論理合成ツールを起動させる。
【００６６】
合成端末装置１６０は、合成管理サーバ１５０からのＲＴＬ識別情報及びＲＴＬ版数情報に基づき、メール管理サーバ１２０に格納された依頼メールの情報から、論理合成の対象である論理検証装置１０、及び当該論理検証装置１０内の対応するＦＰＧＡ２を特定すると共に、当該ＦＰＧＡ２に対応するターゲットデザインＲＴＬ３１０のＦＴＰサーバ１３０内の格納場所を特定する。また、合成端末装置１６０は、特定されたターゲットデザインＲＴＬ３１０をＦＴＰサーバ１３０から読み出して、論理合成の対象である論理検証装置１０のＦＰＧＡ２に対して論理合成を行なう。
【００６７】
Ｐ＆Ｒ端末装置１７０は、合成端末装置１６０からの論理合成結果に基づき、ライブラリ（図１２に示すＦＰＧＡ合成結果ライブラリに相当）に登録された各ゲートを隙間なく並べ（Place）、ゲートの端子と端子を接続する（Route）、レイアウトを作成するための端末装置である。
【００６８】
ボード設計者端末装置１８０は、合成端末装置１６０及びＰ＆Ｒ端末装置１７０によって設計された回路図に基づき、論理検証装置１０を製造する設計者（以下、ボード設計者と称す）が使用する端末装置である。
【００６９】
ユーザ端末装置２００は、論理検証支援装置１００を用いたデザインサービスが提供されるユーザが使用する端末装置である。ここで、デザインサービスとは、ユーザが、ＲＴＬソースファイル（ターゲットデザインＲＴＬ３１０）を、論理検証支援装置１００のメールサーバ１１０に電子メールに添付して送信又はＦＴＰサーバ１３０に送付することにより、ネットリストへの論理合成を行なえる自動メール応答型論理合成（ＭＤＬＳ：Mail Drop Logic Synthesis）サービスのことである。
【００７０】
次に、第２の実施形態に係る論理検証支援装置１００の処理手順について、図７及び図８を用いて説明する。
なお、ユーザ端末装置２００から入力されるブロック間の接続情報及びブロックのゲート規模をインプット情報（以下、顧客インプット情報と称す）として、合成端末装置１６０にて、コア（論理コア）を生成し、論理検証装置１０に搭載するべきＦＰＧＡ２の個数の決定を行なうまでの処理（図１２におけるＳ１０２までの処理）については、前述した従来のＦＰＧＡ及びＡＳＩＣのネットリストを作成する方法と同様の処理を行なうために、説明を省略する。
【００７１】
合成管理サーバ１５０は、図１２に示すＳ１０２及びＳ１０３間の処理である、ＡＳＩＣ化を行なうデザイン（ターゲットデザイン）を複数のＦＰＧＡ２に整合するようにコア（論理コア）を分割する処理において、各ＦＰＧＡ２に対してＰＬＤ識別情報を割り当て管理する（ステップＳ２０１）。なお、合成管理サーバ１５０は、例えば、図３に示すように、ＦＰＧＡのチップ名とＰＬＤ識別情報とを一意に対応付けた対応表を保持することになる。
【００７２】
そして、合成管理サーバ１５０は、メール管理サーバ１２０、メールサーバ１１０及び通信網を介して、ボード設計者端末装置１８０及び該当する論理合成の依頼を行なったユーザ端末装置２００に対して、割り当てたＰＬＤ識別情報を通知する（ステップＳ２０２）。
【００７３】
ボード設計者は、論理検証支援装置１００から提供される、顧客インプット情報及び論理検証装置１０の基本アーキテクチャ（電源系統、クロック系統、リセット系統、評価系統）を検討して反映した論理検証装置１０の回路図に対して、論理検証支援装置１００から通知されたＰＬＤ識別情報を該当するＰＬＤ識別情報保持部４に反映して設計する（ステップＳ２０３）。また、ボード設計者は、論理検証装置１０の回路図に対して、ＰＬＤ版数情報保持部５、第１の出力部６及び第２の出力部７を反映して設計する。
【００７４】
そして、ボード設計者は、ＰＬＤ識別情報保持部４、ＰＬＤ版数情報保持部５、第１の出力部６及び第２の出力部７を反映した論理検証装置１０の回路図に基づき、図１に示すような論理検証装置１０を製造する（ステップＳ２０４）。
【００７５】
そして、ボード設計者は、製造した論理検証装置１０の製造性試験を実施する（ステップＳ２０５）。
ステップＳ２０５において、製造性試験に合格した場合には、試験に合格した論理検証装置１０をユーザに提供する（ステップＳ２０６）。
【００７６】
また、ステップＳ２０５において、製造性試験に不合格であった場合には、ステップＳ２０４に戻る。
ユーザは、提供された論理検証装置１０を用いて、ターゲットデザインのハードデバッグを実施する（ステップＳ２０７）。
ステップＳ２０７において、提供された論理検証装置１０に論理ミスを発見しない場合には、論理検証支援装置１００の処理を終了する。
【００７７】
また、ステップＳ２０７において、提供された論理検証装置１０に論理ミスを発見した場合には、ユーザは論理ミスを引き起こしたＦＰＧＡ２内のブロックを特定し、論理ミスに起因するブロック内のＲＴＬを修正する（ステップＳ２０８）。
【００７８】
そして、ユーザは、特定したブロックが実装されているＦＰＧＡ２に対する再度の論理合成（以下、再合成と称す）を、デザインサービス側に依頼する（ステップＳ２０９）。この場合に、ユーザは、ユーザ端末装置２００を用いて、図９に示すような再合成に必要な情報を記載した再合成依頼メールを、論理検証支援装置１００に送信することになる。また、ユーザは、ユーザ端末装置２００を用いて、論理ミスに起因するブロック内のＲＴＬを修正したターゲットデザインＲＴＬ３１０（以下、修正ターゲットデザインＲＴＬ３１０と称す）を、論理検証支援装置１００内のターゲットデザイン用データベースであるＦＴＰサーバ１３０に転送する。
【００７９】
ここで、再合成依頼メールの内容として、再合成の対象となる論理検証装置１０の識別情報であるＬＳＩのニックネーム（例えば、LsiName=abcd）及び／又はＦＰＧＡのニックネーム（例えば、FPGA=abcd）、当該論理検証装置１０内の対象となるＦＰＧＡ２の識別情報であるＦＰＧＡのチップ名（例えば、ChipName=FPGA1）、当該ＦＰＧＡ２の版数情報であるＦＰＧＡのチップ版数（例えば、Chipver=XXX）、修正ターゲットデザインＲＴＬ３１０を格納したディレクトリを指定するＲＴＬ格納ディレクトリ指定（例えば、ＲＴＬ／（日付）であり、GetDir=RTL/070611）、並びに修正ターゲットデザインＲＴＬ３１０の圧縮ファイルを指定するＲＴＬ圧縮ファイル指定（例えば、[任意ディレクトリ名].ascであり、GetFile=rtl20070611.asc）が挙げられる。
【００８０】
そして、論理検証支援装置１００のメールサーバ１１０は、再合成依頼メールを受信して、メール管理サーバ１２０にデータを出力し（ステップＳ２１０）、メール管理サーバ１２０は、再合成依頼メールの情報を格納する（ステップＳ２１１）。
【００８１】
そして、合成管理サーバ１５０は、メール管理サーバ１２０に格納された再合成依頼メールの情報を参照し、再合成依頼メールの情報からＦＰＧＡのチップ名（ＲＴＬ識別情報に相当）及びＦＰＧＡのチップ版数（ＲＴＬ版数情報に相当）をスクリプトにより自動的に抽出する（ステップＳ２１２）。
【００８２】
また、合成管理サーバ１５０は、ＦＰＧＡのチップ名（ＲＴＬ識別情報に相当）及びＦＰＧＡのチップ版数（ＲＴＬ版数情報に相当）を、ラッパーＲＴＬ３２０の識別情報比較部３２２及び版数情報比較部３２４において判定できるデータ構造とするために、パラメータ化を行なう（ステップＳ２１３）。この場合に、ＲＴＬ識別情報は、合成管理サーバ１５０に保持されている対応表（図３参照）を参照し、ＦＰＧＡのチップ名に基づき、対応する５桁の二進数のコードに変換する。
【００８３】
合成管理サーバ１５０は、抽出したＦＰＧＡのチップ版数（ＲＴＬ版数情報に相当）をＲＴＬ版数監視サーバ１４０に出力し、ＲＴＬ版数監視サーバ１４０はＲＴＬ版数情報を格納する（ステップＳ２１４）。
【００８４】
また、合成管理サーバ１５０は、抽出したＦＰＧＡのチップ名及びＦＰＧＡのチップ版数並びにパラメータ化したＲＴＬ識別情報及びＲＴＬ版数情報を合成端末装置１６０に出力して論理合成ツールを起動させる（ステップＳ２１５）。
【００８５】
合成端末装置１６０は、合成管理サーバ１５０からのＦＰＧＡのチップ名及びＦＰＧＡのチップ版数に基づき、メール管理サーバ１２０に格納された再合成依頼メールの情報から、再合成の対象である論理検証装置１０（ＬＳＩのニックネーム及び／又はＦＰＧＡのニックネーム）、及び当該論理検証装置１０内の対応するＦＰＧＡ２（ＦＰＧＡのチップ名）を特定すると共に、当該ＦＰＧＡ２に対応する修正ターゲットデザインＲＴＬ３１０のＦＴＰサーバ１３０内の格納場所（ＲＴＬ格納ディレクトリ指定、ＲＴＬ圧縮ファイル指定）を特定する（ステップＳ２１６）。
【００８６】
また、合成端末装置１６０は、特定された修正ターゲットデザインＲＴＬ３１０をＦＴＰサーバ１３０から読み出す（ステップＳ２１７）。
そして、合成端末装置１６０は、再合成の対象である論理検証装置１０のＦＰＧＡ２に対して、修正ターゲットデザインＲＴＬ３１０並びにパラメータ化したＲＴＬ識別情報及びＲＴＬ版数情報に基づき、再合成を行なう（ステップＳ２１８）。この場合には、図２に示すように、修正ターゲットデザインＲＴＬ３１０及び当該修正ターゲットデザインＲＴＬ３１０の上位階層にあたるラッパーＲＴＬ３２０を含むＲＴＬを生成することになる。
【００８７】
これにより、再合成の依頼があったＦＰＧＡ２に対応するコンフィグレーションデータ３００として、修正ターゲットデザインＲＴＬ３１０の他に、当該修正ターゲットデザインＲＴＬ３１０に対応するＲＴＬ識別情報及びＲＴＬ版数情報が自動的に実装されることになる。
【００８８】
合成端末装置１６０は、Ｐ＆Ｒ端末装置１７０に再合成結果を出力する（ステップＳ２１９）。
Ｐ＆Ｒ端末装置１７０は、合成端末装置１６０からの再合成結果に基づき、ライブラリ（図１２に示すＦＰＧＡ合成結果ライブラリに相当）に登録された各ゲートを隙間なく並べ（Place）、ゲートの端子と端子を接続する（Route）、レイアウトを実施して、ＦＰＧＡの配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報であるコンフィグレーションデータ３００を生成する（ステップＳ２２０）。
【００８９】
また、Ｐ＆Ｒ端末装置１７０は、コンフィグレーションデータ３００をメール管理サーバ１２０に出力し、メール管理サーバ１２０、メールサーバ１１０及び通信網を介して、再合成の依頼元であるユーザ端末装置２００に対して結果レポートを返信する（ステップＳ２２１）。
【００９０】
結果レポートを受け取ったユーザは、リリースされたコンフィグレーションデータ３００を、該当するコンフィグレーションメモリ３に書き込む（ステップＳ２２２）。
そして、ユーザは、図４に示すフローチャートによる処理を行なう（ステップＳ２２３）。
そして、ユーザは、各ＦＰＧＡ２に対応する第１の出力部６及び第２の出力部７の出力状態（ここでは、発光ダイオードの点灯状態）をそれぞれ確認する。なお、発光ダイオードが点灯しているのであれば、点灯した発光ダイオードに対応するＦＰＧＡ２のコンフィグレーションメモリ３に、再合成を依頼した修正ターゲットデザインＲＴＬ３１０が書き込まれていないことを意味する。
【００９１】
すなわち、ユーザが、コンフィグレーションメモリ３にコンフィグレーションデータ３００を書き込む際に、誤った位置のコンフィグレーションメモリ３に書き込むという操作ミスが発生したことを、簡易且つ短時間に発見することが可能となる。
【００９２】
特に、本実施形態に係る論理検証装置１０においては、過去のＲＴＬの版数に戻すユーザからの再合成依頼に対するコンフィグレーションデータ３００のリリースについても対応することができる。
【００９３】
すなわち、ユーザは、論理検証装置１０のＲＴＬの版数変更を依頼したＦＰＧＡ２に対応するＰＬＤ版数情報保持部５であるロータリースイッチを該当する版数に合わせ、対応する第２の出力部７である発光ダイオードの点灯状態を確認する。これにより、デザインサービス側からリリースされたコンフィグレーションデータ３００が正しい版数のＲＴＬを含むコンフィグレーションデータ３００であるかを確認することができ、簡易且つ短時間にデザインサービス側の操作ミスを発見することができる。
【００９４】
なお、本実施形態に係る論理検証装置１０においては、ユーザが意図したコンフィグレーションデータが正しい位置のコンフィグレーションメモリ３に書き込まれているかの妥当性を判断する場合について説明したが、デザインサービス側がユーザに論理検証装置１０を提供する前における論理検証装置１０の製造性試験においても同様に、各ＦＰＧＡ２に対応する第１の出力部６及び第２の出力部７の出力状態（ここでは、発光ダイオードの点灯状態）をそれぞれ確認することで、製造時における人的操作ミスを簡易且つ短時間に発見することが可能となる。これにより、製造性試験の短縮につながり、ユーザに対して迅速に論理検証装置１０を出荷することが可能となる。
【００９５】
［付記］  以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  基板上に実装され、動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、前記基板上に実装され、前記プログラマブル・ロジック・デバイスに対応して前記プログラマブル・ロジック・デバイスの内部回路を動的に再構成するコンフィグレーションデータをＲＴＬ及びラッパーＲＴＬとして格納されるコンフィグレーションメモリと、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、を備え、前記コンフィグレーションデータのラッパーＲＴＬが、当該コンフィグレーションデータのＲＴＬに一意に対応するＲＴＬ識別情報を有すると共に、当該ＲＴＬ識別情報と前記ＰＬＤ識別情報とを比較して相違の有無を判定する判定機能を有することを特徴とする論理検証装置。
【００９６】
（付記２）  前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、当該プログラマブル・ロジック・デバイスに設定されるコンフィグレーションデータのバージョンを示すＰＬＤ版数情報を、前記プログラマブル・ロジック・デバイスに対して出力するＰＬＤ版数情報保持部と、前記基板上に前記プログラマブル・ロジック・デバイスに対応して実装され、前記ＰＬＤ版数情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第２の出力部と、を備え、前記ラッパーＲＴＬが、前記ＲＴＬに一意に対応し且つＲＴＬのバージョンを示すＲＴＬ版数情報を有すると共に、当該ＲＴＬ版数情報と前記ＰＬＤ版数情報とを比較して相違の有無を判定する判定機能を有することを特徴とする論理検証装置。
【００９７】
（付記３）  前記論理検証装置を接続するユーザ側の端末装置とデザインサービス側の端末装置とが通信網を介して接続可能とし、前記論理検証装置の論理検証を支援する論理検証支援装置であって、前記ＲＴＬが修正された修正ＲＴＬを格納する格納手段と、前記格納手段における修正ＲＴＬの格納場所の情報並びに当該修正ＲＴＬに一意に対応する前記ＲＴＬ識別情報及び／又はＲＴＬ版数情報を含むメールによる、前記論理検証装置のプログラマブル・ロジック・デバイスに対する論理合成の依頼メールを受信する受信手段と、前記修正ＲＴＬの格納場所情報並びにＲＴＬ識別情報及び／又はＲＴＬ版数情報を前記依頼メールから抽出する抽出手段と、前記抽出された修正ＲＴＬの格納場所情報に基づき前記格納手段から修正ＲＴＬを読み出すと共に、当該修正ＲＴＬ並びに前記抽出されたＲＴＬ識別情報及び／又はＲＴＬ版数情報を含む前記ラッパーＲＴＬから前記コンフィグレーションデータを生成するコンフィグレーションデータ生成手段と、を備えていることを特徴とする論理検証支援装置。
【００９８】
（付記４）  前記コンフィグレーションデータは、前記修正ＲＴＬ及びラッパーＲＴＬが、論理合成され、前記プログラマブル・ロジック・デバイスの配置配線情報を作成するフィッティング及び回路要素間の配線を生成するルーティングされたネットリスト情報であることを特徴とする論理検証支援装置。
【００９９】
（付記５）  動的に内部回路を書き換え可能なプログラマブル・ロジック・デバイスと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスの内部回路を動的に再構成するデータとなるＲＴＬ及びラッパーＲＴＬからなるコンフィグレーションデータが格納されるコンフィグレーションメモリと、当該プログラマブル・ロジック・デバイスに対応して当該プログラマブル・ロジック・デバイスに一意に対応するＰＬＤ識別情報を当該プログラマブル・ロジック・デバイスに対して出力するＰＬＤ識別情報保持部と、当該プログラマブル・ロジック・デバイスに対応して当該ＰＬＤ識別情報に基づく当該プログラマブル・ロジック・デバイスによる判定結果を出力する第１の出力部と、が基板上に実装された論理検証装置を用いた、当該コンフィグレーションメモリに書き込まれるコンフィグレーションデータの誤書き込みを検証する論理検証方法であって、前記論理検証装置の電源投入により、前記プログラマブル・ロジック・デバイスに対して、前記ＲＴＬにおける所望の論理回路、並びに前記ラッパーＲＴＬにおける当該ＲＴＬに一意に対応するＲＴＬ識別情報が組み込まれたＲＴＬ識別情報保持部並びに当該ＲＴＬ識別情報及び前記ＰＬＤ識別情報を比較する識別情報比較部がそれぞれ設定されるステップと、前記識別情報比較部に対して前記ＰＬＤ識別情報が出力されるステップと、前記識別情報比較部に対して前記ＲＴＬ識別情報が出力されるステップと、前記ＰＬＤ識別情報及びＲＴＬ識別情報が比較され、当該ＰＬＤ識別情報及びＲＴＬ識別情報の相違の有無が判定されるステップと、前記識別情報比較部による判定結果が出力されるステップと、を含むことを特徴とする論理検証方法。
【図面の簡単な説明】
【０１００】
【図１】本実施形態に係る論理検証装置の主要な構成を示す概略図である。
【図２】（ａ）は図１に示すＦＰＧＡ内部におけるＲＴＬの構成を示す概念図であり、（ｂ）は図２（ａ）に示すラッパーＲＴＬの構成を示す概念図である。
【図３】ＰＬＤ識別情報及びＲＴＬ識別情報を説明するための説明図である。
【図４】本実施形態に係る論理検証装置の動作を示すフローチャートである。
【図５】第２の実施形態に係るＦＰＧＡ及びＡＳＩＣのコンカレント開発の概要を示す説明図である。
【図６】図５に示す論理検証支援装置の概略構成を示すブロック図である。
【図７】本実施形態に係る論理検証支援装置におけるデザインサービスを利用した処理手順を示すフローチャートである。
【図８】図７に示すフローチャートの続きを示すフローチャートである。
【図９】再合成依頼メールの内容の一例を示す説明図である。
【図１０】本実施形態に係る論理検証支援装置におけるデザインサービスの付加機能を説明するための説明図である。
【図１１】従来方法の原理を示すフローチャートである。
【図１２】従来のコンカレント開発システムの動作説明図である。
【符号の説明】
【０１０１】
１      基板
２      ＦＰＧＡ
３      コンフィグレーションメモリ
４      ＰＬＤ識別情報保持部
５      ＰＬＤ版数情報保持部
６      第１の出力部
７      第２の出力部
１０    論理検証装置
１００  論理検証支援装置
１１０  メールサーバ
１２０  メール管理サーバ
１３０  ＦＴＰサーバ
１４０  ＲＴＬ版数監視サーバ
１５０  合成管理サーバ
１６０  合成端末装置
１７０  Ｒ端末装置
１８０  ボード設計者端末装置
２００  ユーザ端末装置
３００  コンフィグレーションデータ
３２１  ＲＴＬ識別情報保持部
３２２  識別情報比較部
３２３  ＲＴＬ版数情報保持部
３２４  版数情報比較部
【図１】
0004983644.tif 000002
【図２】
0004983644.tif 000003
【図３】
0004983644.tif 000004
【図４】
0004983644.tif 000005
【図６】
0004983644.tif 000006
【図７】
0004983644.tif 000007
【図８】
0004983644.tif 000008
【図９】
0004983644.tif 000009
【図１０】
0004983644.tif 000010
【図１１】
0004983644.tif 000011
【図１２】
0004983644.tif 000012
【図５】
0004983644.tif 000013