(57)【要約】【課題】  本発明は論理回路分割方法及び装置に関し、出戻り工数を削減することができる論理回路分割方法及び装置を提供することを目的としている。【解決手段】  ＲＴＬを入力すると共に各種設定を行なう入力データ部１０と、該入力データ部１０の出力を受けてデータベースを作成するデータベース作成部２０と、該データベース作成部２０と接続され、各種情報を格納するデータベース格納部３０と、該データベース格納部３０と接続され、前記入力データ部１０の出力を受けて分割処理を行なう分割処理部４０と、該分割処理部４０の出力を受けて結果データを格納する結果データ部５０とにより構成される。【選択図】    図３
2006178827.tif 000002
【特許請求の範囲】
【請求項１】
各ブロックのＲＴＬを事前に論理合成及びレイアウトし、
前記ブロックに関する情報をデータベース化し、
このデータベースを基に自動で各ＦＰＧＡ／ＰＬＤに分割を行なう、
ことを特徴とする論理回路分割方法。
【請求項２】
クロック／リセットの共通ブロックの複製を行なうことを特徴とする請求項１記載の論理回路分割方法。
【請求項３】
前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうことを特徴とする請求項１記載の論理回路分割方法。
【請求項４】
前記分割を行なう場合において、各ブロックの使用率の高いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする請求項１記載の論理回路分割方法。
【請求項５】
ＲＴＬを入力すると共に各種設定を行なう入力データ部と、
該入力データ部の出力を受けてデータベースを作成するデータベース作成部と、
該データベース作成部と接続され、各種情報を格納するデータベース格納部と、
該データベース格納部と接続され、前記入力データ部の出力を受けて分割処理を行なう分割処理部と、
該分割処理部の出力を受けて結果データを格納する結果データ部と、
により構成される論理回路分割装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は論理回路分割方法及び装置に関し、更に詳しくは、機能ブロック毎に形成される論理回路を複数のＦＰＧＡ／ＰＬＤ等で実現する場合において、各ブロックの論理合成及びレイアウト結果を基に分割プログラムにより、各ＦＰＧＡ／ＰＬＤ等に回路を最適に振り分ける論理回路の分割方法及び装置に関する。
【背景技術】
【０００２】
ＬＳＩ開発においては、論理検証まではプロトタイプとしてＦＰＧＡ／ＰＬＤ等を使用して、量産時にＡＳＩＣに変換する開発フローが幅広く採用されており、増加の一途にある。ここで、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（大規模ＰＬＤ）のことであり、ＰＬＤはＰｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ（論理回路を手元でプログラムできるＬＳＩ）のことであり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（特定用途向け集積回路）のことである。
【０００３】
しかしながら、ＡＳＩＣの論理回路をＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）として実現するためには、数個から数１０個のＦＰＧＡ／ＰＬＤを必要とし、分割作業に多くの工数を費やしている。その理由としては、各デバイスに回路規模や使用ピン数等の内部リソースの使用制限があるために、ユーザの使用するデバイスとその個数の最適な選定がますます難しくなってきていることが挙げられる。
【０００４】
従来のこの種のシステムとしては、ＲＴＬを読み込んでグラフを生成し、部分回路を選択して、隣接ノードの分割を行ない、新たな回路部分を生成し、生成された回路部品、新たな回路部分を出力する技術が知られている（例えば特許文献１参照）。また、ＦＰＧＡ等のプログラム可能なゲートアレイに対して、ＲＴＬ等の複数種類の論理回路のマッピングを行なってシミュレーションを実行する論理回路シミュレーションシステムが知られている（例えば特許文献２参照）。
【０００５】
また、大規模なＡＳＩＣあるいは論理装置の電子回路を複数のプログラマブルチップに割り当てる際に、設計効率と動作タイミングとを考慮した論理分析装置が知られている（例えば特許文献３参照）。また、論理回路接続情報を入力し、この接続情報の論理検証を行なった後、集積回路のレイアウト設計を行なう集積回路設計装置及び設計方法が知られている（例えば特許文献４参照）。
【特許文献１】特開２０００−２２２４４２号公報（段落００２５〜００３０、図１〜図３）
【特許文献２】特開２００４−７０６５８号公報（段落００１８〜００２９、図１）
【特許文献３】特許第３１８４４２０号公報（段落００１４〜００２７、図１〜図３）
【特許文献４】特開平９−１３８８１７号公報（段落００１２〜００１９、図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術において、論理合成後のネットリスト（Ｎｅｔ  Ｌｉｓｔ：回路の接続状態をＡＮＤ、ＯＲ等のセルで表現したデータ）を入力データとして分割作業を行なう場合、回路変更が発生すると、その影響は該当ブロックが複数ブロックに及ぶため変更の影響が大きいという問題がある。また、既存回路を用いて分割作業を行なう場合、近年の高速な大規模回路では、実レイアウト時に、性能面で見積もり値との差異が大きいという問題がある。
【０００７】
これらの問題により、多くの出戻り工数が発生するため、ＳｏＣ開発のＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ：要求した処理について、結果が得られるまでにかかる時間）の増加が問題となっている。
【０００８】
本発明はこのような課題に鑑みてなされたものであって、出戻り工数を削減することができる論理回路分割方法及び装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
論理回路のＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ：レジスタ間の動作で表した回路設計のレベル）が機能ブロック毎に記述されていることに着目する。そして、ＲＴＬを入力データとして分割することで、回路変更が発生した場合、該当ブロックの特定が容易となり、変更影響を最小限に抑えることができる。また、そのＲＴＬを事前に論理合成及びレイアウトし、全ブロック情報をデータベース化することで、見積もりの精度があがり、実レイアウト時との差異を少なくすることができる。
【００１０】
（１）請求項１記載の発明は、各ブロックのＲＴＬを事前に論理合成及びレイアウトし、前記ブロックに関する情報をデータベース化し、このデータベースを基に自動で各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする。
【００１１】
（２）請求項２記載の発明は、クロック／リセットの共通ブロックの複製を行なうことを特徴とする。
（３）請求項３記載の発明は、前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうことを特徴とする。
【００１２】
（４）請求項４記載の発明は、前記分割を行なう場合において、各ブロックの使用率の高いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする。
ここで、使用率とは、デバイスの使用量を１００％とした場合の割合を示す。
【００１３】
（５）請求項５記載の発明は、ＲＴＬを入力すると共に各種設定を行なう入力データ部と、該入力データ部の出力を受けてデータベースを作成するデータベース作成部と、該データベース作成部と接続され、各種情報を格納するデータベース格納部と、該データベース格納部と接続され、前記入力データ部の出力を受けて分割処理を行なう分割処理部と、該分割処理部の出力を受けて結果データを格納する結果データ部とにより構成されることを特徴とする。
【００１４】
（６）また、本発明は、前記分割を行なう場合において、各ブロックの使用率の低いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする。
（７）また、本発明は、前記分割を行なう場合において、あるブロックの使用率が、分割する各ＦＰＧＡ／ＰＬＤの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうことを特徴とする。
【００１５】
（８）また、本発明は、前記分割を行なう場合において、入出力ピン／使用デバイスの使用率に任意の上限値を設定して分割を行なうことを特徴とする。
（９）また、本発明は、前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうことを特徴とする。
【００１６】
（１０）また、本発明は前記分割を行なう場合において、性能が満たせない場合には、ＲＴＬ修正の通知を行なうことを特徴とする。
【発明の効果】
【００１７】
（１）請求項１記載の発明によれば、より精度の高い分割を行なうことができる。
（２）請求項２記載の発明によれば、動作速度の向上、クロック／リセットのスキューの低減を可能にすることができる。
【００１８】
（３）請求項３記載の発明によれば、ユーザの意図した分割を可能にすることができる。
（４）請求項４記載の発明によれば、法則性による処理速度の向上を可能にすることができる。
【００１９】
（５）請求項５記載の発明によれば、より精度の高い分割を行なうことができる。
（６）また、本発明によれば、法則性による処理速度の向上を可能にすることができる。
【００２０】
（７）また、本発明によれば、法則性による処理速度の向上、最適な回路規模への分割を可能にすることができる。
（８）また、本発明によれば、ユーザの意図した仕様への適応を容易にすることができる。
【００２１】
（９）また、本発明によれば、ピンの有効活用、速度向上（ファンアウトの増加による遅延低減）を可能にすることができる。
（１０）また、本発明によれば、処理速度の向上、ユーザの利便性（実現性の判定）の向上を可能にすることができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
図１は本発明の入力データである論理回路のブロック構成図である。論理回路（Ｆｕｎｃ  Ｔｏｐ）は、各ブロック（Ｆｕｎｃ）で構成し、ブロック間の結線は、ＴＯＰ  ＲＴＬ内で記述する。そして、このＲＴＬより、分割作業に用いる結線データを抽出する。また、ブロック１（Ｆｕｎｃ１），ブロック２（Ｆｕｎｃ２），ブロック３（Ｆｕｎｃ３）の論理回路情報は、それぞれＲＴＬ１，ＲＴＬ２，ＲＴＬ３で記述する。各ブロック内のＬＶｉ（ｉは任意の整数）はレベルを示す。このレベルＬＶｉは記述のレベルを表し、それぞれツリー構造で表わされている。
【００２３】
本ＲＴＬを用いて、論理合成及びレイアウトを行ない、分割作業に用いる論理合成／レイアウトデータを抽出する。論理回路のＲＴＬが機能ブロック毎に記述されている本発明の構成では、あるブロックに回路変更が発生した場合、該当ブロックの特定が容易となり、変更影響を最小限に抑えることができる。
【００２４】
図２は本発明の原理構成図である。本発明は、論理合成レイアウト部１と、データベース２と分割プログラム部３により構成される。図１に示す論理回路のＲＴＬ４と設定ファイル５を入力データとして、論理合成レイアウト部１で論理合成及びレイアウトを行ない、結果データである論理回路情報をデータベース２として格納し、その情報と設定値を基に論理回路分割プログラム部３により、ＦＰＧＡ／ＰＬＤへの振り分けを行なう。図では、ＦＰＧＡ６に分割結果を振り分ける例を示している。図では、ＦＰＧＡ１とＦＰＧＡ２に分割されている例を示す。論理回路のＲＴＬを事前に論理合成及びレイアウトして、全ブロック情報をデータベース化することで、全ブロック情報をデータベース化することで、見積もり精度が上がり、実レイアウト時との差異を少なくすることができる。
【００２５】
図３は本発明の一実施の形態例を示すブロック図である。図において、１０はＲＴＬを入力すると共に各種設定を行なう入力データ部、２０は該入力データ部１０の出力を受けてデータベースを作成するデータベース作成部、３０は該データベース作成部２０と接続され、各種情報を格納するデータベース格納部、４０は該データベース格納部３０と接続され、前記入力データ部１０の出力を受けて分割処理を行なう分割処理部、５０は該分割処理部４０の出力を受けて結果データを格納する結果データ部である。
【００２６】
入力データ部１０において、１１はＡＳＩＣの論理回路を記述したＲＴＬを格納するＲＴＬ受入部、１２はデバイス、個数、動作速度等を入力する各種設定部である。データベース作成部２０において、２１はＲＴＬから各ブロック間の結線数を抽出する結線数抽出部、２２はＲＴＬを用いて論理合成を行なう論理合成部、２３は論理合成部２２の出力を受けて論理合成後のネットリストを用いてレイアウトするレイアウト部（配線配置部）である。
【００２７】
データベース格納部３０において、３１はデータベース作成部２０で作成された結線数、論理合成、レイアウトデータをデータベースとして格納するデータベースである。分割処理部４０において、４１はデータベースと各種設定値とを比較し、各種設定値が所定の範囲内であるかどうかを判定する初期判定部、４２はデータベースを用いて各ＦＰＧＡ／ＰＬＤに振り分けを行なう回路分割部である。結果データ部５０において、５１はＡＳＩＣの回路を各ＦＰＧＡ／ＰＬＤに振り分けた結果を格納する結果データ格納部、５２はＲＴＬ修正が必要な場合に、修正通知を行なう修正通知部である。
【００２８】
図４は本発明の設定項目例を示す図である。使用デバイス（例えばＤＥＶＩＣＥ−１，ＤＥＶＩＣＥ−２…）の各項目にピン数、個数、使用率、Ｉ／Ｏの項目を入力するようになっている。ここで、使用率とはデバイスの使用量を１００％とした場合の割合を表わす（以下同様）。また、各デバイスの各種情報（メモリの数、ＦＦの数、乗算器の数等）は予め登録しておく。各項目の優先度は、ピン数が一番高く、その次に個数、その次に使用率、その次にＩ／Ｏである。ＤＥＶＩＣＥの優先度はＤＥＶＩＣＥ−１が一番高く、ＤＥＶＩＣＥ−２がその次に高く、ＤＥＶＩＣＥ−３と続く。
【００２９】
図５は本発明の結線抽出例を示す図である。図は、ブロック間の入力数／出力数の対応を示している。例えば、ＲＴＬ１の出力からＲＴＬ２の入力に対して、５０ピンあることを示す。このデータで、つなぎのピン数が分かる。このデータは、実装デバイス内のピン数決定時に用いる。
【００３０】
図６は本発明の分割初期動作を示すフローチャートである。先ず、ＲＴＬ受入部１１はＲＴＬを入力する（Ｓ１）。次いで、各種設定部１２はデバイス、個数、動作速度等、各種変数を設定するか否かを決定する（Ｓ２）。設定する場合、ステップＳ３へ、設定しない（デフォルト設定）場合には、ステップＳ４へスキップする。各種設定部１２は各種変数を入力する（Ｓ３）。各種変数は図４に示した通りである。
【００３１】
次に、結線数抽出部２１は入力データであるＴＯＰ  ＲＴＬから各階層ブロック間の結線数を抽出する（Ｓ４）。各階層ブロック間の結線数は図５に示した通りである。次に、結線数抽出部２１は、ＲＴＬ受入部１１の出力を受けてステップＳ４で抽出した結線数データをデータベース３１に格納する（Ｓ５）。論理合成部２２は、入力データである各階層ブロックのＲＴＬを論理合成する（Ｓ６）。
【００３２】
次に、論理合成部２２は、ステップＳ６で論理合成した結果をデータベース３１に格納する（Ｓ７）。次に、初期判定部４１は、データベース３１に格納されているレイアウトデータが設定動作速度の範囲内であるかどうかを判定する（Ｓ８）。範囲内であれば、分割詳細フローへスキップする。範囲外である場合には、ステップＳ９に進む。次に、レイアウト部２３は、論理合成結果のネットリストを用いてレイアウト（配置配線）する（Ｓ９）。レイアウト部２３は、ステップＳ９でレイアウトした結果をデータベース３１に格納する（Ｓ１０）。
【００３３】
次に、初期判定部４１は、データベース３１に格納されているレイアウトデータが設定動作速度の範囲内であるか否かを判定する（Ｓ１１）。設定範囲内であれば、ステップＳ１２に進み、設定範囲外であれば、ステップＳ１３へ進む。ステップＳ１２では、初期判定部４１がレイアウトデータが設定デバイスの範囲内であるか否かを判定する（Ｓ１２）。範囲内であれば、分割詳細フローにスキップし、範囲外であれば、ステップＳ１５に進む。
【００３４】
次に、初期判定部４１は、設定動作速度を変更するか否かを判定する（Ｓ１３）。変更する場合にはステップＳ３へフィードバックして処理を行なう。変更しない場合には、ステップＳ１４へ進む。ステップＳ１４では、回路分割部４２が論理合成／レイアウトデータを受けて、ＲＴＬ修正を修正通知部５２に通知して処理を終了する。修正通知部は、修正通知があったことをディスプレイ（図示せず）に通知する。ステップＳ１５では、初期判定部４１が、設定デバイスの範囲を超えるブロックの階層展開処理より、設定デバイスの変更を優先するか否かを判定する。設定デバイスの変更を優先する場合には、ステップＳ３にフィードバックし、階層展開処理を優先する場合にはステップＳ１６へ進む。ステップＳ１６では、初期判定部４１が論理合成／レイアウトデータを基に、設定デバイスの範囲を超えるブロックを階層展開して、ステップＳ４にフィードバックする。
【００３５】
図７は本発明の分割詳細動作を示すフローチャートである。この実施の形態例では、使用率をキーワードとし、使用率の高いブロックを優先するものである。
回路分割部４２は、論理回路内のブロックのうち、未実装ブロックがあるかどうかを判定する（Ｓ１）。未実装ブロックがあれば、ステップＳ２へ進み、未実装ブロックがない場合（全ブロック実装）には、ステップＳ１１にスキップする。次に、回路分割部４２は未実装ブロックのうち、使用率が最も高いブロックを実装候補として指定する（Ｓ２。以後指定ブロックと呼ぶ）。
【００３６】
回路分割部４２は、論理回路内に、複製して共通に使用するブロック（以後、複製ブロックと呼ぶ）があるか否かを判定する（Ｓ３）。複製ブロックがあればステップＳ４へ、なければ指定ブロックを該当ブロックとしてステップＳ５へスキップする。ステップＳ４では、回路分割部４２が指定ブロックと複製ブロックをあわせて該当ブロックとする（使用率は合計する）。
【００３７】
次に、ステップＳ５では、該当ブロックの使用率が、事前に設定ファイル内で指定した使用率の上限値を上回っているか否かを判定する。上回っていればステップＳ６に進み、上回っていなければステップＳ７にスキップする。ステップＳ６では、回路分割部４２が指定ブロックを階層展開して複数のブロックに分割し、ステップＳ２へフィードバックする。ステップＳ７では、回路分割部４２が未実装ブロックのうち、使用率の上限値から該当ブロックの使用率を差し引いた値の範囲内に収まるブロックがあるか否かを判定する。あればステップＳ８へ進み、なければステップＳ９へスキップする。
【００３８】
ステップＳ８では、回路分割部４２がステップＳ７で該当するブロックのうち、使用率が最も高いブロックを該当ブロックにあわせ（使用率は合計する）、ステップＳ７へフィードバックする。ステップＳ９では、回路分割部４２が該当ブロックを１ＦＰＧＡブロックとして確定する。次に、回路分割部４２は、該当ブロックに含まれる全ブロックを実装ブロックとして登録し、ステップＳ１へフィードバックする（Ｓ１０）。この結果、未実装ブロックがなくなった時点で回路分割部４２は結果データを結果データ格納部５１へ格納して（Ｓ１１）、処理が終了する。
【００３９】
次に、本発明の実施例について説明する。図８は本発明の入力データである論理回路のブロック構成例を示す図である。本論理回路のＲＴＬは、それぞれＡＡＡ，ＢＢＢ，ＣＣＣ，ＤＤＤ，ＺＺＺＺの機能ブロック毎で、ブロック間結線はＴＯＰ  ＲＴＬで記述する。なお、ＡＡＡはＡＡ１，ＡＡ２，ＡＡ３を、ＢＢＢはＢＢ１，ＢＢ２を、ＣＣＣはＣＣ１，ＣＣ２を下位階層に持つ。
【００４０】
図９は本発明の入力データである設定ファイル例を示す図である。本ファイルは、使用デバイスをＤＥＶＩＣＥ−１、そのピン数を１０００ピン、デバイスの使用個数を４個、各デバイスの使用率の上限値を７５％、ユーザの使用Ｉ／Ｏピン数の上限値を７００ピン、最低動作速度５０ＭＨｚ、複製ブロックＺＺＺ、階層展開優先、設定速度変更なし、高使用率優先と設定した例である。複製ブロックＺＺＺは、各ブロックで共通に使用される基本的なブロック（回路）のことである（図１４参照）。
【００４１】
本ＲＴＬ及び設定ファイルを入力データとして、本発明の論理回路をフローに沿って以下に説明する。なお、本実施例では、メモリ、ＦＦ、乗算器、…の使用個数制限を説明上無視するものとする。
（ＲＴＬ修正例）
ＴＯＰ  ＲＴＬより各ブロック間の結線数を抽出する。図１０は本発明の結線抽出例を示す図である。図１０に示す入力ピン数／出力ピン数の対応関係をデータベース化する。本データは、実装デバイス内のＩ／Ｏピン数を判定する際に用いる。次に、各ブロックのＲＴＬの論理合成を行ない、その結果を抽出する。図１１は各ブロックのデータベース例を示す図である。図に示す使用率、動作速度をデータベース化する。本結果のうち、ＤＤＤの動作速度が４５ＭＨｚで、図９に示す設定値である最低動作速度５０ＭＨｚを満足していないため、引き続きレイアウトを行なう。
【００４２】
次に、各ブロックのネットリストを用いて、レイアウトを行ない、その結果を抽出する。図１１に示す使用率、動作速度をデータベース化する。本結果のうち、ＤＤＤは論理合成結果と変わらず、設定値を満足していない。更に、設定速度変更なしを設定しているので、論理合成、レイアウト情報を付けて、ＤＤＤのＲＴＬ修正を修正通知部５２に通知して処理を終了する。ＤＤＤのＲＴＬを修正後、上記と同様の構成で論理回路分割をフローに沿って以下に説明する。
（結果データ例）
上記と同様、結線数を抽出すると、同様に図１０となる。各ブロックのＲＴＬの論理合成を行ない、その結果を図１２に示す。図１２は各ブロックの他のデータベース例を示す図である。本結果と図９に示す設定値とを比較する。比較の結果、範囲内であるので、詳細分割フローに進む。図１４に示す分割原理図に沿って説明する。
【００４３】
Ｓ１：論理回路を４ＦＰＧＡに振り分けを行なう。
Ｓ２：未実装ブロックのうち、最上位階層で使用率が最も高いＡＡＡブロック（８０％）と共通ブロックＺＺＺ（２％）を実装候補（８２％）とし、その値と上限値（７５％）とを比較した結果、上回るため、ＡＡＡブロックを階層展開し、ＡＡＡ１（４５％）、ＡＡ２（２５％）、ＡＡ３（１０％）を最上位階層とする。ここで、データベースは図１３に示すデータベース（階層展開）に更新される。
【００４４】
Ｓ３：使用率が最も高いブロックＢＢＢ（６５％）と共通ブロックＺＺＺ（２％）を実装候補（６７％）とし、その値と上限値（７５％）とを比較した結果、範囲内であるので、次にその値を上限値から引いた値（８％）を基に未実装ブロックから、範囲内のブロックを探す。その結果、該当するブロックがないので、ＢＢＢとＺＺＺでＦＰＧＡ１とし、ピン数６７０（ＢＢＢとＺＺＺ間の結線を差し引いた値）が設定値内であるので、１ＦＰＧＡとして確定する。
【００４５】
Ｓ４：使用率が最も高いブロックＣＣＣ（５０％）と共通ブロックＺＺＺ（２％）を実装候補（５２％）とし、その値と上限値（７５％）とを比較した結果、範囲内であるので、次にその値を上限値から引いた値（７５−５２＝２３％）を基に未実装ブロックから、範囲内のブロックを探した結果、ＡＡ３ブロック（１０％）が該当し、実装候補（５２＋１０＝６２％）とする。
【００４６】
次に、上限値から引いた値（７５−６２＝１３％）を基に未実装ブロックから、範囲内のブロックを探した結果、該当するブロックがないため、ＣＣＣ、ＡＡＡ、ＺＺＺでＦＰＧＡ２とし、同様にピン数が設定値内であるので、１ＦＰＧＡとして確定する。
【００４７】
Ｓ５：Ｓ４と同様の処理を行ない、ＡＡ１、ＡＡ２、ＺＺＺでＦＰＧＡ３を確定する。
Ｓ６：Ｓ３，Ｓ４と同様の処理を行ない、ＤＤＤ、ＺＺＺでＦＰＧＡ４を確定する。
以上、詳細に説明したように、本発明によれば、より精度の高い分割を行なうことができ、出戻り工数を削減することができる。上述の実施の形態例では、分割の基準として使用率の高いものから順に分割する場合を例にとって説明したが、本発明はこれに限るもののではなく、以下に示す例を用いることもできる。
【００４８】
また、本発明によれば、クロック／リセットの共通ブロックの複製を行なうようにすることができる。このようにすれば、動作速度の向上、クロック／リセットの低減を可能にすることができる。
【００４９】
また、本発明によれば、前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうようにすることができる。このようにすれば、ユーザの意図した分割を可能にすることができる。
【００５０】
また、本発明によれば、前記分割を行なう場合において、各ブロックの使用率の低いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうようにすることができる。このようにすれば、法則性による処理速度の向上を可能にすることができる。
【００５１】
また、本発明によれば、前記分割を行なう場合において、前述したあるブロックの使用率が、分割する各ＦＰＧＡ／ＰＬＤの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうようにすることができる。このようにすれば、法則性による処理速度の向上、最適な回路規模への分割を可能にすることができる。
【００５２】
また、本発明によれば、前記分割を行なう場合において、入出力ピン／使用デバイスの使用率に任意の上限値を設定して分割を行なうようにすることができる。このようにすれば、ユーザの意図した仕様への適応を容易にすることができる。
【００５３】
また、本発明によれば、前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうようにすることができる。このようにすれば、ピンの有効活用、速度向上（ファンアウトの増加による遅延低減）を可能にすることができる。
【００５４】
また、本発明によれば、前記分割を行なう場合において、性能が満たせない場合には、ＲＴＬ修正の通知を行なうようにすることができる。このようにすれば、処理速度の向上、ユーザの利便性（実現性の判定）の向上を可能にすることができる。
【００５５】
（付記１）  各ブロックのＲＴＬを事前に論理合成及びレイアウトし、
前記ブロックに関する情報をデータベース化し、
このデータベースを基に自動で各ＦＰＧＡ／ＰＬＤに分割を行なう、
ことを特徴とする論理回路分割方法。
【００５６】
（付記２）  クロック／リセットの共通ブロックの複製を行なうことを特徴とする付記１記載の論理回路分割方法。
（付記３）  前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうことを特徴とする付記１記載の論理回路分割方法。
【００５７】
（付記４）  前記分割を行なう場合において、各ブロックの使用率の高いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする付記１記載の論理回路分割方法。
（付記５）  ＲＴＬを入力すると共に各種設定を行なう入力データ部と、
該入力データ部の出力を受けてデータベースを作成するデータベース作成部と、
該データベース作成部と接続され、各種情報を格納するデータベース格納部と、
該データベース格納部と接続され、前記入力データ部の出力を受けて分割処理を行なう分割処理部と、
該分割処理部の出力を受けて結果データを格納する結果データ部と、
により構成される論理回路分割装置。
【００５８】
（付記６）  前記分割を行なう場合において、各ブロックの使用率の低いものから順に各ＦＰＧＡ／ＰＬＤに分割を行なうことを特徴とする付記１記載の論理回路分割方法。
（付記７）  前記分割を行なう場合において、あるブロックの使用率が、分割する各ＦＰＧＡ／ＰＬＤの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうことを特徴とする付記１記載の論理回路分割方法。
【００５９】
（付記８）  前記分割を行なう場合において、入出力ピン／使用デバイスの使用率に任意の上限値を設定して分割を行なうことを特徴とする付記１記載の論理回路分割方法。
（付記９）  前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうことを特徴とする付記１記載の論理回路分割方法。
【００６０】
（付記１０）  前記分割を行なう場合において、性能が満たせない場合には、ＲＴＬ修正の通知を行なうことを特徴とする付記１記載の論理回路分割方法。
【図面の簡単な説明】
【００６１】
【図１】本発明の入力データである論理回路のブロック構成図である。
【図２】本発明の原理構成図である。
【図３】本発明の一実施の形態例を示すブロック図である。
【図４】本発明の設定項目例を示す図である。
【図５】本発明の結線抽出例を示す図である。
【図６】本発明の分割初期動作を示すフローチャートである。
【図７】本発明の分割詳細動作を示すフローチャートである。
【図８】本発明の入力データである論理回路のブロック構成例を示す図である。
【図９】本発明の入力データである設定ファイル例を示す図である。
【図１０】本発明の結線抽出例を示す図である。
【図１１】各ブロックのデータベース例を示す図である。
【図１２】各ブロックの他のデータベース例を示す図である。
【図１３】各ブロックの他のデータベース例を示す図である。
【図１４】本発明による分割の説明図である。
【符号の説明】
【００６２】
１０  入力データ部
１１  ＲＴＬ受入部
１２  各種設定部
２０  データベース作成部
２１  結線数抽出部
２２  論理合成部
２３  レイアウト部
３０  データベース格納部
３１  データベース
４０  分割処理部
４１  初期判定部
４２  回路分割部
５０  結果データ部
５１  結果データ格納部
５２  修正通知部
【図１】
2006178827.tif 000003
【図２】
2006178827.tif 000004
【図３】
2006178827.tif 000005
【図４】
2006178827.tif 000006
【図５】
2006178827.tif 000007
【図６】
2006178827.tif 000008
【図７】
2006178827.tif 000009
【図８】
2006178827.tif 000010
【図９】
2006178827.tif 000011
【図１０】
2006178827.tif 000012
【図１１】
2006178827.tif 000013
【図１２】
2006178827.tif 000014
【図１３】
2006178827.tif 000015
【図１４】
2006178827.tif 000016