(57)【要約】【課題】ブロック回路を外部に分離した後のトップ回路のＲＴＬを容易に得ることができる。【解決手段】ポート情報入力手段２ａは、ユーザからＲＴＬで記述されているトップ回路１およびトップ回路１を構成しているブロック回路１ａ〜１ｃのポート情報を入力する。分離指定情報入力手段２ｂは、ユーザからトップ回路１の外部に分離するブロック回路１ａ〜１ｃの分離指定情報を入力する。分離ポート情報生成手段２ｃは、分離指定情報に従って分離するブロック回路１ｃのポート情報に基づいて、トップ回路１およびブロック回路１ａ，１ｂのポート情報を変更し、ブロック回路１ｃが分離されたときの分離ポート情報を生成する。ＲＴＬ書き換え手段２ｄは、分離ポート情報生成手段２ｃによって生成された分離ポート情報に基づいて、ブロック回路１ｃが分離されたトップ回路１のＲＴＬを書き換える。【選択図】図１
2007249489.tif 000002
【特許請求の範囲】
【請求項１】
回路設計するコンピュータにおいて、
ＲＴＬで記述されているトップ回路および前記トップ回路を構成しているブロック回路のポート情報を入力するポート情報入力手段と、
前記トップ回路の外部に分離する分離ブロック回路の分離指定情報を入力する分離指定情報入力手段と、
前記分離指定情報に従って分離する前記分離ブロック回路の前記ポート情報に基づいて、前記トップ回路および前記ブロック回路の前記ポート情報を変更し、前記分離ブロック回路が分離されたときの分離ポート情報を生成する分離ポート情報生成手段と、
前記分離ポート情報に基づいて、前記分離ブロック回路が分離された前記トップ回路の前記ＲＴＬを書き換えるＲＴＬ書き換え手段と、
を有することを特徴とするコンピュータ。
【請求項２】
前記ポート情報は、ポートのポート名、前記ポートの接続先回路、および前記接続先回路の接続先ポート名の情報を有していることを特徴とする請求項１記載のコンピュータ。
【請求項３】
前記分離ポート情報生成手段は、前記分離ブロック回路の前記ポート情報において、前記ブロック回路となっている前記接続先回路とその前記接続先ポート名とを取得し、取得した前記接続先回路の前記ポート情報の前記ポート名において、取得した前記接続先ポート名を検索し、検索した前記ポート名における前記接続先回路を前記トップ回路に変更することを特徴とする請求項２記載のコンピュータ。
【請求項４】
前記分離ポート情報生成手段は、さらに、取得した前記接続先回路の前記ポート情報において、前記接続先ポート名を、取得した前記接続先ポート名に変更することを特徴とする請求項３記載のコンピュータ。
【請求項５】
前記トップ回路の内部に追加する追加ブロック回路の追加指定情報を入力する追加指定情報入力手段と、
前記追加指定情報に従って追加する前記追加ブロック回路の前記ポート情報に基づいて、前記トップ回路および前記ブロック回路の前記ポート情報を変更し、前記追加ブロック回路が追加されたときの追加ポート情報を生成する追加ポート情報生成手段と、
前記追加ポート情報に基づいて、前記追加ブロック回路が追加された前記トップ回路の前記ＲＴＬを生成するＲＴＬ生成手段と、
をさらに有することを特徴とする請求項１記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータに関し、特に回路設計するコンピュータに関する。
【背景技術】
【０００２】
ＡＳＩＣ（Application Specific Integrated Circuit）開発では、ＡＳＩＣの動作検証を行うためにプロトタイプとしてＦＰＧＡ（Field Programmable Gate Array）等を利用する開発フローが幅広く採用されている。再プログラミング可能なＦＰＧＡで実際の動作検証を行ってからＡＳＩＣを起こすことにより、コスト低減を図ることができるからである。
【０００３】
ＡＩＳＣでは、ＩＰ（Intellectual Property）マクロがサードベンダー等から用意されており、特定の機能がブラックボックス的に利用できるようになっている。このＩＰマクロは、契約において、ＡＳＩＣには使用してもよいが、ＦＰＧＡには使用してはならないという場合がある。この場合、ＦＰＧＡを利用した開発フローでは、使用してはならないＩＰマクロをＦＰＧＡ（トップ回路）の外へ分離する必要がある。そして、外へ分離したＩＰマクロを他のデバイス等で置き換える必要がある。
【０００４】
図３７は、ＡＳＩＣで実現しようとしている回路の回路図である。図に示すように、回路２００は、設計者によって設計された機能ブロック２０１，２０２と、サードベンダー等から用意されたＩＰマクロ２０３で構成されるとする。図の回路２００、機能ブロック２０１，２０２、およびＩＰマクロ２０３は、ＲＴＬ（Register Transfer Level）で記述されている。図のＩＰマクロ２０３は、契約によって、ＡＳＩＣには使用してもよいが、ＦＰＧＡには使用してはならないものとする。
【０００５】
図の回路２００の動作検証を行うためにＦＰＧＡを利用する。この場合、ＩＰマクロ２０３は、ＦＰＧＡで使用できないので、回路２００（トップ回路）の外へ分離し、他のデバイス等に置き換える必要がある。すなわち、ＩＰマクロ２０３が回路２００の外に分離されるようにＲＴＬを書き換える必要がある。
【０００６】
図３８は、ＩＰマクロを外に分離した回路図である。図に示すようにＩＰマクロ２０３は、ＦＰＧＡで使用できないので、回路２１０の外へ分離する必要がある。回路２１０の外へ分離したＩＰマクロ２０３は、それと同等の機能を有するデバイス等（例えば、市販されているＡＳＩＣ）で置き換えるようにする。このように設計した回路２１０のＦＰＧＡと、外へ分離したＩＰマクロ２０３を実現するデバイス等とをボードに実装することにより、ＡＳＩＣで実現した場合と同等の動作検証を行うことができる。
【０００７】
なお、従来、回路間のＩ／Ｆ回路の挿入や、回路へのＩ／Ｆ回路の付加を自動的に行う設計方法が提案されている（例えば、特許文献１参照）。また、ＩＰ間（ＩＰマクロ間）にタイミング条件の最適な入出力バッファを配置・接続する設計方法が提案されている（例えば、特許文献２参照）。
【特許文献１】特開２００１−１４２９２３号公報
【特許文献２】特開２０００−２８６３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、ブロック回路（ＩＰマクロ）のトップ回路外への分離は、ＲＴＬの記述を手作業で書き換えなければならず、その規模が大きくなった場合、複雑で困難になってしまうという問題点があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、ブロック回路のトップ回路外への分離を容易に行うことができるコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記問題を解決するために、図１に示すような回路設計するコンピュータ２において、ＲＴＬで記述されているトップ回路１およびトップ回路１を構成しているブロック回路１ａ〜１ｃのポート情報を入力するポート情報入力手段２ａと、トップ回路１の外部に分離する分離ブロック回路の分離指定情報を入力する分離指定情報入力手段２ｂと、分離指定情報に従って分離する分離ブロック回路のポート情報に基づいて、トップ回路１およびブロック回路１ａ〜１ｃのポート情報を変更し、分離ブロック回路が分離されたときの分離ポート情報を生成する分離ポート情報生成手段２ｃと、分離ポート情報に基づいて、分離ブロック回路が分離されたトップ回路１のＲＴＬを書き換えるＲＴＬ書き換え手段２ｄと、を有することを特徴とするコンピュータ２が提供される。
【００１１】
このようなコンピュータ２によれば、トップ回路１の外部に分離する分離ブロック回路のポート情報に基づいて、トップ回路１およびブロック回路１ａ〜１ｃのポート情報を変更し、分離ブロック回路が分離されたときの分離ポート情報を生成して、トップ回路１のＲＴＬを書き換える。これにより、手作業によらずに分離ブロック回路を分離したトップ回路のＲＴＬを得ることができる。
【発明の効果】
【００１２】
本発明のコンピュータでは、トップ回路の外部に分離する分離ブロック回路のポート情報に基づいて、トップ回路およびブロック回路のポート情報を変更し、分離ブロック回路が分離されたときの分離ポート情報を生成して、トップ回路のＲＴＬを書き換えるようにした。これによって、手作業によらずに分離ブロック回路を分離したトップ回路のＲＴＬを得ることができ、ブロック回路を容易にトップ回路から分離することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、コンピュータの概要を説明する図である。図の（Ａ）には、トップ回路１とトップ回路１を構成しているブロック回路１ａ〜１ｃが示してある。図の（Ｂ）には、コンピュータ２が示してある。トップ回路１およびブロック回路１ａ〜１ｃは、ＲＴＬで記述され、そのデータがコンピュータ２に入力されている。
【００１４】
コンピュータ２は、ポート情報入力手段２ａ、分離指定情報入力手段２ｂ、分離ポート情報生成手段２ｃ、およびＲＴＬ書き換え手段２ｄを有している。
ポート情報入力手段２ａは、ユーザから、ＲＴＬで記述されているトップ回路１およびトップ回路１を構成しているブロック回路１ａ〜１ｃのポート情報を入力する。ポート情報は、トップ回路１およびブロック回路１ａ〜１ｃのポートのポート名、接続先、および接続先ポート名を有している。
【００１５】
分離指定情報入力手段２ｂは、ユーザから、トップ回路１の外部に分離するブロック回路（分離ブロック回路）の分離指定情報を入力する。なお、図１の例では、ブロック回路１ｃがトップ回路１の外部に分離されるとし、分離指定情報は、ブロック回路１ｃを示しているとする。
【００１６】
分離ポート情報生成手段２ｃは、分離指定情報に従って分離するブロック回路１ｃのポート情報に基づいて、トップ回路１およびブロック回路１ａ，１ｂのポート情報を変更し、ブロック回路１ｃが分離されたときの分離ポート情報を生成する。すなわち、ブロック回路１ｃがトップ回路１の外部に分離されると、トップ回路１およびブロック回路１ａ，１ｂのポート情報は変化するので、分離ポート情報生成手段２ｃは、その分離によって変化した分離ポート情報を生成する。
【００１７】
ＲＴＬ書き換え手段２ｄは、分離ポート情報生成手段２ｃによって生成された分離ポート情報に基づいて、ブロック回路１ｃが分離されたトップ回路１のＲＴＬを書き換える。
このように、コンピュータ２は、トップ回路１の外部に分離するブロック回路１ｃのポート情報に基づいて、トップ回路１およびブロック回路１ａ，１ｂのポート情報を変更し、ブロック回路１ｃが分離されたときの分離ポート情報を生成して、トップ回路１のＲＴＬを書き換えるようにした。これによって、手作業によらずに分離ブロック回路を分離したトップ回路１のＲＴＬを得ることができ、ブロック回路１ｃを容易にトップ回路１から分離することができる。
【００１８】
次に、本発明の実施の形態を図面を参照して詳細に説明する。まず、ＲＴＬの記述によって設計される回路について説明する。
図２は、ＲＴＬで記述された回路例を示した図である。ＲＴＬでは、回路をブロックで階層的に設計できるようになっている。図には、ＴＯＰ回路１０、ＴＯＰ回路１０を構成する機能ブロック１１，１２とＩＰマクロ１３とが示してある。
【００１９】
ＴＯＰ回路１０は、ＲＴＬで記述される回路の最上位層の回路である。ＴＯＰ回路１０は、チップ全体に相当する。ＴＯＰ回路１０の構成は、ＴＯＰＲＴＬ１０ａによって記述される。ＴＯＰＲＴＬ１０ａには、例えば、ＴＯＰ回路１０を構成する回路（機能ブロック１１，１２、ＩＰマクロ１３）などが記述される。ＴＯＰ回路１０を構成する回路の実際の中身は、下位のＲＴＬで記述される。
【００２０】
機能ブロック１１，１２およびＩＰマクロ１３は、ＴＯＰ回路１０を構成する具体的な回路である。機能ブロック１１，１２の構成は、図のＲＴＬ１１ａ，１２ａによって記述される。ＩＰマクロ１３の構成は、ＩＰマクロＲＴＬ１３ａによって記述される。機能ブロック１１，１２は、ユーザが設計した回路であり、ＩＰマクロ１３は、例えば、サードベンダーから用意されたＩＰマクロである。このように、ＲＴＬの記述によって、回路を設計することができる。
【００２１】
次に、コンピュータが行うＩＰマクロの分離、追加、および追加分離の概略について説明する。まず、コンピュータが行うＩＰマクロの分離について説明する。
ＩＰマクロは、ＡＳＩＣでは使用が許可されているが、ＦＧＰＡでの使用が許可されていない場合がある。この場合、使用が許可されていないＩＰマクロをチップの外へ出すようにＲＴＬの記述を変更しなければならない。
【００２２】
図３は、コンピュータが行うＩＰマクロの分離を説明する図である。図には、ＩＰマクロの分離を行うコンピュータ２０が示してある。コンピュータ２０には、回路を記述したＲＴＬ２１が入力される。回路は、ＴＯＰ回路２１ａと、ＴＯＰ回路２１ａを構成する機能ブロック２１ａａ，２１ａｂおよびＩＰマクロ２１ａｃとから構成されている。
【００２３】
また、コンピュータ２０には、ＴＯＰ回路２１ａ、機能ブロック２１ａａ，２１ａｂ、およびＩＰマクロ２１ａｃのポート情報を示すポート情報ファイル２２が入力される。
さらに、コンピュータ２０には、ＴＯＰ回路２１ａからどのＩＰマクロを分離するのか、追加するのか、または、追加して分離するのかを示す設定ファイル２３が入力される。なお、図の例では、設定ファイル２３は、ＴＯＰ回路２１ａからＩＰマクロ２１ａｃを分離する旨を示しているものとする。
【００２４】
コンピュータ２０は、設定ファイル２３に基づいて、ＴＯＰ回路２１ａからＩＰマクロ２１ａｃを分離する。このとき、コンピュータ２０は、入力されたポート情報ファイル２２を基に、ＩＰマクロ２１ａｃを分離する。そして、ＩＰマクロ２１ａｃを分離したＴＯＰ回路２４ａのＲＴＬを自動で生成する。
【００２５】
このように、コンピュータ２０は、回路を記述しているＲＴＬ２１と、ポート情報ファイル２２と、設定ファイル２３とに基づいて、回路を図に示すＴＯＰ回路２４ａとＩＰマクロ２４ｂとに分離し、ＩＰマクロ２４ｂを分離したＴＯＰ回路２４ａのＲＴＬを生成する。
【００２６】
次に、コンピュータが行うＩＰマクロの追加について説明する。
図４は、コンピュータが行うＩＰマクロの追加を説明する図である。図には、ＩＰマクロの追加を行うコンピュータ３０が示してある。コンピュータ３０には、回路を記述したＲＴＬ３１が入力される。回路は、ＴＯＰ回路３１ａと、ＴＯＰ回路３１ａを構成する機能ブロック３１ａａ，３１ａｂとから構成されている。
【００２７】
また、コンピュータ３０には、ＴＯＰ回路３１ａ、機能ブロック３１ａａ，３１ａｂ、およびＴＯＰ回路３１ａに追加するＩＰマクロ３５のポート情報を示すポート情報ファイル３２が入力される。
【００２８】
さらに、コンピュータ３０には、ＴＯＰ回路３１ａから所定のＩＰマクロを分離するのか、追加するのか、または、追加して分離するのかを示す設定ファイル３３が入力される。なお、図の例では、設定ファイル３３は、ＴＯＰ回路３１ａにＩＰマクロ３５を追加する旨を示しているものとする。
【００２９】
コンピュータ３０は、設定ファイル３３に基づいて、ＴＯＰ回路３１ａにＩＰマクロ３５を追加する。このとき、コンピュータ３０は、入力されたポート情報ファイル３２を基に、ＩＰマクロ３５を追加する。そして、ＩＰマクロ３５を追加したＴＯＰ回路３４のＲＴＬを自動で生成する。
【００３０】
このように、コンピュータ３０は、回路を記述しているＲＴＬ３１と、ポート情報ファイル３２と、設定ファイル３３とに基づいて、ＴＯＰ回路３１ａにＩＰマクロ３５を追加し、ＩＰマクロ３５を追加したＴＯＰ回路３４のＲＴＬを生成する。
【００３１】
次に、コンピュータが行うＩＰマクロの追加分離について説明する。
図５は、コンピュータが行うＩＰマクロの追加分離を説明する図である。図には、ＩＰマクロの追加を行うコンピュータ４０が示してある。コンピュータ４０には、回路を記述したＲＴＬ４１が入力される。回路は、ＴＯＰ回路４１ａと、ＴＯＰ回路４１ａを構成する機能ブロック４１ａａ，４１ａｂおよびＩＰマクロ４１ａｃとから構成されている。
【００３２】
また、コンピュータ４０には、ＴＯＰ回路４１ａ、機能ブロック４１ａａ，４１ａｂ、ＴＯＰ回路４１ａから分離するＩＰマクロ４１ａｃ、およびＴＯＰ回路４１ａに追加するＩＰマクロ４５のポート情報を示すポート情報ファイル４２が入力される。
【００３３】
さらに、コンピュータ４０には、ＴＯＰ回路４１ａから所定のＩＰマクロを分離するのか、追加するのか、または、追加して分離するのかを示す設定ファイル４３が入力される。なお、図の例では、設定ファイル４３は、ＴＯＰ回路４１ａからＩＰマクロ４１ａｃを分離し、ＩＰマクロ４５を追加する旨を示しているものとする。
【００３４】
コンピュータ４０は、設定ファイル４３に基づいて、ＴＯＰ回路４１ａにＩＰマクロ４５を追加する。また、ＴＯＰ回路４１ａからＩＰマクロ４１ａｃを分離する。このとき、コンピュータ４０は、入力されたポート情報ファイル４２を基に、ＩＰマクロ４１ａｃを分離し、ＩＰマクロ４５を追加する。そして、ＩＰマクロ４４ａｃを分離し、ＩＰマクロ４５を追加したＲＴＬを自動で生成する。
【００３５】
このように、コンピュータ４０は、回路を記述しているＲＴＬ４１と、ポート情報ファイル４２と、設定ファイル４３とに基づいて、ＴＯＰ回路４４ａからＩＰマクロ４４ｂを分離し、ＩＰマクロ４５を追加し、そのＲＴＬを生成する。
【００３６】
なお、図３〜図５で説明したコンピュータ２０〜４０は、別々においてＩＰマクロの分離、追加、および追加分離を行うように説明したが、もちろん１台のコンピュータでＩＰマクロの分離、追加、および追加分離を行うことができる。以下では、１台のコンピュータがＩＰマクロの分離、追加、および追加分離を行うとして説明する。
【００３７】
図６，図７は、コンピュータが行うＩＰマクロの分離、追加、および追加分離のフローチャートである。
［ステップＳ１］コンピュータは、ユーザからＴＯＰ回路のＲＴＬ、ポート情報ファイル、設定ファイルを受付ける。
【００３８】
［ステップＳ２］コンピュータは、ユーザから新たな設定が入力されたか否か判断する。例えば、ステップＳ１において、ユーザは、入力したＲＴＬ、ポート情報ファイル、設定ファイルの一部を変更したい場合がある。このような場合、コンピュータは、ユーザから新たな設定を受付ける。新たな設定があった場合、ステップＳ３へ進む。新たな設定がない場合、ステップＳ４へ進む。
【００３９】
［ステップＳ３］コンピュータは、ユーザからの新たな設定値を受付ける。
［ステップＳ４］コンピュータは、入力されたＲＴＬ、ポート情報ファイル、設定ファイルを、例えば、ＨＤＤ（Hard Disk Drive）の記憶装置に構築されたデータベースに格納する。
【００４０】
［ステップＳ５］コンピュータは、入力情報（ＲＴＬ、ポート情報ファイル、設定ファイル）に問題がないか否か判断する。例えば、入力情報に記述間違えがないかなどを判断する。入力情報に問題があれば、ステップＳ６へ進む。入力情報に問題がなければ、ステップＳ８へ進む。
【００４１】
［ステップＳ６］コンピュータは、ユーザから適正な入力情報の入力があったか否か判断する。適正な入力情報の入力があった場合、ステップＳ７へ進む。適正な入力情報の入力がなかった場合、ステップＳ１３へ進む。
【００４２】
［ステップＳ７］コンピュータは、ユーザからの適正な入力情報を受付け、ステップＳ５へ進む。
［ステップＳ８］コンピュータは、ステップＳ１において入力された設定ファイルに基づいて、ＩＰマクロの分離を行うか判断する。ＩＰマクロの分離を行うと判断した場合、ステップＳ９へ進む。ＩＰマクロの分離を行わないと判断した場合、ステップＳ１０へ進む。
【００４３】
［ステップＳ９］コンピュータは、ＩＰマクロを分離したポート表（ポート情報ファイル）およびＲＴＬを作成する。
［ステップＳ１０］コンピュータは、ステップＳ１において入力された設定ファイルに基づいて、ＩＰマクロの追加を行うか判断する。ＩＰマクロの追加を行うと判断した場合、ステップＳ１１へ進む。ＩＰマクロの追加を行わないと判断した場合、ステップＳ１２へ進む。
【００４４】
［ステップＳ１１］コンピュータは、ＩＰマクロを追加したポート表およびＲＴＬを作成する。
［ステップＳ１２］コンピュータは、ＲＴＬの記述の正当性を検証する。例えば、作成したＲＴＬの記述に誤りがないかなどの検証をする。
【００４５】
［ステップＳ１３］コンピュータは、作成したＲＴＬおよびポート表をデータベースに格納する。
このようにして、コンピュータは、ＩＰマクロの分離、追加、および分離追加を行う。
【００４６】
次に、コンピュータの機能について説明する。
図８は、コンピュータの機能ブロック図である。図に示すようにコンピュータは、データ入力部５１、追加・分離処理部５２、および結果出力部５３を有している。
【００４７】
データ入力部５１は、ＲＴＬ格納部５１ａ、ポート情報格納部５１ｂ、および設定部５１ｃを有している。ＲＴＬ格納部５１ａは、ユーザから、回路のＲＴＬを受付け、例えば、ＨＤＤの記憶装置に格納する。ポート情報格納部５１ｂは、ユーザから、ポート情報ファイルを受付け、例えば、ＨＤＤの記憶装置に格納する。設定部５１ｃは、ユーザから、設定ファイルを受付け、例えば、ＨＤＤの記憶装置に格納する。
【００４８】
追加・分離処理部５２は、ポート情報抽出部５２ａ、回路分離部５２ｂ、および回路追加部５２ｃを有している。ポート情報抽出部５２ａは、記憶装置に格納されたポート情報ファイルを読み出す。回路分離部５２ｂは、読み出されたポート情報ファイルを基に、設定ファイルで指定されたＩＰマクロをＴＯＰ回路から分離し、ＩＰマクロを分離したＴＯＰ回路のＲＴＬを生成する。回路追加部５２ｃは、読み出されたポート情報ファイルを基に、設定ファイルで指定されたＩＰマクロをＴＯＰ回路に追加し、ＩＰマクロを追加したＴＯＰ回路のＲＴＬを生成する。
【００４９】
結果出力部５３は、ＲＴＬ正当性検証部５３ａ、ＲＴＬ格納部５３ｂ、およびポート情報格納部５３ｃを有している。ＲＴＬ正当性検証部５３ａは、追加・分離処理部５２で生成されたＲＴＬの正当性を検証する。例えば、ＲＴＬの記述に誤りがないかチェックする。ＲＴＬ格納部５３ｂは、正当性が検証されたＲＴＬを、例えば、ＨＤＤの記憶装置に格納する。ポート情報格納部５３ｃは、追加・分離処理部５２で生成されたポート情報ファイルを、例えば、ＨＤＤの記憶装置に格納する。
【００５０】
次に、コンピュータの具体的な動作について説明する。まず、コンピュータのＩＰマクロの分離動作について説明し、その後、ＩＰマクロの追加動作について説明する。
図９は、コンピュータによる分離前の回路を示した図である。図には、ＲＴＬで記述された最上位層のＴＯＰ回路６０、ＴＯＰ回路６０を構成する機能ブロック６１，６２、およびＩＰマクロ６３が示してある。なお、以下では、ＴＯＰ回路６０、機能ブロック６１，６２、およびＩＰマクロ６３を、図に示すようにＴＯＰ１、ＦＵＮＣ１，２、およびＩＰ１として説明する。
【００５１】
ＴＯＰ１は、図に示すようにＤＡＴＡＩＮ１，２、ＣＬＫ、およびＤＡＴＡＯＵＴ１〜３のポートを有している。
ＦＵＮＣ１は、Ｆ１＿ＩＤＴ、ＣＬＫ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有している。Ｆ１＿ＩＤＴは、ＴＯＰ１のＤＡＴＡＩＮ１に接続されている。ＣＬＫは、ＴＯＰ１のＣＬＫに接続されている。Ｆ１＿ＯＤＴ１は、ＴＯＰ１のＤＡＴＡＯＵＴ１に接続されている。Ｆ１＿ＯＡＤは、ＩＰ１のＩＰ１＿ＡＤに接続されている。
【００５２】
ＦＵＮＣ２は、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、ＣＬＫ、およびＦ２＿ＯＤＴのポートを有している。Ｆ２＿ＩＤＴ１は、ＩＰ１のＩＰ１＿ＯＤＴ２に接続されている。Ｆ２＿ＩＤＴ２は、ＴＯＰ１のＤＡＴＡＩＮ２に接続されている。ＣＬＫは、ＴＯＰ１のＣＬＫに接続されている。Ｆ２＿ＯＤＴは、ＴＯＰ１のＤＡＴＡＯＵＴ３に接続されている。
【００５３】
ＩＰ１は、ＩＰ１＿ＡＤ、ＣＬＫ、ＩＰ１＿ＯＤＴ１、およびＩＰ１＿ＯＤＴ２のポートを有している。ＩＰ１＿ＡＤは、ＦＵＮＣ１のＦ１＿ＯＡＤに接続されている。ＣＬＫは、ＴＯＰ１のＣＬＫに接続されている。ＩＰ１＿ＯＤＴ１は、ＴＯＰ１のＤＡＴＡＯＵＴ２に接続されている。ＩＰ１＿ＯＤＴ２は、ＦＵＮＣ２のＦ２＿ＩＤＴ１に接続されている。
【００５４】
次に、図９のＩＰ１が、コンピュータによってＴＯＰ１から分離されたときの回路について説明する。
図１０は、コンピュータによる分離後の回路を示した図である。図９に示すＩＰ１をＴＯＰ１の外へ分離することによって、ＴＯＰ１のポートは、図１０に示すようになる。図１０には、ＴＯＰ回路７０、ＴＯＰ回路７０を構成する機能ブロック７１，７２が示してある。また、ＴＯＰ回路７０から分離されたＩＰマクロ７３が示してある。なお、以下では、ＴＯＰ回路７０、機能ブロック７１，７２、およびＩＰマクロ７３を、図に示すようにＴＯＰ２、ＦＵＮＣ１，２、およびＩＰ１として説明する。
【００５５】
ＴＯＰ２は、図９で示したＴＯＰ１に対応する。ＴＯＰ２は、ＩＰ１が外に分離されたため、ＦＵＮＣ１，２のみから構成されている。ＴＯＰ２は、ＤＡＴＡＩＮ１，２、ＣＬＫ、ＤＡＴＡＯＵＴ１，３、Ｆ１＿ＯＡＤ、およびＦ２＿ＩＤＴ１のポートを有している。
【００５６】
ＦＵＮＣ１は、図９で示したＦＵＮＣ１に対応する。ＦＵＮＣ１は、図９で示したＦＵＮＣ１と同様に、Ｆ１＿ＩＤＴ、ＣＬＫ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有している。Ｆ１＿ＩＤＴは、ＴＯＰ２のＤＡＴＡＩＮ１に接続されている。ＣＬＫは、ＴＯＰ２のＣＬＫに接続されている。Ｆ１＿ＯＤＴ１は、ＴＯＰ２のＤＡＴＡＯＵＴ１に接続されている。Ｆ１＿ＯＡＤは、ＴＯＰ２のＦ１＿ＯＡＤに接続されている。
【００５７】
ＦＵＮＣ２は、図９で示したＦＵＮＣ２に対応する。ＦＵＮＣ２は、図９で示したＦＵＮＣ２と同様に、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、ＣＬＫ、およびＦ２＿ＯＤＴのポートを有している。Ｆ２＿ＩＤＴ１は、ＴＯＰ２のＦ２＿ＩＤＴ１に接続されている。Ｆ２＿ＩＤＴ２は、ＴＯＰ２のＤＡＴＡＩＮ２に接続されている。ＣＬＫは、ＴＯＰ２のＣＬＫに接続されている。Ｆ２＿ＯＤＴは、ＴＯＰ２のＤＡＴＡＯＵＴ３に接続されている。
【００５８】
ＴＯＰ２の外に分離されたＩＰ１は、図９のＩＰ１と同様にＩＰ１＿ＡＤ、ＣＬＫ、ＩＰ１＿ＯＤＴ１、およびＩＰ１＿ＯＤＴ２のポートを有している。ＩＰ１＿ＡＤは、ＴＯＰ２のＦ１＿ＯＡＤに接続されている。ＣＬＫは、外部のＣＬＫに接続される。ＩＰ１＿ＯＤＴ１は、外部のＩＰ１＿ＯＵＴに接続される。ＩＰ１＿ＯＤＴ２は、ＴＯＰ２のＦ２＿ＩＤＴ１に接続されている。
【００５９】
次に、コンピュータに入力されるポート情報ファイルおよび設定ファイルについて説明する。コンピュータには、図９で示した回路のＲＴＬとともに、以下で説明するＴＯＰ１、ＦＵＮＣ１，２、およびＩＰ１のポート情報ファイルが入力される。まず、図９のＴＯＰ１のポート情報ファイルについて説明する。
【００６０】
図１１は、コンピュータに入力されるＴＯＰ１のポート情報ファイルである。図に示すポート情報ファイル８１は、図９で示した回路のＴＯＰ１のポート情報ファイルを示している。ポート情報ファイル８１は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、および種別の欄を有している。
【００６１】
ポート名の欄には、ＴＯＰ１のポート名が格納される。図９で説明したようにＴＯＰ１は、ＣＬＫ、ＤＡＴＡＩＮ１，２、ＤＡＴＡＯＵＴ１〜３のポートを有しており、これらの名称が、ポート情報ファイル８１のポート名の欄に格納される。
【００６２】
レンジの欄には、ポートのビット幅が格納される。例えば、ポート名ＤＡＴＡＩＮ１のポートは、１６ビットであることが分かる。
Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。図の例の場合、Ｉで入力ポート、Ｏで出力ポートであることを示している。例えば、ポート名ＣＬＫのポートは、入力ポートであることが分かる。
【００６３】
タイプの欄には、ポートの信号がシングル（１ビット）であるのか、ベクタ（複数ビット）であるのかを示す情報が格納される。図の例の場合、Ｓでシングル、Ｖでベクタであることを示している。例えば、ＣＬＫは、シングルであることが分かる。
【００６４】
種別の欄には、ポートの信号種別が格納される。例えば、ポート名ＣＬＫには、クロックが入力されるので、クロックが入力されることを示すＣＬＫが格納される。ポート名ＤＡＴＡＩＮ１には、データ信号が入力されるので、データ信号が入力されること示すＤＴが格納される。
【００６５】
次に、図９のＦＵＮＣ１のポート情報ファイルについて説明する。
図１２は、コンピュータに入力されるＦＵＮＣ１のポート情報ファイルである。図に示すポート情報ファイル８２は、図９で示した回路のＦＵＮＣ１のポート情報ファイルを示している。ポート情報ファイル８２は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【００６６】
ポート名の欄には、ＦＵＮＣ１のポート名が格納される。図９で説明したようにＦＵＮＣ１は、ＣＬＫ、Ｆ１＿ＩＤＴ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル８２のポート名の欄に格納される。
【００６７】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００６８】
接続先の欄には、ＦＵＮＣ１のポートの、接続先の回路名が格納される。例えば、図９に示すように、Ｆ１＿ＩＤＴは、ＴＯＰ１のＤＡＴＡＩＮ１に接続される。従って、ポート名Ｆ１＿ＩＤＴに対応する接続先の欄には、ＴＯＰ１を示すＴＯＰが格納される。
【００６９】
接続先ポート名の欄には、ＦＵＮＣ１のポートの、接続先のポート名が格納される。例えば、図９に示すように、Ｆ１＿ＩＤＴは、ＴＯＰ１のＤＡＴＡＩＮ１に接続される。従って、ポート名Ｆ１＿ＩＤＴに対応する接続先ポート名の欄には、ＤＡＴＡＩＮ１が格納される。
【００７０】
次に、図９のＦＵＮＣ２のポート情報ファイルについて説明する。
図１３は、コンピュータに入力されるＦＵＮＣ２のポート情報ファイルである。図に示すポート情報ファイル８３は、図９で示した回路のＦＵＮＣ２のポート情報ファイルを示している。ポート情報ファイル８３は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【００７１】
ポート名の欄には、ＦＵＮＣ２のポート名が格納される。図９で説明したようにＦＵＮＣ２は、ＣＬＫ、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、およびＦ２＿ＯＤＴのポートを有しており、これらの名称が、ポート情報ファイル８３のポート名の欄に格納される。
【００７２】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００７３】
接続先の欄には、ＦＵＮＣ２のポートの、接続先の回路名が格納される。例えば、図９に示すように、Ｆ２＿ＩＤＴ１は、ＩＰ１のＩＰ１＿ＯＤＴ２に接続される。従って、ポート名Ｆ２＿ＩＤＴ１に対応する接続先の欄には、ＩＰ１が格納される。
【００７４】
接続先ポート名の欄には、ＦＵＮＣ２のポートの、接続先のポート名が格納される。例えば、図９に示すように、Ｆ２＿ＩＤＴ１は、ＩＰ１のＩＰ１＿ＯＤＴ２に接続される。従って、ポート名Ｆ２＿ＩＤＴ１に対応する接続先ポート名の欄には、ＩＰ１＿ＯＤＴ２が格納される。
【００７５】
次に、図９のＩＰ１のポート情報ファイルについて説明する。
図１４は、コンピュータに入力されるＩＰ１のポート情報ファイルである。図に示すポート情報ファイル８４は、図９で示した回路のＩＰ１のポート情報ファイルを示している。ポート情報ファイル８４は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【００７６】
ポート名の欄には、ＩＰ１のポート名が格納される。図９で説明したようにＩＰ１は、ＣＬＫ、ＩＰ１＿ＡＤ、ＩＰ１＿ＯＵＴ１、およびＩＰ１＿ＯＵＴ２のポートを有しており、これらの名称が、ポート情報ファイル８４のポート名の欄に格納される。
【００７７】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００７８】
接続先の欄には、ＩＰ１のポートの、接続先の回路名が格納される。例えば、図９に示すように、ＩＰ１＿ＡＤは、ＦＵＮＣ１のＦ１＿ＯＡＤに接続される。従って、ポート名ＩＰ１＿ＡＤに対応する接続先の欄には、ＦＵＮＣ１が格納される。
【００７９】
接続先ポート名の欄には、ＩＰ１のポートの、接続先のポート名が格納される。例えば、図９に示すように、ＩＰ１＿ＡＤは、ＦＵＮＣ１のＦ１＿ＯＡＤに接続される。従って、ポート名ＩＰ１＿ＡＤに対応する接続先ポート名の欄には、Ｆ１＿ＯＡＤが格納される。
【００８０】
なお、図１１〜１４のポート情報ファイル８１〜８４の情報は、図に示す欄に限るものではなく、図に示す以外の情報をさらに格納するようにしてもよい。
次に、コンピュータに入力される設定ファイルについて説明する。
【００８１】
図１５は、コンピュータに入力される設定ファイルである。図に示す設定ファイル８５は、ＩＰマクロ名および追加／分離の欄を有している。
ＩＰマクロ名の欄には、ＴＯＰ１から外に分離されるＩＰマクロのＩＰマクロ名が格納される。図の例では、図９で示したＩＰ１が格納されている。追加／分離の欄には、ＩＰマクロ名の欄に格納されたＩＰマクロを追加するのか、分離するのかを示す情報が格納される。図の例では、分離することを示す情報が格納されている。
【００８２】
次に、図９のＩＰ１が、コンピュータによってＴＯＰ１から分離されたときのポート情報ファイルについて説明する。
コンピュータは、図１１〜図１４で示したポート情報ファイル、図１５で示した設定ファイル、およびＲＴＬに基づいて、図１０に示すようにＩＰ１を分離する。このとき、コンピュータは、以下で説明するポート設定情報ファイルを生成する。
【００８３】
図１６は、分離後のＴＯＰ１のポート情報ファイルである。図に示すポート情報ファイル９１は、ＩＰ１が分離された後のＴＯＰ２のポート情報ファイルを示している。ポート情報ファイル９１は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプおよび種別の欄を有している。
【００８４】
ポート名の欄には、ＴＯＰ２のポート名が格納される。図１０で説明したようにＴＯＰ２は、ＣＬＫ、ＤＡＴＡＩＮ１，２、Ｆ２＿ＩＤＴ１、ＤＡＴＡＯＵＴ１，３、およびＦ１＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル９１のポート名の欄に格納される。
【００８５】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００８６】
なお、図のポート名Ｆ２＿ＩＤＴ１のポートとポート名Ｆ１＿ＯＡＤのポートは、ＩＰ１の分離によって新たに生成されたポートである。
次に、ＩＰ１の分離後の、ＦＵＮＣ１のポート情報ファイルについて説明する。
【００８７】
図１７は、分離後のＦＵＮＣ１のポート情報ファイルである。図に示すポート情報ファイル９２は、ＩＰ１が分離された後のＦＵＮＣ１のポート情報ファイルを示している。ポート情報ファイル９２は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【００８８】
ポート名の欄には、ＦＵＮＣ１のポート名が格納される。図１０で説明したようにＦＵＮＣ１は、ＣＬＫ、Ｆ１＿ＩＤＴ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル９２のポート名の欄に格納される。
【００８９】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００９０】
接続先の欄には、ＦＵＮＣ１のポートの、接続先の回路名が格納される。なお、ポート名Ｆ１＿ＯＡＤの接続先は、ＩＰ１がＴＯＰ２の外に分離されたため、図１２における接続先はＩＰ１であったのに対し、図１７では、ＴＯＰとなっている。
【００９１】
接続先ポート名の欄には、ＦＵＮＣ１のポートの、接続先のポート名が格納される。なお、ポート名Ｆ１＿ＯＡＤの接続先ポート名は、ＩＰ１がＴＯＰ２の外に分離されたため、図１２における接続先ポート名はＩＰ１のＩＰ１＿ＡＤであったのに対し、図１７では、ＴＯＰ２のＦ１＿ＯＡＤとなっている。
【００９２】
図１８は、分離後のＦＵＮＣ２のポート情報ファイルである。図に示すポート情報ファイル９３は、ＩＰ１が分離された後のＦＵＮＣ２のポート情報ファイルを示している。ポート情報ファイル９３は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【００９３】
ポート名の欄には、ＦＵＮＣ２のポート名が格納される。図１０で説明したようにＦＵＮＣ２は、ＣＬＫ、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、およびＦ２＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル９３のポート名の欄に格納される。
【００９４】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【００９５】
接続先の欄には、ＦＵＮＣ２のポートの、接続先の回路名が格納される。なお、ポート名Ｆ２＿ＩＤＴ１の接続先は、ＩＰ１がＴＯＰ２の外に分離されたため、図１３における接続先はＩＰ１であったのに対し、図１８ではＴＯＰとなっている。
【００９６】
接続先ポート名の欄には、ＦＵＮＣ２のポートの、接続先のポート名が格納される。なお、ポート名Ｆ２＿ＩＤＴ１の接続先ポート名は、ＩＰ１がＴＯＰ２の外に分離されたため、図１３における接続先ポート名はＩＰ１のＩＰ１＿ＯＤＴ２であったのに対し、図１８では、ＴＯＰ２のＦ２＿ＩＤＴ１となっている。
【００９７】
このように、図９に示したＩＰ１が、図１０に示すようにＴＯＰ回路から分離されるとき、図１６〜図１８に示したようなポート情報ファイルが生成される。コンピュータは、図１６〜図１８に示したポート情報ファイルによって、図１０に示したＴＯＰ２のＲＴＬを生成する。
【００９８】
次に、図９に示したＩＰ１が、コンピュータによって図１０に示すようにＴＯＰ回路から分離されたときに生成されるＲＴＬについて説明する。
図１９，２０は、コンピュータに入力されるＴＯＰ１のＲＴＬを示した図である。図には、ＶＨＤＬで記述された例が示してある。なお、図１９，２０の記述は続いている。
【００９９】
記述１０１に示すようにＴＯＰ１のＲＴＬには、ＴＯＰ１のポートが記述されている。また、記述１０２〜１０４に示すようにＴＯＰ１のＲＴＬには、ＴＯＰ１を構成するＦＵＮＣ１，２、ＩＰ１のポートが記述されている。記述１０５は、ＴＯＰ１内における信号線を記述している。記述１０６〜１０８は、ＦＵＮＣ１，２、ＩＰ１のポートの接続先を示している。
【０１００】
図２１は、コンピュータに入力されるＩＰ１のＲＴＬを示した図である。図には、ＶＨＤＬで記述された例が示してある。図のarchitecture IP1＿RTL of IP1 is以下、ＩＰ１の実体が記述される。なお、ＦＵＮＣ１，２も同様にＲＴＬで実体が記述され、コンピュータに入力される。
【０１０１】
図２２は、ＩＰ１が分離されたときのＴＯＰ１のＲＴＬを示した図である。コンピュータは、ＩＰ１をＴＯＰ１から分離したことによって、図に示すようなＴＯＰ１のＲＴＬを生成する。なお、ＦＵＮＣ１，２の機能は変わることがないので、ＦＵＮＣ１，２の実体を記述するＲＴＬは変更されない。
【０１０２】
次に、図１６〜図１８のポート情報ファイル９１〜９３の具体的な生成方法について説明する。
コンピュータは、まず、設定ファイルで指定された、分離されるＩＰマクロのポート情報ファイルを開く。コンピュータは、開いたポート情報ファイルの接続先の欄がＴＯＰ以外となっている回路名と接続先ポート名とを取得する。
【０１０３】
例えば、図９，１０で説明したように、ＩＰ１がＴＯＰ１から分離されるとする。この場合、図１５で示したように、設定ファイル８５には、ＩＰ１が分離されると指定されている。コンピュータは、設定ファイル８５に基づいて、図１４で示したＩＰ１のポート情報ファイル８４を開く。
【０１０４】
コンピュータは、開いたポート情報ファイル８４の接続先の欄においてＴＯＰ以外となっている回路名と、接続先ポート名とを取得する。図１４の例の場合、コンピュータは、ポート情報ファイル８４のＮｏ２，４における接続先の欄と接続先ポート名の欄とから、回路名ＦＵＮＣ１，２と、接続先ポート名Ｆ１＿ＯＡＤ、Ｆ２＿ＩＤＴ１とを取得する。
【０１０５】
コンピュータは、取得した回路名に対応するポート情報ファイルを開く。前述の例の場合、コンピュータは、回路名ＦＵＮＣ１，２を取得したので、図１２，１３で示したポート情報ファイル８２，８３を開くことになる。
【０１０６】
コンピュータは、開いたポート情報ファイルのポート名の欄から、先ほど取得した接続先ポート名を検索する。コンピュータは、検索したポート名に対応する接続先の欄をＴＯＰに変更する。これによって、分離されるＩＰマクロは、ＴＯＰ回路の外に出されることになる。コンピュータは、接続先の欄をＴＯＰに変更した接続先ポート名の欄を、ポート名の欄と同じポート名に変更する。
【０１０７】
例えば、前述の例の場合、コンピュータは、開いたポート情報ファイル８２のポート名の欄から、先ほど取得したＦ１＿ＯＡＤを検索する。コンピュータは、検索したポート名Ｆ１＿ＯＡＤに対応する接続先をＴＯＰに変更する。また、接続先ポート名をポート名Ｆ１＿ＯＡＤと同じ名前に変更する。これによって、図１７で示したポート情報ファイル９２が生成される。
【０１０８】
同様に、コンピュータは、開いたポート情報ファイル８３のポート名の欄から、先ほど取得したＦ２＿ＩＤＴ１を検索する。コンピュータは、検索したポート名Ｆ２＿ＩＤＴ１に対応する接続先をＴＯＰに変更する。また、接続先ポート名をポート名Ｆ２＿ＩＤＴ１と同じ名前に変更する。これによって、図１８で示したポート情報ファイル９３が生成される。
【０１０９】
ＦＵＮＣ１，２の接続先をＴＯＰに変えたことによって、ＴＯＰ１のポート情報ファイルも変わる。ＦＵＮＣ１，２の接続先がＩＰ１であった接続先ポート名は、ＴＯＰ１のＦ２＿ＩＤＴ１、Ｆ１＿ＯＡＤに変更されたので、ＴＯＰ１のポート情報ファイルのポート名は、Ｆ２＿ＩＤＴ１、Ｆ１＿ＯＡＤが追加されることになる。これによって、図１６で示したポート情報ファイル９１が生成される。
【０１１０】
なお、ポート情報ファイル９１のＦ２＿ＩＤＴ１、Ｆ１＿ＯＡＤのレンジ、Ｉ／Ｏ、タイプ、および種別の欄は、ＦＵＮＣ１，２のポート情報ファイル９２，９３に基づいて書き込まれる。
【０１１１】
また、コンピュータは、上記のように生成したポート情報ファイル９１〜９３を基に、図２２で示したＲＴＬを生成する。
以下、フローチャートを用いて、上記のポート情報ファイルの生成について説明する。
【０１１２】
図２３は、ＩＰマクロを分離するときのポート情報ファイルの生成を示したフローチャートである。
［ステップＳ２１］コンピュータは、入力された設定ファイルに基づいて、分離するＩＰマクロがあるか否か判断する。図９，１０で説明したように、分離するＩＰマクロが１つとは限らず、複数ある場合もあるからである。分離するＩＰマクロがあれば、そのＩＰマクロのポート情報ファイルを開き、ステップＳ２２へ進む。分離するＩＰマクロがなければ、処理を終了する。
【０１１３】
［ステップＳ２２］コンピュータは、開いたポート情報ファイルの接続先の欄を全て検索したか否か判断する。全て検索した場合、ステップＳ２３へ進む。全て検索していなければ、ステップＳ２１へ進む。
【０１１４】
［ステップＳ２３］コンピュータは、ステップＳ２２で開いたポート情報ファイルの、検索対象となっている接続先の欄が、ＴＯＰ以外の回路名（機能ブロックの回路名）であるか否か判断する。接続先の欄がＴＯＰ以外の回路名である場合、その接続先名と、接続先ポート名とを取得し、ステップＳ２４へ進む。接続先の欄がＴＯＰの回路名である場合、その接続先名と、接続先ポート名とを取得し、ステップＳ２５へ進む。
【０１１５】
［ステップＳ２４］コンピュータは、ステップＳ２３で取得した接続先名に対応するポート情報ファイルを開き、開いたポート情報ファイルのポート名の欄において、ステップＳ２３で取得した接続先ポート名を検索する。コンピュータは、検索したポート名の欄に対応する接続先の欄をＴＯＰに書き換え、また、接続先ポート名を、検索した接続先ポート名（ステップＳ２３で取得した接続先ポート名）に書き換える。
【０１１６】
［ステップＳ２５］コンピュータは、ステップＳ２３で取得した接続先ポート名が、他の回路へ接続がなければ、ＴＯＰのポート情報ファイルのポート名から、取得した接続先ポート名を削除する。例えば、図１１で示したポート情報ファイル８１のポート名ＤＡＴＡＯＵＴ２が削除され、図１６で示したポート情報ファイル９１のようになる。
【０１１７】
［ステップＳ２６］コンピュータは、ポート情報ファイルを基に、ＴＯＰのＲＴＬの当該ポートの記述を書き換える。
このようにして、ＩＰマクロの分離によって生成されるポート情報ファイルが生成され、ＲＴＬが書き換えられる。
【０１１８】
以上が、コンピュータのＩＰマクロの分離についての説明である。次に、ＩＰマクロの追加についてのコンピュータの動作について説明する。
図２４は、コンピュータによる追加前の回路を示した図である。図には、ＲＴＬで記述された最上位層のＴＯＰ回路１１０、ＴＯＰ回路１１０を構成する機能ブロック１１１，１１２が示してある。また、ＴＯＰ回路１１０に追加しようとしているＩＰマクロ１１３が示してある。なお、以下では、ＴＯＰ回路１１０、機能ブロック１１１，１１２、およびＩＰマクロ１１３を、図に示すようにＴＯＰ２、ＦＵＮＣ１，２、およびＩＰ２として説明する。
【０１１９】
ＴＯＰ２は、図に示すようにＤＡＴＡＩＮ１，２、ＣＬＫ、Ｆ２＿ＩＤＴ１、ＤＡＴＡＯＵＴ１，３、およびＦ１＿ＯＡＤのポートを有している。
ＦＵＮＣ１，２は、図９で示したＦＵＮＣ１，２と同じポートを有している。ＦＵＮＣ１のＦ１＿ＩＤＴは、ＴＯＰ２のＤＡＴＡＩＮ１に接続されている。ＣＬＫは、ＴＯＰ２のＣＬＫに接続されている。Ｆ１＿ＯＤＴ１は、ＴＯＰ２のＤＡＴＡＯＵＴ１に接続されている。Ｆ１＿ＯＡＤは、ＴＯＰ２のＦ１＿ＯＡＤに接続されている。
【０１２０】
ＦＵＮＣ２のＦ２＿ＩＤＴ１は、ＴＯＰ２のＦ２＿ＩＤＴ１に接続されている。Ｆ２＿ＩＤＴ２は、ＴＯＰ２のＤＡＴＡＩＮ２に接続されている。ＣＬＫは、ＴＯＰ２のＣＬＫに接続されている。Ｆ２＿ＯＤＴは、ＴＯＰ２のＤＡＴＡＯＵＴ３に接続されている。
【０１２１】
ＩＰ２は、ＩＰ２＿ＤＴ１、ＩＰ２＿ＤＴ２、ＩＰ２＿ＡＤ、ＣＬＫ、ＩＰ２＿ＯＰＥＮ、およびＩＰ２＿ＯＤＴのポートを有している。
次に、図２４のＩＰ２が、コンピュータによってＴＯＰ２に追加されたときの回路について説明する。
【０１２２】
図２５は、コンピュータによる追加後の回路を示した図である。図には、ＴＯＰ回路１２０、ＴＯＰ回路１２０を構成する機能ブロック１２１，１２２およびＴＯＰ回路１２０に追加したＩＰマクロ１２３が示してある。なお、以下では、ＴＯＰ回路１２０、機能ブロック１２１，１２２、およびＩＰマクロ１２３を、図に示すようにＴＯＰ３、ＦＵＮＣ１，２、およびＩＰ２として説明する。
【０１２３】
ＴＯＰ３は、図２４で示したＴＯＰ２に対応する。ＴＯＰ３は、ＩＰ２が追加されたため、ポートがＤＡＴＡＩＮ１，２、ＣＬＫ、Ｆ２＿ＩＤＴ１、およびＩＰ２＿ＯＵＴとなっている。ＴＯＰ３のＩＰ２＿ＯＵＴは、ＩＰ２のＩＰ２＿ＯＤＴのポートに接続される。
【０１２４】
ＦＵＮＣ１は、図２４で示したＦＵＮＣ１に対応する。ＦＵＮＣ１は、図２４で示したＦＵＮＣ１と同様に、Ｆ１＿ＩＤＴ、ＣＬＫ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有している。ＦＵＮＣ１のＦ１＿ＯＤＴ１、Ｆ１＿ＯＡＤのポートは、ＩＰ２の追加によって、ＩＰ２のＩＰ２＿ＤＴ１、ＩＰ２＿ＡＤに接続される。
【０１２５】
ＦＵＮＣ２は、図２４で示したＦＵＮＣ２に対応する。ＦＵＮＣ２は、図２４で示したＦＵＮＣ２と同様に、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、ＣＬＫ、およびＦ２＿ＯＤＴのポートを有している。ＦＵＮＣ２のＦ２＿ＯＤＴは、ＩＰ２の追加によって、ＩＰ２＿ＤＴ２に接続される。
【０１２６】
次に、コンピュータに入力されるポート情報ファイルおよび設定ファイルについて説明する。コンピュータには、図２４で示した回路のＲＴＬとともに、以下で説明するＴＯＰ２、ＦＵＮＣ１，２、およびＩＰ２のポート情報ファイルが入力される。まず、図２４のＴＯＰ２のポート情報ファイルについて説明する。
【０１２７】
図２６は、コンピュータに入力されるＴＯＰ２のポート情報ファイルである。図に示すポート情報ファイル１３１は、図２４で示した回路のＴＯＰ２のポート情報ファイルを示している。ポート情報ファイル１３１は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、および種別の欄を有している。
【０１２８】
ポート名の欄には、ＴＯＰ２のポート名が格納される。図２４で説明したようにＴＯＰ２は、ＤＡＴＡＩＮ１，２、ＣＬＫ、Ｆ２＿ＩＤＴ１、ＤＡＴＡＯＵＴ１，３、およびＦ１＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル１３１のポート名の欄に格納される。
【０１２９】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【０１３０】
次に、図２４のＩＰ２のポート情報ファイルについて説明する。
図２７は、コンピュータに入力されるＩＰ２のポート情報ファイルである。図に示すポート情報ファイル１３２は、図２４で示した回路のＩＰ２のポート情報ファイルを示している。ポート情報ファイル１３２は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【０１３１】
ポート名の欄には、ＩＰ２のポート名が格納される。図２４で説明したようにＩＰ２は、ＩＰ２＿ＤＴ１、ＩＰ２＿ＤＴ２、ＩＰ２＿ＡＤ、ＣＬＫ、ＩＰ２＿ＯＰＥＮ、およびＩＰ２＿ＯＤＴのポートを有しており、これらの名称が、ポート情報ファイル１３２のポート名の欄に格納される。
【０１３２】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【０１３３】
接続先の欄には、ＩＰ２がＴＯＰ２に追加された場合の、ポートの接続先の回路名が格納される。接続先ポート名の欄には、ＩＰ２がＴＯＰ２に追加された場合の、ポートの接続先のポート名が格納される。なお、接続先が０となっているのは、ポート名ＩＰ２＿ＯＰＥＮがＬレベルに固定されることを示している。接続先が１の場合は、そのポートは、Ｈレベルに固定されることになる。
【０１３４】
なお、図２６，２７のポート情報ファイル１３１，１３２の情報は、図に示す欄に限るものではなく、図に示す以外の情報をさらに格納するようにしてもよい。また、図２４のＦＵＮＣ１，２のポート情報ファイルは、図１７，１８のポート情報ファイル９２，９３と同じになるので（ＴＯＰ回路１１０とＴＯＰ回路７０は同じ構成のため）、その説明を省略する。
【０１３５】
次に、コンピュータに入力される設定ファイルについて説明する。
図２８は、コンピュータに入力される設定ファイルである。図に示す設定ファイル１３３は、ＩＰマクロ名および追加／分離の欄を有している。
【０１３６】
ＩＰマクロ名の欄には、ＴＯＰ２に追加されるＩＰマクロのＩＰマクロ名が格納される。図の例では、図２４で示したＩＰ２が格納されている。追加／分離の欄には、ＩＰマクロ名に格納されたＩＰマクロを追加するのか、分離するのかを示す情報が格納される。図の例では、追加することを示す情報が格納されている。
【０１３７】
次に、図２４のＩＰ２が、コンピュータによってＴＯＰ２に追加されたときのポート情報ファイルについて説明する。
コンピュータは、図２６，図２７で示したＴＯＰ２とＩＰ２のポート情報ファイル１３１，１３２、ＦＵＮＣ１，２のポート情報ファイル９２，９３（図１７，１８）、図２８で示した設定ファイル１３３、および図２４に示した回路のＲＴＬに基づいて図２５に示すようにＩＰ２をＴＯＰ３に追加する。このとき、コンピュータは、以下で説明する追加後のポート設定情報ファイルを生成する。
【０１３８】
図２９は、追加後のＴＯＰ３のポート情報ファイルである。図に示すポート情報ファイル１４１は、ＩＰ２が追加された後のＴＯＰ３のポート情報ファイルを示している。ポート情報ファイル１４１は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプおよび種別の欄を有している。
【０１３９】
ポート名の欄には、ＴＯＰ３のポート名が格納される。図２５で説明したようにＴＯＰ３は、ＣＬＫ、ＤＡＴＡＩＮ１，２、Ｆ２＿ＩＤＴ１、およびＩＰ２＿ＯＵＴのポートを有しており、これらの名称が、ポート情報ファイル１４１のポート名の欄に格納される。
【０１４０】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【０１４１】
次に、ＩＰ２の追加後の、ＦＵＮＣ１のポート情報ファイルについて説明する。
図３０は、追加後のＦＵＮＣ１のポート情報ファイルである。図に示すポート情報ファイル１４２は、ＩＰ２が追加された後のＦＵＮＣ１のポート情報ファイルを示している。ポート情報ファイル１４２は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【０１４２】
ポート名の欄には、ＦＵＮＣ１のポート名が格納される。図２５で説明したようにＦＵＮＣ１は、ＣＬＫ、Ｆ１＿ＩＤＴ、Ｆ１＿ＯＤＴ１、およびＦ１＿ＯＡＤのポートを有しており、これらの名称が、ポート情報ファイル１４２のポート名の欄に格納される。
【０１４３】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【０１４４】
接続先の欄には、ＦＵＮＣ１のポートの、接続先の回路名が格納される。なお、ポート名Ｆ１＿ＯＤＴ１、Ｆ１＿ＯＡＤの接続先は、ＩＰ２がＴＯＰ３に追加されたため、図１７における接続先はＴＯＰであったのに対し、図３０では、ＩＰ２となっている。
【０１４５】
接続先ポート名の欄には、ＦＵＮＣ１のポートの、接続先のポート名が格納される。なお、ポート名Ｆ１＿ＯＤＴ１、Ｆ１＿ＯＡＤの接続先ポート名は、ＩＰ２がＴＯＰ３に追加されたため、図１７における接続先ポート名はＴＯＰのＤＡＴＡＯＵＴ１、Ｆ１＿ＯＡＤであったのに対し、図３０では、ＩＰ２のＩＰ２＿ＤＴ１、ＩＰ２＿ＡＤとなっている。
【０１４６】
図３１は、追加後のＦＵＮＣ２のポート情報ファイルである。図に示すポート情報ファイル１４３は、ＩＰ２が追加された後のＦＵＮＣ２のポート情報ファイルを示している。ポート情報ファイル１４３は、Ｎｏ、ポート名、レンジ、Ｉ／Ｏ、タイプ、種別、接続先、および接続先ポート名の欄を有している。
【０１４７】
ポート名の欄には、ＦＵＮＣ２のポート名が格納される。図２５で説明したようにＦＵＮＣ２は、ＣＬＫ、Ｆ２＿ＩＤＴ１、Ｆ２＿ＩＤＴ２、およびＦ２＿ＯＤＴのポートを有しており、これらの名称が、ポート情報ファイル１４３のポート名の欄に格納される。
【０１４８】
レンジの欄には、ポートのビット幅が格納される。Ｉ／Ｏの欄には、ポートが入力ポートであるのか、出力ポートであるのかを示す情報が格納される。タイプの欄には、ポートの信号がシングルであるのか、ベクタであるのかを示す情報が格納される。種別の欄には、ポートの信号種別が格納される。
【０１４９】
接続先の欄には、ＦＵＮＣ２のポートの、接続先の回路名が格納される。なお、ポート名Ｆ２＿ＯＤＴの接続先は、ＩＰ２がＴＯＰ３に追加されたため、図１８における接続先はＴＯＰであったのに対し、図３１ではＩＰ２となっている。
【０１５０】
接続先ポート名の欄には、ＦＵＮＣ２のポートの、接続先のポート名が格納される。なお、ポート名Ｆ２＿ＯＤＴの接続先ポート名は、ＩＰ２がＴＯＰ３に追加されたため、図１８における接続先ポート名はＴＯＰのＤＡＴＡＯＵＴ３であったのに対し、図３１では、ＩＰ２のＩＰ２＿ＤＴ２となっている。
【０１５１】
このように、図２４に示したＩＰ２が、図２５に示すようにＴＯＰ３に追加されると、図２９〜図３１に示したようなポート情報ファイルが生成される。
次に、図２４に示したＩＰ２が、コンピュータによって図２５に示すようにＴＯＰ３に追加されたときに生成されるＲＴＬについて説明する。
【０１５２】
図３２は、コンピュータに入力されるＩＰ２のＲＴＬを示した図である。図には、ＶＨＤＬで記述された例が示してある。図のarchitecture IP2＿RTL of IP2 is以下、ＩＰ２の実体が記述される。なお、ＴＯＰ２のＲＴＬもコンピュータに入力される。ＴＯＰ２のＲＴＬは、図２２と同様であり、その説明を省略する。図１０と図２４のＴＯＰ回路は、同じ構成だからである。ＦＵＮＣ１，２も同様にＲＴＬで実体が記述され、コンピュータに入力される。
【０１５３】
図３３，３４は、ＩＰ２が追加されたときのＴＯＰ３のＲＴＬを示した図である。図には、ＶＨＤＬで記述された例が示してある。なお、図３３，３４の記述は続いている。
記述１５１に示すようにＴＯＰ３のＲＴＬには、ＴＯＰ３のポートが記述されている。記述１５１は、図２６で示したポート情報ファイル１３１に対応する。また、記述１５２〜１５４に示すようにＴＯＰ３のＲＴＬには、ＴＯＰ３を構成するＦＵＮＣ１，２、ＩＰ２のポートが記述されている。記述１５５は、ＴＯＰ３内における信号線を記述している。記述１５６〜１５８は、ＦＵＮＣ１，２、ＩＰ２のポートの接続先を示している。
【０１５４】
次に、図２９〜図３１のポート情報ファイル１４１〜１４３の具体的な生成方法について説明する。
コンピュータは、設定ファイルで指定された、追加されるＩＰマクロのポート情報ファイルを開く。コンピュータは、開いたポート情報ファイルの接続先の欄がＴＯＰ以外となっているポート名、接続先の回路名、および接続先ポート名を取得する。
【０１５５】
例えば、図２４，２５で説明したように、ＩＰ２がＴＯＰ３に追加されるとする。この場合、図２８で示したように、設定ファイル１３３には、ＩＰ２が追加されると指定されている。コンピュータは、設定ファイル１３３に基づいて、図２７で示したＩＰ２のポート情報ファイル１３２を開く。
【０１５６】
コンピュータは、開いたポート情報ファイル１３２の接続先の欄においてＴＯＰ以外となっているポート名、接続先のブロック名、および接続先ポート名を取得する。図２７の例の場合、コンピュータは、ポート情報ファイル１３２のＮｏ２〜４におけるポート名ＩＰ２＿ＤＴ１、ＩＰ２＿ＤＴ２、ＩＰ２＿ＡＤを取得する。また、接続先の回路名ＦＵＮＣ１，２および接続先ポート名Ｆ１＿ＯＤＴ１、Ｆ２＿ＯＤＴ、Ｆ１＿ＯＡＤを取得する。また、コンピュータは、接続先がＴＯＰ以外となっている数値０とそのポート名ＩＰ２＿ＯＰＥＮを取得する。
【０１５７】
なお、コンピュータは、ポート情報ファイル１３２から取得したポート名、接続先の回路名、および接続先ポート名の情報から、どの回路のどのポートを、ＩＰ２のどのポートに接続されるようにポート情報ファイルを変更しなければならないか認識することができる。例えば、ポート情報ファイル１３２のＮｏ２から取得したポート名、回路名、および接続先ポート名の情報より、ＦＵＮＣ１のＦ１＿ＯＤＴ１の接続先は、ＩＰ２のＩＰ２＿ＤＴ１ポートに接続されるように変更すべきであると認識できる。
【０１５８】
コンピュータは、上記で取得した回路名に対応するポート情報ファイルを開く。前述の例の場合、コンピュータは、回路名ＦＵＮＣ１，２を取得したので、図１７，１８で示したポート情報ファイル９２，９３を開くことになる。
【０１５９】
コンピュータは、開いたポート情報ファイルのポート名の欄から、先ほど取得した接続先ポート名を検索する。コンピュータは、検索したポート名に対応する接続先の欄を追加するＩＰマクロ名に変更する。これによって、追加されるＩＰマクロは、ＴＯＰ回路内に追加されることになる。コンピュータは、接続先の欄をＩＰマクロ名に変更した接続先ポート名の欄を、先ほど取得した、追加するＩＰマクロのポート名に変更する。
【０１６０】
例えば、前述の例の場合、コンピュータは、開いたポート情報ファイル９２のポート名の欄から、先ほど取得したＦ１＿ＯＤＴ１を検索する。コンピュータは、検索したポート名Ｆ１＿ＯＤＴ１に対応する接続先をＩＰ２に変更する。また、接続先ポート名を、先ほど取得した、追加するＩＰマクロのポート名ＩＰ２＿ＤＴ１に変更する。コンピュータは、先ほど取得したＦ１＿ＯＡＤ、Ｆ２＿ＯＤＴにおいても同様の処理を行う。
【０１６１】
ＦＵＮＣ１，２の接続先をＩＰ２に変えたことによって、図２６に示したＴＯＰ２のポート情報ファイル１３１も変わる。ＦＵＮＣ１，２の接続先がＴＯＰであったポートは、ＩＰ２のポートに接続されるので、その接続先ポート名をＴＯＰ２のポート情報ファイル１３１から削除する。
【０１６２】
例えば、ＦＵＮＣ１のＦ１＿ＯＤＴ１、Ｆ１＿ＯＡＤ、ＦＵＮＣ２のＦ２＿ＯＤＴは、ＩＰ２のポートに接続されるように変更されたので、これらのポートの接続先であったＴＯＰ２のポート名ＤＡＴＡＯＵＴ１、Ｆ１＿ＯＡＤ、ＤＡＴＡＯＵＴ３がポート情報ファイル１３１から削除される。
【０１６３】
また、コンピュータは、図２７で示したＩＰ２のポート情報ファイル１３２において、接続先がＴＯＰとなっている接続先ポート名が、ＴＯＰ２のポート情報ファイル１３１に存在しているか検索する。コンピュータは、接続先ポート名がＴＯＰ２のポート情報ファイル１３１に存在していなければ、その接続先ポート名を、ポート情報ファイル１３１に追加する。つまり、コンピュータは、ＩＰ２から直接ＴＯＰ２に接続されるポート名を追加する。例えば、図２９に示すポート情報ファイル１４１のＮｏ５は、追加されたポート名である。このようにして、図２９で示したポート情報ファイル１４１が生成される。
【０１６４】
なお、コンピュータは、上記のように生成したポート情報ファイル１４１を基に、図３３，３４で示したＲＴＬを生成する。
以下、フローチャートを用いて、コンピュータのポート情報ファイルの生成について説明する。
【０１６５】
図３５は、ＩＰマクロを追加するときのポート情報ファイルの生成を示したフローチャートである。
［ステップＳ３１］コンピュータは、入力された設定ファイルに基づいて、追加するＩＰマクロがあるか否か判断する。図２４，２５で説明したように、追加するＩＰマクロが１つとは限らず、複数ある場合もあるからである。追加するＩＰマクロがあれば、そのＩＰマクロのポート情報ファイルを開き、ステップＳ３２へ進む。追加するＩＰマクロがなければ、処理を終了する。
【０１６６】
［ステップＳ３２］コンピュータは、開いたポート情報ファイルの接続先の欄を全て検索したか否か判断する。全て検索した場合、ステップＳ３３へ進む。全て検索していなければ、ステップＳ３１へ進む。
【０１６７】
［ステップＳ３３］コンピュータは、ステップＳ３２で開いたポート情報ファイルの、検索対象となっている接続先の欄が、ＴＯＰ以外であるか否か判断する。接続先の欄がＴＯＰ以外である場合、そのポート名と接続先名と接続先ポート名とを取得し、ステップＳ３５へ進む。接続先の欄がＴＯＰである場合、その接続先ポート名を取得し、ステップＳ３４へ進む。
【０１６８】
［ステップＳ３４］コンピュータは、ステップＳ３３で取得した接続先ポート名が図２６で示したＴＯＰ２のポート情報ファイル１３１のポート名になければ追加する。
［ステップＳ３５］コンピュータは、ステップＳ３３で取得した接続先の欄が回路名を示しているか否か判断する。回路名を示している場合、ステップＳ３６へ進む。回路名を示していない場合、ステップＳ３７へ進む。
【０１６９】
［ステップＳ３６］コンピュータは、ステップＳ３３で取得した接続先の欄の回路名に対応するポート情報ファイルを開く。コンピュータは、開いたポート情報ファイルのポート名の欄から、ステップＳ３３で取得した接続先ポート名のポート名を検索する。コンピュータは、検索したポート名における接続先の欄を、追加するＩＰマクロの名称に書き換え、接続先ポート名の欄を、ステップＳ３３で取得したポート名に書き換える。
【０１７０】
［ステップＳ３７］コンピュータは、ステップＳ３３で取得した接続先の欄に従って、ＴＯＰのＲＴＬを生成する。例えば、接続先の欄が‘０’の場合、追加されるＩＰマクロのそのポートがＬレベルで固定となるようにする。接続先の欄が‘１’の場合、追加されるＩＰマクロのそのポートがＨレベルで固定となるようにする。接続先の欄が‘ＯＰＥＮ’の場合、追加されるＩＰマクロのそのポートが開放で固定となるようにする。例えば、図２７のポート情報ファイル１３２のＮｏ６に示すように、接続先の欄が０である場合、ＩＰマクロのポート（図２７の例では、ＩＰ２＿ＯＰＥＮ）がＬレベルで固定されるようにする。
【０１７１】
［ステップＳ３８］コンピュータは、ポート情報ファイルを基に、ＴＯＰのＲＴＬの当該ポートの記述を書き換える。
このようにして、ＩＰマクロの追加によって生成されるポート情報ファイルが生成され、ＲＴＬが書き換えられる。
【０１７２】
以上説明したようにトップ回路に追加・分離するＩＰマクロのポート情報ファイルに基づいて、トップ回路および機能ブロックのポート情報ファイルを変更し、トップ回路のＲＴＬを書き換えるようにした。これによって、手作業によらずにＩＰマクロを追加・分離したトップ回路のＲＴＬを得ることができ、ＩＰマクロを容易にトップ回路から分離することができる。
【０１７３】
また、コンピュータによって自動でＲＴＬを作成することにより、手作業によるミスの軽減および効率化を図ることができ、出戻り工数の削減を図ることができる。
なお、ＩＰマクロの追加分離を行うには、コンピュータは、上記で説明した分離の処理を行って、追加の処理を行えばよい。または、追加の処理を行って、分離の処理を行えばよい。
【０１７４】
また、特願２００４−３７２９７２において、設計している回路がデバイスで許容されている回路規模を超えた場合、その回路を分割する論理回路分割方法および装置が提案されている。従って、ＩＰマクロをＴＯＰ回路から追加・分離したことにより、ＴＯＰ回路がデバイスの使用可能な回路規模を超えた場合には、上記論理回路分割方法および装置回路によって、ＴＯＰ回路を分割するようにしてもよい。また、ＩＰマクロをＴＯＰ回路から追加・分離したことにより、ＴＯＰ回路がデバイスの使用可能なピン数を超えた場合、上記論理回路分割方法および装置回路によって、回路を分割するようにしてもよい。
【０１７５】
また、コンピュータは、生成したＲＴＬのポート宣言をレイアウトなどに使用できるようフォーマット変換して出力することができる。
図３６は、ポートフォーマット変換を示した図である。コンピュータは、生成したＲＴＬのポート宣言を、図に示すようにフォーマット変換して出力することができる。
【０１７６】
（付記１）  回路設計するコンピュータにおいて、
ＲＴＬで記述されているトップ回路および前記トップ回路を構成しているブロック回路のポート情報を入力するポート情報入力手段と、
前記トップ回路の外部に分離する分離ブロック回路の分離指定情報を入力する分離指定情報入力手段と、
前記分離指定情報に従って分離する前記分離ブロック回路の前記ポート情報に基づいて、前記トップ回路および前記ブロック回路の前記ポート情報を変更し、前記分離ブロック回路が分離されたときの分離ポート情報を生成する分離ポート情報生成手段と、
前記分離ポート情報に基づいて、前記分離ブロック回路が分離された前記トップ回路の前記ＲＴＬを書き換えるＲＴＬ書き換え手段と、
を有することを特徴とするコンピュータ。
【０１７７】
（付記２）  前記ポート情報は、ポートのポート名、前記ポートの接続先回路、および前記接続先回路の接続先ポート名の情報を有していることを特徴とする付記１記載のコンピュータ。
【０１７８】
（付記３）  前記分離ポート情報生成手段は、前記分離ブロック回路の前記ポート情報において、前記ブロック回路となっている前記接続先回路とその前記接続先ポート名とを取得し、取得した前記接続先回路の前記ポート情報の前記ポート名において、取得した前記接続先ポート名を検索し、検索した前記ポート名における前記接続先回路を前記トップ回路に変更することを特徴とする付記２記載のコンピュータ。
【０１７９】
（付記４）  前記分離ポート情報生成手段は、さらに、取得した前記接続先回路の前記ポート情報において、前記接続先ポート名を、取得した前記接続先ポート名に変更することを特徴とする付記３記載のコンピュータ。
【０１８０】
（付記５）  前記トップ回路の内部に追加する追加ブロック回路の追加指定情報を入力する追加指定情報入力手段と、
前記追加指定情報に従って追加する前記追加ブロック回路の前記ポート情報に基づいて、前記トップ回路および前記ブロック回路の前記ポート情報を変更し、前記追加ブロック回路が追加されたときの追加ポート情報を生成する追加ポート情報生成手段と、
前記追加ポート情報に基づいて、前記追加ブロック回路が追加された前記トップ回路の前記ＲＴＬを生成するＲＴＬ生成手段と、
をさらに有することを特徴とする付記１記載のコンピュータ。
【０１８１】
（付記６）  前記ポート情報は、ポートのポート名、前記ポートの接続先回路、および前記接続先回路の接続先ポート名の情報を有していることを特徴とする付記５記載のコンピュータ。
【０１８２】
（付記７）  前記追加ポート情報生成手段は、前記追加ブロック回路の前記ポート情報において、前記ブロック回路となっている前記接続先回路とその前記接続先ポート名と前記ポート名とを取得し、取得した前記接続先回路の前記ポート情報の前記ポート名において、取得した前記接続先ポート名を検索し、検索した前記ポート名における前記接続先回路を前記追加ブロック回路に変更することを特徴とする付記６記載のコンピュータ。
【０１８３】
（付記８）  前記追加ポート情報生成手段は、さらに、取得した前記接続先回路の前記ポート情報において、前記接続先ポート名を、取得した前記ポート名に変更することを特徴とする付記７記載のコンピュータ。
【０１８４】
（付記９）  前記ＲＴＬ書き換え手段は、前記追加ブロック回路の前記ポート情報の前記接続先回路において、所定の状態となるように示されている場合、前記接続先回路に対応する前記ポートを所定の状態となるように前記ＲＴＬを書き換えることを特徴とする付記６記載のコンピュータ。
【０１８５】
（付記１０）  前記トップ回路がデバイスで許容されている回路規模を超えた場合、前記トップ回路を分割する回路規模分割手段を有することを特徴とする付記１記載のコンピュータ。
【０１８６】
（付記１１）  前記トップ回路がデバイスの使用可能なピン数を超えた場合、前記トップ回路を分割するピン数分割手段を有することを特徴とする付記１記載のコンピュータ。
【図面の簡単な説明】
【０１８７】
【図１】コンピュータの概要を説明する図である。
【図２】ＲＴＬで記述された回路例を示した図である。
【図３】コンピュータが行うＩＰマクロの分離を説明する図である。
【図４】コンピュータが行うＩＰマクロの追加を説明する図である。
【図５】コンピュータが行うＩＰマクロの追加分離を説明する図である。
【図６】コンピュータが行うＩＰマクロの分離、追加、および追加分離のフローチャートである。
【図７】コンピュータが行うＩＰマクロの分離、追加、および追加分離のフローチャートである。
【図８】コンピュータの機能ブロック図である。
【図９】コンピュータによる分離前の回路を示した図である。
【図１０】コンピュータによる分離後の回路を示した図である。
【図１１】コンピュータに入力されるＴＯＰ１のポート情報ファイルである。
【図１２】コンピュータに入力されるＦＵＮＣ１のポート情報ファイルである。
【図１３】コンピュータに入力されるＦＵＮＣ２のポート情報ファイルである。
【図１４】コンピュータに入力されるＩＰ１のポート情報ファイルである。
【図１５】コンピュータに入力される設定ファイルである。
【図１６】分離後のＴＯＰ１のポート情報ファイルである。
【図１７】分離後のＦＵＮＣ１のポート情報ファイルである。
【図１８】分離後のＦＵＮＣ２のポート情報ファイルである。
【図１９】コンピュータに入力されるＴＯＰ１のＲＴＬを示した図である。
【図２０】コンピュータに入力されるＴＯＰ１のＲＴＬを示した図である。
【図２１】コンピュータに入力されるＩＰ１のＲＴＬを示した図である。
【図２２】ＩＰ１が分離されたときのＴＯＰ１のＲＴＬを示した図である。
【図２３】ＩＰマクロを分離するときのポート情報ファイルの生成を示したフローチャートである。
【図２４】コンピュータによる追加前の回路を示した図である。
【図２５】コンピュータによる追加後の回路を示した図である。
【図２６】コンピュータに入力されるＴＯＰ２のポート情報ファイルである。
【図２７】コンピュータに入力されるＩＰ２のポート情報ファイルである。
【図２８】コンピュータに入力される設定ファイルである。
【図２９】追加後のＴＯＰ３のポート情報ファイルである。
【図３０】追加後のＦＵＮＣ１のポート情報ファイルである。
【図３１】追加後のＦＵＮＣ２のポート情報ファイルである。
【図３２】コンピュータに入力されるＩＰ２のＲＴＬを示した図である。
【図３３】ＩＰ２が追加されたときのＴＯＰ３のＲＴＬを示した図である。
【図３４】ＩＰ２が追加されたときのＴＯＰ３のＲＴＬを示した図である。
【図３５】ＩＰマクロを追加するときのポート情報ファイルの生成を示したフローチャートである。
【図３６】ポートフォーマット変換を示した図である。
【図３７】ＡＳＩＣで実現しようとしている回路の回路図である。
【図３８】ＩＰマクロを外に分離した回路図である。
【符号の説明】
【０１８８】
１  トップ回路
１ａ〜１ｃ  ブロック回路
２  コンピュータ
２ａ  ポート情報入力手段
２ｂ  分離指定情報入力手段
２ｃ  分離ポート情報生成手段
２ｄ  ＲＴＬ書き換え手段
【図１】
2007249489.tif 000003
【図２】
2007249489.tif 000004
【図３】
2007249489.tif 000005
【図４】
2007249489.tif 000006
【図５】
2007249489.tif 000007
【図６】
2007249489.tif 000008
【図７】
2007249489.tif 000009
【図８】
2007249489.tif 000010
【図９】
2007249489.tif 000011
【図１０】
2007249489.tif 000012
【図１１】
2007249489.tif 000013
【図１２】
2007249489.tif 000014
【図１３】
2007249489.tif 000015
【図１４】
2007249489.tif 000016
【図１５】
2007249489.tif 000017
【図１６】
2007249489.tif 000018
【図１７】
2007249489.tif 000019
【図１８】
2007249489.tif 000020
【図１９】
2007249489.tif 000021
【図２０】
2007249489.tif 000022
【図２１】
2007249489.tif 000023
【図２２】
2007249489.tif 000024
【図２３】
2007249489.tif 000025
【図２４】
2007249489.tif 000026
【図２５】
2007249489.tif 000027
【図２６】
2007249489.tif 000028
【図２７】
2007249489.tif 000029
【図２８】
2007249489.tif 000030
【図２９】
2007249489.tif 000031
【図３０】
2007249489.tif 000032
【図３１】
2007249489.tif 000033
【図３２】
2007249489.tif 000034
【図３３】
2007249489.tif 000035
【図３４】
2007249489.tif 000036
【図３５】
2007249489.tif 000037
【図３６】
2007249489.tif 000038
【図３７】
2007249489.tif 000039
【図３８】
2007249489.tif 000040