(57)【特許請求の範囲】
【請求項１】
アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成する機能と、
上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築する機能と、
サブサーキット記述の節点の接続情報の多重度解析結果に基づいてシステムスケルトンを構築する機能と、
を有するスケルトン生成装置。
【請求項２】
上記サブサーキット記述の節点情報から、当該節点を流れる信号方向の指定の有無に応じて入出力の方向を制限することにより、上記機能ブロックの入出力情報に変換する機能を有する
請求項１記載のスケルトン生成装置。
【請求項３】
上記ネットリストに記述された回路接続情報をチェックし、接続されていない節点を検出する機能、および／または１対１の対応でない複数の接続先がある節点を検出する機能を含む
請求項１または２記載のスケルトン生成装置。
【請求項４】
拡張されたオプション記述の未接続節点検出オプションコマンドに依存して、システムスケルトンでは許されない接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成する機能を有する
請求項１から３のいずれか一に記載のスケルトン生成装置。
【請求項５】
接続されていない節点情報から、当該節点を流れる信号方向の指定の有無に応じて入出力の方向を制限することにより、スタブブロックの入出力情報に変換する機能を有する
請求項４記載のスケルトン生成装置。
【請求項６】
アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成する機能と、
上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築する機能と、
上記ネットリストに記述された回路接続情報をチェックし、接続されていない節点を検出する機能、および／または１対１の対応でない複数の接続先がある節点を検出する機能と、
拡張されたオプション記述の未接続節点検出オプションコマンドに依存して、システムスケルトンでは許されない接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成する機能と、
接続されていない節点情報から上記スタブブロックの入出力情報に変換する機能と、
節点の接続情報の多重度解析結果に基づいてシステムのスケルトンを構築する機能と、
を有するスケルトン生成装置。
【請求項７】
処理システムの実行機能が、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成するステップと、
処理システムの実行機能が、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築するステップと、
処理システムの実行機能が、サブサーキット記述の節点の接続情報の多重度解析結果に基づいてシステムスケルトンを構築するステップと、
を有するスケルトン生成方法。
【請求項８】
処理システムの実行機能が、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成するステップと、
処理システムの実行機能が、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築するステップと、
処理システムの実行機能が、上記ネットリストに記述された回路接続情報をチェックし、接続されていない節点、および／または１対１の対応でない複数の接続先がある節点を検出するステップと、
処理システムの実行機能が、拡張されたオプション記述の未接続節点検出オプションコマンドに依存して、システムスケルトンでは許されない接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成するステップと、
処理システムの実行機能が、接続されていない節点情報から上記スタブブロックの入出力情報に変換するステップと、
処理システムの実行機能が、節点の接続情報の多重度解析結果に基づいてシステムのスケルトンを構築するステップと、
を有するスケルトン生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆるプロセッサを内包する大規模半導体集積回路（ＳｏＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）の設計技術分野に属し、特にシステムレベル設計言語を使用して、アルゴリズム開発に使用される一般的シーケンシャル処理のプログラミング言語から大規模集積回路に求められる機能ブロック間の同時動作・並行動作処理を実現する電子システムを開発する際のＥＳＬ（Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍ  Ｌｅｖｅｌ）設計におけるシステムモデルのスケルトン生成装置および生成方法に関するものである。
【背景技術】
【０００２】
一般的に、システムレベル設計言語による設計手法では、機能ブロックに対する入力と出力を明確に定義する必要があり、この点でグローバル変数やポインタアクセス等の様々な直接的あるいは間接的な入力あるいは出力を許す、一般にアルゴリズム開発に使用されるプログラミング言語とは異なっていた。
この差を埋めるべく、地道にアルゴリズムレベルすなわちプログラミング言語レベルで、引数や返値で入出力を定義するように書き換える機能ブロック化が行われてきた。
【０００３】
しかしながら、多くは分担で他人により開発・記述されたプログラミング言語のソースを基に、処理内容を理解し、変数を整理する作業は非常に困難であり、プログラミング言語レベルでの修正は予期せぬ変数の使われ方に対しそれを検知する手段が皆無であり、問題点が顕在化しない傾向が強く、初期立ち上げに多くの時間がかかる要因となっていた。
【０００４】
そのような事情を踏まえて、ハードウェアの仕様情報をハードウェア設計記述言語に変換する装置や方法が種々提案されている（たとえば特許文献１〜５参照）。
【０００５】
特許文献１には、ネットリストからハードウェア記述言語ソースを生成し、ハードウェア記述言語による機能レベル設計への移行を図るネットリスト・ハードウェア記述変換装置が開示されている。
【０００６】
特許文献２には、論理あるいは機能を表または式の形式にて表現したロジック情報を、表または式からハードウェア接続記述言語に変換する技術が開示されている。
【０００７】
特許文献３には、既存の論理回路を機能レベルの表現形式に変換する表現形式変換手段と、機能レベルの形式で表現された既存の論理回路を利用して新たな論理回路の入力編集を行う入力編集手段と、入力編集で得られた目的の論理回路をデータベースに登録するデータベース登録手段と、を有する論理回路編集方式が開示されている。
【０００８】
また、特許文献４には、個々の論理機能を、編集コマンドテーブルを解釈しながら論理シミュレーション記述言語に解釈する技術が開示されている。
【０００９】
また、特許文献５には、入力されたハードウェア外部仕様情報に基づいて、システム記述言語により記述されたポート定義ファイルを生成し、システム記述言語により記述されたポート間接続定義ファイルを生成し、システム記述言語により記述されたポート連動関数定義ファイルを生成し、システム記述言語により記述されたハードウェアモデル入出力関数定義ファイルを生成する情報処理装置が開示されている。
【特許文献１】特開平０７−３０６８７９号公報
【特許文献２】特開平０７−０８６８８６号公報
【特許文献３】特開平０４−０４２３７２号公報
【特許文献４】特許第３０３３０９１号公報
【特許文献５】特開２００４−２２０２２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところが、特許文献１〜５に開示されている技術では、基本的に入出力の方向の区別を持った論理（デジタル）回路（あるいはハードウェア）を対象としており、入出力の方向を規定しないシステム構成部品の接続によりシステムを構築することができないという不利益がある。
【００１１】
特許文献１に開示された技術は、論理回路を素子情報として規定しており、論理回路は入出力の方向の区別がある。また、特許文献１の図２のネットリストの回路構成例を見ても論理記号を構成素子として使用しており、論理記号が入出力の方向の区別を持つことは明らかである。
【００１２】
特許文献２に開示された技術は、ロジック情報を入力とすることが前提であり、このロジック情報は入出力の方向の区別がある。また、特許文献２の図３には出力信号名、入力信号名との記載があり明らかに入出力の方向の区別を行っている。
【００１３】
特許文献３に開示された技術は、既存の論理回路を編集する方法であり、入出力の方向の区別を持つ。また、真理値表を付加情報として使用しているが、真理値表が入出力の関係を示す表であることは明らかである。
【００１４】
特許文献４に開示された技術は、デジタル回路の図形データを入力とすることが前提となっており、特許文献４の図３で明らかなように論理記号を入力とする。論理記号は既に説明したように入出力の方向の区別を持つ。
【００１５】
また、特許文献５に開示された技術は、ハードウェアの外部仕様情報を入力とし、その図６にあるポートタイプとはライト（Ｗｒｉｔｅ）／リード（Ｒｅａｄ）の区別でありこれは入出力の方向を示す。
【００１６】
すなわち、特許文献１〜５に開示されている技術では、入出力の方向の区別が必要であり、入出力の方向を規定しないシステム構成部品の接続によりシステムを構築することは想定されておらず、入出力の方向を規定しないシステム構成部品の接続によりシステムを構築することはできない。
【００１７】
本発明は、入出力の方向を規定しないシステム構成部品の接続によりシステムを構築することができ、システムレベル設計言語による設計の第一歩といえるシステムの機能ブロック化を支援する接続情報による汎用システムモデルのスケルトン生成装置とスケルトン生成方法を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の第１の観点のスケルトン生成装置は、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成する機能と、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築する機能と、サブサーキット記述の節点の接続情報の多重度解析結果に基づいてシステムスケルトンを構築する機能と、を有する。
【００１９】
本発明の第２の観点のスケルトン生成装置は、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成する機能と、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築する機能と、上記ネットリストに記述された回路接続情報をチェックし、接続されていない節点を検出する機能、および／または１対１の対応でない複数の接続先がある節点を検出する機能と、拡張されたオプション記述の未接続節点検出オプションコマンドに依存して、システムスケルトンでは許されない接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成する機能と、接続されていない節点情報から上記スタブブロックの入出力情報に変換する機能と、節点の接続情報の多重度解析結果に基づいてシステムのスケルトンを構築する機能と、を有する。
【００２０】
本発明の第３の観点のスケルトン生成方法は、処理システムの実行機能が、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成するステップと、処理システムの実行機能が、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築するステップと、処理システムの実行機能が、サブサーキット記述の節点の接続情報の多重度解析結果に基づいてシステムスケルトンを構築するステップと、を有する。
【００２１】
本発明の第４の観点のスケルトン生成方法は、処理システムの実行機能が、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じた入出力情報を持たないサブサーキット記述として、当該機能ブロックの入出力情報を基に作成するステップと、処理システムの実行機能が、上記ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位とし、すべてのポートを入出力ポートとするシステムレベル設計言語記述の機能ブロックスケルトンを構築するステップと、処理システムの実行機能が、上記ネットリストに記述された回路接続情報をチェックし、接続されていない節点、および／または１対１の対応でない複数の接続先がある節点を検出するステップと、処理システムの実行機能が、拡張されたオプション記述の未接続節点検出オプションコマンドに依存して、システムスケルトンでは許されない接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成するステップと、処理システムの実行機能が、接続されていない節点情報から上記スタブブロックの入出力情報に変換するステップと、処理システムの実行機能が、節点の接続情報の多重度解析結果に基づいてシステムのスケルトンを構築するステップと、を有する。
【発明の効果】
【００２２】
本発明によれば、不案内なアルゴリズムを機能ブロック化する時に、最低限の入出力情報を具備した、少なくともコンパイル可能なシステムレベル設計言語で記述されたシステムレベルのモデルスケルトンを得ることが可能になる。
また、システムレベルモデルに、たとえばアルゴリズムレベルである、プログラミング言語記述の動作モデルをマッピングすると、万一入出力がきちんと切り分けられておらず不適当なコードであった場合、直ちにコンパイルエラーとなり原因の究明・改善が容易になるという利点がある。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面に関連付けて説明する。
【００２４】
図１は、本発明の実施形態に係るスケルトン生成装置を採用したコンピュータシステムの構成例を示す図である。
【００２５】
本システム１００は、システムレベル設計言語を使用して、シミュレーション可能なシステム仕様を検討・構築するための、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを使用する。そして、システム１００の機能ブロックをサブサーキットとして記述し、これを入力としてシステムレベル設計言語により表現されるシステム全体の接続情報記述を生成する機能を有している。
【００２６】
具体的には、本システム１００は、アルゴリズムレベルのプログラミング言語で記述されたリファインターゲット１０１、アナログ回路シミュレータの入力回路接続情報入力ファイルフォーマットであるネットリスト１０２として記述されたシステムの機能ブロック仕様を入力とする。
【００２７】
本実施形態の実行機能１０３は配布可能な記録媒体上に保存され、ユーザーからの指令により電子計算処理システム１０４上にロードされ処理実行を開始する。
ネットリスト１０２はリファインターゲット１０１の引数解析から生成する場合と、テキストエディタにより直接ユーザーが作成する場合と、ＧＵＩをもつスケマティックエディタと、たとえばリファインターゲット１０１の引数解析から自動生成した中間ネットリストをスケマティックエディタにより修正するといった、組み合わせ等がある。
【００２８】
そして、本システム１００において、これらの検討により設計の節目、節目で確定されたネットリストを入力として、本実施形態の実行機能１０３により処理され生成された内部フォーマットデータベース１０５は、さらに実行機能１０３により構文解析が行われ、複数のチェック機能により精査されたのち、本実行機能１０３の最終出力であるＥＳＬシステムレベルスケルトンを出力する。
【００２９】
図２は、本実施形態に係る実行機能の処理のフローチャートである。
以下、図２のフローチャートに関連付けてさらに実行機能の内容を詳説する。
【００３０】
本実行機能が起動される（ＳＴ２０１）と、最初にネットリストを一行ずつ読み込む（ＳＴ２０２）。
電子計算処理システム１０４の内部にストアされたこの処理行単位の情報は、先頭の文字から字句解析され（ＳＴ２０３）、その内容により電子計算処理システム１０４の内部に中間フォーマットでデータベース１０５にストアされる（ＳＴ２０４）。
具体的には、読み込み行が何個のトークンから構成されているか、許されないトークンが存在しないかを解析する。
入力読み込み終了判定ステップＳＴ２０５により、読み込んだ処理行の内容がファイルの終了あるいは読み込み終了命令を意味すればデータベース１０５にストアされた内容の構文解析ステップＳＴ２０６に移る。
【００３１】
構文解析ステップＳＴ２０６においては、トークン間の関係が解析される。具体的には、使用されているモジュール名とポートの個数、型等のプロパティ情報、節点への接続情報等が解析される。同時に、モジュールの接続トポロジー、節点に流れ込む、流れ出すポートの幅、要素数等の意味解析も行われ節点ごとにまとめてデータベース化される。結果が再度データベース１０５にストアされると構文解析が終了となる。
ストアされたデータをスキャンすると浮遊節点が存在するか（ＳＴ２０７）調査することが可能であり、存在した場合は警告を出力する（ＳＴ２０８）。
さらに存在した浮遊節点の取り扱いを選択することが可能で（ＳＴ２０９）、スタブに接続することが要求されると該当する節点はスタブ節点として登録される（ＳＴ２１０）。
この場合、接続されていない機能ブロックの入出力を放置できない場合には、オプション記述によりこの節点を接続するスタブブロックが作成される。
このスタブブロックがシステム内に唯一作られ結果としてすべての関連する階層化ブロックに新規入出力情報が付加されるか、あるいはある階層内に作られ、システム内に複数のスタブブロックが生成されるか、あるいは基準節点に接続されるか等もオプションコマンドにより制御される。
【００３２】
次に、一つの節点が３つ以上のポートによって使用されているか、いわゆる多重接続の存在がスキャンされる（ＳＴ２１１）。
ステップＳＴ２１１において、多重接続が存在すると判断すると警告を出力する（ＳＴ２１２）。
なお、本フローでは浮遊節点と多重接続の存在を分けてスキャンしているが、節点情報のスキャンという観点では同じため、スキャンの結果によりこの２種の動作を切り替えるというような実装でもよい。
クリティカルなエラーとなり得るトポロジーのチェックが終了するとシステムの構築（ＳＴ２１３）が開始される。
このシステム構築の間に、最終的なトポロジーチェックが行われる。具体的にはチャネル―チャネル間の節点等が存在しないかがチェックされる。
意味解析の結果、正当なＥＳＬシステムモデルスケルトンが生成できる状態になると、このＥＳＬシステムモデルスケルトン（しばしばラッパーと称される）が出力される（ＳＴ２１４）。
【００３３】
以上の構成および機能は、限定を与えない実施例や図面を利用することにより、さらに明確なものとなる。
以下、図３〜図１１に関連付けて、本発明のより具体的な実施例について説明する。
【００３４】
＜実施例１＞
最も基本的なシステムネットワークは双方向センダ・レシーバの関係で構築できる。
【００３５】
図３は、双方向センダ・レシーバシステムの構成例を示す図である。
【００３６】
本実施例１のシステム３００は、２つの機能ブロック（Ｘ１）３０１と機能ブロック（Ｘ２）３０２を有している。
この機能ブロック（Ｘ１）３０１と機能ブロック（Ｘ２）３０２はそれぞれ２つのポートＰＴ１１，ＰＴ１２、ＰＴ２１，ＰＴ２２を有している。
ポートＰＴ１１とポートＰＴ２１は共通の節点（１１）３０３で接続され、ポートＰＴ１２とポートＰＴ２２は共通の接地節点（０）３０４で接続されている。また、それぞれのポートＰＴ１１，ＰＴ１２、ＰＴ２１，ＰＴ２２はどちらも３２ビットのポート幅を持つ。
【００３７】
図３の回路図をネットリストにしたものが、図４の実施例１のネットワーク記述１である。図４で示されるネットリストの意味を、図２の実行フローに沿って説明する。
【００３８】
本発明の実施形態に係るスケルトン生成装置がスタートされる（ＳＴ２０１）と、入力読み込みステップＳＴ２０２が開始され、一行目が読み込まれる。
一行目（本例での図４のＬ４０１）は必ずタイトル行であり、字句解析ステップＳＴ２０３により、すべての文字列がタイトルとして認識される。トークンのチェックも行われない。
本例では「Example 1: Bi-directional sender-receiver system」でありデータベース化ステップＳＴ２０４により、データベースにストアされる。
入力読み込み終了判定ステップＳＴ２０５によりこの行が読み込み終了を意味しないので、再び入力読み込みステップＳＴ２０２を実行する。
字句解析ＳＴ２０３ステップにより二行目（Ｌ４０２）は文頭がアスタリスク（＊）で開始されるものであり、コメント行として認識される。これにより、行の終わりまで処理システムからコメントとして扱われ、具体的には無視されデータベースステップＳＴ２０４ではなにもストアされない。
以下、入力読み込み終了判定ステップにより終了されない間、同様にステップＳＴ２０２〜ＳＴ２０５のループが繰り返される。
三行目（Ｌ４０３）は素子記述行である。文頭のＸはサブサーキット記述を意味し、どのトークンも不正なエントリではないので、すべてがデータベースにストアされる。
以降、最終行（Ｌ４０７）まですべての行がデータベースにストアされる。Ｌ４０７行では、これが入力読み込み終了を意味しており、よって構文解析ステップＳＴ２０６が実行される。
【００３９】
さて、構文解析ステップＳＴ２０６により、機能ブロック（Ｘ１）３０１と機能ブロック（Ｘ２）３０２のトポロジカルな情報が構築される。
Ｌ４０３により、機能ブロックＸ１は２つのポートをもち、これは節点１１と節点０に接続されている。節点番号０は特別な番号であり、必ず接地節点である。また、Ｘ１はｂｌｏｃｋ１という名前のサブサーキットをインスタンス化したものである。
Ｌ４０４により、機能ブロックＸ２は２つのポートをもち、これは節点１１と節点０に接続されている。また、Ｘ２はｂｌｏｃｋ２という名前のサブサーキットをインスタンス化したものである。
Ｌ４０５で節点番号１１の節点がモデル化される。節点１１は、ビット幅３２ビット、要素数１の節点である。
また、Ｌ４０６で節点番号０の接地節点がモデル化される。節点０はビット幅３２ビット、要素数１の節点である。スパイス（ＳＰＩＣＥ）回路シミュレータでは接地節点は０であり信号値は常に０であるが、本発明の実施形態によるスケルトン生成装置では、接地節点の信号値が０であるとの情報を使用していない。以上により、すべての構文解析ステップが終了する。
【００４０】
回路のトポロジーが指定されたので、不正なトポロジーが無いか調査ステップが実行される。
最初は浮遊節点の調査ステップＳＴ２０７である。本例の場合、浮遊節点は存在しないので、次に多重接続調査ステップＳＴ２１１が実行される。本例の場合、すべての節点が素子ポート１対１の節になっており、多重接続も存在しない。
スケルトン出力の情報が揃ったので、システムの構築ステップＳＴ２１３が実行される。本ステップＳＴ２１３では、システムレベル設計言語への翻訳・変換が行われる。
具体的には使用するシステムレベル設計言語の文法に則った翻訳・変換用テンプレートデータベースを参照しながら、システムを構築する。構築されるシステムは常に文法的に正しく、コンパイル可能かつ実行可能な記述となる。
最終的にＥＳＬシステムレベルスケルトン出力ステップＳＴ２１４により、たとえばＥＳＬシステムレベル設計言語ファイル形式で出力される。
【００４１】
さて、本例では節点３０３、３０４は方向が指定されない。すなわち、すべて双方向センダ・レシーバ関係で構築される。
本例では節点のみが指定され、したがって節点間の信号の方向は決定されない。また、制御の方向も固定しないのでどちらがマスタあるいはスレーブとしての役割を果たしても構わない。
ＥＳＬシステムレベルスケルトン出力ステップＳＴ２１４においては、制御の方向を静的に決定せずに実行時に決定できるスケルトンが出力される。
本実施形態においては、この制御の方向を静的に決定せずに実行時に決定できる処理機能についてはその実現方法を問わない。
【００４２】
図５にＳｙｓｔｅｍＣによるＥＳＬシステムレベルスケルトンの出力例を示す。図５において、Ｌ５０１〜Ｌ５０５はモジュール定義を示している。
【００４３】
図４のＬ４０３で指定されたＸ１なる機能ブロックがＷｒａｐｐｅｒ＿の修飾文字列とともにＷｒａｐｐｅｒ＿Ｘ１なるＳｙｓｔｅｍＣのモジュール名に変換される。
Ｌ５０２はＣ＋＋言語のアクセス指定子で以下の記述がパブリックアクセス可能なメンバであることを指定している。
Ｌ５０３はクロック宣言を示しているが、これはモデリング手法に依存する部分で、無くてもよい。
Ｌ５０４、Ｌ５０５が本実施形態のスケルトン部分に当たるポート宣言である。入出力方向がモデル記述時に決定できないので入出力ポートとなる。
【００４４】
Ｌ５０６〜Ｌ５１０は、図４のＬ４０４で指定されたＸ２なる機能ブロックのモジュール定義を示している。Ｘ１のときと同様に、Ｗｒａｐｐｅｒ＿Ｘ２なるＳｙｓｔｅｍＣのモジュール名に変換される。
Ｘ２用モジュールのＬ５０７〜Ｌ５１０記述とＸ１用モジュールのＬ５０２〜Ｌ５０５記述が全く同じ記述となっている点が本例の特徴であり、非常に簡潔に記述できる。Ｌ５１１〜Ｌ５３２はシステム全体のインスタンス定義である。図４では節点であったものがＬ５１３、Ｌ５１４でチャネルとして展開される。
【００４５】
本実施例１をまとめると、入出力あるいは信号の方向と制御の方向を全く指定しないので、アルゴリズムレベルでの変数を信号の流れを考慮しないでポートにマッピングし、つながり先だけを考慮してシステムを構築する場合に利用できる。
【００４６】
＜実施例２＞
単方向センダ・レシーバ関係は節点間にダイオード記述を挿入することで表現できる。
【００４７】
図６は、単方向センダ・レシーバシステムの構成例を示す図である。
【００４８】
本実施例２のシステム６００は、２つの機能ブロック（Ｘ３）６０１と機能ブロック（Ｘ４）６０２を有している。
この機能ブロック（Ｘ３）６０１と機能ブロック（Ｘ４）６０２はそれぞれ２つのポートＰＴ３１，ＰＴ３２、ＰＴ４１，ＰＴ４２を有している。また、図６において、６０３，６０５はダイオードを示している。
【００４９】
機能ブロック（Ｘ３）６０１のポートＰＴ３１は節点（２１）６０５に接続され、機能ブロック（Ｘ４）６０２のポートＰＴ４１は節点（２２）６０６に接続されている。また、機能ブロック（Ｘ３）６０１のポートＰＴ３２は節点（０）６０７に接続され、機能ブロック（Ｘ４）６０２のポートＰＴ４２は節点（２３）６０８に接続されている。
節点（２１）６０５と節点（２２）６０６間はダイオード６０３により接続されている。ダイオード６０３のアノード側が節点（２１）６０５に接続され、カソード側が節点（２２）６０６に接続されている。したがって、節点（２１）６０５から節点（２２）６０６へ信号の流れる方向が指定される。
節点（０）６０７と節点（２３）６０８間はダイオード６０４により接続されている。ダイオード６０４のカソード側が節点（０）６０７に接続され、アノード側が節点（２３）６０８に接続されている。したがって、節点（２３）６０８から節点（０）６０７へ信号の流れる方向が指定される。それぞれのポートはどちらも３２ビットのポート幅を持つ。
【００５０】
図７に実施例２のネットワーク記述２を示す。
実施例１との差分としては、節点間にダイオードが挿入されることおよび節点のモデルの代わりに、挿入されたダイオードのモデルが記述されることがある。
ダイオードのモデルを記述することによりその両端の節点のモデルを記述する必要がなくなり、簡易な記述とすることが可能である。
【００５１】
図８にＳｙｓｔｅｍＣによるＥＳＬシステムレベルスケルトンの出力例を示す。入力ネットリストへのダイオードの挿入により、本出力のポートに信号の入出力の区別が付けられる。
【００５２】
本実施例２をまとめると、入出力すなわち信号の方向は指定されているので、データフローモデルでの信号の流れをモデル化する際に利用できる。制御の方向は指定しないので、データを渡すのか受け取りに行くのかを決定しないでもモデル化できる。
【００５３】
＜実施例３＞
マスタ・スレーブ関係を明示する場合は、ダイオード記述を節点間に挿入し、モデル記述で制御の方向を規定する。
【００５４】
図９は、マスタ・スレーブシステムの構成例を示す図である。
【００５５】
本実施例３のシステム９００は、２つの機能ブロック（Ｘ５）９０１と機能ブロック（Ｘ６）９０２とを有している。
機能ブロック（Ｘ５）９０１と機能ブロック（Ｘ６）９０２はそれぞれ３つのポートＰＴ５１〜ＰＴ５３、ＰＴ６１〜ＰＴ６３を有している。なお、図９において、９０３，９０４はツェナーダイオードを示し、９０５はダイオードを示している。
【００５６】
機能ブロック（Ｘ５）９０１のポートＰＴ５１は節点（３２）９０６に接続され、ポートＰＴ５２が節点（３１）９０８に接続され、ポートＰＴ５３が節点（０）９１０に接続されている。
機能ブロック（Ｘ６）９０２のポートＰＴ６１が節点（３３）９０７に接続され、ポートＰＴ６２が節点（３４）９０９に接続され、ポートＰＴ６３が節点（３５）９１１に接続されている。
【００５７】
節点（３２）９０６と節点（３３）９０７間はツェナーダイオード９０３により接続されている。ツェナーダイオード９０３のアノード側が節点（３３）９０７に接続され、カソード側が節点（３２）９０６に接続されている。したがって、節点（３３）９０７から節点（３２）９０６への制御の流れる方向が指定される。添え字を見るとブレークダウン電圧が正であるので、節点（３２）９０６から節点（３３）９０７への信号の流れる方向が指定される。
【００５８】
節点（３１）９０８と節点（３４）９０９間はツェナーダイオード９０４により接続されている。ツェナーダイオード９０４のアノード側が節点（３４）９０９に接続され、カソード側が節点（３１）９０８に接続されている。したがって、節点（３４）９０９から節点（３１）９０８への制御の流れる方向が指定される。また添え字を見るとブレークダウン電圧が０であるので、双方向への信号の流れとなる。
【００５９】
ブレークダウン電圧の設定がないと上の２つのツェナーダイオード９０３，９０４の視覚的な表現は全く同じである。すなわち、ツェナーダイオードの本スケルトン生成装置での使用は、制御方向と信号の方向が一致しない可能性を表現するだけである。明確な区別が必要な場合はブレークダウン電圧を記述する。
【００６０】
節点（０）９１０と節点（３５）９１１間はダイオード９０５により接続されている。ダイオード９０５のアノード側が節点（３５）９１１に接続され、カソード側が節点（０）９１０に接続されている。したがって、節点（３５）９１１から節点（０）９１０への制御の流れる方向が指定される。
モデル内で異なる抽象度のポートを持つことは許されないため、本例ではこのポートが信号の方向も指定されることになる。すなわち、節点（３５）９１１から節点（０）９１０へ信号の流れる方向が指定される。
実施例２の制御の方向を指定しない記述例と区別し、信号の流れる方向を明示するには、ブレークダウン電圧は設定せずにデフォルトとするか、回路シミュレーションでは不正な値となるがブレークダウン電圧に負を設定する。
【００６１】
実施例２と実施例３では、ダイオードの向き（アノードからカソードの方向）により信号の向きが指定されるか（実施例２）、制御の向きが指定されるか（実施例３）の違いがある。
これを一致させるため、実施例３においてもダイオードの向きを信号の向きとし、ブレークダウン電圧ＢＶで制御の向きと定義してもよい。
【００６２】
図１０に実施例３のネットワーク記述３を示す。実施例２との差分はダイオードモデルの中のブレークダウン電圧の設定部分のみである。
【００６３】
図１１にＳｙｓｔｅｍＣによるＥＳＬシステムレベルスケルトンの出力例を示す。モデル中のブレークダウン電圧の設定により、マスタ・スレーブの情報が付加される。
本実施例３からわかるように、一般的なマスタ・スレーブシステムも表現できる。
【００６４】
以上説明したように、本実施形態によれば、アナログ回路シミュレーションの回路接続情報入力ファイルフォーマットであるネットリストを、システムの機能ブロックに応じたサブサーキット記述として、この機能ブロックの入出力情報を基に作成する機能と、ネットリストを読み込む機能と、読み込んだネットリストに記述された回路接続情報をチェックする機能と、接続されていない節点を検出し、警告を発する機能と、１対１の対応でない複数の接続先がある節点を検出し、警告を発する機能と、ネットリストに記述された回路情報を基に、サブサーキット記述を機能ブロックの単位としてシステムレベル設計言語記述の機能ブロックスケルトンを構築する機能と、この機能ブロックスケルトンを出力する機能と、サブサーキット記述の節点情報から機能ブロックの入出力情報に変換する機能と、この機能ブロックの入出力情報を出力する機能と、サブサーキット記述の節点情報から機能ブロックの入出力プロセステンプレートを生成する機能と、入出力プロセステンプレートを出力する機能と、拡張されたオプション記述に依存して接続されていない節点を検出した場合に、動作記述を持たないスタブブロックを生成する機能と、接続されていない節点情報からスタブブロックの入出力情報に変換する機能と、スタブブロックの入出力情報を出力する機能と、を有することから、以下の効果を得ることができる。
【００６５】
信号・制御の方向を指定しない、より抽象度の高いモデル記述が可能となる。
また、機能ブロックのポートではなく、媒介変数のイメージである節点を定義し、アルゴリズムレベルからの移行が容易でよりネットワーク・トポロジー設計志向の強い設計に向くという利点がある。
通常のソフトウェア側から見えるハードウェア群のラッパー生成だけではなく、システム全体のラッパーが自動生成できる。
また、階層化が簡単でサブブロックのみのラッパー生成もできるため、一部の修正で全体を作りかえる必要がなくなる。また、サブブロック毎のテストベンチテンプレートも同時に自動生成可能である。
また、浮遊節点・多重節点の取り扱いを選択できる。
ＳＰＩＣＥネットリストを原型とし、構造が簡単でわかりやすく、また、ダイオードで制御あるいは信号の方向を定義し、直感的でわかりやすい。
定評があり安定した既存のスケマティックエディタをエントリーポイントにすることが可能となり、さらに、逆にスケマティックエディタによって、テキストエディタあるいはリファインターゲットアルゴリズムの引数解析から生成したネットリストからグラフィカルにシステムの接続情報を目で確認することも可能になる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係るスケルトン生成装置を採用したコンピュータシステムの構成例を示す図である。
【図２】本実施形態に係る実行機能の処理のフローチャートである。
【図３】実施例１の双方向センダ・レシーバシステムの構成例を示す図である。
【図４】実施例１のネットワーク記述１を示す図である。
【図５】ネットワーク記述１から自動生成されるシステム記述す図である。
【図６】実施例２の単方向センダ・レシーバシステムの構成例を示す図である。
【図７】実施例２のネットワーク記述２を示す図である。
【図８】ネットワーク記述２から自動生成されるシステム記述を示す図である。
【図９】実施例３のマスタ・スレーブシステムの構成例を示す図である。
【図１０】実施例３のネットワーク記述３を示す図である。
【図１１】ネットワーク記述３から自動生成されるシステム記述を示す図である。
【符号の説明】
【００６７】
１０１…リファインターゲット（リファレンスアルゴリズム）、１０２…ネットリスト、１０３…実行機能、１０４…電子計算処理システム、１０５…内部フォーマットデータベース、１０６…ＥＳＬシステムレベルスケルトン、Ｓ２０１…スタートステップ、Ｓ２０２…入力読み込みステップ、Ｓ２０３…字句解析ステップ、Ｓ２０４…データベース化ステップ、Ｓ２０５…入力終了検知ステップ、Ｓ２０６…構文解析ステップ、Ｓ２０７…浮遊節点チェックステップ、Ｓ２０８…浮遊節点警告ステップ、Ｓ２０９…スタブ作成分岐ステップ、Ｓ２１０…スタブ節点登録ステップ、Ｓ２１１…多重接続チェックステップ、Ｓ２１２…多重節即警告ステップ、Ｓ２１３…システム構築ステップ、Ｓ２１４…ＥＳＬシステムレベルスケルトン出力ステップ、３０１…機能ブロックＸ１、３０２…機能ブロックＸ２、３０３…節点１１、３０４…節点０、Ｌ４０１…タイトル行、Ｌ４０２…コメント行、Ｌ４０３…素子記述行Ｘ１、Ｌ４０４…素子記述行Ｘ２、Ｌ４０５…モデル記述行節点１１、Ｌ４０６…モデル記述行節点０、Ｌ４０７…コントロール記述行終了、Ｌ５０１〜Ｌ５０５…モジュール定義Ｘ１、Ｌ５０６〜Ｌ５１０…モジュール定義Ｘ２、Ｌ５１１〜Ｌ５３２…システム定義、６０１…機能ブロックＸ３、６０２…機能ブロックＸ４、６０３…ダイオード、６０４…ダイオード、６０５…節点２１、６０６…節点２２、６０７…節点０、６０８…節点２３、９０１…機能ブロックＸ５、９０２…機能ブロックＸ６、９０３…ツェナーダイオード、９０４…ツェナーダイオード、９０５…ダイオード、９０６…節点３２、９０７…節点３３、９０８…節点３１、９０９…節点３４、９１０…節点０、９１１…節点３５。
【図１】
0004770588.tif 000002
【図２】
0004770588.tif 000003
【図３】
0004770588.tif 000004
【図４】
0004770588.tif 000005
【図５】
0004770588.tif 000006
【図６】
0004770588.tif 000007
【図７】
0004770588.tif 000008
【図８】
0004770588.tif 000009
【図９】
0004770588.tif 000010
【図１０】
0004770588.tif 000011
【図１１】
0004770588.tif 000012