(57)【要約】【課題】シミュレーションの高精度化および設計期間の短縮化を図ること。【解決手段】単一モジュール１２０１は、ＣＰＵからなる多重化モジュールから置き換わったモジュールである。すなわち、ｎ個の組み合わせ回路が共有組み合わせ回路７００に置き換わっており、ｎ個の順序回路が多重化回路（置換モジュール５０１）群からなる多重化順序回路１２１０に置き換わっており、ｎ個の入力ピンおよびｎ個の出力ピンが共通Ｉ／Ｆ１１００に置き換わっている。【選択図】図１２
2008250644.tif 000002
【特許請求の範囲】
【請求項１】
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築させる構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
【請求項２】
前記置換工程は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを時分割動作させる制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる単一モジュールを構築させることを特徴とする請求項１に記載の設計データ変換プログラム。
【請求項３】
前記入力工程により、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、前記置換工程、前記生成工程、前記構築工程、および出力工程を前記設計対象システムの個数分繰り返し実行することにより、前記構築工程によって構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力させることを特徴とする請求項１または２に記載の設計データ変換プログラム。
【請求項４】
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出させる検出工程と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させる構築工程と、
前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
【請求項５】
前記置換工程は、
さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させることを特徴とする請求項４に記載の設計データ変換プログラム。
【請求項６】
請求項１〜５のいずれか一つに記載の設計データ変換プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項７】
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする設計データ変換装置。
【請求項８】
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする設計データ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、同種かつ同一タイプの複数のモジュール（たとえば、ＣＰＵ）が並列動作する多重化モジュールを有する設計対象システムに関する設計データを変換する設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法に関する。
【背景技術】
【０００２】
従来、ＬＳＩ設計時には、設計対象回路が意図したとおりに動作するかどうかをシミュレーションによって確認する。ソフトウェアによる実行では、設計対象回路が大規模になればなるほどシミュレーションに時間がかかる。このため、大規模な設計対象回路ではＦＰＧＡなどのハードウェア上に載せることにより、シミュレーションをおこなう手法がよく用いられる。
【０００３】
また、最近の設計対象システムでは、高速化のためにマルチプロセッサ構成が前提になっており、この動作をシミュレートする従来技術として、下記特許文献１および下記特許文献２が開示されている。
【０００４】
【特許文献１】特開平７−２４９０１２号公報
【特許文献２】特開平８−３０６４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＦＰＧＡを使ったシミュレーションは、ソフトウェアによるシミュレーションより高速であるが、シミュレートできる回路規模に限度がある。特に、高速化のためにマルチプロセッサで構成されている設計対象システムの動作をシミュレートしようとすると、複数のコアを入れるための回路規模が大きくなりすぎ、ＦＰＧＡに載りきらないという問題が発生する。
【０００６】
たとえば、マルチプロセッサ構成の設計対象システムでは、同一のＣＰＵが複数存在し、それがバスなどを通じて通信しながら動作する。従来では、ｎ個のＣＰＵが接続する設計対象システムをシミュレートしようとすると、回路量はｎ倍になっていた。このように、設計対象回路が大規模になればなるほど、ソフトウェアによるシミュレーションに頼らざるを得なくなり、設計期間の長期化を招くという問題があった。
【０００７】
一方、マルチプロセッサ構成の設計対象システムのような大規模回路については、動作確認しようとする実プロセッサ以外の部分で、回路量を削減した擬似プロセッサを使うなどの工夫により、この問題を回避することができる。
【０００８】
しかしながら、実設計対象システムと動作が一致しないためシミュレーションに漏れが生じることとなり、設計精度が低減するという問題があった。さらに、擬似プロセッサを作るための工数が必要になり、結局、設計期間の長期化を招くという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、多重化モジュールを有する設計対象システムについてのシミュレーションの高精度化および設計期間の短縮化を図ることができる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、第１の発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付け、入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路群と、生成された制御回路と、からなる単一モジュールを構築し、構築された単一モジュールを有する設計対象システムに関する設計データを出力することを特徴とする。
【００１１】
この発明によれば、多重化モジュールを、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。
【００１２】
また、上記発明において、さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを時分割動作させる制御回路を生成し、前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる単一モジュールを構築することとしてもよい。
【００１３】
この発明によれば、モジュールごとに有する入力ピンおよび出力ピンを単一の入力Ｉ／Ｆおよび出力Ｉ／Ｆに集約することができ、回路データ量を削減することができる。
【００１４】
また、上記発明において、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、置換処理、生成処理、構築処理、および出力処理を前記設計対象システムの個数分繰り返し実行することにより、構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力することとしてもよい。
【００１５】
この発明によれば、各設計対象システム内の多重化モジュールを、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。
【００１６】
また、第２の発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付け、入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出し、前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群を検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、共通の制御回路と、からなる複合モジュールを構築し、構築された複合モジュールを有する設計対象システムに関する設計データを出力することを特徴とする。
【００１７】
この発明によれば、複数の多重化モジュールを、多重化モジュールごとに、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。また、シミュレータに与えた場合、最大モジュール個数で時分割制御することができ、シミュレーション速度の高速化を実現することができる。
【００１８】
また、上記発明において、さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成し、前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、生成された共通の制御回路と、からなる複合モジュールを構築することとしてもよい。
【００１９】
この発明によれば、モジュールごとに有する入力ピンおよび出力ピンを単一の入力Ｉ／Ｆおよび出力Ｉ／Ｆに集約することができ、回路データ量を削減することができる。
【発明の効果】
【００２０】
本発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法によれば、シミュレーションの高精度化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法の好適な実施の形態を詳細に説明する。
【００２２】
（実施の形態１）
（設計データ変換装置のハードウェア構成）
まず、この発明の実施の形態１にかかる設計データ変換装置のハードウェア構成について説明する。図１は、この発明の実施の形態１にかかる設計データ変換装置のハードウェア構成を示すブロック図である。
【００２３】
図１において、設計データ変換装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００２４】
コンピュータ本体１１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、設計データ変換装置１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００２５】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００２６】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００２７】
また、出力装置１３０としては、ディスプレイ１３１、プリンタ１３２、スピーカ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３２は、画像データや文書データを印刷する。またスピーカ１３３は、効果音や読み上げ音などの音声を出力する。
【００２８】
（設計対象システム２００の一例）
つぎに、この発明の実施の形態１にかかる設計対象システム２００の一例について説明する。本実施の形態１にかかる設計対象システム２００とは、同種かつ同一タイプの複数のモジュール（ＣＰＵ、メモリ、ＤＭＡＣなど）を有する設計対象システム２００である。
【００２９】
本実施の形態１では、複数のモジュールを多重化モジュールと称す。以降、本実施の形態１では、多重化モジュールとして、同種かつ同一タイプの複数のＣＰＵが並列動作するマルチプロセッサを実装したマルチプロセッサシステムを例に挙げて説明する。
【００３０】
図２は、この発明の実施の形態１にかかる設計対象システム２００の一例を示す説明図である。図２において、設計対象システム２００は、ｎ（ｎ＝１，２，・・・）個のＣＰＵ２０１−１，・・・，２０１−ｉ，・・・，２０１−ｎからなる多重化モジュール２０１を実装するマルチプロセッサシステムである。
【００３１】
ＣＰＵ２０１−ｉは、クロック端子２０２−ｉと入力ピンＩ／Ｆ２０３−ｉと出力ピン２０４−ｉとを備えており、それぞれクロック線２１０とバス２２０に接続されている。また、この設計対象システム２００には、さらに、一例としてメモリ２０５、ＤＭＡＣ２０６、エンコーダ２０７、デコーダ２０８などの各種モジュールがバス２２０に接続されている。
【００３２】
図３は、図２に示した多重化モジュール２０１を構成する任意のＣＰＵ２０１−ｉ内部の回路構成を示す説明図である。図３において、ＣＰＵ２０１−ｉは、組み合わせ回路３０１−ｉと順序回路３０２−ｉと入力ピン２０３−ｉと出力ピン２０４−ｉとを備えている。
【００３３】
組み合わせ回路３０１−ｉは、入力ピン２０３−ｉや順序回路３０２−ｉからデータを取り込み、順序回路３０２−ｉや出力ピン２０４−ｉに出力する。組み合わせ回路３０１−ｉは、他のＣＰＵ２０１−１〜２０１−（ｉ−１），２０１−（ｉ＋１）〜２０１−ｎの組み合わせ回路３０１−１〜３０１−（ｉ−１），３０１−（ｉ＋１）〜３０１−ｎと同一構成である。組み合わせ回路３０１−ｉは、たとえば、ＣＰＵ２０１−ｉのシーケンサに相当する回路である。
【００３４】
順序回路３０２−ｉは、ＦＦやＲＡＭなどの膨大な数の順序回路素子が接続されて構成されている。図３では、説明を簡略化するため、ＦＦ３２１−ｉ〜３２４−ｉ、ＲＡＭ３２５−ｉ〜３２７−ｉなどの順序回路素子により表現している。順序回路３０２−ｉは、他のＣＰＵ２０１−１〜２０１−（ｉ−１），２０１−（ｉ＋１）〜２０１−ｎの順序回路３０２−１〜３０２−（ｉ−１），３０２−（ｉ＋１）〜３０２−ｎと同一構成であるが、ＣＰＵ２０１−ｉごとに保持される値が異なる。順序回路３０２−ｉは、たとえば、ＣＰＵ２０１−ｉのレジスタに相当する回路である。
【００３５】
入力ピン２０３−ｉは、バス２２０からのデータを取り込んで組み合わせ回路３０１−ｉに出力する。出力ピン２０４−ｉは、組み合わせ回路３０１−ｉからのデータをバス２２０に出力する。
【００３６】
（ライブラリの記憶内容）
つぎに、この発明の実施の形態１にかかる設計データ変換装置１００に用いるライブラリの記憶内容について説明する。図４は、この発明の実施の形態１にかかる設計データ変換装置１００に用いるライブラリの記憶内容を示す説明図である。
【００３７】
図４において、ライブラリ４００には、各種回路データ（モジュールやセル）が名称および種別およびタイプごとに分類されて記憶されている。名称とは、モジュールやセルを一意に特定する名称であり、具体的には、たとえば、実際の製品名や型番と対応する。種別とは、モジュール／セルが属する種別（ＣＰＵ、順序回路、・・・）をあらわす。
【００３８】
タイプとは、同一種内で分類された型である。たとえば、種別がＣＰＵであっても、たとえば、製造メーカーやクロック周波数によりタイプが異なる。また、種別が順序回路であっても、ＦＦやＲＡＭなどのように順序回路の種類によりタイプが異なる。
【００３９】
より具体的には、ＣＰＵとＦＦのように、設計対象システム２００内のある２つのモジュールの種別が異なる場合は、同種のモジュールとはいえない。同様に、「mojule_cpu_a」と「mojule_cpu_b」のように、種別が同じＣＰＵであっても、タイプが異なれば、同一のモジュールとはいえない。図２に示した設計対象システム２００では、ＣＰＵ２０１−１〜２０１−ｎは同一種別、同一タイプ（たとえば、「mojule_cpu_a」）のモジュールである。
【００４０】
なお、このライブラリ４００は、ＲＯＭ，ＲＡＭ，ＨＤなどの記録媒体により実現される。また、ライブラリ４００は、設計データ変換装置１００に実装されてもよく、またはネットワークを介して通信可能な外部サーバに実装されていてもよい。
【００４１】
（置換ＤＢの記憶内容）
つぎに、この発明の実施の形態１にかかる設計データ変換装置１００に用いる置換ＤＢの記憶内容について説明する。図５は、この発明の実施の形態１にかかる設計データ変換装置１００に用いる置換ＤＢの記憶内容を示す説明図である。図５において、置換ＤＢ５００は、順序回路、入力Ｉ／Ｆ、出力Ｉ／Ｆごとに、置換モジュール５０１〜５０３を記憶している。置換モジュール５０１〜５０３は、ＨＤＬ記述のテキストデータにより表現される。
【００４２】
置換モジュール５０１は、各ＣＰＵ２０１−１〜２０１−ｎに存在する複数の順序回路３０２−１〜３０２−ｎを、複数の順序回路３０２−１〜３０２−ｎのそれぞれに存在する共通の順序回路素子群（たとえば、ＦＦ３２１−１〜３２１−ｎ）を多重化した多重化回路である。他の共通の順序回路素子群（ＦＦ３２２−１〜３２２−ｎ），・・・，（ＦＦ３２４−１〜３２４−ｎ）にとっても同様である。
【００４３】
ここで、共通の順序回路素子群とは、種別が同一（ＦＦどうし、ＲＡＭどうし）であることのほか、その接続位置が同一であることも含む。図５では、順序回路素子群（ＦＦ３２１−１〜３２１−ｎ），・・・，（ＦＦ３２４−１〜３２４−ｎ）の多重化回路のみを表現しているが、順序回路素子群（ＲＡＭ３２５−１〜３２５−ｎ），・・・，（ＲＡＭ３２７−１〜３２７−ｎ）の多重化回路（不図示）も記憶されている。
【００４４】
また、多重化回路を表現する置換モジュール５０１は、任意の状態ｉのときに、ＣＰＵ２０１−ｉの順序回路素子（たとえば、ＦＦ３２１−ｉ）の出力データが出力ピン２０４−ｉから出力されるという条件を満たしていればよく、その回路構成は問わない。
【００４５】
このように、共通の順序回路素子群（たとえば、ＦＦ３２１−１〜３２１−ｎ）を置換モジュール５０１により置換することにより、複数のＣＰＵ２０１−１〜２０１−ｎに分散されている共通の順序回路素子群を単一の多重化回路で多重化することができる。
【００４６】
また、置換モジュール５０２は、ＣＰＵ２０１−１〜２０１−ｎへ入力されるデータを内部に選択的に取り込むｎ入力１出力の入力Ｉ／Ｆである。このように、置換モジュール５０２に置換することにより、複数のＣＰＵ２０１−１〜２０１−ｎに分散されている共通の入力ピンを単一の入力Ｉ／Ｆで多重化することができる。
【００４７】
また、置換モジュール５０３は、各ＣＰＵ２０１−１〜２０１−ｎの組み合わせ回路３０１−１〜３０１−ｎからの出力データを選択的に出力する出力Ｉ／Ｆである。このように、置換モジュール５０３に置換することにより、複数のＣＰＵ２０１−１〜２０１−ｎに分散されている共通の出力ピンを単一の出力Ｉ／Ｆで多重化することができる。
【００４８】
なお、この置換ＤＢ５００は、ＲＯＭ，ＲＡＭ，ＨＤなどの記録媒体により実現される。また、置換ＤＢ５００は、設計データ変換装置１００に実装されてもよく、またはネットワークを介して通信可能な外部サーバに実装されていてもよい。
【００４９】
（設計データ変換装置１００の機能的構成）
つぎに、この発明の実施の形態１にかかる設計データ変換装置１００の機能的構成について説明する。図６は、この発明の実施の形態１にかかる設計データ変換装置１００の機能的構成を示すブロック図である。
【００５０】
図６において、設計データ変換装置１００は、入力部６０１と、解析部６０２と、生成部６０３と、置換部６０４と、構築部６０５と、出力部６０６と、を備えている。これら各機能６０１〜６０６は、設計データ変換装置１００内のメモリに格納された当該機能に関するプログラムを設計データ変換装置１００内のプロセッサに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。
【００５１】
また、各機能６０１〜６０６からの出力データはメモリに保持される。また、図６中矢印で示した接続先の機能は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムを設計データ変換装置１００内のプロセッサに実行させる。
【００５２】
まず、入力部６０１は、設計対象システム２００に関する設計データ６００の入力を受け付ける機能を有する。設計データ６００とは、たとえば、論理合成後における設計対象システム２００のネットリストである。ネットリストには、設計対象システム２００を構成するＣＰＵ２０１−ｉやその内部のセル（ＦＦやＲＡＭなど）の名称を用いてこれらの接続関係が記述されている。
【００５３】
また、解析部６０２は、入力部６０１によって入力された設計データ６００を解析する機能を有する。具体的には、たとえば、図４に示したライブラリ４００を参照することにより、ネットリストに記述されている名称を手掛かりとして、設計対象システム２００の接続関係、モジュールの種別やタイプ、モジュール内の接続関係、組み合わせ回路、順序回路の種別やタイプ、入力ピン、出力ピンを特定する。また、同種かつ同一タイプのモジュールの個数も特定する。
【００５４】
また、解析部６０２では、ネットリストに記述されている名称を手掛かりとして、各ＣＰＵ２０１−ｉに共通の組み合わせ回路を特定し、共有化する。
【００５５】
図７は、組み合わせ回路の共有関係を示す説明図である。図７において、組み合わせ回路３０１−１〜３０１−ｎは、ＣＰＵ２０１−１〜２０１−ｎで同一構成であるため、いずれか１つの組み合わせ回路３０１−ｉで共有することができる。共有化されたいずれか１つの組み合わせ回路３０１−ｉを、以降、共有組み合わせ回路７００と表記する。
【００５６】
共有組み合わせ回路７００は、組み合わせ回路３０１−ｉのＨＤＬ記述のテキストデータをコピーすることにより得られる。これにより、シミュレーションを実行するための組み合わせ回路の回路データ量を１／ｎに削減することができる。
【００５７】
また、図６において、生成部６０３は、解析部６０２による解析結果に基づいて制御回路を生成する機能を有する。ここで、制御回路とは、設計データ変換装置１００からの出力結果となるモジュールまたは設計対象システム２００を時分割動作させる回路である。この制御回路は、たとえば、インクリメントするカウンタにより構成される。
【００５８】
制御回路がカウンタにより構成される場合、生成部６０３は、解析部６０２から同種かつ同一タイプのＣＰＵ２０１−ｉの数を検出することで、カウンタ数を設定する。具体的には、そのＣＰＵ２０１−ｉの数がｎである場合、カウント値１を初期値とし、クロックが到達するたびにｎ＋１までインクリメントして、ｎ＋１になると１にリセットするように設定された制御回路を生成する。カウンタへのクロックの到達タイミングは、他のＦＦにクロックが到達するタイミングと同時とする。なお、カウント値ｉのカウンタからの出力信号をＣ（ｉ）と表記する。
【００５９】
すなわち、カウント値１〜ｎまでのクロックでは、共通の順序回路素子群（たとえば、ＦＦ３２１−１〜３２１−ｎ）を時分割動作させ、カウント値ｎ＋１のクロックでは、共通Ｉ／Ｆを動作させる。共通Ｉ／Ｆについては後述する。
【００６０】
また、置換部６０４は、解析部６０２によって解析・特定された順序回路３０２―ｉ、入力ピン２０３−ｉ、および出力ピン２０４−ｉを、置換モジュール５０１〜５０３に置換する機能を有する。
【００６１】
図８は、順序回路３０２−ｉの置換例を示す説明図である。図８は、同種かつ同一タイプであるｎ個のＣＰＵ２０１−１〜２０１−ｎの各順序回路３０２−１〜３０２−ｎに共通の順序回路素子群（ｎ個のＦＦ３２１−１〜３２１−ｎ）を置換モジュール５０１に置換する例を示している。
【００６２】
置換モジュール５０１は、ｎ個の回路ブロック８１０−１〜８１０−ｎと、いずれか一つの回路ブロック８１０−ｉからの出力データを共有組み合わせ回路７００に選択出力するマルチプレクサ８２０とから構成される。置換モジュール５０１は、制御回路８００に接続される。回路ブロック８０１−ｉは、セレクタ８１１−ｉとＦＦ３２１−ｉとが直接接続された構成であり、ＦＦ３２１−ｉからの出力データがセレクタ８１１−ｉに帰還入力される。
【００６３】
ＦＦ３２１−ｉは、カウント値ｉのとき、保持しているデータＱをマルチプレクサ８２０に出力する。セレクタ８１１−ｉは、共有組み合わせ回路７００からの出力データとＦＦ３２１−ｉからの出力データを入力する。そして、カウント値がｉのとき、データＤを取り込んでＦＦ３２１−ｉに出力する。
【００６４】
これ以外のカウント値では、セレクタ８１１−ｉは、帰還入力されたデータＱを出力する。これにより、ＦＦ３２１−ｉは常にＣＰＵ２０１−ｉの対応するＦＦの値を保持することが保証される。マルチプレクサ８２０は、カウント信号Ｃ（ｉ）を取り込んだ場合、回路ブロック８１０−１〜８１０−ｎのうち回路ブロック８１０−ｉからのデータＱを選択して共有組み合わせ回路７００に出力する。
【００６５】
なお、Ｖｅｒｉｌｏｇを用いて置換する場合、置換元のＦＦ（ＣＬＫ，Ｄ，Ｑ）のＨＤＬ記述をＤＵＭＭＹＦＦ（ＣＬＫ，Ｄ，Ｑ，ｃｏｕｎｔｅｒ）に置き換えることにより、単純テキスト処理で置換処理を実現することができる。
【００６６】
図９は、入力ピン２０３−ｉの置換例を示す説明図である。図９は、同種かつ同一タイプであるｎ個のＣＰＵ２０１−１〜２０１−ｎの各入力ピン２０３−１〜２０３−ｎを置換モジュール５０２に置換する例を示している。
【００６７】
置換モジュール５０２は、ｎ入力１出力のマルチプレクサ９００で構成される。マルチプレクサ９００は、制御回路８００に接続され、カウント信号Ｃ（ｉ）を取り込んだ場合、ＣＰＵ２０１−１〜２０１−ｎの入力データＩＮ１〜ＩＮｎのうちＣＰＵ２０１−ｉの入力データＩＮ−ｉを選択して共有組み合わせ回路７００に出力する。
【００６８】
図１０は、出力ピン２０４−ｉの置換例を示す説明図である。図１０は、同種かつ同一タイプであるｎ個のＣＰＵ２０１−１〜２０１−ｎの各出力ピン２０４−１〜２０４−ｎを置換モジュール５０３に置換する例を示している。
【００６９】
置換モジュール５０３は、ｎ個の回路ブロック１０１０−１〜１０１０−ｎから構成される。回路ブロック１０１０−１〜１０１０−ｎは、制御回路８００に接続され、カウント信号Ｃ（ｉ）を取り込む。回路ブロック１０１０−ｉは、セレクタ１０１１−ｉとＦＦ１０１２−ｉとが直接接続された構成であり、ＦＦ１０１２−ｉからの出力データがセレクタ１０１１−ｉに帰還入力される。
【００７０】
なお、ＣＰＵ２０１−ｉから出た信号がバスを通って１クロック内に他のＣＰＵ２０１−ｊに届く場合が存在するならば、出力ピンの値を計算するために追加の処理が必要になる。具体的には、カウンタの値が２ｎ＋２まで増加することとして、カウンタがｎ＋１＋ｉのときにＣＰＵ２０１−ｉの組み合わせ回路の状態をシミュレートして、得られる出力ピンの値をＦＦ１０１２−ｉに記憶しておく。この処理により、カウンタが１〜ｎのときに、次サイクルの出力ピンの値があらかじめ計算されているので、１サイクルで届く信号が存在しても正しい値が入力されることになる。一般的には１クロック内に他のＣＰＵ２０１−ｊに信号が届く例は多くないので、本置換例では、そのような信号はないものとして記述している。
【００７１】
ＦＦ１０１２−ｉは、カウント値ｉのとき、保持しているデータＱをバス２２０に出力する。セレクタ１０１１−ｉは、共有組み合わせ回路７００からの出力データＤとＦＦ３２１−ｉからの出力データＱを入力する。そして、カウント値がｉのとき、データＤを取り込んでＦＦ１０１２−ｉに出力する。これ以外のカウント値では、帰還入力されたデータＱを出力する。
【００７２】
なお、Ｖｅｒｉｌｏｇを用いて置換する場合、ｓｔｕｂモジュールを用意して置き換えれば単純な置き換えと追加のみで実現することができる。図１１は、Ｉ／Ｆ変換処理を示す模式図である。（Ａ）において、ＣＰＵ２０１−１〜ＣＰＵ２０１−ｎをコピーして、（Ｂ）に示したようにダミーＣＰＵ１１０１−１〜１１０１−ｎを作り出す。ダミーＣＰＵ１１０１−１〜１１０１−ｎとバス２２０との接続関係（点線で囲った領域）は、ＣＰＵ２０１−１〜ＣＰＵ２０１−ｎとバス２２０との接続関係と変化はないため、これまでのネットリストをそのまま適用することができる。
【００７３】
そして、（Ｃ）において、このダミーＣＰＵ１１０１−１〜１１０１−ｎと共有組み合わせ回路７００の置換された各入出力ピン（置換モジュール５０２，５０３）との間にＩ／Ｆ回路１１０２を接続することにより、共通Ｉ／Ｆ１１００を構築することができる。これにより、多重化前の各ＣＰＵ２０１−ｉの入出力信号がダミーＣＰＵ１１０１−ｉを素通りすることとなる。これにより、置換処理を間単に実現することができる。
【００７４】
また、構築部６０５は、置換モジュール５０１〜５０３と共有組み合わせ回路７００と制御回路８００とを接続することにより単一モジュールを構築する機能を有する。図１２は構築部６０５によって構築された単一モジュールを示す説明図である。
【００７５】
図１２において、単一モジュール１２０１は、ＣＰＵ２０１−１〜２０１−ｎからなる多重化モジュール２０１から置き換わったモジュールである。すなわち、ｎ個の組み合わせ回路３０１−１〜３０１−ｎが共有組み合わせ回路７００に置き換わっており、ｎ個の順序回路３０２−１〜３０２−ｎが多重化回路（置換モジュール５０１）群からなる多重化順序回路１２１０に置き換わっており、ｎ個の入力ピン２０３−１〜２０３―ｎおよびｎ個の出力ピン２０４−１〜２０４−ｎが単一の入力Ｉ／Ｆ（置換モジュール５０２）および出力Ｉ／Ｆ（置換モジュール５０３）からなる共通Ｉ／Ｆ１１００に置き換わっている。
【００７６】
制御回路８００は、多重化順序回路１２１０および共通Ｉ／Ｆ１１００に接続されている。制御回路から出力されるカウント信号Ｃ（１）〜Ｃ（ｎ＋１）のうち、カウント信号Ｃ（１）〜Ｃ（ｎ）は多重化順序回路１２１０に出力されて、各状態（カウント値）ｉの順序回路素子（ＦＦやＲＡＭ）が時分割動作する。また、カウント信号Ｃ（ｎ＋１）は共通Ｉ／Ｆ１１００に出力されて、状態ｉ＋１において入出力動作する。
【００７７】
共通Ｉ／Ｆ１１００を状態ｉ＋１においてのみ入出力動作させるため、クロックゲートＣＧにカウント値Ｃ（ｎ＋１）が出力された場合にのみ、共通Ｉ／Ｆ１１００にクロックＣＬＫを供給するように構築される。
【００７８】
このように、多重化モジュール２０１を単一モジュール１２０１に置換することにより、変換後の設計対象システム１２００の回路規模を、変換前の設計対象システムの回路規模よりも小さくすることができ、回路データ量を大幅に削減することができる。
【００７９】
また、図６において、出力部６０６は、構築部６０５によって構築された構築結果に関する設計データ６００を出力する機能を有する。具体的には、図１２に示した変換後の単一モジュール１２０１を有するあらたな設計対象システム１２００に関する設計データ６１０（ネットリスト）を出力する。設計データ６１０の出力先は、ディスプレイ１３１による画面表示やプリンタ１３２による印刷出力のほか、設計データ変換装置１００内のメモリへのデータ書込みやシミュレータへの送信でもよい。
【００８０】
（設計データ変換処理手順）
つぎに、この発明の実施の形態１にかかる設計データ変換装置１００の設計データ変換処理手順について説明する。図１３は、この発明の実施の形態１にかかる設計データ変換装置１００の設計データ変換処理手順を示すフローチャートである。図１３において、まず、入力部６０１により、設計対象システム２００に関する設計データ６００（ネットリスト）の入力が受け付けられるまで待ち受け（ステップＳ１３０１：Ｎｏ）、設計データ６００の入力が受け付けられた場合（ステップＳ１３０１：Ｙｅｓ）、解析部６０２により設計データ６００を解析する（ステップＳ１３０２）。
【００８１】
そして、生成部６０３により、解析結果から得られる同種かつ同一構成のＣＰＵの個数ｎに１加算したｎ＋１周期で計数する制御回路８００を生成する（ステップＳ１３０３）。つぎに、置換部６０４により、置換モジュール５０１〜５０３に置換する（ステップＳ１３０４）。そして、構築部６０５により、図１２に示したように、変換後の単一モジュール１２０１を構築する（ステップＳ１３０５）。最後に、この変換後の単一モジュール１２０１を有するあらたな設計対象システム１２００に関する設計データ６１０を出力する（ステップＳ１３０６）。これにより、一連の処理を終了する。
【００８２】
この発明の実施の形態１によれば、各ＣＰＵ２０１−１〜２０１−ｎを、組み合わせ回路３０１−１〜３０１−ｎと順序回路３０２−１〜３０２−ｎにわけ、組み合わせ回路３０１−１〜３０１−ｎのいずれかの組み合わせ回路３０１−ｉにより、すべてのＣＰＵ２０１−１〜２０１−ｎで共有する。
【００８３】
また、設計対象システム２００の動作をシミュレートする場合、ｉ（１〜ｎ）番目のク
ロックＣＬＫでＣＰＵ２０１−ｉ内部の動作をシミュレートし、ｎ＋１個目のクロックＣＬＫで、共通Ｉ／Ｆ１１００の動作をシミュレートするように制御する制御回路８００を生成する。
【００８４】
これにより、ｎ＋１回分のクロックＣＬＫで、元の設計対象システム２００のクロック１回分の動作をシミュレートすることになる。変換後の単一モジュール１２０１は、変換前の設計対象システム２００の多重化モジュール２０１と比較してｎ＋１倍遅くなるが、組み合わせ回路３０１−１〜３０１−ｎが共有されているため、回路規模が小さくなっている。
【００８５】
このため、従来はシミュレータで扱える規模を超えていてシミュレーションが不可能だった設計対象システム２００のシミュレーションが可能になるという利点がある。このように、データ量が削減された単一モジュール１２０１を有する設計対象システム１２００に関する設計データ６１０をシミュレータに与えることで、設計者は、元の設計対象システム２００の動作を漏れなく確認することができる。
【００８６】
（実施の形態２）
つぎに、実施の形態２について説明する。実施の形態１では、１種類の多重化モジュール２０１を有する設計対象システム２００を設計対象とした場合について説明したが、実施の形態２では、複数種類の多重化モジュールを有する設計対象システムを設計対象とする。以降、実施の形態１と相違する点のみについて説明する。なお、実施の形態１で示した構成と同一構成については同一符号を付し、その説明を省略する。
【００８７】
図１４は、この発明の実施の形態２にかかる複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。図１４において、設計対象システム１４００は、同種かつ異なるタイプのＣＰＵからなる２つの多重化モジュール２０１ａ，２０１ｂを有する。すなわち、多重化モジュール２０１ａはｎ個のＣＰＵ２０１ａ−１〜２０１ａ−ｎを有し、多重化モジュール２０１ｂは、ｍ（ｎ＞ｍ）個のＣＰＵ２０１ｂ−１〜２０１ｂ−ｍを有する。
【００８８】
なお、多重化モジュール２０１ａの構成要素には、符号の末尾にａを付し、多重化モジュール２０１ｂの構成要素には、符号の末尾にｂを付す。たとえば、上述したように多重化モジュール２０１ａの任意のＣＰＵは、ＣＰＵ２０１ａ−ｉと表記する。
【００８９】
この設計対象システム１４００においては、解析部６０２により、多重化モジュール２０１ａ，２０１ｂとそのＣＰＵの個数ｎ，ｍが特定される。この場合、生成部６０３では、ｎおよびｍの大小を比較し、制御回路８００であるカウンタの上限カウント値を、ｍよりも大きいｎを基準として、ｎ＋１に設定する。
【００９０】
図１５は、この発明の実施の形態２にかかる構築部６０５によって構築された設計対象システム１５００を示す説明図である。図１５において、設計対象システム１５００は、変換後の単一モジュール１５０１ａ，１５０１ｂと、制御回路８００と、クロックゲートＣＧとからなる複合モジュール１５０１を有する。複合モジュール１５０１は、変換元の２つの多重化モジュール２０１ａ，２０１ｂから置き換わったモジュールである。
【００９１】
単一モジュール１５００ａは、共有組み合わせ回路７００ａ、多重化順序回路１２１０ａ、および共通Ｉ／Ｆ１１００ａを有し、単一モジュール１５００ｂは、共有組み合わせ回路７００ｂ、多重化順序回路１２１０ｂ、および共通Ｉ／Ｆ１１００ｂを有する。制御回路８００およびクロックゲートＣＧは変換後の単一モジュール１５００ａ，１５００ｂにおいて共通である。
【００９２】
この場合、制御回路８００は、カウント値１〜ｎ＋１まで計数し、ｎ＋１のあとは１にリセットされる。これにより、単一モジュール１５００ａでは、カウント値１〜ｎまでは多重化順序回路１２１０ａを時分割動作させ、カウント値ｎ＋１で共通Ｉ／Ｆ１１００ａを動作させる。
【００９３】
一方、単一モジュール１５００ｂでは、カウント値１〜ｍまでは多重化順序回路１２１０ｂを時分割動作させ、カウント値ｍ＋１〜ｎまでは何も動作されない。そして、カウント値ｎ＋１になると、共通Ｉ／Ｆ１１００ｂを動作させる。
【００９４】
このように、複数の多重化モジュールがある場合、一番ＣＰＵ数が多い多重化モジュールのＣＰＵ数を基準として制御回路８００の上限カウント値を設定することで、回路データ量の削減とともにシミュレーション時間の短縮化を図ることができる。なお、本実施の形態２では、ｎ＞ｍとしたが、ｎ＝ｍでも同様に実現することができる。
【００９５】
（実施の形態３）
つぎに、実施の形態３について説明する。実施の形態１では、多重化モジュールを有する単一の設計対象システム２００を変換対象としたが、実施の形態３では、その設計対象システム２００をシステムボードとして複数実装する多重化設計対象システムを変換対象とする。以降、実施の形態１または２と相違する点のみについて説明する。なお、実施の形態１または２で示した構成と同一構成については同一符号を付し、その説明を省略する。
【００９６】
図１６は、この発明の実施の形態３にかかる多重化設計対象システムを示す説明図である。図１６において、多重化設計対象システム１６００は、図２に示した設計対象システム２００をシステムボードとして複数個実装したシステムである。すなわち、多重化設計対象システム１６００は、システムボード２００−１〜２００−Ｋがバス１６１０に接続されて並列実行する。
【００９７】
図１７は、この発明の実施の形態３にかかる構築部６０５によって構築された多重化設計対象システムを示す説明図である。多重化設計対象システム１７００において、各システムボード１７００−１〜１７００−Ｋは、図１２に示した構築後の設計対象システム１２００と同一構成である。この多重化設計対象システム１７００に関する設計データ６１０（ネットリスト）をシミュレートする場合、図１６に示したように、各システムボード２００−ｋのＣＰＵ数がｎ個で、システムボード数がＫ個であるため、カウント数は、（ｎ＋１）×Ｋとなる。
【００９８】
図１８は、この発明の実施の形態３にかかる設計データ変換処理手順を示すフローチャートである。図１８において、まず、入力部６０１により、図１６に示した多重化設計対象システム１６００に関する設計データ６００（ネットリスト）の入力が受け付けられるまで待ち受け（ステップＳ１８０１：Ｎｏ）、設計データ６００の入力が受け付けられた場合（ステップＳ１８０１：Ｙｅｓ）、解析部６０２により設計データ６００を解析する（ステップＳ１８０２）。
【００９９】
そして、解析されたシステムボード数Ｋのインデックスｋをｋ＝１とし（ステップＳ１８０３）、ｋ＞Ｋであるか否かを判断する（ステップＳ１８０４）。ｋ＞Ｋでない場合（ステップＳ１８０４：Ｎｏ）、システムボード２００−ｋについて、生成部６０３による制御回路８００の生成処理（ステップＳ１８０５）、置換部６０４による置換処理（ステップＳ１８０６）、および構築部６０５による構築処理（ステップＳ１８０７）を実行する。
【０１００】
このあと、ｋを１つインクリメントして（ステップＳ１８０８）、ステップＳ１８０４に戻る。一方、ｋ＞Ｋである場合（ステップＳ１８０４：Ｙｅｓ）、出力部６０６により、図１７に示した多重化設計対象システム１７００に関する設計データ６１０を出力する。これにより、一連の処理を終了する。
【０１０１】
このように、実施の形態３によれば、各システムボード２００−ｋについて順次あらたなシステムボード１７００−ｋに変換することにより、回路データ量を削減することができる。なお、この実施の形態３では、各システムボード２００−ｋ内のＣＰＵ数をｎとしたが、各システムボード２００−ｋごとに異なるＣＰＵ数であってもよい。
【０１０２】
また、上述した設計対象となる多重化設計対象システム１６００を展開することにより、ｎ×Ｋ個のＣＰＵとＫ個の入出力Ｉ／Ｆとを有する単一の設計対象システムとして扱って、変換することもできる。この場合、制御回路８００で設定されるカウント数はｎ×Ｋ＋１となるため、上述したカウント数（ｎ＋１）×Ｋよりも低くなる。したがってクロック数が低減され、シミュレーション時間の短縮化を図ることができる。
【０１０３】
展開して変換する手法と展開せずに変換する手法とを比較すると、シミュレーション速度と回路データ量とのトレードオフに応じて変換手法を選択することができる。すなわち、多重化設計対象システム１６００を展開して変換する手法では、各システムボード２００−１〜２００−Ｋから展開されたＫ個の共通Ｉ／Ｆ１１００が共有化される。これにより、カウント値ｎ×Ｋ＋１のときに、共有化された単一の共通Ｉ／Ｆ１１００が処理される。
【０１０４】
したがって、展開せずに変換する手法にくらべて、クロック数が低減され、シミュレーション時間の短縮化を図ることができるが、Ｋ個の共通Ｉ／Ｆ１１００が共有化されるため、単一の共通Ｉ／Ｆ１１００の回路データ量が削減されないこととなる。
【０１０５】
また、多重化設計対象システム１６００を展開せずに変換する場合、展開する場合にくらべてカウント数がｎ×Ｋ＋１となり、クロック数が増加するが、各共通Ｉ／Ｆ１１００が共有化されないため、回路データ量を削減することができる。このように、設計者は両変換手法のトレードオフに応じて、設計対象に適した手法を適用すればよい。
【０１０６】
たとえば、シミュレーション速度を優先する場合には、多重化設計対象システム１６００を展開する変換手法によりｎ×Ｋ個のＣＰＵを並列実行する多重化モジュールを有する単一の設計対象システムを構築し、コンパイラに与えて、コンパイル結果をＦＰＧＡに載せてみる。ＦＰＧＡに載りきった場合、その状態でシミュレーションを実行することにより、高速シミュレーションを実現することができる。
【０１０７】
一方、コンパイル結果がＦＰＧＡに載りきらなかった場合、多重化設計対象システム１６００を展開せずに変換する手法により、変換後の多重化設計対象システム１７００を構築する。これにより、回路データ量が削減されるため、そのコンパイル結果をＦＰＧＡに載せることができ、シミュレーションを実行することができる。
【０１０８】
以上説明したように、本実施の形態によれば、設計対象システムの回路規模を小さくすることができ、ＦＰＧＡを使ったシミュレーションを実行することができる。したがって、シミュレーション時間の短縮化を図ることができる。
【０１０９】
また、回路規模が大きい多重化モジュールと回路規模の小さい単一モジュールは等価であるため、従来のような擬似プロセッサを作成する必要がなく、設計者の設計負担の低減を図ることができる。また、多重化モジュールと単一モジュールは等価であるため、従来のような擬似プロセッサを使用する必要もなく、漏れのない高速なシミュレーションを実現することができる。
【０１１０】
以上のことから、この発明の実施の形態によれば、多重化モジュールを有する設計対象システムについてのシミュレーションの高精度化および設計期間の短縮化を図ることができる。
【０１１１】
なお、本実施の形態１〜３で説明した設計データ変換方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１１２】
（付記１）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築させる構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
【０１１３】
（付記２）前記置換工程は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを時分割動作させる制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる単一モジュールを構築させることを特徴とする付記１に記載の設計データ変換プログラム。
【０１１４】
（付記３）前記入力工程により、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、前記置換工程、前記生成工程、前記構築工程、および出力工程を前記設計対象システムの個数分繰り返し実行することにより、前記構築工程によって構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力させることを特徴とする付記１または２に記載の設計データ変換プログラム。
【０１１５】
（付記４）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出させる検出工程と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させる構築工程と、
前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
【０１１６】
（付記５）前記置換工程は、
さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力Ｉ／Ｆに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力Ｉ／Ｆに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力Ｉ／Ｆと前記出力Ｉ／Ｆとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力Ｉ／Ｆと、前記出力Ｉ／Ｆと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させることを特徴とする付記４に記載の設計データ変換プログラム。
【０１１７】
（付記６）付記１〜付記５のいずれか一つに記載の設計データ変換プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０１１８】
（付記７）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする設計データ変換装置。
【０１１９】
（付記８）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出する検出手段と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出手段によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成手段によって生成された共通の制御回路と、からなる複合モジュールを構築する構築手段と、
前記構築手段によって構築された複合モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする設計データ変換装置。
【０１２０】
（付記９）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする設計データ変換方法。
【０１２１】
（付記１０）同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出する検出工程と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築する構築工程と、
前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする設計データ変換方法。
【産業上の利用可能性】
【０１２２】
以上のように、本発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、ＬＳＩ設計に有用であり、特に、ＦＰＧＡなどのハードウェアを用いたシミュレーションに適している。
【図面の簡単な説明】
【０１２３】
【図１】この発明の実施の形態１にかかる設計データ変換装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態１にかかる設計対象システムの一例を示す説明図である。
【図３】図２に示した多重化モジュールを構成する任意のＣＰＵ内部の回路構成を示す説明図である。
【図４】この発明の実施の形態１にかかる設計データ変換装置に用いるライブラリの記憶内容を示す説明図である。
【図５】この発明の実施の形態１にかかる設計データ変換装置に用いる置換ＤＢの記憶内容を示す説明図である。
【図６】この発明の実施の形態１にかかる設計データ変換装置の機能的構成を示すブロック図である。
【図７】組み合わせ回路の共有関係を示す説明図である。
【図８】順序回路の置換例を示す説明図である。
【図９】入力ピンの置換例を示す説明図である。
【図１０】出力ピンの置換例を示す説明図である。
【図１１】Ｉ／Ｆ変換処理を示す模式図である。
【図１２】構築部によって構築された単一モジュールを示す説明図である。
【図１３】この発明の実施の形態１にかかる設計データ変換装置の設計データ変換処理手順を示すフローチャートである。
【図１４】この発明の実施の形態２にかかる複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。
【図１５】この発明の実施の形態２にかかる構築部によって構築された設計対象システムを示す説明図である。
【図１６】この発明の実施の形態３にかかる多重化設計対象システムを示す説明図である。
【図１７】この発明の実施の形態３にかかる構築部によって構築された多重化設計対象システムを示す説明図である。
【図１８】この発明の実施の形態３にかかる設計データ変換処理手順を示すフローチャートである。
【符号の説明】
【０１２４】
１００  設計データ変換装置
２００  設計対象システム
６００，６１０  設計データ
６０１  入力部
６０２  解析部
６０３  生成部
６０４  置換部
６０５  構築部
６０６  出力部
【図１】
2008250644.tif 000003
【図２】
2008250644.tif 000004
【図３】
2008250644.tif 000005
【図４】
2008250644.tif 000006
【図５】
2008250644.tif 000007
【図６】
2008250644.tif 000008
【図７】
2008250644.tif 000009
【図８】
2008250644.tif 000010
【図９】
2008250644.tif 000011
【図１０】
2008250644.tif 000012
【図１１】
2008250644.tif 000013
【図１２】
2008250644.tif 000014
【図１３】
2008250644.tif 000015
【図１４】
2008250644.tif 000016
【図１５】
2008250644.tif 000017
【図１６】
2008250644.tif 000018
【図１７】
2008250644.tif 000019
【図１８】
2008250644.tif 000020