(57)【要約】【課題】  階層構造を有する論理回路の再構成の作業を容易に且つ確実に実行可能とし得る方法を提供することが課題である。【解決手段】  階層構造を有する論理回路に関する情報を読み込み、所定の階層に属するインスタンスを他の階層に移動する方法において、前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成、接続、及び不要となる階層ポートの切断、消去を行う構成である。【選択図】  図６
2006260288.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を有する論理回路に関する情報を読み込み、
所定の階層に属するインスタンスを他の階層に移動する各段階よりなり、
前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成および接続、並びに不要となる階層ポートの切断及び消去を行う段階を有する論理回路設計方法。
【請求項２】
請求項１に記載の論理回路設計方法であって、
新たに要される階層ポートの生成にあたり、当該階層ポートのＩＯ属性を設定する段階よりなる論理回路設計方法。
【請求項３】
請求項１に記載の論理回路設計方法であって、
複数のインスタンスが共通のモジュールを参照する構成とされていた場合、当該共通のモジュールをコピーし、もって当該複数のインスタンスの各々が元のモジュール或いはコピーモジュールを独立して参照するように構成する段階よりなる論理回路設計方法。
【請求項４】
階層構造を有する論理回路に関する情報を読み込み、
所定の階層に属するインスタンスを他の階層に移動する各段階をコンピュータに実行させるための命令よりなるプログラムであって、
更に前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成及び接続、並びに不要となる階層ポートの切断及び消去を行う段階をコンピュータに実行させるための命令を含む論理回路設計プログラム。
【請求項５】
階層構造を有する論理回路に関する情報を読み込む手段と、
所定の階層に属するインスタンスを他の階層に移動する手段とよりなり、
更に前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成及び接続、並びに不要となる階層ポートの切断及び消去を行う手段を有する論理回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は論理回路設計方法、論理回路設計プログラム及び論理回路設計装置に係り、特に階層構造を適用した論理回路設計に適用可能な論理回路設計方法、論理回路設計プログラム及び論理回路設計装置に関する。
【背景技術】
【０００２】
昨今ＬＳＩ回路の大規模化が進み、ＬＳＩ回路設計における物理設計（レイアウト設計とも称され、具体的には各セルの配置、セル間の配線等を決定する作業）においては、所謂階層分割、タイリング等の設計手法を適用することが主流となっている。その結果、上記物理設計に先立ってなされる論理設計においても、上記物理設計における階層に対応する論理階層において設計を進めることが、利便性の観点から望ましい。
【０００３】
しかしながら現実には、所謂ＣＡＤツールの都合、設計者の都合等により、論理設計の階層が物理設計の階層と食い違ってしまう場合がある。即ち例えば、ＤＦＴ（デザイン・フォー・テスト）により論理回路にテスト回路が挿入された場合、その挿入が行われた論理階層が物理設計における階層と異なってしまうことがある。又設計者にとって機能ごとに自由に階層を分割し論理回路の入力・検証などを行うほうが便利である場合がある。そのため、設計作業後に論理階層を物理階層に合わせることが必要となり、そのために、階層の再構成という作業が必要になる。以下の特許文献１，２は、その関連技術を開示している。
【特許文献１】特開平３−２７４７４号公報
【特許文献２】特開２００３−２５６４９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１には階層の再構築の技術が開示されているが、この技術では階層の再構築を行うにあたり、インスタンスの階層移動、例えば階層Ｂ１内のインスタンスＸ１を階層B２に移動するという如く（図１参照）、隣接した階層に対する移動について機能が開示されているが、それ以外の態様の移動については開示されていない。又、また、再構築時に不必要になる階層ポートを削除する機能等についても特に開示されていない。
【０００５】
又、上記特許文献２にも階層の再構築に関する技術が開示されているが、この技術はネットに二つのピンまたはポートが接続している場合には適用できるが、ネットに三つ以上のピンまたはポートが接続している場合には適用できないと考えられる。
【０００６】
また、これら従来技術には、新たに生成する階層ポートにＩＯ属性を設定する機能、移動するインスタンスのピンまたはそれに接続する階層ポートに定数が接続している場合の処理、複数インスタンス(あるモジュールを参照するインスタンスが複数ある意)の解決に関する技術については開示がされていない。
【０００７】
このように現在の時点で階層の再構築を自由に行なうことを可能にするＣＡＤツールが存在せず、設計者(人間)が手作業にて階層の再構築を行なうか、或いは既存のＣＡＤツールを併用して階層の再構築に伴う複雑な操作を行う必要があった。
【０００８】
本発明は上記課題に鑑み、論理設計における回路の階層構造に対し、ＣＡＤツールの適用等により階層の再構築を自動的に行なうことを可能にし、もってＴＡＴ（ターンアラウンドタイム）の短縮、手修正によるミスの防止を達成し、もって設計品質の向上、利便性の向上を果たすことを目的とする。
【課題を解決するための手段】
【０００９】
上記課題の達成のため本発明では、階層構造を有する論理回路に関する情報を読み込み、所定の階層に属するインスタンスを他の階層に移動する方法において、前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成、それに対する接続、及び不要となる階層ポートの切断及び消去を行う構成とした。
【００１０】
その結果簡易な構成で、インスタンスの階層を跨いだ移動に伴って必要となる作業を容易且つ確実に実施可能となる。
【発明の効果】
【００１１】
本発明によれば、論理設計において階層構造を適用した回路構成に対する再構成作業の自動化が可能となり、設計の利便性向上、ＴＡＴ短縮及び高品質の回路設計が可能となる。
【発明を実施するための最良の形態】
【００１２】
まず最初に図１乃至４と共に、本発明による論理階層再構成方法にて行う論理階層再構成処理の具体例について説明する。
【００１３】
図１は階層構造が適用された論理回路設計データの一部を示す図である。同図にて示す論理回路は、最上層であるＴＯＰ層と、その一階層下の階層Ｂ１，Ｂ２とよりなる。この場合、階層Ｂ１から、論理素子としてのセルＸ１を階層Ｂ２に移動する処理を示している。この場合、階層Ｂ１から階層Ｂ２へとセルＸ１を移動した場合、移動元の階層Ｂ１の階層ポートｐ１，ｐ２は不要となるため消去する必要があり、他方、移動先の階層Ｂ２においては新たに階層ポートｐ３，ｐ４を生成する必要がある。
【００１４】
図２では、図１と同様な構成において、階層Ｂ１から一階層上の階層であるＴＯＰ階層へセルＸ１を移動し（同図中、（ａ）→（ｂ））、或いはその逆の操作を行う場合（（ｂ）→（ｃ））を示している。
【００１５】
図３は、所謂「複数インスタンスの解決」処理を説明するための図である。同図中、階層Ｂ１及びＢ２は、各々共通のモジュールＭ１を参照する構造となっている。そのままでは、仮に階層Ｂ１内のインスタンスのみを他の階層に移動するような場合であっても、そのためにモジュールＭ１の構成に変更を加える必要が生じた場合、このモジュールＭ１を共通に参照する階層Ｂ２についても同時にその構成が変更されてしまうことになってしまう。これでは論理階層の再構成上、利便性が悪い。したがって本発明ではモジュールＭ１に対し、そのコピーであるモジュールＭ１’を作成する。その結果、階層Ｂ１とＢ２とが、個々にモジュールＭ１，Ｍ１’を参照するように構成することが可能となり、独立にその構成を自由に変更可能となる。このような処理を「複数インスタンスの解決」と称する。
【００１６】
図４は、更に複雑な、論理設計における階層構造の例を示す図である。同図においては、最上位階層である階層TOPに対し、その一階層下の階層として、階層A1,A2、更にその一階層下の階層として、階層B1,B2、更にその一階層下の階層として、階層C1,C2が設定されている。
【００１７】
以下、図と共に本発明の一実施例による論理設計方法を実現する論理回路設計装置としての論理階層再構成システム１００について詳しく説明する。
【００１８】
図５Aは本発明の一実施例による論理階層再構成システムの機能ブロック図であり、図５Bは同システムのハードウェア構成図である。
【００１９】
図５Aに示す如く、本発明の実施例による論理階層再構成システムは、HDL記述の論理回路設計データを読み込むHDL読み込み手段１０と、読み込まれた設計データを記憶する論理回路記憶部８２と、同記憶部８２において論理階層再構成処理がなされた結果としてのHDL記述の設計データを出力するHDL出力手段２０とよりなる。
【００２０】
同システムはまた、前記設計データに係る論理回路を構成する各インスタンスの情報が参照可能に格納されたライブラリ８１と、インスタンスの移動に関する指示情報が記述された指示情報ファイルの内容からインスタンスの移動に関する指示情報（特に、移動元、移動先に関する情報）を抽出する移動指示抽出手段６０と、上記移動元、移動先の階層に対する共通階層を求める手段７０と、移動指示抽出手段６０及び共通階層を求める手段７０によって得られた情報を格納する移動元・移動先・共通階層記憶部８３とを有する。
【００２１】
例えば図１の例の場合、インスタンスＸ１を階層Ｂ１から階層Ｂ２に移動する際、Ｂ１とＢ２とは異なる階層であって共通階層ではない。このため、当該移動のためには図２（ｂ）に示す如く移動対象セルＸ１を一旦ひとつ上の階層であるＴＯＰ階層に持ち上げ、更にＴＯＰ階層から移動先である一階層下の階層Ｂ２に移動するために、一階層セルＸ１を押し下げる操作が必要となる。
【００２２】
更に同システムは、上記移動指示に関する情報及び共通階層に関する情報に基づいて上記複数インスタンスの解決を実施する複数インスタンス解決手段３０と、インスタンスを一階層持ち上げる（例えば図２中、（ａ）→（ｂ））操作を行うための一階層持ち上げる手段４０と、インスタンスを一階層押し下げる（例えば図２中、（ｂ）→（ｃ））操作を行うための一階層持ち上げる手段５０とを有する。
【００２３】
図５Ｂに示す如く、図５Ａと共に説明したシステムはコンピュータによって実現可能である。同コンピュータ２００は、ＣＰＵ２１０と、キーボード、マウス等よりなり設計者によって指示情報、データ等の入力がなされる操作部２２０と、ＣＲＴ等よりなり設計者に対し処理の結果等を表示する表示部２３０と、ＲＯＭ、ＲＡＭ等よりなりＣＰＵ２１０によって作業領域等として使用されるメモリ２４０と、補助記憶装置としてのハードディスクドライブ２５０と、可搬記憶媒体としてのＣＤ−ＲＯＭから情報を読み出すＣＤ−ＲＯＭドライブ２６０と、サーバ等とインターネット、ＬＡＮ等の通信網を通じて通信可能に接続するためのモデム２７０と、これら各部の間を通信可能に接続するバスとよりなる。
【００２４】
図５Ａに示されるＨＤＬ読み込み手段１０，ＨＤＬ出力手段２０，複数インスタンス解決手段３０、一階層持ち上げる手段４０，一階層押し下げる手段５０，移動指示抽出手段６０及び共通階層を求める手段７０は、該当する動作をＣＰＵ２１０に実行させるための命令よりなるソフトウェアプログラムとして実現可能である。そして当該プログラムを予めＣＤ−ＲＯＭに格納したものをＣＤ−ＲＯＭドライブ２６０にて読み出し、或いは通信網を介してサーバからダウンロードし、これをハードディスクに格納した後ＣＰＵ２１０にてこれを読み出し実行することにより、本発明の実施例による論理階層再構成システムを実現することが可能である。
【００２５】
図６は、上記本発明の実施例による論理階層再構成システムの主な動作の流れを示すフローチャートである。
【００２６】
同図中、ステップＳ１ではＨＤＬ読み込み手段１０がＨＤＬ(ハードウェア記述言語)にて記述された論理回路設計データを読み込む。ステップＳ２では、移動指示抽出手段６０が、移動すべきインスタンス(複数記述可)とその移動先の階層の指示(複数指示可)を読み込み、抽出する。ステップＳ３では複数インスタンス解決手段３０が移動元と移動先に関連する階層中の複数インスタンスを解決しておく。
【００２７】
ステップＳ４では共通階層を求める手段７０が移動元のインスタンスと移動先の階層との共通階層を求める。ステップＳ５では、ステップＳ４の結果、移動対象インスタンスが移動先階層と共通する階層中に存在するか否かを判定する。即ち、例えば図２（ａ）の状態では、移動対象セルＸ１は階層Ｂ１中に有るため、移動先の階層Ｂ２とは共通階層中にはない。他方、図２（ｂ）の状態では、セルＸ１は移動先階層Ｂ２を含む階層であるＴＯＰ階層に有るため、移動先の階層Ｂ２と共通の階層に有ると言える。
【００２８】
ステップＳ５にてＹｅｓの場合、即ち移動対象が移動先の階層と共通の階層にない場合、即ち図２（ａ）の如くの状態の場合、ステップＳ６にて「移動対象インスタンスを一階層持ち上げる操作」を行う。即ち、上の例の場合、図２（ｂ）の状態に持っていく。
【００２９】
このようにして移動先の階層と共通の階層に持っていった後、即ちステップＳ５の結果がＮｏとなると、ステップＳ７にて、今度は移動対象インスタンスが既に移動先階層に到着しているか否かを判定する。例えば図２（ｂ）の状態ではインスタンスＸ１は未だ移動先階層Ｂ２に到着していない。このような場合、ステップＳ８にて移動対象インスタンスを一階層押し下げる処理を行う。即ち、図２（ｂ）の状態から、インスタンスＸ１を一階層押し下げることにより階層Ｂ２に持って行く。
【００３０】
このような処理により、該当する移動操作が終了すると（ステップＳ９のＹｅｓ）、移動結果を含む論理回路設計データをＨＤＬ記述として出力する（ステップＳ１０）。
【００３１】
尚、ステップＳ１においては、ＨＤＬ記述の論理回路設計データが参照している各セルの情報についてもライブラリ８１から読み込む。又、ステップＳ２において、移動するインスタンスが複数ある場合、または移動するインスタンスとその移動先の階層の指示が複数ある場合、各インスタンス毎或いは指示毎にステップＳ３，Ｓ４，Ｓ５、Ｓ６，Ｓ７、Ｓ８の処理を繰り返す。
【００３２】
又ステップＳ４において、共通階層がない場合は、最上位階層を共通階層とする（例えば図２の例の場合）。又ステップＳ６において、移動元のインスタンスの階層と、共通階層とが２階層以上離れている場合、インスタンスを一階層持ち上げる処理をその階層差分だけ繰り返す。また、不必要になる階層ポートが存在した場合（例えば上記の図１の例におけるｐ１，ｐ２）は、それを削除する。又ステップＳ８において、共通階層と移動先階層とが２階層以上離れている場合、インスタンスを一階層押し下げる処理をその階層差分繰り返す。また必要になる階層ポートが存在した場合（図１の例ではｐ３，ｐ４）は、それを生成し、該当するＩＯ属性を決定し、それを生成したポートに対し設定する。
【００３３】
またステップＳ６又はＳ８において、移動するインスタンスのピンまたはそれに接続する階層ポートに定数が設定されている場合、移動後のインスタンスのピンに同様の定数を設定する。ここで「定数が設定されている」とは、例えば‘０’、‘１’の如く、既にその部分（ピン等）の値が固定されている場合を意味する。この場合、「定数」以外の属性であっても、ピンとピン、ポート間、或いはピンとポートとの間の接続以外にその部分（ピン又はポート）の状態を決定する場合であってもよい。
【００３４】
図６と共に上述した処理により、論理回路おいて、ある階層のインスタンスを、その信号の接続を保ったまま別の階層に移動することができる。即ち、図１の例において、移動対象インスタンスＸ１に接続している配線（「ネット」とも称する）を当該インスタンスＸ１から切り離すことなく、階層間を移動可能となる。又、新たに生成する階層ポートのＩＯ属性を自動的に設定することができる。更に定数が接続しているときであっても、それを論理的に同一のまま移動することができる。その結果ＴＡＴ短縮、手修正によるミスの防止が可能となり、設計品質の向上、利便性の向上が図ることができる。
【００３５】
図２７は図２２に示す論理回路設計データのＨＤＬ記述の例を示す。又図２８は該当する論理回路に含まれるセルに関するライブラリのＨＤＬ記述の例を示す。
【００３６】
ライブラリは、それぞれのセルのピン名とそのＩＯ属性とを格納している。例えば図２８中、（１）の部分はインバータセルのモジュールを示している。図示の如く、インバータセルは入力Ａと出力ＹＢとの各ポートを有する。例えば図２７の（１）の部分の１１行目には図２２中の階層Ｂ１と階層Ｂ２との間を接続するインバータＸ３を示されている。
【００３７】
図示の如くこの行ではその入力ポートＡに配線ｐ６が接続され、出力ポートＹＢには配線ｐ７が接続されていることが示されている。即ち、図２７のＨＤＬ記述におけるインバータセルＸ３に関するＩＯ属性をライブラリから得ることにより、図２２に示される如く、インバータセルＸ３の入力ポートに配線ｐ６が接続され、出力ポートに配線ｐ７が接続された構成を認識し得るのである。
【００３８】
更に図２７の（１）の部分の１行目には、図２２に示される階層Ｂ１，Ｂ２の一階層上のＴＯＰ階層に対するポートｐ１，ｐ２，ｐ３，ｐ４が示されている。同２乃至８行目には、その内訳、即ち、ｐ１，ｐ２が入力ポートでありｐ３，ｐ４が出力ポートである点（即ちＩＯ属性）、及びＢ１，Ｂ２間をＴＯＰ階層中に配線ｐ５，ｐ６，ｐ７が張られている点が示されている。
【００３９】
又、９行目には、階層Ｂ１に関し、その階層ポートｐ１，ｐ２には夫々配線ｐ１，ｐ２が接続され、階層ポートｐ３，ｐ４には夫々配線ｐ５，ｐ６が接続されていることが示されている。１０行目の階層Ｂ２についても同様である。
【００４０】
このように論理回路設計データのＨＤＬ読み込みの際にはライブラリ８１を参照し、それぞれのインスタンスピンのＩＯ属性を得て論理回路記憶部８２に格納する（図５Ａ参照）。
【００４１】
又、図５Ａ中の移動指示抽出手段６０に与えられる移動指示ファイルは、図２９に示される如く、以下のフォーマットで与えられる。
Ｏ：移動元インスタンス{,移動元インスタンス …};
Ｖ：ｍｏｖｅ；
Ｃ：移動先階層;
‥‥
移動元インスタンスは、複数記述が可能である。その場合、それらの移動元インスタンスをひとつの移動先階層に移動することを意味する。また、上記フォーマットはひとつのファイルに複数記述することができる。その場合、それぞれの移動元インスタンスをそれぞれの移動先階層に移動することを意味する。
【００４２】
例として、
Ｏ：／Ｘ１／Ｘ２／Ｘ３；
Ｖ：ｍｏｖｅ；
Ｃ：／Ｘ４／Ｘ５；
という移動指示について説明する。
【００４３】
移動元インスタンスは、移動元の階層と移動対象のインスタンスとを／で連結した文字列で表現する。したがって上記／Ｘ１／Ｘ２／Ｘ３の場合、階層Ｘ１下の階層Ｘ２下のインスタンスＸ３を意味する。
【００４４】
移動先階層は、移動先の階層を／で連結した文字列で表現する。上記／Ｘ４／Ｘ５の場合、階層Ｘ４下の階層Ｘ５を意味する。
【００４５】
したがって上記の例においては、インスタンス／Ｘ１／Ｘ２／Ｘ３を／Ｘ４／Ｘ５／Ｘ３に移動することを意味する。
【００４６】
複数インスタンスの解決とは、上述の如く、ある階層インスタンスと同じモジュールを参照している別のインスタンスが存在している場合、そのモジュールのコピーを作成し、当該別の階層インスタンスがコピーモジュールを参照するようにすることである。例えば、移動元インスタンスが／Ｘ１／Ｘ２／Ｘ３で、移動先階層が／Ｘ４／Ｘ５である場合、階層インスタンス
／Ｘ１
／Ｘ１／Ｘ２
／Ｘ４
／Ｘ４／Ｘ５
のそれぞれにおいて、同じモジュールを参照している別の階層インスタンスが存在すれば、当該モジュールのコピーを作成し、その別の階層インスタンスがコピーモジュールを参照するようにするのである。
【００４７】
図７は、複数インスタンスを解決する図６中のステップＳ３の処理のフローチャートである。同図中、ステップＳ２１では移動元と移動先との情報から階層インスタンスを抽出する。即ち、例えば上記の例では／Ｘ１、／Ｘ１／Ｘ２、／Ｘ４、／Ｘ４／Ｘ５を夫々抽出する。
【００４８】
ステップＳ２２ではそれらの中で共通するモジュールを参照している階層インスタンスが無いか判定する。判定の結果、共通のモジュールを参照している階層インスタンスが存在すれば、ステップＳ２３にて当該モジュールのコピーを作成し、該当する階層インスタンスがコピーモジュールを参照するようにする（ステップＳ２４）。もって共通のモジュールを参照する階層インスタンスが存在しないようにする（ステップＳ２５のＹｅｓ）。
【００４９】
ここで上記共通階層とは、移動元の階層と移動先の階層とをどちらも含む最上位階層から見て一番深い階層である。例えば、階層／Ｘ１／Ｘ２／Ｘ３／Ｘ４／Ｘ５と階層／Ｘ１／Ｘ２／Ｘ４／Ｘ３／Ｘ５との共通階層は／Ｘ１／Ｘ２となる。どちらをも含む階層がない場合は、共通階層は最上位階層となる。以下、最上位階層を／と表現する。
【００５０】
図８は共通階層を求めるフローチャートである。図中、符号Ｏは移動元インスタンスを示し、Ｃは移動先階層を示し、ＨＣは共通階層を示す。ステップＳ３１のｄｉｒｎａｍｅ（ｘ）はｘの直前の階層を求める関数である。したがって、例えばｘが／Ｘ１／Ｘ２／Ｘ３の場合、この関数の値は／Ｘ１／Ｘ２となる。ｘが／Ｘ１の場合、関数の値は／となる。
【００５１】
ステップＳ３２のｐｒｅｆｉｘ＿ｓｅａｒｃｈ（ｘ，ｙ）は前方一致しているかどうかを返す関数である。即ちｘが／Ｘ１／Ｘ２／Ｘ３でｙが／Ｘ２の場合、結果はｎｏとなる（ｙのＸ２とｘの前方はＸ１とは不一致である）。他方ｘが／Ｘ１／Ｘ２／Ｘ３でｙが／Ｘ１の場合、結果はｙｅｓとなる（Ｘ１が一致する）。
【００５２】
例えば上記例、移動先階層Ｃが／Ｘ１／Ｘ２／Ｘ３／Ｘ４／Ｘ５で移動元インスタンスＯがＸ１／Ｘ２／Ｘ４／Ｘ３／Ｘ５の場合、ステップＳ３１にてＨＣ＝／Ｘ１／Ｘ２／Ｘ４／Ｘ３となり、ステップＳ３２にて前方一致せずＮｏとなる。即ち、ＨＣ＝／Ｘ１／Ｘ２／Ｘ４／Ｘ３は、Ｃの前方である／Ｘ１／Ｘ２／Ｘ３／Ｘ４と不一致である。
【００５３】
そしてステップＳ３３にて直前の階層が採られた結果ＨＣ＝／Ｘ１／Ｘ２／Ｘ４となり、それでも前方一致せずステップＳ３２がＮｏとなる。再度ステップＳ３３にて今度はＨＣ＝／Ｘ１／Ｘ２となる。ここで初めてＣ＝／Ｘ１／Ｘ２／Ｘ３／Ｘ４／Ｘ５との間で前方一致し（前方である／Ｘ１／Ｘ２の部分が一致する）、ステップＳ３２の結果がＹｅｓとなる。したがって共通階層は上記の如く／Ｘ１／Ｘ２と求まる。
【００５４】
図６中、ステップＳ６のインスタンスを一階層持ち上げる処理のフローチャートは図９Ａ，９Ｂのようになる。ここでは、インスタンスを一階層持ち上げることに伴う階層ポートの生成処理、ネット（配線）の生成処理等を含む。又インスタンスの移動は、最初に当該インスタンスのコピーを移動先に生成しておき、最後に元のインスタンス、即ち移動元にあるインスタンスを削除するという手法を用いている。これは図１０Ａ，１０Ｂと共に後述する一階層押し下げる処理においても同様である。
【００５５】
図中、ステップＳ４１にて移動対象インスタンスのコピーを一階層上に作成する。尚、ステップＳ４１にて、作成するインスタンス名に重複があれば、インスタンス名を重複しないように変更する。
【００５６】
ステップＳ４２にて移動対象インスタンスのピンを抽出する。そのピンに接続がない場合（ステップＳ４３のＹｅｓ）、ステップＳ４４にて全てのピンを処理済みか判定する。その結果Ｙｅｓなら元の移動対象インスタンスの方を削除してこのインスタンスの一階層持ち上げ操作を終了する。
【００５７】
他方、ステップＳ４３の結果がＮｏの場合ステップＳ４６にて、処理を行っているインスタンスのピンに接続されているネットが、同インスタンスの別のピンにも接続されている場合、そのピンの接続を切り離す（図２１の（ａ）→（ｂ））。尚、ステップＳ４３でインスタンスのピンに接続がない場合で、インスタンスのピンに定数が設定されている場合、コピーインスタンスのピンに同じ定数を設定する。
【００５８】
ステップＳ４７にて、そのピンに接続するネットがそのピンとだけ接続しているかどうか判定する。例えば図１２（ａ）の例の場合、ステップＳ４７はＹｅｓとなる。Ｙｅｓの場合、ステップＳ４８にて、一階層上に同名のネットを作成し、コピーインスタンスのピンに接続する（図１２（ｂ）参照）。
【００５９】
ステップＳ４９において、ステップＳ４６で切り離されたピンがあった場合、それに対応するコピーインスタンスのピンと、現在処理を行っている当該コピーインスタンスのピンとを再び接続する（図２１（ｃ）→（ｄ））。
【００６０】
ステップＳ４９がＮｏの場合、ステップＳ５０にて、そのネットが同じ階層内のインスタンスとだけ接続しているかどうか判定する。例えば図１３（ａ）の場合、Ｙｅｓとなる。即ち、該当するインスタンス（ハッチングを有する素子）は、同じ階層（図中、中央の矩形）内の他の素子（ハッチングを有さない素子）とのみ接続されている。
【００６１】
ステップＳ５０の結果がＹｅｓの場合、ステップＳ５１にてそのネットと同名の階層ポートをその階層に作成し、そのネットに接続する。そしてステップＳ５２にて、一階層上に同名のネットを作成し、前記コピーインスタンスのピンに接続する。そしてステップＳ５３にて、上記一階層上において作成したネットと階層ポートとを接続する。その結果、例えば図１３（ｂ）の状態となる。即ち、上記階層内の他のインスタンスと新たに生成した階層ポート及びネットを通じてコピーインスタンス（同図中、ハッチングされたセル）とが接続されることになる。
【００６２】
ステップＳ５０がＮｏの場合、ステップＳ５４にて、そのネットがその階層の階層ポートとだけ接続されているか判定する。例えば図１４の例の場合、Ｙｅｓとなる。他方、図１５の例の場合、Ｎｏとなる。即ち図１５（ａ）の場合、該当インスタンス（ハッチングのセル）と接続されたネットは階層ポート（即ち、ネットと階層の境界線との交差点）以外に、同一階層内の他のインスタンス（ハッチングのないセル）とも接続している。
【００６３】
ステップＳ５４の結果がＹｅｓの場合、ステップＳ５５にて、一階層上において、その階層ポートに接続するネットとコピーインスタンスのピンとを接続し、ステップＳ５６にて当該階層ポートを削除する。その結果、例えば図１４（ｂ）の状態となる。即ち、上記階層ポートを通じて他のインスタンスと接続されていたネット（図１４（ａ）の状態）を、一階層上（中央の矩形の外側）に生成済みのコピーインスタンス（図１４（ｂ）中、ハッチングのセル）に接続した結果である。
【００６４】
ステップＳ５４の結果がＮｏの場合、ステップＳ５７にて、一階層上において、階層ポートに接続するネットとコピーインスタンスのピンとを接続する（図１５（ｂ）の状態となる）。
【００６５】
又ステップＳ４８，Ｓ５２において、作成するネット名に重複があれば、ネット名を重複しないように変更する。又ステップＳ５１において、作成する階層ポート名に重複があれば、階層ポート名を重複しないように変更する。
【００６６】
又、ステップＳ５５において階層ポートに接続するネットが存在しない場合は、コピーインスタンスのピンはどこにも接続しない。
【００６７】
又ステップＳ５７において階層ポートに接続するネットが存在しない場合は、新たにネットを作成し(その場合ネット名が重複しないように注意する点は上記同様)、そのネットと上記階層ポートとコピーインスタンスのピンとを接続する。その結果、当該階層ポートを通じてなされていた移動対象インスタンスとの接続が、コピーインスタンスにおいても維持されることになる。
【００６８】
ステップＳ５１において、作成する階層ポートのＩＯ属性は、その処理を行っているインスタンスピンのＩＯ属性の反対の属性を設定する。すなわち、以下の表１の如くに階層ポートのＩＯ属性を設定する。インスタンスのピンがインプットならば、階層内のインスタンス中にドライバがあるはずなので、階層ポートのＩＯ属性をアウトプットにする。他方インスタンスのピンがアウトプットならば、階層内のインスタンスはすべてレシーバであるはずなので、階層ポートのＩＯ属性をインプットにする（例えば図１３の例）。
【００６９】
【表１】
2006260288.tif 000003
ステップＳ５７において、階層ポートのＩＯ属性は、その処理を行っているインスタンスピンのＩＯ属性がアウトプットの時にインプットに変更する（例えば図１５の例）。それ以外は変更しない（以下の表２参照）。
【００７０】
【表２】
2006260288.tif 000004
インスタンスのピンがアウトプットならば、移動前はそれがドライバとなっていて、階層ポートのＩＯ属性はアウトプットであったはずである。そのドライバが階層の外に出てしまったため、それに接続する残された階層内のインスタンスをドライブするために、階層ポートのＩＯ属性をインプットに変更する。
【００７１】
ステップＳ５５において、階層ポートに接続するネットが存在しない場合で、階層ポートに定数が設定されている場合、コピーインスタンスのピンに同じ定数を設定する。
【００７２】
ステップＳ５７において、階層ポートに接続するネットが存在しない場合で、階層ポートに定数が設定されている場合、新たにネットを作成せずに、コピーインスタンスのピンに同じ定数を設定する。
【００７３】
ステップＳ４３でｙｅｓになる場合の例を図１１に示し、ステップＳ４７でｙｅｓになる場合の例を図１２に示し、ステップＳ５０でｙｅｓになる場合の例を図１３に示し、ステップＳ５４でｙｅｓになる場合の例を図１４に示し、ステップＳ５４でｎｏになる場合の例を図１５に示す。
【００７４】
図６のステップＳ８の処理、即ちインスタンスを一階層押し下げる処理のフローチャートは図１０Ａ，１０Ｂのようになる。
【００７５】
図中、ステップＳ６１にて、移動対象インスタンスのコピーを移動先、即ち一階層下に作成する。ステップＳ６２にて、移動対象インスタンスのピンを抽出し、ステップＳ６３にて、そのピンの接続が無いか同か判定する。無い場合、ステップＳ６４にて全てのピンが処理済みか判定し、処理済みならステップＳ６５にて元の移動対象インスタンスの方を削除する。
【００７６】
ステップＳ６１ において、作成するインスタンス名に重複があれば、インスタンス名を重複しないように変更する。
【００７７】
ステップＳ６３の結果Ｎｏの場合、ステップＳ６６にて、処理を行っているインスタンスのピンに接続されているネットが、同じインスタンスの別のピンにも接続されている場合、その接続を切り離す（図２１（ａ）→（ｂ））。
【００７８】
ステップＳ６７にて、そのピンに接続されたネットがそのピンとだけ接続されているのかどうか判定する。図１７（ａ）の場合、Ｙｅｓとなる。Ｙｅｓの場合、ステップＳ６８にて、移動先に同名のネットを作成し、コピーインスタンスのピンに接続する（図１７（ｂ）の状態となる）。
【００７９】
ステップＳ６９において、ステップＳ６６で切り離されたピンがもしあれば、それに対応するコピーインスタンスのピンと、処理を行っている当該コピーインスタンスのピンとを再び接続する（図２１（ｃ）→（ｄ））。
【００８０】
ステップＳ６７の結果がＮｏの場合、ステップＳ７０において、そのネットが移動先の階層と接続がないか判定する。例えば図１８（ａ）の場合、Ｙｅｓとなる。即ちこの場合図示の如く、移動対象インスタンス（即ちハッチングのなされたセル）は移動先階層（中央の矩形）とだけ接続されており、それ以外の接続を有さない。
【００８１】
ステップＳ７０の結果がＹｅｓの場合、ステップＳ７１にて移動先に同名のネットを作成してコピーインスタンスのピンに接続する。そして、ステップＳ７２にて、移動先において作成した上記ネットと、その階層ポートに接続する他のインスタンス（図１８における、ハッチングのないセル）のピンとを接続する。そしてステップＳ７３にて当該階層ポートを削除する。その結果、図１８（ｂ）の状態となる。
【００８２】
他方、ステップＳ７０にてＮｏの場合、ステップＳ７４にて、そのネットは、移動先の階層と接続がないかどうか判定する。例えば図１９（ａ）の場合、Ｙｅｓとなる。即ちこの場合、移動対象インスタンス（ハッチングのセル）は移動先階層（中央の矩形）とは接続がない。他方、図２０（ａ）の場合、Ｎｏとなる。この場合、移動対象インスタンス（ハッチングのセル）は、移動先階層（中央の矩形）と接続され、更にそれ以外にも接続を持つ（右端のハッチングのないセルとの接続）からである。
【００８３】
ステップＳ７４にてＹｅｓの場合、ステップＳ７５にて、そのネットと同名の階層ポートを作成し、そのネットに接続する。即ち、移動先階層に新たに階層ポートを作成し、処理中のネットを接続する。ステップＳ７６では移動先において、その階層ポートと、コピーインスタンスのピンとを接続する。その結果、図１９（ｂ）の状態となる。
【００８４】
又、ステップＳ７４の結果がＮｏの場合（即ち図２０（ａ）の場合）、ステップＳ７７にて、そのネットと同名の階層ポートを作成し、そのネットに接続する。ステップＳ７８にて、移動先において、その新しい階層ポートとコピーインスタンスのピンとを接続する。ステップＳ７９にて、移動先において、その新しい階層ポートと、元の階層ポートに接続していた他のインスタンスのピンとを接続する。ステップＳ８０にて、元の階層ポートを削除する。
【００８５】
即ち、図２０の例において、該当するネットが移動先の階層（図２０（ａ）或いは（ｂ）中の、中央の矩形）に接続している階層ポート以外に新たな、階層ポートを作成し、そこにコピーインスタンス（同図（ｂ）中のハッチングのセル）のピンを接続する。その後、同じ新たな階層ポートに、元の階層ポートに接続されていた他のインスタンス（同図中、中央の矩形中のハッチングのないセル）のピンを接続する。その後、元の階層ポートを削除することにより、図２０（ｂ）の状態が得られる。
【００８６】
ステップＳ６８及びＳ７１において、作成するネット名に重複があれば、ネット名を重複しないように変更する。ステップＳ７５及びＳ７７において、作成する階層ポート名に重複があれば、階層ポート名を重複しないように変更する。
【００８７】
ステップＳ７５において、作成する階層ポートのＩＯ属性は、その処理を行っているインスタンスピンのＩＯ属性と同じ属性を設定する。すなわち、表３の如くとなるように階層ポートのＩＯ属性を設定する（例えば図１９の例）。
【００８８】
【表３】
2006260288.tif 000005
この場合インスタンスのピンと階層ポートとは一対一で接続するので、同じＩＯ属性にする。
【００８９】
ステップＳ７７において作成する階層ポートのＩＯ属性は、ステップＳ７８及びＳ７９の処理の際に新しい階層ポートと接続するピンの属性を調べ、アウトプットがあればアウトプットとし（例えば図２０の例）、インアウトがあればインアウトとし、インプットのみであればインプットに設定する(ステップＳ８０の処理のところで設定する)。すなわち、以下の表４の如くになるように新たな階層ポートのＩＯ属性を設定する。
【００９０】
【表４】
2006260288.tif 000006
即ちこの場合該当する階層ポートに接続する階層内のインスタンスピンをすべて調べ、アウトプットが存在する場合は、階層ポートはドライバになる必要がない（即ち階層内のセルをドライブする必要がない）ので、アウトプットに設定する。他方、インプットしか存在しない場合は、階層ポートはドライバになる必要があるので、インプットに設定する。
【００９１】
ステップＳ６３でインスタンスのピンに接続がない場合で、インスタンスのピンに定数が設定されている場合、コピーインスタンスのピンに同じ定数を設定する。
【００９２】
ステップＳ６３でｙｅｓになる場合の例を図１６に示し、ステップＳ６７でｙｅｓになる場合の例を図１７に示し、ステップＳ７０でｙｅｓになる場合の例を図１８に示し、ステップＳ７４でｙｅｓになる場合の例を図１９に示し、ステップＳ７４でｎｏになる場合の例を図２０に示す。
【００９３】
又、ステップＳ６６とＳ６９とが実施される例を図２１に示す。
【００９４】
以下に、図６乃至１０と共に上述した本発明の実施例による論理階層再構成方法を実際に適用した例を示す。
【００９５】
この例における入力となる論理回路設計データのＨＤＬ記述を図２７に示し、関連するライブラリを図２８に示し、移動指示ファイルを図２９に示す。
【００９６】
この移動指示ファイルによる指示内容は、前記のフォーマットにしたがい、階層Ｘ２下のセルＸ１（図２２において、階層Ｂ２内のセルＣ３が該当する）を、階層Ｘ１（階層Ｂ１）に移動する操作（（１）の部分）、及び階層Ｘ２下のセルＸ２（階層Ｂ２内のセルＣ４）を、階層Ｘ１（階層Ｂ１）に移動する操作（（２）の部分）よりなる。
【００９７】
まず、図５Ａに示すＨＤＬ読み込み手段１０により当該論理回路設計データのＨＤＬ記述を読み込み、その論理回路設計データを論理回路記憶部８２に格納する。このときの論理回路は図２７の記述による図２２に示されるものである。
【００９８】
次に、移動指示抽出手段６０は図２９に示す内容を有する移動指示ファイルから移動指示(移動元、移動先)を抽出し、移動元・移動先・共通階層記憶部８３に格納する。これにより、移動元・移動先・共通階層記憶部８３は以下の表５に示す内容を有する。これは上記移動指示ファイルの指示内容に合致する。
【００９９】
【表５】
2006260288.tif 000007
次に、図７と共に上述した動作により、複数インスタンスの解決を行う。しかしながら今回の例では複数インスタンスがないので、論理回路記憶部８２を変更する必要はない。即ち、この例における移動元及び移動先に関する階層インスタンスＸ１（Ｂ１）及びＸ２（Ｂ２）において、当該モジュールＢ１及びＢ２は、図２７の９行目及び１０行目に示されるように、当該インスタンスからのみ参照されている。したがって、同モジュールを参照している別の階層インスタンスは存在しない。
【０１００】
次に、共通階層を求める手段７０により、図８と共に上述した動作により共通階層を求め、その結果を移動元・移動先・共通階層記憶部８３に格納する。この例の場合、指示内容（１）、（２）の各々（表５の１，２行目）において、移動元の階層Ｂ２と移動先の階層Ｂ１との間の共通階層はそれぞれ／、即ちＴＯＰ階層である。尚図２２中では特にＴＯＰ階層の表示は省略されているが、実際には図１の如く、階層Ｂ１，Ｂ２の一階層上にＴＯＰ階層が存在する。
【０１０１】
その結果、移動元・移動先・共通階層記憶部８３の内容は以下の表６の如くとなる。
【０１０２】
【表６】
2006260288.tif 000008
次に、移動元・移動先・共通階層記憶部８３に格納された、上記指示内容（１）によるインスタンスの移動（表６中、第１行目）を行う。具体的には移動元・移動先・共通階層記憶部８３から情報を得て、論理回路記憶部８２に格納された論理回路設計データを変更する処理を行う。
【０１０３】
インスタンス／Ｘ２／Ｘ１、即ち階層Ｂ２のセルＣ３を、図９Ａ，９Ｂと共に説明した「インスタンスを一階層持ち上げる操作」により、共通階層／に移動する(持ち上げる)。その結果、論理回路は図２３のようになる。即ち上記セルＣ３が階層Ｂ２から図中左方向に移動され、階層Ｂ１と階層Ｂ２との間のＴＯＰ階層上に持ち上げられた状態となる。
【０１０４】
次に、このように共通階層／に移動されたインスタンスを、図１０Ａ，１０Ｂと共に説明した「インスタンスを一階層押し下げる操作」により、移動先／Ｘ１、即ち階層Ｂ１に移動する(押し下げる)。このときの論理回路は図２４のようになる。即ち、上記セルＣ３が階層Ｂ１，Ｂ２間のＴＯＰ階層上から、更に図中左方向に移動され、階層Ｂ１内に移動される。
【０１０５】
次に、移動元・移動先・共通階層記憶部８３に格納された、上記指示内容（２）によるインスタンスの移動（表６中、第２行目）を行う。この場合まず、インスタンス／Ｘ２／Ｘ２、即ち階層Ｂ２内のセルＣ４を、図９Ａ，９Ｂと共に説明した「インスタンスを一階層持ち上げる操作」により、共通階層／、即ちＴＯＰ階層に移動する(持ち上げる)。このときの論理回路は図２５のようになる。即ち上記セルＣ４が階層Ｂ２から図中左方向に移動され、階層Ｂ１と階層Ｂ２との間のＴＯＰ階層上に持ち上げられた状態となる。
【０１０６】
次に、このように共通階層／に移動されたインスタンスを、図１０Ａ，１０Ｂと共に説明した「インスタンスを一階層押し下げる操作」により、移動先／Ｘ１、即ち階層Ｂ１に移動する(押し下げる)。このときの論理回路は図２６のようになる。即ち、上記セルＣ４が階層Ｂ１，Ｂ２間のＴＯＰ階層上から、更に図中左方向に移動され、階層Ｂ１内に移動される。
【０１０７】
最後に、ＨＤＬ出力手段２０により、このようにして再構成された図２６に示された内容を有する、論理回路記憶部８２に格納された論理回路設計データをＨＤＬ記述として出力する。ここで出力されるＨＤＬ記述は図３０に示されるものである。
【０１０８】
これを図２７の内容と見比べると、再構成前に図２７，図３０における（１）の部分では、６乃至８行目において、ＴＯＰ階層において階層Ｂ１，Ｂ２間の配線が、ｐ５，ｐ６，ｐ７であったものが、ｐ６，ｐ７，ｐ３＿１に変更されている。このうち配線ｐ６，ｐ７については変更がない。他方、セルＣ３，Ｃ４が階層Ｂ２からＢ１に移動されたことに伴い、図２２におけるセルＣ４，Ｃ５間の配線ｐ３が、重複を避けるためにその名前を変更されてｐ３＿１とされて階層Ｂ１，Ｂ２間に張られている。
【０１０９】
又、同上(1)の部分の9行目において、階層B1(X1)の階層ポートのうち、p1,p2,p4については変わらない。階層ポートp3は削除されている。これは図22におけるセルC3が階層B2からB1に移動されたことに伴い、図22における階層B1(X1)の階層ポートp3が削除されたことによる(図22乃至図24間の遷移による)。階層ポートp3_1が生成されている。これは上記の如く、図22に示すセルC4,C5間の配線p3の名前が重複を避けるために変更され、それと同名の階層ポートが階層B1(X1)に作成されたことによる(図24乃至図26間の遷移による)。更に、階層ポートp7が生成されている。これはセルC4に接続する配線p7と同名の階層ポートが階層B1(X1)に作成されたことによる(図25乃至図26間の遷移による)。
【０１１０】
又、同上(1)の部分の10行目において、階層B2(X2)の階層ポートのうち、p6,p7,p8については変わらない。階層ポートp4,p5は削除されている。これは図22におけるセルC3及びC4が階層B2からB1に移動されたことに伴い、図22における階層B2(X2)の階層ポートp4,p5が削除されたことによる(図22乃至図25間の遷移による)。その際、階層ポートp5には定数0が設定されているので、セルC4のピンBに定数0を設定する。更に、階層ポートp3が生成されている。これは、セルC4,C5間の配線P3と同名の階層ポートが階層B2(X1)に作成されたことによる(図24乃至図25間の遷移による)。
【０１１１】
又、図２７，図３０における（２）、（３）の部分において、図２２中の階層Ｂ２内から階層Ｂ１内へセルＣ３，Ｃ４が移動した結果、図２７における（３）の部分の１０，１１行目に記載のセルＸ１（ＮＡＮＤ３）及びＸ２（ＮＯＲ３）が、夫々図３０の（２）の部分の１２，１３行目にセルＸ１＿１（ＮＡＮＤ３）、Ｘ２＿１（ＮＯＲ３）へと名前が変更されて移動されている。この名前の変更は、セルC3,C4がTOP階層に持ち上げられた際、TOP階層における階層インスタンスX1,X2との名前の重複を避けるためのものである。
【０１１２】
又、移動された各セルＣ３，Ｃ４の各ピンに接続された配線の名前が一部変更となっている。例えば、図２７の（３）の部分の１０行目、セルＸ１のピンＢに接続されている配線名がｐ１からｐ１＿１に変更となっている。これは図２２から図２３に状態が遷移する際、即ちセルＣ３が一階層持ち上げられた際、ＴＯＰ階層において既にある配線名ｐ１（階層Ｂ１の入力階層ポートｐ１に接続された配線）との重複を避けるために変更されたものである。
【０１１３】
又、図３０の（２）の部分の５行目に入力階層ポート（ｉｎｐｕｔ）ｐ７が新たに生成されている。これは、図２２中の階層Ｂ２内からセルＣ４が階層Ｂ１に移動したことに伴うものである。即ち、同セルC4のピンＣに接続されていた配線ｐ６が、図２４乃至図２５間の遷移（一階層持ち上げ）の際、配線ｐ７に置き換えられている。これは図１５の遷移に相当する。即ち、図９中、ステップＳ５７の処理がなされている。
【０１１４】
更に図２６への遷移（一階層押し下げ）の際、階層Ｂ１内に移動されたＮＡＮＤ素子Ｘ２＿１の入力ピンＣに接続する配線ｐ７が生成されている。即ち、上述の図１９の遷移に相当する遷移（図１０中、ステップS７５、Ｓ７６）がなされている。
【０１１５】
尚、本発明は上記実施例の構成に限られず、以下の請求の範囲に記載の範囲内で様々な態様で実施可能である。
【０１１６】
本発明は以下の付記に記載の構成にて実施可能である。
（付記１）
階層構造を有する論理回路に関する情報を読み込み、
所定の階層に属するインスタンスを他の階層に移動する各段階よりなり、
前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成および接続、並びに不要となる階層ポートの切断及び消去を行う段階を有する論理回路設計方法。
（付記２）
付記１に記載の論理回路設計方法であって、
新たに要される階層ポートの生成にあたり、当該階層ポートのＩＯ属性を設定する段階よりなる論理回路設計方法。
（付記３）
付記１に記載の論理回路設計方法であって、
移動するインタンスのピン又はそれに接続される階層ポートに所定の定数による属性が設定されている場合には当該所定の定数のよる属性を、移動後のインスタンスのピンに対し設定する段階よりなる論理回路設計方法。
（付記４）
付記１に記載の論理回路設計方法であって、
移動するインスタンスの複数のピンに共通のネットが接続されている場合、そのうちの一のピンについてのみ接続を残し他のピンについて接続を切り離した上で該当する移動を行い、移動後に当該一のピンと他のピンとを接続する段階よりなる論理回路設計方法。
（付記５）
付記１に記載の論理回路設計方法であって、
複数のインスタンスが共通のモジュールを参照する構成とされていた場合、当該共通のモジュールをコピーし、もって当該複数のインスタンスの各々が元のモジュール或いはコピーモジュールを独立して参照するように構成する段階よりなる論理回路設計方法。
（付記６）
前記インスタンスは、階層及びセルのうちの少なくとも一方よりなる付記１に記載の論理回路設計方法。
（付記７）
階層構造を有する論理回路に関する情報を読み込み、
所定の階層に属するインスタンスを他の階層に移動する各段階をコンピュータに実行させるための命令よりなるプログラムであって、
更に前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成及び接続、並びに不要となる階層ポートの切断及び消去を行う段階をコンピュータに実行させるための命令を含む論理回路設計プログラム。
（付記８）
付記７に記載の論理回路設計プログラムであって、
更に、新たに要される階層ポートの生成にあたり、当該階層ポートのＩＯ属性を設定する段階をコンピュータに実行させるための命令よりなる論理回路設計プログラム。
（付記９）
付記７に記載の論理回路設計プログラムであって、
更に、移動するインタンスのピン又はそれに接続される階層ポートに所定の定数による属性が設定されている場合には当該所定の定数のよる属性を、移動後のインスタンスのピンに対し設定する段階をコンピュータに実行させるための命令よりなる論理回路設計プログラム。
（付記１０）
付記７に記載の論理回路設計プログラムであって、
更に、移動するインスタンスの複数のピンに共通のネットが接続されている場合、そのうちの一のピンについてのみ接続を残し他のピンについて接続を切り離した上で該当する移動を行い、移動後に当該一のピンと他のピンとを接続する段階をコンピュータに実行させるための命令よりなる論理回路設計プログラム。
（付記１１）
付記７に記載の論理回路設計プログラムであって、
更に、複数のインスタンスが共通のモジュールを参照する構成とされていた場合、当該共通のモジュールをコピーし、もって当該複数のインスタンスの各々が元のモジュール或いはコピーモジュールを独立して参照するように構成する段階をコンピュータに実行させるための命令よりなる論理回路設計プログラム。
（付記１２）
前記インスタンスは、階層及びセルのうちの少なくとも一方よりなる付記７に記載の論理回路設計プログラム。
（付記１３）
階層構造を有する論理回路に関する情報を読み込む手段と、
所定の階層に属するインスタンスを他の階層に移動する手段とよりなり、
更に前記インスタンスの他の階層への移動の際、当該インスタンスに対する信号の接続を保ったまま、当該移動に伴って新たに要される階層ポートの生成及び接続、並びに不要となる階層ポートの切断及び消去を行う手段を有する論理回路設計装置。
（付記１４）
付記１３に記載の論理回路設計装置であって、
更に、新たに要される階層ポートの生成にあたり、当該階層ポートのＩＯ属性を設定する手段よりなる論理回路設計装置。
（付記１５）
付記１３に記載の論理回路設計装置であって、
更に、移動するインタンスのピン又はそれに接続される階層ポートに所定の定数による属性が設定されている場合には当該所定の定数のよる属性を、移動後のインスタンスのピンに対し設定する手段よりなる論理回路設計装置。
（付記１６）
付記１３に記載の論理回路設計装置であって、
更に、移動するインスタンスの複数のピンに共通のネットが接続されている場合、そのうちの一のピンについてのみ接続を残し他のピンについて接続を切り離した上で該当する移動を行い、移動後に当該一のピンと他のピンとを接続する手段よりなる論理回路設計装置。
（付記１７）
付記１３に記載の論理回路設計装置であって、
更に、複数のインスタンスが共通のモジュールを参照する構成とされていた場合、当該共通のモジュールをコピーし、もって当該複数のインスタンスの各々が元のモジュール或いはコピーモジュールを独立して参照するように構成する手段よりなる論理回路設計装置。
（付記１８）
前記インスタンスは、階層及びセルのうちの少なくとも一方よりなる付記１３に記載の論理回路設計装置。
（付記１９）
付記７乃至１２の内の何れかに記載のプログラムを格納したコンピュータ読み取り可能記録媒体。
【図面の簡単な説明】
【０１１７】
【図１】本発明による階層の再構成処理を説明するための図（その１）である。
【図２】本発明による階層の再構成処理を説明するための図（その２）である。
【図３】本発明による階層の再構成処理を説明するための図（その３）である。
【図４】本発明による階層の再構成処理を説明するための図（その４）である。
【図５Ａ】本発明の実施例の機能ブロック図である。
【図５Ｂ】本発明の実施例のハードウェア構成図である。
【図６】本発明による階層再構成処理全体のフローチャートを示す図である。
【図７】「複数インスタンスの解決」処理の動作フローチャートを示す図である。
【図８】共通階層を求める処理のフローチャートを示す図である。
【図９Ａ】インスタンスを一階層持ち上げる処理のフローチャートを示す図（その１）である。
【図９Ｂ】インスタンスを一階層持ち上げる処理のフローチャートを示す図（その２）である。
【図１０Ａ】インスタンスを一階層押し下げる処理のフローチャートを示す図（その１）である。
【図１０Ｂ】インスタンスを一階層押し下げる処理のフローチャートを示す図（その２）である。
【図１１】インスタンスを一階層持ち上げる処理の第１の例を説明するための図である。
【図１２】インスタンスを一階層持ち上げる処理の第２の例を説明するための図である。
【図１３】インスタンスを一階層持ち上げる処理の第３の例を説明するための図である。
【図１４】インスタンスを一階層持ち上げる処理の第４の例を説明するための図である。
【図１５】インスタンスを一階層持ち上げる処理の第５の例を説明するための図である。
【図１６】インスタンスを一階層押し下げる処理の第１の例を説明するための図である。
【図１７】インスタンスを一階層押し下げる処理の第２の例を説明するための図である。
【図１８】インスタンスを一階層押し下げる処理の第３の例を説明するための図である。
【図１９】インスタンスを一階層押し下げる処理の第４の例を説明するための図である。
【図２０】インスタンスを一階層押し下げる処理の第５の例を説明するための図である。
【図２１】複数のピンに同じネットが接続する場合の、インスタンスを一階層押し下げる処理の例を説明するための図である。
【図２２】実際の論理回路設計データにおいて、所定のインスタンスについての階層移動を行った場合の状態遷移例を説明するための図（その１）である。
【図２３】実際の論理回路設計データにおいて、所定のインスタンスについての階層移動を行った場合の状態遷移例を説明するための図（その２）である。
【図２４】実際の論理回路設計データにおいて、所定のインスタンスについての階層移動を行った場合の状態遷移例を説明するための図（その３）である。
【図２５】実際の論理回路設計データにおいて、所定のインスタンスについての階層移動を行った場合の状態遷移例を説明するための図（その４）である。
【図２６】実際の論理回路設計データにおいて、所定のインスタンスについての階層移動を行った場合の状態遷移例を説明するための図（その５）である。
【図２７】修正（再構成）前の論理回路設計データのＨＤＬ（ゲート・レベル）による記述例を示す図である。
【図２８】図２７の論理回路に関するライブラリ記述例を示す図である。
【図２９】インスタンスの階層移動に関する移動指示ファイルの記述例を示す図である。
【図３０】修正（再構成）後の論理回路設計データのＨＤＬによる記述の例を示す図である。
【符号の説明】
【０１１８】
１０    ＨＤＬ読み込み手段
２０  ＨＤＬ出力手段
３０  複数インスタンス解決手段
４０  一階層持ち上げる手段
５０  一階層押し下げる手段
６０  移動指示抽出手段
【図１】
2006260288.tif 000009
【図２】
2006260288.tif 000010
【図３】
2006260288.tif 000011
【図４】
2006260288.tif 000012
【図５Ａ】
2006260288.tif 000013
【図５Ｂ】
2006260288.tif 000014
【図６】
2006260288.tif 000015
【図７】
2006260288.tif 000016
【図８】
2006260288.tif 000017
【図９Ａ】
2006260288.tif 000018
【図９Ｂ】
2006260288.tif 000019
【図１０Ａ】
2006260288.tif 000020
【図１０Ｂ】
2006260288.tif 000021
【図１１】
2006260288.tif 000022
【図１２】
2006260288.tif 000023
【図１３】
2006260288.tif 000024
【図１４】
2006260288.tif 000025
【図１５】
2006260288.tif 000026
【図１６】
2006260288.tif 000027
【図１７】
2006260288.tif 000028
【図１８】
2006260288.tif 000029
【図１９】
2006260288.tif 000030
【図２０】
2006260288.tif 000031
【図２１】
2006260288.tif 000032
【図２２】
2006260288.tif 000033
【図２３】
2006260288.tif 000034
【図２４】
2006260288.tif 000035
【図２５】
2006260288.tif 000036
【図２６】
2006260288.tif 000037
【図２７】
2006260288.tif 000038
【図２８】
2006260288.tif 000039
【図２９】
2006260288.tif 000040
【図３０】
2006260288.tif 000041