(57)【要約】【課題】論理回路を複数のＦＰＧＡ等に分割し再設計する際のピンネックの解消を図る。【解決手段】コンピュータに、再設計の対象の論理回路の各ブロックに設けられている各ポートで使用されるピンに関する情報およびポート同士の接続関係を示す情報を示すファイルを取得するピン情報等取得処理を実行させ（＃２）、ブロックの出力ポートの複数のピンをピン数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、そのファイルに基づいて実行させ（＃１１、＃１３）、ブロックの出力ポートから出力されかつ多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、そのファイルに基づいて実行させる（＃１２、＃１３）。【選択図】図２３
2008083750.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックによって構成される論理回路の再設計を行うコンピュータのために用いられる論理回路再設計プログラムであって、
前記コンピュータに、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得処理を実行させ、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させ、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させる、
ことを特徴とする論理回路再設計プログラム。
【請求項２】
複数の出力ポートそれぞれのピンから出力される信号を１つの前記多重回路によって多重化させる場合は、出力される信号の入力先のブロックが互いに同一である出力ポートのピンから出力される信号が当該多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる、
請求項１記載の論理回路再設計プログラム。
【請求項３】
各ブロックを複数のＦＰＧＡ（Field Programmable Gate Array）のうちのいずれかに分類するブロック分類処理を、前記コンピュータに実行させ、
出力される信号の入力先のブロックのＦＰＧＡとは異なるＦＰＧＡのブロックの出力ポートのピンから出力される信号のみが前記多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる、
請求項１または請求項２記載の論理回路再設計プログラム。
【請求項４】
複数のブロックによって構成される論理回路の再設計を行う論理回路設計装置であって、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得手段と、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を、前記ピン情報および前記接続情報に基づいて配置する、多重回路配置処理手段と、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を前記ピン情報および前記接続情報に基づいて配置する分離回路配置手段と、
を有する特徴とする論理回路設計装置。
【請求項５】
複数のブロックによって構成される論理回路の再設計を行う論理回路再設計方法であって、
コンピュータに、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得処理を実行させ、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させ、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させる、
ことによって前記論理回路の再設計を行う、
ことを特徴とする論理回路再設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の再設計を行うコンピュータプログラム、装置、および方法に関する。
【背景技術】
【０００２】
従来、ＡＳＩＣ（Application Specific Integrated Circuit）などのＬＳＩ（Large Scale Integrated Circuit）の開発において、ＦＰＧＡ（Field Programmable Gate Array）がよく用いられる。ＦＰＧＡによると、開発者は、何度でも機能を再設定し論理回路を定義し直すことができる。
【０００３】
大規模な論理回路のプロトタイプを作成する場合は、論理回路を複数のＦＰＧＡ等に分割する。これにより、元の論理回路と等価な論理回路を手軽に実現することができる。この際に、１つまたは複数の特定の機能ごとにＦＰＧＡに分割することが望ましい。そうすれば、１つまたは複数の特定の機能ごとに動作の検証およびデバッグなどの作業を行うことができ、効率的だからである。
【特許文献１】特開平１１−７３４４０号公報
【特許文献２】特開平８−３０６５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記の方法によると、容量的には問題ないにも関わらずピン数が不足する、ということがよく起こる。そこで、ピンネックの解消が求められている。
【０００５】
特許文献１、２にそれぞれ記載される方法は、いずれも、ピンネックを解消するための方法である。しかし、これらの方法では、論理回路を複数のＦＰＧＡ等に分割する場合のピンネックを解消することはできない。
【０００６】
本発明は、このような問題点に鑑み、論理回路を複数のＦＰＧＡ等に分割し再設計する場合においてピンネックの解消を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る論理回路再設計プログラムは、複数のブロックによって構成される論理回路の再設計を行うコンピュータのために用いられる論理回路再設計プログラムであって、前記コンピュータに、各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得処理を実行させ、ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させ、ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させる、ことを特徴とする。
【０００８】
好ましくは、複数の出力ポートそれぞれのピンから出力される信号を１つの前記多重回路によって多重化させる場合は、出力される信号の入力先のブロックが互いに同一である出力ポートのピンから出力される信号が当該多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる。
【０００９】
または、各ブロックを複数のＦＰＧＡ（Field Programmable Gate Array）のうちのいずれかに分類するブロック分類処理を、前記コンピュータに実行させ、出力される信号の入力先のブロックのＦＰＧＡとは異なるＦＰＧＡのブロックの出力ポートのピンから出力される信号のみが前記多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる。
【発明の効果】
【００１０】
本発明によると、論理回路を複数のＦＰＧＡ等に分割し再設計する場合においてピンネックの解消を図ることができる。
【発明を実施するための最良の形態】
【００１１】
図１はコンピュータ１の全体的な構成およびコンピュータ本体１０のハードウェア構成の例を示す図、図２はコンピュータ１の機能的構成の例を示す図である。
【００１２】
図１（ａ）に示すコンピュータ１は、コンピュータ本体１０、ディスプレイ１１、キーボード１２、およびマウス１３などによって構成される。コンピュータ１として、パーソナルコンピュータまたはワークステーションなどが用いられる。
【００１３】
コンピュータ本体１０は、図１（ｂ）に示すように、ＣＰＵ１０ａ、ＲＡＭ１０ｂ、ＲＯＭ１０ｃ、ハードディスク１０ｄ、画像インタフェース１０ｅ、入出力インタフェース１０ｆ、およびネットワークカード１０ｇなどによって構成される。
【００１４】
画像インタフェース１０ｅは、ディスプレイ１１と接続するためのインタフェースであって、画面を表示するための映像信号をディスプレイ１１に送出する。入出力インタフェース１０ｆは、キーボード１２およびマウス１３と接続するために用いられ、ユーザの操作の信号をキーボード１２およびマウス１３から入力する。ネットワークカード１０ｇは、ＬＡＮまたはインターネットなどと接続するためのＮＩＣ（Network Interface Card）である。
【００１５】
ハードディスク１０ｄには、オペレーティングシステムのほか、本発明に係るコンピュータプログラムＣＰがインストールされている。このコンピュータプログラムＣＰは、図２に示すようなデータ管理部２０Ｂ、論理回路データ入力部２０１、設定情報受付部２０２、設定情報検証部２０３、メッセージ通知部２０４、仮合成部２０５、多重データベース作成部２０６、分離データベース作成部２０７、論理回路構成処理部２０８、および結果ファイル出力部２０９などの機能を実現するためのコンピュータプログラムである。
【００１６】
コンピュータプログラムＣＰによると、設計済のＡＳＩＣ（Application Specific Integrated Circuit）を、複数のＦＰＧＡ（Field Programmable Gate Array）によって構成されるＡＳＩＣに変換（再設計）することができる。しかも、その際に、ＡＳＩＣ内で使用するピンの数を、従来の方法で変換する場合よりも削減することができる。
【００１７】
これらのプログラムおよびデータは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによってプログラムが実行される。
【００１８】
図３は既存のＡＳＩＣの例を示す図、図４および図５はピン情報ファイル６０Ａに含まれるピン情報テーブル８０の例を示す図である。
【００１９】
以下、図３に示すような、「ＦＵＮＣ１」、「ＦＵＮＣ２」、…、「ＦＵＮＣ６」という機能名をそれぞれ有する６つの機能のブロックＢＫ（ＢＫ１、ＢＫ２、…、ＢＫ６）、ＡＳＩＣの外部から信号を入力するための複数のポート（端子）、ＡＳＩＣの外部に信号を出力するための複数のポートなどによって構成されるＡＳＩＣを、複数のＦＰＧＡによって構成されるＡＳＩＣに変換する場合を例に、図２の各部の処理内容について説明する。ＡＳＩＣの外部から信号を入力するためのポート（端子）および外部に信号を出力するポート（端子）を、それぞれ、「外部入力ポート」および「外部出力ポート」と記載する。機能名は、ブロックＢＫの名称（ブロック名）としても用いられる。
【００２０】
なお、図３において、左方に示される、「ＩＤＴＡ」、「ＩＤＴＢ」、…、「ＣＬＫ２」という名称をそれぞれ有するポートが、外部入力ポートである。一方、右方に示される、「ＯＤＴＡ」、「ＯＤＴＢ」、…、「ＯＤＴＥ」という名称をそれぞれ有するポートが、外部出力ポートである。
【００２１】
また、外部入力ポートおよび外部出力ポートそれぞれの名称の横に、「［ｘ：０］」という形式で表わされる情報が付記されていることがある。これは、そのポートが使用するピンの範囲およびピン数を示している。つまり、そのポートが「０」番ないし「ｘ」番のピンつまり（ｘ＋１）本のピンを使用することを意味する。例えば、「［３：０］」は、そのポートが「０」〜「３」番のピンつまり４本のピンを使用することを意味する。
【００２２】
ただし、ピン数が１本である場合は、係る情報の付記は省略される。他の図面における、ブロックＢＫを構成する各ポートの名称の横に付記される「［ｘ：０］」も、同様である。また、ピンの番号は、１つのポートで使用されるピン同士を識別する、ローカルな番号である。したがって、一方のポートの１番のピンと他方のポートの１番のピンとは、共通ではなく、相違する。
【００２３】
以下、このような、ポートが使用するピンの範囲およびピン数に関する情報を「使用ピン情報」と記載する。
【００２４】
図２において、データ管理部２０Ｂは、後に順次説明する論理回路データ入力部２０１、設定情報受付部２０２、多重データベース作成部２０６、分離データベース作成部２０７、または論理回路構成処理部２０８の処理によって取得されたデータを記憶し管理する。
【００２５】
論理回路データ入力部２０１は、処理対象の論理回路つまり図３のＡＳＩＣのデータを入力しデータ管理部２０Ｂに記憶させる。具体的には、ピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂを入力する。
【００２６】
ピン情報ファイル６０Ａは、図４および図５に示すような、ブロックＢＫごとのピン情報テーブル８０（８０１、８０２、…、８０６）などによって構成される。ピン情報テーブル８０には、それに対応するブロックＢＫの各ポートのピンなどに関する情報が格納されている。例えば、図４（ａ）のピン情報テーブル８０１には、「ＦＵＮＣ１」の機能のブロックＢＫつまりブロックＢＫ１の各ポートのピンなどに関する情報が格納されている。
【００２７】
ピン情報テーブル８０には、そのピン情報テーブル８０に対応するブロックＢＫのポートごとに１つずつレコードが設けられている。１つのレコードは、「項」フィールドから「多重グループ」フィールドまで１０個のフィールドからなる。以下、ピン情報テーブル８０に設けられているレコードを「レコードＲＯ」と記載する。
【００２８】
「項」フィールドは、そのレコードＲＯを他のレコードＲＯと区別するための番号を示している。「Ｐｏｒｔ＿ｎａｍｅ」フィールドは、そのレコードに係るポートの名称を示している。
【００２９】
「ｒａｎｇｅ」フィールドは、そのポートの使用ピン情報つまりそのポートが使用するピンの範囲およびピン数を示している。その形式は、前に説明した外部入力ポートおよび外部出力ポートの場合と同様である。ただし、そのポートがピンを１本のみ使用する場合は、「１」を示す。
【００３０】
「Ｉ／Ｏ」フィールドは、そのポートが自らのブロックＢＫに信号を入力するためのポート（以下、「入力ポート」と記載する。）であるか、そのポートが他のブロックＢＫまたは外部出力ポートに信号を出力するためのポート（以下、「出力ポート」と記載する。）であるか、を示す。「Ｉ」である場合は入力ポートであること示し、「Ｏ」である場合は出力ポートであることを示す。
【００３１】
「ｔｙｐｅ」フィールドは、そのポートが複数のピンを使用するか否かを示す。「Ｓ」である場合はピンを１本のみ使用することを示し、「Ｖ」である場合は複数のピンを使用することを示す。
【００３２】
「信号種別」フィールドは、そのポートに入力されまたはそのポートから出力される信号の種類を示す。「ＣＬＫ」である場合はそのポートに入力される信号がクロック信号であることを示し、「ＤＴ」である場合はそのポートに入力されまたはそのポートから出力される信号がデータ信号であることを示す。
【００３３】
「同期クロック」フィールドは、そのポートが使用するクロック信号を入力する入力ポートの名称（Ｐｏｒｔ＿ｎａｍｅ）を示す。
【００３４】
「接続元種別」フィールドおよび「接続元Ｐｏｒｔ＿ｎａｍｅ」フィールドは、そのポートが接続される接続相手を示す。具体的には、「接続元種別」フィールドは、接続相手の種類を示す。例えば、他のブロックＢＫのいずれかの出力ポートが接続相手である場合は当該他のブロックＢＫのブロック名（当該他のブロックＢＫに対応する機能の機能名）を示し、外部入力ポートまたは外部出力ポートである場合は「Ｉ／Ｏ」という文字列を示す。一方、「接続元Ｐｏｒｔ＿ｎａｍｅ」フィールドは、接続相手の名称（Ｐｏｒｔ＿ｎａｍｅ）および使用ピン情報（ｒａｎｇｅ）が示される。使用するピンの数が「１」である場合は、使用ピン情報は省略される。
【００３５】
ただし、図４および図５の例では、外部入力ポートでも外部出力ポートでもない２つのポート同士（例えば、一方のブロックＢＫの出力ポートおよび他方のブロックＢＫの入力ポート同士）が接続される場合は、入力側のポートつまり入力ポートのレコードＲＯの「接続元種別」フィールドおよび「接続元Ｐｏｒｔ＿ｎａｍｅ」フィールドにのみ接続相手の情報を格納し、出力側のポートつまり出力ポートのレコードＲＯの両フィールドは空欄にしておく。例えば、図３に示すように、ブロックＢＫ３の「Ｆ３＿ＩＤＴＢ」のポート（入力ポート）とブロックＢＫ１の「Ｆ１＿ＯＤＴＢ」のポート（出力ポート）とが互いに接続されているが、この場合は、図４（ｃ）の第３項のレコードＲＯおよび図４（ａ）の第４項のレコードＲＯの通り、入力ポートのレコードＲＯにのみ接続相手の情報を格納し、出力ポートのレコードＲＯの両フィールドへの情報の格納は省略される。
【００３６】
「多重グループ」フィールドは、そのポートが属する、ピン多重処理の際のグループ（以下、「多重グループ」と記載する。）の識別情報（以下、「多重グループ番号」と記載する。）を示す。本フィールドの情報の使用方法については、後に説明する。なお、そのポートがピン多重処理の候補に該当しない場合は、係るフィールドは空欄である。
【００３７】
一方、ＲＴＬファイル６０Ｂには、図３のＡＳＩＣの各ブロックＢＫの、ＲＴＬ（Register Transfer Level）で記述した回路設計に関する情報が、格納されている。
【００３８】
図６は設定ファイル６０Ｃに含まれる設定情報の事項の例を示す図、図７は設定ファイル６０Ｄの例を示す図、図８は外部接続多重データベース７０Ａの例を示す図、図９は内部接続多重データベース７０Ｂの例を示す図、図１０は多重データベース作成処理の流れの例を説明するフローチャートである。
【００３９】
図２に戻って、設定情報受付部２０２は、ユーザが指定した、ピン多重処理の設定に関する情報を受け付けるための処理を行う。係る処理は、次のような手順で行われる。
【００４０】
ユーザが所定のキーボード１２またはマウス１３を操作してコマンドを入力すると、設定情報受付部２０２は、ピン多重処理の設定を指定するためのウィンドウをディスプレイ１１に表示させる。ここで、ユーザは、自分の所望する、図６に示す８つの事項に関する設定値を指定するとともに、ブロックＢＫ１〜ＢＫ６をどのＦＰＧＡに分類するのかおよび各ＦＰＧＡの最大使用ピン数を指定する。
【００４１】
すると、設定情報受付部２０２は、ユーザの操作の内容を認識することによって、ユーザの所望する設定の内容を受け付ける。それらに基づいて、図６の８つの事項それぞれの設定値を示す設定ファイル６０Ｃを生成し、かつ、図７のような、各ＦＰＧＡに属するブロックＢＫを示す設定ファイル６０Ｄを生成する。そして、設定ファイル６０Ｃ、６０Ｄをデータ管理部２０Ｂに記憶させる。なお、図６の事項のうち、ユーザが何も設定値を指定しなかったものについては、それに対応するデフォルト値が設定ファイル６０Ｃに示される。図６の各事項の意味は、後に説明する。
【００４２】
設定情報検証部２０３は、ユーザが指定した設定の内容つまり設定ファイル６０Ｃおよび設定ファイル６０Ｄに不具合がないか否かの検証を、例えば次のようにして行う。設定ファイル６０Ｃの設定値に、規定の範囲に該当しない値が含まれていないかどうかを検証することによって、設定ファイル６０Ｃの検証を行う。また、１つのブロックＢＫが複数のＦＰＧＡに重複して分類されていないかどうかまたはいずれのＦＰＧＡにも分類されていないブロックＢＫがないかどうかを検証することによって、設定ファイル６０Ｄの検証を行う。
【００４３】
メッセージ通知部２０４は、設定ファイル６０Ｃ、６０Ｄに不具合があることが設定情報検証部２０３によって見つけられた場合に、その不具合の内容および設定をやり直すべき旨のメッセージを、ディスプレイ１１に表示しまたは電子メールを送信するなどして、ユーザに対して通知する。
【００４４】
仮合成部２０５は、論理回路データ入力部２０１によって入力されたピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂに基づいて、既存の論理回路合成ツールを用いて、つまり、本発明に係るピン多重処理を用いることなく従来通りに、論理回路合成を行う。これにより、入力されたピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂに誤りがないかどうかの検証を行うことができる。もしも、いずれかに誤りがあると、従来通りの方法を用いても、論理回路合成を上手く行うことができないからである。
【００４５】
多重データベース作成部２０６は、図８に示すような外部接続多重データベース７０Ａおよび図９に示すような内部接続多重データベース７０Ｂを作成する。
【００４６】
外部接続多重データベース７０Ａは、論理回路データ入力部２０１によって入力されたピン情報ファイル６０Ａ（図４および図５参照）に示されるポートのうち外部出力ポートに接続されかつピン多重処理の候補であるポートに関する情報を集めたデータベースである。一方、内部接続多重データベース７０Ｂは、論理回路データ入力部２０１によって入力されたピン情報ファイル６０Ａに示されるポートのうちいずれかのブロックＢＫの入力ポートに接続されかつピン多重処理の候補であるポートに関する情報を集めたデータベースである。
【００４７】
多重データベース作成部２０６は、外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂを図１０に示す手順で作成する。
【００４８】
予め、論理回路データ入力部２０１によって入力されたピン情報ファイル６０Ａの各ピン情報テーブル８０の各レコードＲＯの「多重グループ」フィールドに示される多重グループ番号をチェックし、多重グループ番号ごとに、空の外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂを準備する（図１０の＃１００）。
【００４９】
ピン情報ファイル６０Ａを構成する各ピン情報テーブル８０のうちのいずれか１つのブロックＢＫのピン情報テーブル８０に注目する（＃１０２）。注目しているピン情報テーブル８０の中のいずれか１つの行つまりレコードＲＯに注目する（＃１０４）。
【００５０】
注目しているレコードＲＯの「多重グループ」フィールドに何らかの多重グループ番号が示されている場合は（＃１０５でＹｅｓ）、そのレコードＲＯに係るポートの接続相手の種類（種別）をチェックし、接続相手の種別に応じて、そのレコードＲＯに係るポートの情報を、ステップ＃１００で用意した、その多重グループ番号に対応する外部接続多重データベース７０Ａまたは内部接続多重データベース７０Ｂのいずれかに、次のように登録する。
【００５１】
注目しているレコードＲＯの「接続元種別」フィールドが「Ｉ／Ｏ」である場合は、そのレコードＲＯに係るポートの接続相手が外部出力ポートであると判別できる。この場合は（＃１０６でＹｅｓ）、同じ多重グループ番号に係る外部接続多重データベース７０Ａに新たなレコードを１つ登録し、そのポートの情報をそのレコードに書き込む（＃１０７）。以下、外部接続多重データベース７０Ａに登録されたレコードを「レコードＲＡ」と記載する。
【００５２】
注目しているレコードＲＯの「接続元種別」フィールドが空欄である場合は、そのレコードＲＯに係るポートの接続相手がいずれかのブロックＢＫの入力ポートであると判別できる。この場合は（＃１０６でＮｏ）、同じ多重グループ番号に係る内部接続多重データベース７０Ｂに新たなレコードを１つ登録し、そのポートの情報をそのレコードに書き込む（＃１０８）。以下、内部接続多重データベース７０Ｂに登録されたレコードを「レコードＲＢ」と記載する。
【００５３】
ところで、出力ポートは、例えば図３のブロックＢＫ３の「Ｆ３＿ＯＤＴＢ」のポートのように、分岐によって外部出力ポートおよびブロックＢＫの入力ポートの両方に接続されることがある。このような出力ポートの情報については、外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂの両方に登録する。
【００５４】
注目しているレコードＲＯに係るポートが、外部出力ポートおよびブロックＢＫの入力ポートの両方に接続されるか否かは、注目しているレコードＲＯの「接続元種別」フィールドが「Ｉ／Ｏ」であること、という条件、および、他のいずれかのレコードＲＯの「接続元Ｐｏｒｔ＿ｎａｍｅ」にその出力ポートの名称（Ｐｏｒｔ＿ｎａｍｅ）が示されていること、という条件の、両方を満たしているか否かをチェックすれば分かる。両方を満たしていれば、注目しているレコードＲＯに係るポートが分岐によって両方に接続されると判別できる。
【００５５】
なお、外部接続多重データベース７０Ａまたは内部接続多重データベース７０Ｂに今回登録したレコードＲＡ、ＲＢは、現在注目している（つまり、ステップ＃１０４で注目した）レコードＲＯに基づいている。
【００５６】
一方、注目しているレコードＲＯの「多重グループ」フィールドに何の多重グループ番号も示されていない場合は（＃１０５でＮｏ）、ステップ＃１０３に戻って、注目しているピン情報テーブル８０の中に未だ一度も注目したことのないレコードＲＯがあれば（＃１０３でＹｅｓ）、そのレコードＲＯに注目し直し（＃１０４）、そのレコードＲＯに係るポートについて上述のステップ＃１０５〜＃１０８の処理を実行する。既にすべてのレコードＲＯを注目した場合は（＃１０３でＮｏ）、ステップ＃１０１に戻る。
【００５７】
未だ注目したことのない他のブロックＢＫのピン情報テーブル８０それぞれについて、上に述べたステップ＃１０２〜＃１０８の処理を行う。このように、すべてのブロックＢＫのピン情報テーブル８０についてステップ＃１０２〜＃１０８の処理を行うことによって、外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂが作成される。
【００５８】
図４および図５に示す内容のピン情報ファイル６０Ａについて多重データベース作成部２０６が上記のフローチャートの処理を行うと、図８に示す内容の外部接続多重データベース７０Ａが接続されるクロック単位に作成され、かつ、図９に示す内容の内部接続多重データベース７０Ｂが接続されるクロック単位に作成される。なお、多重グループ番号が複数ある場合は、それぞれの多重グループ番号に対応する外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂが作成される。
【００５９】
作成された外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂは、データ管理部２０Ｂによって記憶され管理される。
【００６０】
後に説明するように、外部接続多重データベース７０Ａまたは内部接続多重データベース７０Ｂに示される出力ポートの一部または全部は、ピン多重処理が施される。係る処理が施されたポートから出力される信号は、多重回路によって多重化される。
【００６１】
図１１は分離データベース７０Ｃの例を示す図、図１２は分離データベース作成処理の流れの例を説明するフローチャートである。
【００６２】
図２に戻って、分離データベース作成部２０７は、図１１に示すような分離データベース７０Ｃを作成する。この分離データベース７０Ｃは、多重化された信号を分離する分離回路を介して出力ポートと接続される候補である入力ポートの情報を、集めたものである。
【００６３】
分離データベース作成部２０７は、分離データベース７０Ｃを図１２に示すような手順で作成する。
【００６４】
空の分離データベース７０Ｃを準備する（図１２の＃１１０）。内部接続多重データベース７０Ｂ（図９参照）の中のいずれか１つのレコードＲＢに注目する（＃１１２）。
【００６５】
ピン情報ファイル６０Ａ（図４および図５参照）のうちのいずれかのピン情報テーブル８０に注目する（＃１１４）。注目しているピン情報テーブル８０の中に、注目しているレコードＲＢに係るポート（出力ポート）の接続相手であるポート（入力ポート）のレコードＲＯが登録されていないかどうかをチェックする（＃１１５）。つまり、注目しているレコードＲＢの「Ｐｏｒｔ＿ｎａｍｅ」フィールドの値（名称）を「接続元Ｐｏｒｔ＿ｎａｍｅ」フィールドに示しているレコードＲＯを、検索する。
【００６６】
そのようなレコードＲＯが検索できた場合は（＃１１５でＹｅｓ）、分離データベース７０Ｃに新たなレコードを１つ登録し、その入力ポートの情報をそのレコードに書き込む（＃１１６）。以下、分離データベース７０Ｃに登録されたレコードを「レコードＲＣ」と記載する。レコードＲＣの内容は、レコードＲＯに基づいている。
【００６７】
残りのブロックＢＫのピン情報テーブル８０も順次注目し（＃１１４）、同様の処理を行う（＃１１５、＃１１６）。
【００６８】
内部接続多重データベース７０Ｂの中の他のレコードＲＢについても順次注目し（＃１１２）、同様の処理を行う（＃１１３〜＃１１６）。
【００６９】
図９に示す内容の内部接続多重データベース７０Ｂを対象としかつ図４および図５に示す内容のピン情報ファイル６０Ａを参照しながら仮合成部２０５が上記のフローチャートの処理を行うと、図１１に示す内容の分離データベース７０Ｃが作成される。作成された分離データベース７０Ｃは、データ管理部２０Ｂによって記憶され管理される。
【００７０】
内部接続多重データベース７０Ｂが複数ある場合つまり多重グループ番号が複数ある場合は、それぞれの内部接続多重データベース７０Ｂに基づいて図１２の処理を行うことによって、それぞれの多重グループ番号に対応する分離データベース７０Ｃを生成する。
【００７１】
図１３はＡＳＩＣ再設計処理の流れの例を説明するフローチャートである。
【００７２】
図２に戻って、論理回路構成処理部２０８は、データ管理部２０Ｂによって管理されているＲＴＬファイル６０Ｂ、設定ファイル６０Ｃ、設定ファイル６０Ｄ、外部接続多重データベース７０Ａ、内部接続多重データベース７０Ｂ、および分離データベース７０Ｃに基づいて、複数のＦＰＧＡからなるＡＳＩＣ（図１４〜図２０参照）を構成する処理を行う。係る処理は、図１３に示すような手順で実行される。また、図１３に示す処理において、ピン多重処理を行う対象の出力ポート同士の組合せ、単独でピン多重処理を行う対象の出力ポート、多重回路およびその配置、分離回路およびその配置、多重回路および分離回路に対してクロック信号を出力する制御回路およびその配置などは、下記の（規則１）〜（規則８）に従って求められる。
【００７３】
（規則１）  設定ファイル６０Ｃの第５項（図６参照）の「未接続クロックを追加しての多重」が「０：行わない」である場合は、接続相手が使用するクロック信号と異なるクロック信号を使用する出力ポートはピン多重処理から除外する。したがって、その出力ポートは他のいずれの出力ポートとも組み合わされないし、単独でピン多重処理が施されることもない。「１：行う」である場合は、接続相手が使用するクロック信号と同一のクロック信号を使用するか否かに関わらず、ピン多重処理の対象とする。
【００７４】
（規則２）  設定ファイル６０Ｃの第６項の「接続先の判断」が「０：行わない」である場合は、接続相手が所属するＦＰＧＡが同じであるか否かを問わず（つまり、判断することなく）、出力ポート同士を組み合わせることができる。一方、「１：行う」である場合は、それぞれの接続相手が所属するＦＰＧＡが同じである出力ポート同士でなければ組み合わせることができない。
【００７５】
（規則３）  設定ファイル６０Ｃの第８項の「機能ブロックを跨いでの多重」が「０：行わない」である場合は、同一のブロックＢＫに所属する出力ポート同士でなければ組み合わせることができない。一方、「１：行う」である場合は、同一のＦＰＧＡの中のブロックＢＫであれば、それぞれの所属するブロックＢＫが同一であるか否かに関わらず出力ポート同士を組み合わせることができる。
【００７６】
（規則４）  設定ファイル６０Ｃの第７項の「外部出力ピンの複製多重」が「０：行わない」である場合は、外部出力ポートに接続される出力ポートはピン多重処理から除外する。したがって、その出力ポートは他のいずれの出力ポートとも組み合わされないし、単独でピン多重処理が施されることもない。「１：行う」である場合は、外部出力ポートおよびブロックＢＫの入力ポートの両方に接続されている出力ポートについては、単独でのピン多重処理の対象となる。しかし、外部出力ポートのみに接続される出力ポートについては、「１：行う」である場合も、「０：行わない」である場合と同様に、ピン多重処理から除外される。
【００７７】
（規則５）  出力ポートの接続相手が、その出力ポートと同じＦＰＧＡに所属する入力ポートである場合は、その出力ポートはピン多重処理から除外する。したがって、その出力ポートは他のいずれの出力ポートとも組み合わされないし、単独でピン多重処理が施されることもない。
【００７８】
（規則６）  １つの組合せに対して、その組合せに係る出力ポートのピンを多重化する多重回路を配置する。また、単独でピンの多重化を行う出力ポートに対して、その出力ポートのピンを多重化する多重回路を配置する。これらの多重回路は、それらの出力ポートの所属するＦＰＧＡに配置する。
【００７９】
（規則７）  （規則６）に基づいて求められる多重回路によって多重化された信号を分離するための分離回路を、その信号が入力される入力ポートを有するブロックＢＫが所属するＦＰＧＡに配置する。設定ファイル６０Ｃの第６項の「接続先の判断」が「０：行わない」である場合は、１つの多重回路に対応して複数のＦＰＧＡに１つずつ分離回路が配置される場合がある。
【００８０】
（規則８）  その出力ポートとその接続相手である入力ポートとに注目し、多重回路および分離回路の配置（挿入）後、その出力ポートに接続される多重回路に入力されるクロック信号とその入力ポートに接続される分離回路に入力されるクロック信号とが同一になるようにする。つまり、多重回路および分離回路それぞれに入力されるクロック信号が同一になるようにする。
【００８１】
ここで、論理回路構成処理部２０８によるＡＳＩＣの構成の処理の手順を、多重グループ番号が１つである場合を例に説明する。
【００８２】
図１３の処理を開始する前に、既存の論理分割プログラムを使用するなどして、ピン情報ファイル６０Ａ、設定ファイル６０Ｃ、および設定ファイル６０Ｄに基づいて、処理対象のＡＳＩＣが有する機能のブロックＢＫをいずれかのＦＰＧＡに分割しておく。
【００８３】
図１３において、論理回路構成処理部２０８は、データ管理部２０Ｂに内部接続多重データベース７０Ｂが記憶されている場合は（＃１２０でＹｅｓ）、複数の出力ポートを組み合わせ、これらの出力ポートのピンの多重化（ピン多重処理）を行うための多重回路を生成する処理を行う。また、１つの出力ポートに対して単独でピン多重処理を行うための多重回路を生成する処理を行う。
【００８４】
すなわち、設定ファイル６０Ｃに基づいて多重数および多重回路のクロック速度を決定する（＃１２１）。つまり、多重するピンの数および多重回路に入力するクロック信号のクロック周波数を決定する。
【００８５】
組み合わせた各出力ポートの名称を取得し、それに基づいて所定の名前規則に従って、それらの出力ポートの多重化用の多重回路の出力ポートの名称を決定する（＃１２２）。以下、多重回路の出力ポートを「多重出力ポート」と記載する。単独の出力ポートのピンの多重化を行う多重回路の多重出力ポートの名称も、その出力ポートの名称に基づいて所定の名前規則に従って決定する。
【００８６】
決定した名称を用いて、各組合せに係る出力ポートのピン多重処理のための多重回路および単独の出力ポートのピン多重処理のための多重回路を生成する（＃１２３）。
【００８７】
さらに、論理回路構成処理部２０８は、外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂの両方に示される出力ポートが存在する場合つまり外部出力ポートおよびブロックＢＫの入力ポートの両方に接続されている出力ポートが存在する場合であって（＃１２４でＹｅｓ）、設定ファイル６０Ｃの第７項の「外部出力ピンの複製多重」が「１：行う」である場合は（＃１２５でＹｅｓ）、その出力ポートのピンを多重化するための多重回路を生成するための処理を行う（＃１２６〜＃１２９）。
【００８８】
すなわち、その設定ファイル６０Ｃに基づいてその多重回路の多重数および使用するクロック信号のクロック速度を決定し（＃１２６）、その多重回路の多重出力ポートの名称を決定し（＃１２７）、そしてその多重回路を生成する（＃１２８）。
【００８９】
さらに、論理回路構成処理部２０８は、ステップ＃１２３、＃１２８で生成したそれぞれの多重回路に対応する分離回路を、分離データベース７０Ｃに基づいて生成する処理を行う（＃１２９〜＃１３１）。
【００９０】
すなわち、それぞれの分離回路の多重数およびクロック速度を決定し（＃１２９）、その分離回路の入力側のポート（以下、「多重入力ポート」と記載する。）の名称を決定し（＃１３０）、そしてその分離回路を生成する（＃１３１）。多重入力ポートの名称として、その接続相手である多重出力ポートと同一の名称が用いられる。
【００９１】
さらに、論理回路構成処理部２０８は、ステップ＃１２３、＃１２８、＃１３１で生成した多重回路および分離回路にクロック信号を供給するための制御回路を生成する（＃１３２）。
【００９２】
そして、論理回路構成処理部２０８は、以上の通り生成した多重回路、分離回路、および制御回路を配置し、ポート間の接続関係を纏めるなどして、目的のＡＳＩＣ（図１４〜図２０参照）のデータを生成する（＃１３３）。具体的には、そのＡＳＩＣのピン情報ファイル６１ＡおよびＲＴＬファイル６１Ｂを生成する。
【００９３】
図２に戻って、結果ファイル出力部２０９は、論理回路構成処理部２０８によって生成されたピン情報ファイル６１ＡおよびＲＴＬファイル６１Ｂをコンピュータ１の外部に出力する。
【００９４】
図１４〜図２０は再設計されたＡＳＩＣの例を示す図、図２１は多重回路および分離回路が挿入された後のポート、ピン、およびラインの関係の例を示す図、図２２はピン情報テーブル８０の変形例を示す図である。
【００９５】
ここで、図６で説明した設定ファイル６０Ｃに示される設定値に応じて、図３に示すＡＳＩＣがどのようなＡＳＩＣに変換されるのかを、図１４〜図２０に示す回路図を参照しながら説明する。
【００９６】
図１４〜図２０において、「Ｓ１＿Ａ」、「Ｓ１＿Ｂ」、…、「Ｓ６＿Ｂ」は、ブロックＢＫの出力ポートの各ピンから出力される信号または入力ポートの各ピンに入力される信号が通る１つまたは複数のライン（信号線）を示している。つまり、１本のピンからなる出力ポートまたは入力ポートの場合は１本のラインを示し、複数本のピンからなる出力ポートまたは入力ポートの場合はピンごとに対応するライン群を示している。同一の符号が複数のラインまたはライン群を指していることがある。例えば、「Ｓ１＿Ａ」はブロックＢＫ１の出力ポートからのライン群とブロックＢＫ３の入力ポートへのライン群とを指しているが、これは、その出力ポートから出力された信号が両ライン群を通りかつＦＰＧＡを跨いで（つまり、その出力ポートの属するＦＰＧＡとは別のＦＰＧＡに属する）その入力ポートに入力されることを、意味する。
【００９７】
なお、図１４〜図２０においては、紙面のサイズの関係上、各ブロックＢＫ１〜ＢＫ６に設けられている各ポートの名称を省略している。これらは、図３に示す内容と同じであるので、必要に応じて図３を参照されたい。クロック信号の通るラインの符号も省略している。
【００９８】
設定ファイル６０Ｃの設定値がすべてデフォルト値である場合は、図１４に示すようなＡＳＩＣが得られる。
【００９９】
このＡＳＩＣにおいて、図２１に示すように、例えば、「Ｆ１＿ＯＤＴＡ」の出力ポートの１６本のピンからそれぞれ出力された信号および「Ｆ１＿ＯＤＴＢ」の出力ポートの２本のピンからそれぞれ出力された信号は、多重回路によって最大４多重に多重化される。ここでは、合計１８本のピンからの信号を４多重に多重化するので、その多重回路の多重出力ポートのピン数は５本となる。多重化された信号は、分離回路に入力されると、分離される。そして、分離された各信号は、目的の入力ポートに入力される。
【０１００】
他の出力ポートから出力される信号も同様に、必要に応じて多重回路および分離回路によって多重化され分離され、目的の入力ポートに入力される。
【０１０１】
設定ファイル６０Ｃ（図６参照）の設定値のうち、第５項の「未接続クロックを追加しての多重」が「１：行う」である場合は、前述の（規則１）の通り、接続相手が使用するクロック信号と異なるクロック信号を使用する出力ポートであっても、ピン多重処理の対象となる。第５項が「１：行う」であることによって、接続相手である「Ｆ５＿ＩＤＴＡ」が使用するクロック信号とは異なるクロック信号を使用する「Ｆ２＿ＯＤＴＣ」の出力ポートがピン多重処理の対象として選ばれ、かつ、第６項が「１：行う」が選ばれ、かつ、両事項の設定値がデフォルト値である場合は、図１５に示すようなＦＰＧＡが得られる。
【０１０２】
設定ファイル６０Ｃの設定値のうち、第６項の「接続先の判断」が「０：行わない」である場合は、前述の（規則２）の通り、複数の出力ポートそれぞれの接続相手が所属するＦＰＧＡが相違する場合であっても、これらの出力ポート同士を組み合わせることができる。第６項が「０：行わない」でありかつ第５項が「１：行う」であることによって、「Ｆ２＿ＯＤＴＡ」の出力ポートおよび「Ｆ２＿ＯＤＴＣ」の出力ポートが組み合わされ、かつ、両事項以外の設定値がデフォルト値である場合は、図１６に示すようなＦＰＧＡが得られる。
【０１０３】
設定ファイル６０Ｃの設定値のうち、第７項の「外部出力ピンの複製多重」が「１：行う」である場合は、前述の（規則４）の通り、外部出力ポートおよびブロックＢＫの入力ポートの両方に接続されている出力ポートについては、単独でのピン多重処理の対象となる。第７項が「１：行う」であり、かつ、他の事項の設定値がデフォルト値である場合は、図１７に示すようなＦＰＧＡが得られる。
【０１０４】
設定ファイル６０Ｃの設定値のうち、第８項の「機能ブロックを跨いでの多重」が「１：行う」である場合は、前述の（規則３）の通り、同一のＦＰＧＡの中のブロックＢＫであれば、それぞれが所属するブロックＢＫが相違する出力ポート同士を組み合わせることができる。第８項が「１：行う」であることによって「Ｆ１＿ＯＤＴＡ」、「Ｆ１＿ＯＤＴＢ」、および「Ｆ２＿ＯＤＴＡ」の各出力ポートが組み合わされ、かつ、他の事項の設定値がデフォルト値である場合は、図１８に示すようなＦＰＧＡが得られる。
【０１０５】
ところで、前に図５および図６で説明したように、元のＡＳＩＣの出力ポートを複数の多重グループに分類することができる。所定の複数の出力ポートを同じグループに組み合わされないようにしたい場合は、それぞれの出力ポートに対して異なる多重グループ番号が与えられるようにそれぞれの出力ポートのレコードＲＯを設定すればよい。
【０１０６】
ブロックＢＫ１のピン情報テーブル８０１が、図４（ａ）に示す内容の代わりに図２２に示す内容に設定されている場合、つまり、「Ｆ１＿ＯＤＴＡ」の出力ポートおよび「Ｆ１＿ＯＤＴＢ」の出力ポートが別々の多重グループに分類されている場合であり、かつ、設定ファイル６０Ｃのすべての設定値がデフォルト値である場合は、図１９に示すようなＦＰＧＡが得られる。または、第８項の「機能ブロックを跨いでの多重」が「１：行う」であり他の事項の設定値がデフォルト値である場合は、図２０に示すようなＦＰＧＡが得られる。
【０１０７】
図２３はコンピュータ１の全体的な処理の流れの例を説明するフローチャートである。
【０１０８】
次に、ＡＳＩＣの再設計を行う際のコンピュータ１の全体的な処理の流れを、図２３のフローチャートを参照して説明する。
【０１０９】
コンピュータ１は、変換（再設計）の対象であるＡＳＩＣのピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂを指定し、図６に示す各事項を必要に応じて指定し、ブロックＢＫ１〜ＢＫ６のＦＰＧＡへの分類を指定し、および多重グループ番号を必要に応じて指定するためのウィンドウを表示する（＃１）。
【０１１０】
ユーザが指定したピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂを入力する（＃２）。図６に示すいずれかの事項の設定値としてユーザがデフォルト値以外の値を指定した場合は（＃３でＹｅｓ）、その値も入力する（＃４）。
【０１１１】
ステップ＃２、＃４で入力された内容およびデフォルト値などに基づいて、ピン情報ファイル６０Ａ、ＲＴＬファイル６０Ｂ、設定ファイル６０Ｃ、および設定ファイル６０Ｄを適宜調整し、これらのファイルをデータ管理部２０Ｂに格納しておく（＃５）。
【０１１２】
設定ファイル６０Ｃおよび設定ファイル６０Ｄに不具合などの問題がないか否かの検証を行う（＃６）。問題がある場合は（＃６でＮｏ）、設定値などを指定し直すように促すメッセージを出力する。ユーザが設定値などを指定し直した場合は（＃７でＹｅｓ）、コンピュータ１は、それを入力し（＃８）、設定ファイル６０Ｃまたは設定ファイル６０Ｄをデータ管理部２０Ｂに格納し直す（＃５）。
【０１１３】
ピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂを使用して、従来の手法によってＡＳＩＣの生成（仮合成）を行う（＃９）。これにより、ピン情報ファイル６０ＡおよびＲＴＬファイル６０Ｂに問題がないか否かを確認することができる。
【０１１４】
問題がない場合は（＃１０でＹｅｓ）、外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂを生成し（＃１１）、さらに分離データベース７０Ｃを生成する（＃１２）。外部接続多重データベース７０Ａおよび内部接続多重データベース７０Ｂを生成する処理の手順は、前に図１０で説明した通りである。分離データベース７０Ｃを生成する処理の手順は前に図１２で説明した通りである。
【０１１５】
ＡＳＩＣの再設計を行い、ピン情報ファイル６１ＡおよびＲＴＬファイル６１Ｂを生成する（＃１３）。これらの処理の手順は、前に図１３で説明した通りである。前に図１４〜図２０で説明したように、ピン情報ファイル６０Ａに示される多重グループおよび設定ファイル６０Ｃに示される各事項（図６参照）の設定値に応じて、再設計の結果は様々である。
【０１１６】
そして、これらのピン情報ファイル６１ＡおよびＲＴＬファイル６１Ｂつまり再設計の結果をＲＴＬファイル６０Ｂに格納し（＃１４）、処理結果をユーザに通知しまたは出力する（＃１５）。
【０１１７】
本実施形態によると、元の論理回路を複数のＦＰＧＡに分割し再設計する場合において、使用するピンの数を従来よりも削減することができる。さらに、再設計する目的などに応じて、設定ファイル６０Ｃの内容を変更し、多重化の対象およびその組合せを適宜変更することができる。
【０１１８】
コンピュータ１の全体または各部の構成、処理内容、処理順序、ファイルの構成、データベースの構成などは、本発明の趣旨に沿って適宜変更することができる。
【０１１９】
上に述べた実施例には、以下に述べるような付記も開示されている。
（付記１）
複数のブロックによって構成される論理回路の再設計を行うコンピュータのために用いられる論理回路再設計プログラムであって、
前記コンピュータに、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得処理を実行させ、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させ、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させる、
ことを特徴とする論理回路再設計プログラム。
（付記２）
複数の出力ポートそれぞれのピンから出力される信号を１つの前記多重回路によって多重化させる場合は、出力される信号の入力先のブロックが互いに同一である出力ポートのピンから出力される信号が当該多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる、
付記１記載の論理回路再設計プログラム。
（付記３）
各ブロックを複数のＦＰＧＡ（Field Programmable Gate Array）のうちのいずれかに分類するブロック分類処理を、前記コンピュータに実行させ、
出力される信号の入力先のブロックのＦＰＧＡとは異なるＦＰＧＡのブロックの出力ポートのピンから出力される信号のみが前記多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる、
付記１または付記２記載の論理回路再設計プログラム。
（付記４）
複数の出力ポートそれぞれのピンから出力される信号を１つの前記多重回路によって多重化させる場合は、出力される信号の入力先のブロックに入力されるクロック信号が互いに同一である出力ポートのピンから出力される信号が当該多重回路によって多重化される対象になるように、前記コンピュータに前記多重回路配置処理を実行させる、
付記１ないし付記３のいずれかに記載の論理回路再設計プログラム。
（付記５）
前記分離回路に、当該分離回路が分離すべき多重化された信号の出力元である前記多重回路のクロック信号と同一のクロック信号が入力されるように、前記コンピュータに前記分離回路配置処理を実行させる、
付記１ないし付記４のいずれかに記載の論理回路再設計プログラム。
（付記６）
ブロックの出力ポートを複数の多重グループのうちのいずれかに分類する処理を前記コンピュータに実行させ、
同一の多重グループに分類される出力ポートごとに前記コンピュータに前記多重回路配置処理を実行させる、
付記１ないし付記５のいずれかに記載の論理回路再設計プログラム。
（付記７）
複数のブロックによって構成される論理回路の再設計を行う論理回路設計装置であって、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得手段と、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を、前記ピン情報および前記接続情報に基づいて配置する、多重回路配置処理手段と、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を前記ピン情報および前記接続情報に基づいて配置する分離回路配置手段と、
を有することを特徴とする論理回路設計装置。
（付記８）
複数のブロックによって構成される論理回路の再設計を行う論理回路再設計方法であって、
コンピュータに、
各ブロックに設けられているそれぞれのポートで使用されるピンに関するピン情報および当該ポート同士の接続関係を示す接続情報を取得するピン情報等取得処理を実行させ、
ブロックの出力ポートの複数のピンを当該ピンの数よりも少ない数のピングループに分類し、同一のピングループに分類された各ピンから出力される信号を多重化する機能を有する多重回路を配置する、多重回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させ、
ブロックの出力ポートから出力されかつ前記多重回路によって多重化された信号を分離する機能と分離した各信号をそれぞれの入力先のブロックの入力ポートに対して出力する機能とを有する分離回路を配置する分離回路配置処理を、前記ピン情報および前記接続情報に基づいて実行させる、
ことによって前記論理回路の再設計を行う、
ことを特徴とする論理回路再設計方法。
【図面の簡単な説明】
【０１２０】
【図１】コンピュータの全体的な構成およびコンピュータ本体のハードウェア構成の例を示す図である。
【図２】コンピュータの機能的構成の例を示す図である。
【図３】既存のＡＳＩＣの例を示す図である。
【図４】ピン情報ファイルに含まれるピン情報テーブルの例を示す図である。
【図５】ピン情報ファイルに含まれるピン情報テーブルの例を示す図である。
【図６】設定ファイルに含まれる設定情報の事項の例を示す図である。
【図７】設定ファイルの例を示す図である。
【図８】外部接続多重データベースの例を示す図である。
【図９】内部接続多重データベースの例を示す図である。
【図１０】多重データベース作成処理の流れの例を説明するフローチャートである。
【図１１】分離データベースの例を示す図である。
【図１２】分離データベース作成処理の流れの例を説明するフローチャートである。
【図１３】ＡＳＩＣ再設計処理の流れの例を説明するフローチャートである。
【図１４】再設計されたＡＳＩＣの例を示す図である。
【図１５】再設計されたＡＳＩＣの例を示す図である。
【図１６】再設計されたＡＳＩＣの例を示す図である。
【図１７】再設計されたＡＳＩＣの例を示す図である。
【図１８】再設計されたＡＳＩＣの例を示す図である。
【図１９】再設計されたＡＳＩＣの例を示す図である。
【図２０】再設計されたＡＳＩＣの例を示す図である。
【図２１】多重回路および分離回路が挿入された後のポート、ピン、およびラインの関係の例を示す図である。
【図２２】ピン情報テーブルの変形例を示す図である。
【図２３】コンピュータの全体的な処理の流れの例を説明するフローチャートである。
【符号の説明】
【０１２１】
１  コンピュータ（論理回路設計装置）
２０１  論理回路データ入力部（ピン情報等取得手段）
２０６  多重データベース作成部（多重回路配置処理手段）
２０７  分離データベース作成部（多重回路配置処理手段、分離回路配置手段）
２０８  論理回路構成処理部（多重回路配置処理手段）
６０Ａ  ピン情報ファイル（ピン情報、接続情報）
ＢＫ  ブロック
【図１】
2008083750.tif 000003
【図２】
2008083750.tif 000004
【図３】
2008083750.tif 000005
【図４】
2008083750.tif 000006
【図５】
2008083750.tif 000007
【図６】
2008083750.tif 000008
【図７】
2008083750.tif 000009
【図８】
2008083750.tif 000010
【図９】
2008083750.tif 000011
【図１０】
2008083750.tif 000012
【図１１】
2008083750.tif 000013
【図１２】
2008083750.tif 000014
【図１３】
2008083750.tif 000015
【図１４】
2008083750.tif 000016
【図１５】
2008083750.tif 000017
【図１６】
2008083750.tif 000018
【図１７】
2008083750.tif 000019
【図１８】
2008083750.tif 000020
【図１９】
2008083750.tif 000021
【図２０】
2008083750.tif 000022
【図２１】
2008083750.tif 000023
【図２２】
2008083750.tif 000024
【図２３】
2008083750.tif 000025