(57)【要約】  複数のモジュールを相互に接続するための回路設計方法は、複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するステップと、複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するステップと、ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けるステップとを含む。
2010038387.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを相互に接続するための回路設計方法であって、
前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するステップと、
前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するステップと、
前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けるステップと、
を含む、方法。
【請求項２】
前記インスタンス情報は、複数のインスタンスの個数を示すインスタンス個数情報を含む、請求項１記載の方法。
【請求項３】
前記インスタンス情報は、複数のインスタンスをそれぞれ識別するインスタンス識別情報を含む、請求項１記載の方法。
【請求項４】
前記対応付けるステップは、前記インスタンス情報に基づいて前記ポート情報から仮ポート情報を生成し、当該仮ポート情報に基づいて前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けることを含む、請求項１記載の方法。
【請求項５】
所定のモジュールの出力ポートが、前記複数のインスタンスの各入力ポートに共通に接続されることを示す共通接続情報を取得するステップをさらに含み、
前記対応付けるステップは、前記インスタンス情報及び前記共通接続情報に基づいて前記ポート情報から仮ポート情報を生成し、当該仮ポート情報に基づいて前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けることを含む、請求項１記載の方法。
【請求項６】
前記ポート情報を取得するステップの前に、前記複数のモジュールを相互に接続して生成される上位モジュールに関する情報を取得するステップをさらに含む、請求項１記載の方法。
【請求項７】
前記対応付けるステップの後に、前記対応付けられた接続情報を接続情報データベースとして記憶するステップをさらに含む、請求項１記載の方法。
【請求項８】
前記対応付けるステップの後に、前記複数のモジュールを相互に接続して生成される上位モジュールのソースファイルを生成するステップをさらに含む、請求項１記載の方法。
【請求項９】
前記対応付けるステップの後に、少なくとも、インスタンス名を示す情報、前記ポート情報、及び、前記複数のモジュールを相互に接続するための入力ポートと出力ポートの接続情報を表示するステップをさらに含む、請求項１記載の方法。
【請求項１０】
半導体試験装置に用いられる半導体デバイスの回路設計に適用される、請求項１から９のいずれかに記載の方法。
【請求項１１】
複数のモジュールを相互に接続するための回路設計システムであって、
前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するポート情報取得手段と、
前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するインスタンス情報取得手段と、
前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付ける対応付け手段と、
を含む、システム。
【請求項１２】
複数のモジュールを相互に接続するためのプログラムを格納したコンピュータ読取り可能な記録媒体であって、
前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するステップと、
前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するステップと、
前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けるステップと、
を実行させるプログラムを格納したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計方法、回路設計システム及び記録媒体、特に、回路設計ツールを用いた複数のモジュールの相互間接続の自動生成に関する。
【背景技術】
【０００２】
近年、集積回路（例えばＡＳＩＣ（Application Specific Integrated Circuit）の微細化・高集積化が進み、１つの半導体チップの回路規模が大きくなってきている。このような大規模な回路設計に対応するため、回路を機能ブロック（モジュール）ごとに分割し、分割された各々のモジュールを複数の設計者で分けて設計することが行われている。設計された個々のモジュールはその後、所定の対応関係に従って相互に接続され、１つの上位モジュールを設計することができる。同様にして、設計された個々の上位モジュールはその後、所定の対応関係に従って相互に接続され、さらに上位の１つのモジュールを設計することができる。こうして、順々に上位階層を生成し、最終的に半導体チップ全体の回路設計を達成することができる。【０００３】
このような回路設計を達成するためのツールとしては、現在、Ｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬなどの言語を用いて行うＲＴＬ（Register Transfer Level）設計が主流ではあるが、近年、ＲＴＬよりも高い抽象レベルモデルから設計する高位設計（高位合成）が採用されるようになってきている。高位設計によれば、所定の処理フローに沿って機能のみをアルゴリズム記述し、当該アルゴリズム記述から高位合成ツール（ビヘイビア合成ツール）を用いてＲＴＬモデルを自動生成することができる。なお、ビヘイビア合成ツールとしては、例えばＮＥＣシステムテクノロジー社が提供する「サイバーワークベンチ」（ＣＷＢ：Cyber Work Bench）が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した回路設計において、設計された個々のモジュールを相互に接続する場合、各モジュールが相互に異なるものであれば、モジュールの入出力ポート名を所定の対応関係に従って決定することにより、当該入出力ポート名のみの情報に基づいて、モジュール同士の接続を自動で行うことができる。しかしながら、接続すべきモジュール間において同一モジュールが複数ある場合には、同一モジュール間では通常、入出力ポート名は同一であるため、入出力ポート名のみの情報ではモジュール同士の接続を自動で行うことはできず、人手作業でモジュール同士の接続を行わざるを得ない。このような人手作業においては、人為的接続ミスは避けられず、モデルの品質が低下するおそれがある。また、接続ミスがあった場合、ミスをその場で発見することは難しく、例えば論理検証のステップで初めてミスを発見することがあり、設計生産性が低下するという問題もある。【０００５】
特に、半導体試験装置に用いられるＡＳＩＣにおいては、被試験ＩＣの試験を行うため、タイミング発生器、パターン発生器、波形整形器及び論理比較器等のいくつかの機能ブロックがまとめて１チップ化されており、その中でも、タイミング発生器、パターン発生器及び波形整形器については、１つの半導体試験装置システム内に千を超える数の同一機能ブロックを設ける必要があるため、１チップ内に同一機能ブロックを複数個設けることが求められる。したがって、特に、半導体試験装置に用いられるＡＳＩＣにおいては、上記問題を解決することは重要である。【０００６】
よって、本発明の目的は、上記の課題を解決することができる回路設計手法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
本発明にかかる回路設計方法の一態様は、複数のモジュールを相互に接続するための回路設計方法であって、前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するステップと、前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するステップと、前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けるステップと、含む。【０００８】
また、本発明にかかる回路設計方法の一態様によれば、前記インスタンス情報は、複数のインスタンスの個数を示すインスタンス個数情報を含むことができる。【０００９】
また、本発明にかかる回路設計方法の一態様によれば、前記インスタンス情報は、複数のインスタンスをそれぞれ識別するインスタンス識別情報を含むことができる。【００１０】
また、本発明にかかる回路設計方法の一態様によれば、前記対応付けるステップは、前記インスタンス情報に基づいて前記ポート情報から仮ポート情報を生成し、当該仮ポート情報に基づいて前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けることを含むことができる。【００１１】
また、本発明にかかる回路設計方法の一態様によれば、所定のモジュールの出力ポートが、前記複数のインスタンスの各入力ポートに共通に接続されることを示す共通接続情報を取得するステップをさらに含み、前記対応付けるステップは、前記インスタンス情報及び前記共通接続情報に基づいて前記ポート情報から仮ポート情報を生成し、当該仮ポート情報に基づいて前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けることを含むことができる。【００１２】
また、本発明にかかる回路設計方法の一態様によれば、前記ポート情報を取得するステップの前に、前記複数のモジュールを相互に接続して生成される上位モジュールに関する情報を取得するステップをさらに含むことができる。【００１３】
また、本発明にかかる回路設計方法の一態様によれば、前記対応付けるステップの後に、前記対応付けられた接続情報を接続情報データベースとして記憶するステップをさらに含むことができる。【００１４】
また、本発明にかかる回路設計方法の一態様によれば、前記対応付けるステップの後に、前記複数のモジュールを相互に接続して生成される上位モジュールのソースファイルを生成するステップをさらに含むことができる。【００１５】
また、本発明にかかる回路設計方法の一態様によれば、前記対応付けるステップの後に、少なくとも、インスタンス名を示す情報、前記ポート情報、及び、前記複数のモジュールを相互に接続するための入力ポートと出力ポートの接続情報を表示するステップをさらに含むことができる。【００１６】
また、本発明にかかる回路設計方法の一態様によれば、半導体試験装置に用いられる半導体デバイスの回路設計に適用されることができる。【００１７】
本発明にかかる回路設計システムの一態様は、複数のモジュールを相互に接続するための回路設計システムであって、前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するポート情報取得手段と、前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するインスタンス情報取得手段と、前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付ける対応付け手段と、を含む。【００１８】
なお、本明細書において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されてもよい。【００１９】
本発明にかかるプログラムを格納したコンピュータ読取り可能な記録媒体の一態様は、複数のモジュールを相互に接続するためのものであって、前記複数のモジュールの入力ポート及び出力ポートを含むポート情報を取得するステップと、前記複数のモジュールのうち、同一機能を有する複数のインスタンスを備えるモジュールがあることを示すインスタンス情報を取得するステップと、前記ポート情報及び前記インスタンス情報に基づいて、前記複数のモジュールを相互に接続するように入力ポートと出力ポートを対応付けるステップと、を実行させる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態において相互に接続すべき複数のモジュールの一態様を示す図である。
【図２】図１の複数のモジュールを相互に接続した状態を示す図である。
【図３】図１及び図２に対する上位階層のモジュールの一態様を示す図である。
【図４】本実施形態にかかる回路設計システムの機能構成を示す図である。
【図５】本実施形態にかかる回路設計システムのハードウェア構成を示すブロック図である。
【図６】本実施形態にかかる回路設計方法の概略を示す図である。
【図７】図６のＳＴＥＰ１００を説明する図である。
【図８】図６のＳＴＥＰ１０２を説明する図である。
【図９】図６のＳＴＥＰ１０２を説明する図である。
【図１０】図６のＳＴＥＰ１０４を説明する図である。
【図１１】図６のＳＴＥＰ１０６を説明する図である。
【図１２】図６のＳＴＥＰ１０８を説明する図である。
【図１３】本実施形態にかかる上位モジュールソースファイルの一例を示す図である。
【図１４】本実施形態にかかる接続情報データベースの表示例を示す図である。
【図１５】本実施形態にかかる回路設計の適用例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ、発明の実施形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせのすべてが発明の解決手段に必須であるとは限らない。
【００２２】
本実施形態にかかる回路設計ツールは、機能ごとに分割された複数のモジュールを相互に接続し、１つの上位モジュールを自動生成する。また、本実施形態にかかる回路設計ツールは、所定のプログラム言語に従うプログラムを自動生成する機能を備えるソフトウェアに対して適用することができる。以下、プログラム言語として、ＮＥＣシステムテクノロジー社が提供する「サイバーワークベンチ」のＢＤＬ（Behavioral Description Language）言語を用いた例を示す。
【００２３】
（１）本実施形態で処理するモジュール
まず、図１〜図３を参照して、本実施形態で処理するモジュールについて説明する。図１及び図２が、本実施形態において相互に接続する複数のモジュールの一態様を示し、図１が複数のモジュールを相互に接続する前の状態、図２が複数のモジュールを相互に接続した後の状態を示している。図３は、図１及び図２に対する上位階層のモジュールの一態様を示す図である。
【００２４】
図１に示すように、モジュール（モジュール名：model_abcd）１００には、複数のモジュール（モジュール名：model_a, model_b, model_c, model_d））１１０，１２０，１３０，１４０が設けられている。モジュール１１０，１２０，１３０，１４０は、モジュール１００を機能ごとに細分化したものであり、両者の関係において、前者を下位モジュール（又は下位階層）、後者を上位モジュール（又は上位階層）と呼ぶことができる。
【００２５】
本実施形態によれば、図１に示すように、上位モジュール１００に属する複数の下位モジュール１１０，１２０，１３０，１４０を各々設計し、本実施形態にかかる回路設計ツールを使用して複数の下位モジュール１１０，１２０，１３０，１４０を相互に接続するように対応付けし、図２に示すように１つの上位モジュール１００を自動生成することができる。なお、こうして自動生成されたモジュール１００は、例えば図３に示すように、他のモジュール１０２と相互に接続するように対応付けし、さらに上位の１つのモジュール１０４を生成することができる。こうして、順々に上位階層を生成し、最終的に半導体チップ全体の回路設計を達成する。
【００２６】
各下位モジュール１１０，１２０，１３０，１４０は、データの送受信に使用されるポートを有する。ポートは入力ポート及び出力ポートのほか、基準クロックポートや基準リセットポートを含むことができる。図１に示す例では、下位モジュール１１０は入力ポート（ポート情報：i_a1, i_a2）及び出力ポート（ポート名：a, b_1, b_2）を有し、下位モジュール１２０は入力ポート（ポート名：a, b）及び出力ポート（ポート情報：c）を有し、下位モジュール１３０は入力ポート（ポート情報：c）及び出力ポート（ポート情報：d）を有し、下位モジュール１４０は入力ポート（ポート情報：d_1, d_2）及び出力ポート（ポート情報：o_d1, o_d2）を有する。なお、基準クロックポート及び基準リセットポートのように、各下位モジュールに共通に接続されるもので、モジュール間の接続には関係しないものについては、図１〜図３では省略してある。
【００２７】
ポートにはポート情報（ポート名）が付けられている。個々の下位モジュールの設計においては、異なるデータを送受信するものについては各々個別にポートが設けられ、また、ポート情報についても異なる名前が付けられる。
【００２８】
また、複数の下位モジュール１１０，１２０，１３０，１４０は、信号の入力側から出力側にかけて順番に配列され、隣り合うモジュールの間の入出力ポート同士が、所定の対応関係に従って接続され、これにより複数の下位モジュールが相互に接続される。なお、最も上流側の下位モジュール１１０の入力ポート（ポート情報：i_a1, i_a2）は、上位モジュール１００の入力ポートに対応し、最も下流側の下位モジュール１４０の出力ポート（ポート情報：o_d1, o_d2）は、上位モジュール１００の出力ポートに対応する。
【００２９】
図１に示すように、複数の下位モジュールの少なくとも１つは、同一機能を有する複数のインスタンスを有する。ここで、インスタンスとは同一機能を有するモジュールが複数ある場合の各々を特定するためのものであり、このように同一機能を有するモジュールを複数に展開することをインスタンス展開と呼ぶことができる。
【００３０】
図１に示す例では、モジュール１２０が複数のインスタンス１２０Ａ，１２０Ｂを有し、モジュール１３０が複数のインスタンス１３０Ａ，１３０Ｂを有する。インスタンス展開された複数のモジュール１２０Ａ，１２０Ｂ（又は１３０Ａ，１３０Ｂ）は、各々、同一のポートを有し、同一ポート情報が付けられている。図１に示す例では、モジュール１２０，１３０が複数のインスタンスを有し、これに対してモジュール１１０，１４０は各々１つのインスタンスを有するということができる。また、Ｎ個のモジュールがある場合に、インスタンス展開されるモジュールは、１番目又はＮ番目の少なくとも１つのモジュールであってもよいし、２番目〜（Ｎ−１）番目の少なくとも１つのモジュールであってもよいし（図１に示す例が該当する。）、それらの組み合わせであってもよい。
【００３１】
なお、図１〜図３に示すモジュールの態様は一例に過ぎず、全体モジュールの個数、インスタンス展開されるモジュールの個数、インスタンス展開される場合の複数のインスタンスの個数、各モジュールのポート数等は上述した例に限定されるものではない。
【００３２】
（２）本実施形態にかかる回路設計システムの概要
次に、図４及び図５を参照して、本実施形態にかかる回路設計システムの概要を説明する。ここで、図４は、本実施形態にかかる回路設計システムの機能構成を示す図である。また、図５は、本実施形態にかかる回路設計システムのハードウェア構成を示すブロック図である。
【００３３】
図４に示すように、回路設計を行うためのプログラムがインストールされた回路設計システム２００は、主な構成として、回路設計の処理を制御する制御手段２１０と、回路設計の処理に必要な情報を記憶するための記憶手段２３０とを備える。
【００３４】
回路設計システム２００には、例えば図５に示すようなＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置２０４、ユーザインタフェース２０５、ディスプレイ２０６、プリンタ２０７、および通信インタフェース２０８を備える汎用のコンピュータを適用することができる。回路設計システム２００は、単一のコンピュータより構成されるものであっても、ネットワーク上に分散した複数のコンピュータより構成されるものであってもよい。
【００３５】
回路設計システム２００は、ＣＰＵ２０１が、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置２０４などに記憶された又は通信ネットワークを介してダウンロードされた所定のプログラム（本実施形態にかかる回路設計処理を規定したプログラム）を実行することにより、回路設計システム２００を後述する各種機能実現手段（図４参照）又は各種ステップとして機能させる。
【００３６】
すなわち、図４に示す制御手段２１０は、主な構成として、上位モジュール情報取得手段２１２、ポート情報取得手段２１４、インスタンス情報取得手段２１６、共通接続情報取得手段２１８、入力ポート及び出力ポート対応付け手段２２０、上位モジュールソースファイル生成手段２２２、所定情報表示手段２２４を備える。各種機能実現手段は、記憶手段２３０に接続されており、これにより上記各手段によって処理された回路設計の処理に必要な情報を記憶手段２３０に記憶又は記憶手段２３０から読み出すことができる。各種機構実現手段についての説明は、後述する回路設計方法の各種ステップについての説明を参照することができる。
【００３７】
（３）本実施形態にかかる回路設計システムを用いた回路設計方法
次に、図６〜図１４を参照して、本実施形態にかかる回路設計方法の具体例について説明する。本実施形態にかかる回路設計方法は、上述した回路設計システム２００（図４及び図５参照）を用いて行うことができる。なお、後述するフローチャートにおける各ステップ（符号が付されていない部分的なステップを含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３８】
ここで、図６は、本実施形態にかかる回路設計方法の概略を示す図であり、図７〜図１４は、本実施形態にかかる回路設計方法の各ステップでの詳細を説明するための図である。以下に、各図を参照して説明する処理は、制御手段２１０（例えばＣＰＵ２０１）の制御に基づいて、記憶手段２３０（例えばＲＡＭ２０３）から読み出した所定のプログラムに規定されたステップを実行することにより実現することができる。
【００３９】
まず、図６及び図７に示すように、上位モジュール情報取得手段２１２によって、生成される上位モジュール１００についての必要な情報を取得する（ＳＴＥＰ１００）。
【００４０】
例えば、ユーザが回路設計を行うときに、ディスプレイ２０６に所定のメニュー画面が表示され、当該メニュー画面からＳＴＥＰ１００の処理に開始を促す入力を行うことにより、ＳＴＥＰ１００の処理を開始してもよい。また、ディスプレイ２０６に、図６に示すＳＴＥＰ１００〜１１０の処理に対応する複数のアイコンが表示されており、当該表示からＳＴＥＰ１００の処理に対応するアイコンをクリックすることにより入力を行ってもよい。なお、上述した例示はこのステップに限るものではなく、他のステップにも適用することができる。
【００４１】
ＳＴＥＰ１００の処理を選択すると、図７に示すように、上位モジュールについて必要な情報の入力を促す上位モジュール設定画面３００がディスプレイ２０６に表示される。上位モジュールについての必要な情報としては、図７に示すように、例えばモジュール名、基準クロック情報（Mater Clock）、基準リセット情報（Master Reset）等が挙げられる。本実施形態では、図７に示すように、各々の欄に、model_abcd, clk, rst と入力する。入力を終了したら、設定終了のアイコンをクリックし、次のステップへ進むことができる。なお、上位モジュール情報取得手段２１２によって取得された情報は、後述するステップで読み出すために記憶手段２３０に記憶させておくことができる。
【００４２】
次に、図６及び図８に示すように、ポート情報取得手段２１４によって、下位モジュール１１０，１２０，１３０，１４０のポート情報を取得する（ＳＴＥＰ１０２）。
【００４３】
ＳＴＥＰ１０２の処理を選択すると、図８に示すように、下位モジュールについて必要な情報の入力を促す下位モジュール設定画面３１０がディスプレイ２０６に表示される。下位モジュール設定画面３１０には、上位モジュール１００の生成のために必要なすべての下位モジュール（model_a, model_b, model_c, model_d）１１０，１２０，１３０，１４０の一覧が表示される。そして、一覧表示された下位モジュールを１つずつ選択して、各下位モジュールのソースファイル３１２を開き、当該ソースファイル３１２のデータを記憶手段２３０（例えばＲＡＭ２０３）に読み込ませる。このようなデータの読み込みは、例えば図９に示すフローチャートに従って行ってもよい。すなわち、まず、設定画面３１０から所定の下位モジュールを選択し、ソースファイル３１２を開く（ＳＴＥＰ２００）。ソースファイル３１２を開いたら、当該ファイルに記述されているプログラムを先頭から１行ずつ読み込み（ＳＴＥＰ２０２）、入力ポート（in宣言）、出力ポート（out宣言）、基準クロック（clock宣言）、基準リセット（reset宣言）の記述を認識し（ＳＴＥＰ２０４〜２１０）、記述が存在する場合には各情報を取得する（ＳＴＥＰ２１２）。最終的にソースファイル３１２のすべての記述を読み込みが終わると（ＳＴＥＰ２１４）、ソースファイル３１２のデータの読み込みは終了する。なお、ポート情報取得手段２１４によって取得された情報は、後述するステップで読み出すために記憶手段２３０に記憶させておくことができる。
【００４４】
次に、図６及び図１０に示すように、インスタンス情報取得手段２１６及び共通接続情報取得手段２１８によって、下位モジュール１１０，１２０，１３０，１４０のインスタンス情報及び共通接続情報を取得する（ＳＴＥＰ１０４）。
【００４５】
ＳＴＥＰ１０４の処理を選択すると、図１０に示すように、下位モジュールにおいてインスタンス情報及び共通接続情報の入力を促す下位モジュール設定画面３１４がディスプレイ２０６に表示される。下位モジュール設定画面３１４には、上位モジュール１００の生成のために必要なすべての下位モジュール（model_a, model_b, model_c, model_d）１１０，１２０，１３０，１４０の一覧が表示される。そして、一覧表示された下位モジュールのうち、複数のインスタンスを備えるモジュール１２０，１３０を１つずつ選択する。まず、図１０に示すようにモジュール（model_b）１２０を選択し、下位モジュール情報表示画面３１６を開く。下位モジュール情報表示画面３１６には、ＳＴＥＰ１０２により取得した下位モジュール１２０のポート情報及びデータの種類を示すデータ情報などとともに、インスタンス情報入力領域３１８及び共通接続情報入力領域３２０が表示されている。ユーザは、下位モジュールに関するポート情報や予め決めた設計ルールなどから、インスタンス情報入力領域３１８にインスタンス情報を入力し、また共通接続情報入力領域３１８に共通接続情報を入力する。
【００４６】
ここで、インスタンス情報とは、少なくとも、同一機能を有する複数のインスタンスを備えるモジュールがあることを示す情報であり、複数のインスタンスの個数を示すインスタンス個数情報や、複数のインスタンスをそれぞれ識別するインスタンス識別情報を含むことができる。図１０に示す例では、インスタンス情報入力領域３１８の「インスタンス情報」の項目において、インスタンスの個数に応じた複数のセルの各々に、複数のインスタンスをそれぞれ識別する情報（例えば数字、記号又は文字列）を入力する。例えば、モジュール１２０においては、インスタンスは２個であるので、１個目のセルにインスタンスを識別する情報「１」を入力し、２個目のセルにインスタンスを識別する情報「２」を入力する。こうして、インスタンス個数情報及びインスタンス識別情報の両方を同時に入力することができる。
【００４７】
インスタンス識別情報として入力する情報は、インスタンス展開されるモジュール１２０よりも上流側のモジュール１１０の出力ポートのポート情報（例えば「信号名＿展開値」）、又は、インスタンス展開されるモジュール１３０よりも下流側のモジュール１４０の入力ポートのポート情報（例えば「信号名＿展開値」）に基づいて決定することができる。すなわち、図２に示すように、モジュール１１０の出力ポートは、インスタンス展開される複数のモジュール１２０Ａ，１２０Ｂの各々に対応するポート（ポート情報：b_1, b_2）を有しており、後述するポート同士の対応付けにおいて仮ポート情報が相互に一致するように、予めインスタンス識別情報として入力する情報をポート情報の展開値（例えばアンダーバーの後に続く情報「１」及び「２」のことである。）と一致させてもよい。また、同様に、モジュール１４０の入力ポートは、インスタンス展開される複数のモジュール１３０Ａ，１３０Ｂの各々に対応するポート（ポート情報： d_1, d_2）を有しており、ポート同士の対応付けにおいて仮ポート情報が相互に一致するように、予めインスタンス識別情報として入力する情報をポート情報の展開値と一致させてもよい。なお、インスタンス識別情報は、後述するポート同士の対応付けが図ることができれば、必ずしもポート情報の展開値と一致させなければならないという制約はなく、ポート情報の展開値とは異なる数字、記号又は文字列を入力しても構わない。
【００４８】
他方、共通接続情報とは、所定のモジュールの出力ポートが、複数のインスタンスの各入力ポートに共通に接続されることを示す情報である。すなわち、図２に示すように、モジュール１１０の出力ポート（ポート情報：a）が、インスタンス展開される複数のモジュール１２０Ａ，１２０Ｂの各入力ポート（ポート情報：a）に共通に接続されるものである場合には、共通接続情報入力領域３２０の「共通接続情報」の項目のポート情報ａに対応するセルに所定の情報（例えば数字、記号又は文字列）を入力する。図１０に示す例では、「共通接続情報」の項目のポート情報ａに対応するセルに「１Ｎ」と入力する。共通接続情報として入力する情報は、そのポートが共通接続されるものであることが識別できればよく、上述した文字列に限定されるものではない。
【００４９】
なお、インスタンス情報取得手段２１６及び共通接続情報取得手段２１８によって取得された情報は、後述するステップで読み出すために記憶手段２３０に記憶させておくことができる。
【００５０】
また、ＳＴＥＰ１０４においては、インスタンス情報及び共通接続情報の両方を取得する例を説明したが、所定のモジュールの出力ポートが、複数のインスタンスの各入力ポートに共通に接続される態様が存在しない場合には、共通接続情報を取得することを要しない。この場合には、インスタンス情報取得手段２１６によって、下位モジュール１１０，１２０，１３０，１４０のインスタンス情報を取得すればよい。
【００５１】
次に、図６及び図１１に示すように、入力ポート及び出力ポート対応付け手段２２０によって、下位モジュール１１０，１２０，１３０，１４０の入力ポートと出力ポートを対応付ける（ＳＴＥＰ１０６）。
【００５２】
図１１は、ＳＴＥＰ１０６をさらに詳細に説明するためのフローチャートである。まず、ＳＴＥＰ１０６の処理を選択すると、入力ポート及び出力ポート対応付け手段２２０が予め記憶手段２３０に記憶させておいた必要な情報を読み出し、ＳＴＥＰ１０４において取得したインスタンス情報及び共通接続情報に基づいて、ＳＴＥＰ１０２において取得したポート情報から仮ポート情報を生成する（ＳＴＥＰ３０２）。
【００５３】
表１は、入力ポートに関するポート情報から仮ポート情報を生成した入力情報データベースを示し、表２は、出力ポートに関するポート情報から仮ポート情報を生成した出力情報データベースを示す。
【表１】
2010038387.tif 000003
【表２】
2010038387.tif 000004
表１及び表２からわかるとおり、仮ポート情報の生成においては、まず、インスタンス展開していないものに関しては、インスタンス情報及び共通接続情報も付与されていないので、ポート情報と同じ情報が仮ポート情報として表示される（仮ポート情報：i_a1, i_a2, d_1, d_2, o_d1, o_d2）。次に、インスタンス展開したものに関しては、インスタンス情報に基づいて仮ポート情報を生成する（仮ポート情報：b_1, b_2, c_1, c_2）。すなわち、インスタンス情報に基づいて、ポート情報を異なる仮ポート情報に変更する。この場合、上述したとおり、予めインスタンス識別情報として入力する情報をポート情報の展開値と一致させておくことにより、対応付けすべきポート同士で仮ポート情報を一致させることができる。最後に、インスタンス展開しているものおいて共通接続情報を入力したものに関しては、共通接続情報に基づいて仮ポート情報を生成する（仮ポート情報：a）。すなわち、ポート情報が異なる仮ポート情報に変更されることが、この共通接続情報によって妨げられ、ポート情報がそのまま仮ポート情報として表示される。このようにして、入力情報データベース（表１）及び出力情報データベース（表２）を作成し、各データベースを例えば記憶手段２３０に記憶しておく。
【００５４】
次に、生成した仮ポート情報に基づいて入力ポートと出力ポートを対応付ける（ＳＴＥＰ３０４）。本実施形態では、対応付けすべきポート同士は仮ポート情報が一致するようになっているため、入力ポートと出力ポートの対応付けは、仮ポート情報が一致するか否かに基づいて判断することができる。例えば、出力情報データベース（表２）の仮ポート情報を１つずつ読み出し、入力情報データベース（表１）の仮ポート情報と比較して、一致するものがあれば、これらの仮ポート情報は相互に接続されるように対応付けられると判断し、対応付けられた接続情報を接続情報データベースとして登録する。なお、表３は、接続情報データベースの一態様を示す。
【表３】
2010038387.tif 000005
表３に示すとおり、接続情報データベースとして登録する情報は、出力側のインスタンス名及びポート情報、入力側のインスタンス名及びポート情報、及び、入力ポートと出力ポートの接続情報等である。生成した接続情報データベースは、最終的に記憶手段２３０に記憶させておくことができる。
【００５５】
また、表３に示す接続情報データベースは、ディスプレイ２０６に表示してもよい。例えば図１４に示すように一覧表として接続情報データベースに基づく情報をユーザが視認することができるようにしてもよい。ディスプレイ２０６に出力する表示態様は限定されないが、例えば、少なくとも、インスタンス名を示す情報、ポート名（ポート情報）、及び、複数のモジュールを相互に接続するための入力ポートと出力ポートの接続情報を含むことができる。
【００５６】
次に、図６及び図１２に示すように、上位モジュールソースファイル生成手段２２２によって、上位モジュール１００のソースファイルを生成する（ＳＴＥＰ１０８）。ここで、図１２は、上位モジュールソースファイル生成処理のフローチャートを示す図であり、図１２のフローチャートに従って生成された上位モジュールソースファイルの一例を図１３に示す。
【００５７】
図１３に示すように、上位モジュールソースファイル４００は、主要な構成として、下位モジュール読み出し部４０２と、入出力信号宣言部４０４と、内部信号接続部４０６とを含む。いずれの構成も、これまで説明したステップにおいて記憶手段２３０に記憶した情報やデータベースに基づいて生成することができる。
【００５８】
図１２に示すように、このようなソースファイル４００は、まず下位モジュール１１０，１２０，１３０，１４０の読み出し部を生成し（ＳＴＥＰ５００）、次に上位モジュール１００の入出力宣言部を生成し（ＳＴＥＰ６００）、最後に上位モジュール１００の内部信号接続部を生成することにより生成することができる（ＳＴＥＰ７００）。
【００５９】
まず、ＳＴＥＰ５００では、下位モジュール名を読み込みファイルへ出力し（ＳＴＥＰ５０２）、次に下位モジュールのポート情報を読み込む（ＳＴＥＰ５０４）。そしてポート情報（clock/reset/in/out）を識別して宣言をファイルへ出力し（ＳＴＥＰ５０６）、すべてのポート情報の処理が終了したら（ＳＴＥＰ５０８）、インスタンス名をファイルへ出力し（ＳＴＥＰ５１０）、すべての下位モジュールをコールしたことを確認する（ＳＴＥＰ５１２）。こうして、図１３に示す下位モジュール読み出し部４０２の部分のソースファイルを生成することができる。
【００６０】
次に、ＳＴＥＰ６００では、接続情報データベース（表３参照）から接続情報を１つ（表３の例では１行分）読み込み（ＳＴＥＰ６０２）、読み込んだ接続情報が外部入出力信号であるか否かを判断する（ＳＴＥＰ６０４）。この結果、外部入出力信号である場合には、外部入出力宣言としてその旨ファイルへ出力する（ＳＴＥＰ６０６）。外部入出力信号ではない場合には、すべての接続情報を読み込んだか否かについて判断し（ＳＴＥＰ６０８）、まだ残りの接続情報がある場合にはＳＴＥＰ６０４に戻り、上述した手順を繰り返し行う。こうして、最終的にすべての接続情報を読み込むことにより、図１３に示す入出力信号宣言部４０４の部分のソースファイルを生成することができる。
【００６１】
そして、ＳＴＥＰ７００では、上位モジュール名を読み込みファイルへ出力し（ＳＴＥＰ７０２）、次に、ＳＴＥＰ６００でも説明したとおり、接続情報データベース（表３参照）から接続情報を１つ読み込み（ＳＴＥＰ７０４）、読み込んだ接続情報が内部同士の接続情報であるか否かを判断する（ＳＴＥＰ７０６）。この結果、内部同士の接続情報である場合には、その旨ファイルへ出力する（ＳＴＥＰ７０８）。内部同士の接続情報ではない場合には、次に外部との接続情報であるか否かを判断し（ＳＴＥＰ７１０）、この結果、外部との接続情報である場合には、その旨ファイルへ出力する（ＳＴＥＰ７１２）。あるいは、外部との接続ではない場合には、すべての接続情報を読み込んだか否かについて判断し（ＳＴＥＰ７１４）、まだ残りの接続情報がある場合にはＳＴＥＰ７０４に戻り、上述した手順を繰り返し行う。こうして、最終的にすべての接続情報を読み込むことにより、図１３に示す内部信号接続部４０６の部分のソースファイルを生成することができる。
【００６２】
このようにして、本実施形態にかかる回路設計方法によれば、上位モジュール１００を自動生成することができるため、設計されるモデルの品質の向上及び設計生産性の向上を図ることができる。
【００６３】
なお、本実施形態にかかる回路設計方法によれば、「サイバーワークベンチ」のプログラム言語ＢＤＬを用いた例を示したが、プログラム言語はこれに限定されるものではなく、ソースファイルを作成するためのルーチンを変更することにより他のプログラム言語にも適用することができる。
【００６４】
（４）本実施形態にかかる回路設計の適用例
次に、図１５を参照して、本実施形態にかかる回路設計の適用例について説明する。本実施形態にかかる回路設計は半導体試験装置に用いられる半導体デバイス（例えばＡＳＩＣ）の回路設計に適用することができる。
【００６５】
半導体試験装置５００に用いられる半導体デバイス５０２は、被試験ＩＣ６００の試験を行うため、タイミング発生器５１０、パターン発生器５２０、波形整形器及びタイミング発生器５３０、論理比較器５４０等の複数のモジュールを備える。その中でも、波形整形器及びタイミング発生器５３０並びに論理比較器５４０は各々複数のインスタンス、すなわち同一機能を有する複数のモジュール５３０Ａ〜Ｃ，５４０〜Ｃにインスタンス展開されている。例えば、被試験ＩＣの測定すべき多数の外部端子の数に応じた数のインスタンス展開がなされると、波形整形器及びタイミング発生器５３０並びに論理比較器５４０は各々多数のインスタンスを備えることになる。
【００６６】
したがって、このような多数のインスタンスを有するモジュールを備える半導体デバイス５０２の回路設計においては、上述した本実施形態にかかる回路設計システム２００及び回路設計方法を適用すると、極めて容易に上位モジュールを自動
生成することができるため、より効果的にモデルの品質の向上及び設計生産性の向上を図ることができる。
【００６７】
上記発明の実施形態を通じて説明された実施例や応用例は、用途に応じて適宜に組み合わせて、又は変更若しくは改良を加えて用いることができ、本発明は上述した実施形態の記載に限定されるものではない。そのような組み合わせ又は変更若しくは改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００６８】
１００・・・上位モジュール、１１０，１２０，１３０，１４０・・・下位モジュール、２１０・・・制御手段、２１２・・・上位モジュール情報取得手段、２１４・・・ポート情報取得手段、２１６・・・インスタンス情報取得手段、２１８・・・共通接続情報取得手段、２２０・・・入力ポート及び出力ポート対応付け手段、２２２・・・上位モジュールソースファイル生成手段、２２４・・・所定情報表示手段、２３０・・・記憶手段
【図１】
2010038387.tif 000006
【図２】
2010038387.tif 000007
【図３】
2010038387.tif 000008
【図４】
2010038387.tif 000009
【図５】
2010038387.tif 000010
【図６】
2010038387.tif 000011
【図７】
2010038387.tif 000012
【図８】
2010038387.tif 000013
【図９】
2010038387.tif 000014
【図１０】
2010038387.tif 000015
【図１１】
2010038387.tif 000016
【図１２】
2010038387.tif 000017
【図１３】
2010038387.tif 000018
【図１４】
2010038387.tif 000019
【図１５】
2010038387.tif 000020
【国際調査報告】
2010038387.tif 000021
2010038387.tif 000022
2010038387.tif 000023
2010038387.tif 000024