(57)【要約】【課題】実際に信号の出力動作が行われる前に、他のモジュールにて入力として使用されるような入出力タイミングの違反を検出する。【解決手段】上記の課題を解決するために、記憶装置に保持されている動作レベル記述を読み出して動作合成処理を実行して複数のモジュールを生成する動作合成部と、その複数のモジュールを接続したときの接続関係を示すモジュール間接続情報を生成するモジュール間接続部と、その複数のモジュール間の端子に違反が存在するか否かを検証するモジュール間型検証部と、その端子間において、入出力タイミング違反がないか検証するモジュール間タイミング検証部とを具備する回路設計支援システムを構成する。そのモジュール間タイミング検証部は、動作レベル記述が、実際に信号の出力動作が行われる前に、他のモジュールに対して入力として使用されるような入出力タイミング違反が存在するか否かを検証する。【選択図】図１
2010205073.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に保持されている動作レベル記述を読み出して動作合成処理を実行し、前記動作合成処理の結果である複数のモジュールを生成する動作合成部と、
前記複数のモジュールを接続したときの接続関係を示すモジュール間接続情報を生成するモジュール間接続部と、
前記モジュール間接続情報に示される前記接続関係に基づいて、前記複数のモジュール間の端子に違反が存在するか否かを検証するモジュール間型検証部と、
前記モジュール間接続情報に示される前記接続関係に基づいて、前記端子間において、入出力タイミング違反がないか検証するモジュール間タイミング検証部と
を具備し、
前記モジュール間タイミング検証部は、
前記複数のモジュールのうちの特定モジュールの出力端子が、他のモジュールの入力端子に接続されており、前記動作レベル記述が、実際に信号の出力動作が行われる前に、前記他のモジュールに対して入力として使用されるような入出力タイミング違反が存在するか否かを検証する
回路設計支援システム。
【請求項２】
請求項１に記載の回路設計支援システムにおいて、
前記動作合成部は、
前記動作合成の過程で生成される中間記述と、
前記中間記述と前記動作レベル記述との対応関係を示す対応関係情報と、
前記複数のモジュールの各々の端子情報と、
前記モジュールの状態遷移に関する状態遷移情報と
を前記記憶装置に格納し、
前記モジュール間接続部は、
前記端子情報に基づいて、前記複数のモジュールの名称が同じ端子を自動で接続して前記モジュール間接続情報を生成し、
前記モジュール間タイミング検証部は、
前記モジュール間接続情報と、前記状態遷移情報と、前記中間記述とに基づいて、前記入出力タイミング違反が存在するか否かを検証する
回路設計支援システム。
【請求項３】
請求項２に記載の回路設計支援システムにおいて、
前記モジュール間タイミング検証部は、
前記状態遷移情報に示される前記複数のモジュールの各々の状態を参照し、その参照によって得られた前記複数のモジュールの各々の動作タイミングと、前記中間記述に示される動作タイミングとの関連に基づいて、前記入出力タイミング違反が存在するか否かを検証する
回路設計支援システム。
【請求項４】
請求項３に記載の回路設計支援システムにおいて、さらに、
タイミングチャート表示部と、
動作レベル表示部と
を具備し、
前記タイミングチャート表示部は、
前記入出力タイミング違反が検出されたとき違反情報を表示し、
前記動作レベル表示部は、
前記違反情報に基づいて、前記動作レベル記述の違反に相当する部位を区別表示する
回路設計支援システム。
【請求項５】
請求項４に記載の回路設計支援システムにおいて、さらに、
接続違反表示部を具備し、
前記接続違反表示部は、
前記複数のモジュール間の端子に存在する違反が検出されたとき、端子違反情報を表示し、
前記動作レベル表示部は、
前記端子違反情報に基づいて、前記動作レベル記述の違反に相当する部位を区別表示する
回路設計支援システム。
【請求項６】
請求項４または５に記載に回路設計支援システムにおいて、
前記動作レベル表示部は、
前記中間記述と前記違反情報と前記端子違反情報を参照し、前記対応関係情報に基づいて、前記動作レベル記述の違反に相当する部位を抽出する
回路設計支援システム。
【請求項７】
コンピュータを集積回路の設計を支援する回路設計支援システムとして機能させるための手順を示す回路設計支援プログラムであって、
（ａ）記憶装置に保持されている動作レベル記述を読み出して動作合成処理を実行し、前記動作合成処理の結果である複数のモジュールを生成するステップと、
（ｂ）前記複数のモジュールを接続したときの接続関係を示すモジュール間接続情報を生成するステップと、
（ｃ）前記モジュール間接続情報に示される前記接続関係に基づいて、前記複数のモジュール間の端子に違反が存在するか否かを検証するステップと、
（ｄ）前記モジュール間接続情報に示される前記接続関係に基づいて、前記端子間において、入出力タイミング違反がないか検証するステップと
を具備し、
前記（ｄ）ステップは、
前記複数のモジュールのうちの特定モジュールの出力端子が、他のモジュールの入力端子に接続されている部分を特定するステップと、
前記動作レベル記述が、実際に信号の出力動作が行われる前に、前記他のモジュールの入力端子に対して、入力として使用されるような入出力タイミング違反が存在するか否かを検証するステップと
を含む
回路設計支援プログラム。
【請求項８】
請求項７に記載の回路設計支援プログラムにおいて、
前記（ａ）ステップは、
前記動作合成の過程における中間記述を生成するステップと、
前記中間記述と前記動作レベル記述との対応関係を示す対応関係情報を生成するステップと、
前記複数のモジュールの各々の端子情報を生成するステップと、
前記モジュールの状態遷移に関する状態遷移情報を生成するステップと
を含み、
前記（ｃ）ステップは、
前記端子情報に基づいて、前記複数のモジュールの名称が同じ端子を自動で接続して前記モジュール間接続情報を生成するステップを含み、
前記（ｄ）ステップは、
前記モジュール間接続情報と、前記状態遷移情報と、前記中間記述とに基づいて、前記入出力タイミング違反が存在するか否かを検証するステップを含む
回路設計支援プログラム。
【請求項９】
請求項８に記載の回路設計支援プログラムにおいて、
前記（ｄ）ステップは、
前記状態遷移情報に示される前記複数のモジュールの各々の状態を参照するステップと、
その参照によって得られた前記複数のモジュールの各々の動作タイミングと、前記中間記述に示される動作タイミングとの関連に基づいて、前記入出力タイミング違反が存在するか否かを検証するステップと
を含む
回路設計支援プログラム。
【請求項１０】
請求項９に記載の回路設計支援プログラムにおいて、さらに、
（ｅ）前記入出力タイミング違反が検出されたとき違反情報を表示するステップと、
（ｆ）前記違反情報に基づいて、前記動作レベル記述の違反に相当する部位を区別表示するステップと
を具備する
回路設計支援プログラム。
【請求項１１】
請求項１０に記載の回路設計支援プログラムにおいて、さらに、
（ｇ）前記複数のモジュール間の端子に存在する違反が検出されたとき、端子違反情報を表示するステップを具備し、
前記（ｆ）ステップは、
前記端子違反情報に基づいて、前記動作レベル記述の違反に相当する部位を区別表示するステップを含む
回路設計支援プログラム。
【請求項１２】
請求項１０または１１に記載に回路設計支援プログラムにおいて、
前記（ｆ）ステップは、
前記中間記述と前記違反情報と前記端子違反情報を参照した後、前記対応関係情報に基づいて、前記動作レベル記述の違反に相当する部位を抽出するステップを含む
回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援システムに関し、特に動作合成ツールが生成する回路を検証する回路設計支援システムに関する。
【背景技術】
【０００２】
動作合成により回路設計を支援する回路設計支援システムに関する技術が知られている（例えば、特許文献１〜４参照）。特許文献１には、ブロックをベースとする設計方法に関する技術が記載されている。特許文献２には、シミュレーション対象システムについて、入出力のタイミング制約の下で、動作タイミングの実用的な事例や、動作タイミングの実用的な変動の範囲を利用者に示すための技術が記載されている。特許文献３には、不具合の原因であるＲＴレベルの記述内の指定された部品に対応する動作レベル記述内の要素や動作合成命令を、設計者に提示できる回路設計支援システムに関する技術が記載されている。特許文献４には、論理回路の検証データを簡単に作成することができる論理回路検証データ生成装置に関する技術が記載されている。
【０００３】
回路設計支援システムにおいては、複数のモジュールを接続する上位階層の記述を、自動的に生成するような設計支援が必要かつ重要である。関連する回路設計支援システムは、各モジュールの入力となる動作レベル記述を記憶する記憶装置と、動作合成部を含むデータ処理装置と、動作レベル記述表示部などの入出力装置から構成されている。このような構成を有する回路設計支援システムにおける回路設計は、次のように行われる。はじめに回路設計者は所望の回路群の動作を複数の動作レベル記述として記述し記憶部に転送しておく。
【０００４】
記憶された動作レベル記述群に対し、動作合成部を操作し動作合成処理を実施する。動作合成処理は、スケジューリング工程、バインディング工程、最適化工程などからなる。スケジューリング工程においては、動作時間の決められていない動作レベル記述の各処理に対して、動作時間を決定する。バインディング工程においては動作レベル記述の各処理に対して、ハードウェアリソースを決定する。最適化工程は動作合成の各段階において実施され、ループ最適化などの言語レベル最適化や、後工程としての論理最適化などが含まれる。
【０００５】
これら動作合成処理の各工程において、動作合成部は中間記述を生成する。動作合成の結果、中間記述の中に、回路動作が有限オートマトンとして記録される。すべての工程が終了すると、ＲＴレベル記述を生成する。得られたＲＴレベル記述は下流の設計工程に流され回路として実現される。
【０００６】
動作合成の対象となるモジュールは、最上位階層の記述を除いて、全て他のモジュールで子階層としてインスタンス化されることで、ハードウェアの実体として実現される。インスタンス化されたモジュール間の入出力端子、もしくは、モジュールの入出力端子と上位階層となるモジュールの入出力端子を結線することで、モジュール間あるいはインスタンス階層間のデータの流れが実現される。全てのモジュールに対して、動作合成が実行される。動作合成によって生成されたシミュレーションモデルやＲＴレベルを全モジュール分集めてコンパイル実行することで、サイクル精度レベル、あるいはＲＴレベルのシミュレーションを行い、想定された動作を示すか確認する。これによって、モジュール間の接続を含めた、モジュールの論理的記述の正しさが正しいことを確認する。
【０００７】
この手順を支援するものとして、全てのモジュールの動作レベル記述や動作合成結果を管理し、指定された任意のモジュール間あるいは端子間の接続状態の型の一致を検証するような機能を備えたシステムが考えられる。
【０００８】
図１０は、関連する回路設計支援システム４００の構成を示すブロック図である。回路設計支援システム４００は、入出力装置４０１と、データ処理装置４０２と、記憶装置４０３とを備えている。
【０００９】
記憶装置４０３は、動作レベル記述記憶部４０９、中間記述の情報を記憶する中間記述記憶部４１１、各モジュールの端子情報を記憶する端子情報記憶部４１０、およびモジュール間の接続関係を記憶するモジュール間接続情報記憶部４１２を含んでいる。
【００１０】
データ処理装置４０２は、動作合成部４０６と、モジュール間の接続関係を指定するモジュール間接続部４０７、および、接続関係のある端子間の型の一致を検証するモジュール間型検証部４０８とを含んでいる。
【００１１】
入出力装置４０１は、動作レベル記述を表示する動作レベル記述表示部４０４と、モジュール間の接続関係を表示・編集するモジュール間接続表示・編集部４０５とを含んでいる。
【００１２】
このような構成を有する関連する回路設計支援システム４００において、モジュール間の接続の検証は次のように行われる。動作レベル記述記憶部４０９に記憶された動作レベル記述群に対して動作合成を実施すると、各モジュールに対して端子情報が端子情報記憶部４１０に記憶される。
【００１３】
モジュールのインスタンス化や、モジュール間の接続が既に入力された動作レベル記述によって実現されている場合は、モジュール間接続情報記憶部４１２に他のモジュールとの接続状況が格納される。実現されていない場合は、モジュール間接続部４０７によって指定された任意のモジュール間を自動接続するか、モジュール間接続表示・編集部４０５によって、ユーザがグラフィカルなサポートの元で、手動で接続を行う。自動接続については、入力されたモジュールの端子で同じ名前のものがあれば接続を行う、などの方法が考えられる。これらの自動、手動の接続支援で生成された接続関係も、モジュール間接続情報記憶部４１２に格納される。モジュール間接続情報記憶部４１２に格納された接続情報は、モジュール間接続表示・編集部４０５によって表示、確認することができる。このようにして構築された接続関係に対して、モジュール間型検証部４０８により、接続関係のある全ての端子同士が同じ型をもつか検証し、違反がある場合は警告メッセージを表示する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特表２００２−５２６９０８号公報
【特許文献２】特開２０００−２０７４３７号公報
【特許文献３】特開２００７−１０２２７１号公報
【特許文献４】特開２００８−９０６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
関連する回路設計支援システム４００は、端子間の接続の検証を行うに当たり、その検証の対象が、端子の型などの入力となる動作レベル記述から判断できるような種類のものに限られている。そのため、接続する端子の入出力タイミングの正しさなどの、意味的な検証ができない。
【００１６】
例えば、あるモジュールの出力端子が、他のモジュールの入力端子に接続されており、動作レベル記述が、実際に信号の出力動作が行われる前に、他のモジュールにて入力として使用されるようになっている場合を考える。このような場合は仕様として、想定する信号が入力として使われているとは考えにくく、基本的には異常な記述と考えるべきである。
【００１７】
ところが、入力端子と出力端子の型が一致している場合は、モジュール間型検証部によって接続の異常を検出することができない。全てのモジュールの動作合成が終了した後のサイクル精度レベル、ＲＴレベルのシミュレーションを行うことで、初めて検出することができる。だがシミュレーションの実行には多大な時間が必要とされるし、またシミュレーションの結果として異常が検出されたとしても、接続されている端子間の入出力のタイミングの問題であると結果を解析するだけでも多くの時間を要する。
【００１８】
入力端子と出力端子の型が一致していない場合は、モジュール間型検証部によって接続が異常であることを検出できる。しかし、モジュール間型検証部は型が一致しない旨のメッセージを出力するのみであり、このような入出力タイミングの問題については検証の対象外となるため、検出後の動作レベル記述の修正において、記述者が入出力のタイミングの異常に気がつかず型の調整のみを行う可能性が高い。
【００１９】
本発明の目的は、端子間の接続において、実際に信号の出力動作が行われる前に、他のモジュールにて入力として使用されるような入出力タイミングの違反を、シミュレーション実行前に検出することで、設計期間の短縮を行うことを目的とした回路設計支援システムを提供することにある。
【課題を解決するための手段】
【００２０】
上記の課題を解決するために、記憶装置に保持されている動作レベル記述を読み出して動作合成処理を実行し、その動作合成処理の結果である複数のモジュールを生成する動作合成部と、その複数のモジュールを接続したときの接続関係を示すモジュール間接続情報を生成するモジュール間接続部と、そのモジュール間接続情報に示されるその接続関係に基づいて、その複数のモジュール間の端子に違反が存在するか否かを検証するモジュール間型検証部と、そのモジュール間接続情報に示されるその接続関係に基づいて、その端子間において、入出力タイミング違反がないか検証するモジュール間タイミング検証部とを具備する回路設計支援システムを構成する。ここにおいて、そのモジュール間タイミング検証部は、その複数のモジュールのうちの特定モジュールの出力端子が、他のモジュールの入力端子に接続されており、その動作レベル記述が、実際に信号の出力動作が行われる前に、その他のモジュールに対して入力として使用されるような入出力タイミング違反が存在するか否かを検証する。
【発明の効果】
【００２１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、本発明による回路設計支援システムは、入出力タイミングの違反を検出する機構を持ち、検出した違反の内容を表示し、違反の内容と関連する動作レベル記述の該当部を明瞭に他の部位と区別表示する。また、入出力タイミングの違反を、シミュレーションを行う前に検出、対応する。これによって、動作レベル記述群に、入出力タイミングの違反が存在する場合、その検出と、違反部分の特定及び動作レベル記述の修正が容易になる。
【００２２】
また、入出力タイミングの違反を早期に検出し対策することで、シミュレーションにかかる時間、及びシミュレーションの結果を解析する工数を削減し、回路の設計期間を短縮することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、回路設計支援システムの構成を示すブロック図である。
【図２】図２は、回路設計支援システムの動作を示すフローチャートである。
【図３】図３は、名称がｍｏｄｕｌｅ１という名前のモジュールに関する動作レベル記述を示すリストである。
【図４】図４は、名称がｍｏｄｕｌｅ２という名前のモジュールに関する動作レベル記述を示すリストである。
【図５】図５は、名称がｍｏｄｕｌｅ３という名前のモジュールに関する動作レベル記述を示すリストである。
【図６】図６は、接続操作が終了した状態でのモジュール間接続表示・編集部の表示画面を例示する図である。
【図７】図７は、ｍｏｄｕｌｅ１、ｍｏｄｕｌｅ２、ｍｏｄｕｌｅ３に対して入出力タイミング検証を行った結果を示す図である。
【図８】図８は、接続違反表示部に表示される警告メッセージを例示する図である。
【図９】図９は、動作レベル記述表示部で違反箇所の区別表示がなされている様子を例示する図である。
【図１０】図１０は、関連する技術による回路設計支援システムを示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２５】
図１を参照すると、本実施形態の回路設計支援システム１は、入出力装置１００と、プログラム制御により動作するデータ処理装置１１０と、記憶装置１２０を備えている。入出力装置１００は、動作レベル記述表示部１０１と、モジュール間接続表示・編集部１０２と、タイミングチャート表示部１０３と、接続違反表示部１０４を含んでいる。データ処理装置１１０は、動作合成部１１１と、モジュール間接続部１１２と、モジュール間型検証部１１３と、モジュール間タイミング検証部１１４を含んでいる。記憶装置１２０は、動作レベル記述記憶部１２１と、端子情報記憶部１２２と、中間記述記憶部１２３と、モジュール間接続情報記憶部１２４と、ＦＳＭ（Ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ；有限状態機械）情報記憶部１２５と、対応関係記憶部１２６を含んでいる。データ処理装置１１０に設けられたそれぞれの機能ブロックは、概ね次のように動作する。
【００２６】
動作合成部１１１は、動作レベル記述記憶部１２１に記憶された回路の動作レベル記述に対して動作合成を行う。動作レベル記述は、動作レベル記述表示部１０１に表示される。動作合成部１１１によって生成される中間記述は、中間記述記憶部１２３に、端子情報は端子情報記憶部１２２に、状態遷移情報はＦＳＭ情報記憶部１２５記憶される。動作レベル記述と中間記述の対応情報は、対応関係記憶部１２６に記憶される。
【００２７】
モジュール間接続部１１２は、記憶装置１２０に記憶されたモジュール群に対して、モジュールの端子間の接続を行う。接続方法の一つとして、端子情報記憶部１２２に記憶された端子情報を元に、モジュール間接続表示・編集部１０２上で設計者の指定のあった複数のモジュールのうち、名称が同じ端子を自動で接続することが考えられる。また他の手法として、モジュール間接続表示・編集部１０２上で、設計者が端子毎に接続を指定することも考えられる。モジュール間接続部１１２で構築されたモジュール間、端子間の接続関係は、モジュール間接続情報記憶部１２４に記憶される。
【００２８】
モジュール間型検証部１１３は、モジュール間接続情報記憶部１２４に記憶された、接続関係のある端子間において、型の不一致などの違反がないか検証する。違反が検出された場合は違反情報を接続違反表示部１０４に表示する。同時に、動作レベル記述の違反に相当する部位を、中間記述記憶部１２３に記憶された中間記述や違反情報から、対応関係記憶部１２６を用いて抽出し、動作レベル記述表示部１０１で非違反部から区別表示する。
【００２９】
モジュール間タイミング検証部１１４は、モジュール間接続情報記憶部１２４に記憶された、接続関係のある端子間において、あるモジュールの出力端子が、他のモジュールの入力端子に接続されており、動作レベル記述が、実際に信号の出力動作が行われる前に、他のモジュールにて入力として使用されるような入出力タイミング違反がないか検証する。違反が検出された場合は違反情報を接続違反表示部１０４、及びタイミングチャート表示部１０３に表示する。同時に、動作レベル記述の違反に相当する部位を、中間記述記憶部１２３に記憶された中間記述や違反情報から、対応関係記憶部１２６を用いて抽出し、動作レベル記述表示部１０１で非違反部から区別表示する。これによって、入出力タイミングの違反の抽出と、関連部位の区別表示が可能となる。
【００３０】
図２は、本実施形態の回路設計支援システム１の動作を例示するフローチャートである。図２のフローチャートを参照して、本実施形態の全体の動作について詳細に説明する。まず設計者は、ステップＡ１において、入出力装置１００を用いて、入力となる動作レベル記述、および動作合成方法を記憶装置１２０に転送する。動作レベル記述は動作レベル記述記憶部１２１に記憶される。また、転送された動作レベル記述は動作レベル記述表示部１０１にも表示され、設計者は動作レベル記述表示部１０１を介して、転送された動作レベル記述の編集を行うことができる。
【００３１】
ステップＡ２において、記憶された動作レベル記述に対して、動作合成部１１１を用いて動作合成処理を実行する。合成の過程で生成される中間記述を中間記述記憶部１２３に記憶させる。この中間記述と、動作合成の入力となった動作レベル記述との対応関係が、対応関係記憶部１２６に記憶される。同時に、モジュールの端子情報が端子情報記憶部１２２に、状態遷移に関する情報がＦＳＭ情報記憶部１２５に格納される。
【００３２】
ステップＡ３において、動作レベル記述上では未接続のモジュールや端子がある場合は、設計者が、モジュール間接続部１１２によって、モジュール間の接続作業を行う。接続方法の一つとして、端子情報記憶部１２２に記憶された端子情報を元に、モジュール間接続表示・編集部１０２上で設計者の指定のあった複数のモジュールのうち、名称が同じ端子を自動で接続することがあげられる。また他の手法として、モジュール間接続表示・編集部１０２上で、設計者が接続を行う端子を明示的に指定し、端子毎に接続を行うことも考えられる。全てのモジュール間、端子間の接続関係は、モジュール間接続情報記憶部１２４に記憶される。
【００３３】
ステップＡ４において、接続の指定が終わると、自動あるいは手動で指定された各接続に対して、型、あるいは入出力タイミングによる接続違反の検出を行う。まずモジュール間型検証部１１３によって、モジュール間接続情報記憶部１２４に記憶された、接続関係のある端子間において、型の不一致などの違反がないか検証する。次に、モジュール間タイミング検証部１１４は、モジュール間接続情報記憶部１２４に記憶された、接続関係のある端子間において、あるモジュールの出力端子が、他のモジュールの入力端子に接続されており、動作レベル記述が、実際に信号の出力動作が行われる前に、他のモジュールにて入力として使用されるような入出力タイミング違反がないか検証する。違反が検出された場合は違反情報を接続違反表示部１０４に表示する。タイミング違反が検出された場合は同時に、タイミングチャート表示部１０３に表示する。
【００３４】
ステップＡ５において、接続の検証を実施した結果、何らかの違反が検出された場合は、接続違反表示部１０４やタイミングチャート表示部１０３に表示された違反情報を選択することで、動作レベル記述の違反に相当する部位を動作レベル記述表示部１０１において区別表示する。設計者はこの情報を元に、問題の解決を図る。違反部の区別表示は、中間記述記憶部１２３に記憶された中間記述や違反情報から、対応関係記憶部１２６を用いて違反該当部を抽出することで実現する。
【００３５】
このように、本実施形態の回路設計支援システム１では、入出力タイミングの違反を接続違反表示部１０４及びタイミングチャート表示部１０３を介して設計者に提示できる。また、これらの違反メッセージ等を選択することで、動作レベル記述の違反該当部を動作レベル記述表示部１０１上で区別表示することができる。これらの情報を元に、設計者は効率的に、入出力タイミングに関する不具合の改善を行うことができる。
【００３６】
以下に、具体的な記述例を用いて、本実施形態の回路設計支援システム１の動作を説明する。以下の説明においては、設計者が記述した動作レベル記述が、動作レベル記述記憶部１２１に記憶されているとする。動作レベル記述は、一般に、Ｃ言語や、Ｃ言語に端子やレジスタなどの部品や並列動作が記述できるようハードウェア向けの拡張を施した言語や、Ｃ＋＋言語や、ＳＹＳＴＥＭＣや、ＶＥＲＩＬＯＧ−ＨＤＬや、ＶＨＤＬなどが用いられる。これらの言語で記述された動作レベル記述が、予め動作レベル記述記憶部１２１に格納されている。
【００３７】
図３は、名称がｍｏｄｕｌｅ１という名前のモジュールに関する動作レベル記述３００の構成を例示するリストである。１サイクル目に信号ｓｉｇ１を出力する記述３０１が記載されている。４サイクル目に外部メモリｍｅｍに対して書き込みを行う記述３０２が記載されている。５サイクル目に信号ｓｉｇ３を参照する記述３０３が記載されている。６サイクル目に信号ｓｉｇ２を参照する記述３０４が記載されている。
【００３８】
図４は、名称がｍｏｄｕｌｅ２という名前のモジュールに関する動作レベル記述３０５の構成を理事するリストである。１サイクル目に信号ｓｉｇ１を参照する記述３０６が記載されている。４サイクル目に外部メモリｍｅｍを参照する記述３０７が記載されている。５サイクル目に信号ｓｉｇ２を出力する記述３０８が記載されている。
【００３９】
図５は、名称がｍｏｄｕｌｅ３という名前のモジュールに関する動作レベル記述３０９の構成を例示するリストである。２サイクル目に信号ｓｉｇ１を参照する記述３１０が記載されている。６サイクル目に信号ｓｉｇ３を出力する記述３１１が記載されている。
【００４０】
これらの動作レベル記述３００、動作レベル記述３０５、動作レベル記述３０９に対して、それぞれ動作合成を実行する。動作合成部１１１によって、動作レベル記述は、中間記述を経て、ＲＴレベル記述に変換される。端子情報は、端子情報記憶部１２２に格納される。中間記述は、中間記述記憶部１２３に格納される。状態遷移の情報は、ＦＳＭ情報記憶部１２５に格納される。動作レベル記述と中間記述の対応関係は、対応関係記憶部１２６に記憶される。設計者は、動作レベル記述を動作レベル記述表示部１０１で閲覧することができる。
【００４１】
次に、ｍｏｄｕｌｅ１、ｍｏｄｕｌｅ２、ｍｏｄｕｌｅ３の３モジュールの接続を行う。接続は、モジュール間接続部１１２を用いて、同じ名前の信号端子を接続するなどの方法で自動的に行うか、モジュール間接続表示・編集部１０２で、端子レベルで接続を編集するなどの手法で行われる。
【００４２】
図６は、接続操作が終了した状態のモジュール間接続表示・編集部１０２の表示画面を例示する図である。モジュール間接続表示・編集部１０２の枠３１２の中に、ｍｏｄｕｌｅ１に相当する矩形３１３、ｍｏｄｕｌｅ２に相当する矩形３１４、ｍｏｄｕｌｅ３に相当する矩形３１５、及びメモリｍｅｍに相当する矩形３１６が描画されている。また、ｍｏｄｕｌｅ１の信号ｓｉｇ１の端子とｍｏｄｕｌｅ２の信号ｓｉｇ１の端子とｍｏｄｕｌｅ３の信号ｓｉｇ１の端子が接続されている。ｍｏｄｕｌｅ１の信号ｓｉｇ２の端子とｍｏｄｕｌｅ２の信号ｓｉｇ２の端子が接続されている。ｍｏｄｕｌｅ３の信号ｓｉｇ１の端子とｍｏｄｕｌｅ３の信号ｓｉｇ３の端子が接続されている。ｍｏｄｕｌｅ１のメモリｍｅｍへのアクセス端子とｍｏｄｕｌｅ２のメモリｍｅｍへのアクセス端子が接続されている。これらの接続状態は、モジュール間接続情報記憶部１２４に記憶される。
【００４３】
接続操作が終了した後、設計者はこれらの接続関係に対して、モジュール間型検証部１１３を用いて、接続されている端子同士の型が一致しているか検証する。モジュール間接続情報記憶部１２４に記憶されたそれぞれの接続において、つながっている端子間の型の比較を行うことで、モジュール間型検証部１１３による検証が実施される。端子間の型に基づいた接続操作及び接続結果の確認は、以上で終了する。
【００４４】
ここで、ｍｏｄｕｌｅ１の動作レベル記述３００における信号ｓｉｇ１の出力記述３０１と、ｍｏｄｕｌｅ２の動作レベル記述３０５における信号ｓｉｇ１の入力記述３０６と、ｍｏｄｕｌｅ３の動作レベル記述３０９における信号ｓｉｇ１の入力記述３１０を考える。ｍｏｄｕｌｅ１の動作レベル記述３００における信号ｓｉｇ１の出力記述３０１は、回路始動直後の１クロック目で実行されている。また、ｍｏｄｕｌｅ３の動作レベル記述３０９における信号ｓｉｇ１の入力記述３１０は、２クロック目で実行されている。ｍｏｄｕｌｅ３の動作レベル記述３０９における信号ｓｉｇ１の入力記述３１０は、ｍｏｄｕｌｅ１の動作レベル記述３００における信号ｓｉｇ１の出力記述３０１の後のクロックサイクルで実行されている。そのため、ｍｏｄｕｌｅ３の入力動作時には、ｍｏｄｕｌｅ１の出力した値が正しく渡っている。
【００４５】
ところが、ｍｏｄｕｌｅ２の動作レベル記述３０５における信号ｓｉｇ１の入力記述３０６は、１クロック目で実行されており、ｍｏｄｕｌｅ１の動作レベル記述３００における信号ｓｉｇ１の出力記述３０１と同じクロックサイクルで実行されている。このため、ｍｏｄｕｌｅ２の入力動作時には、ｍｏｄｕｌｅ１の出力した値を正しく参照することができない可能性があり、結果として仕様上想定した動作をとることが困難と考えられ、入出力タイミングの違反である可能性が高い。
【００４６】
本実施形態の回路設計支援システム１では、モジュール間型検証部１１３を用いた型の検証を実施した後、モジュール間タイミング検証部１１４を用いて、ＦＳＭ情報記憶部１２５に記憶された各モジュールの状態遷移情報から、各クロックサイクルでの信号に対する入出力情報を抽出し、信号が出力される前に他のモジュールで参照されるなどの違反を検出することによって、入出力タイミングの検証を行う。結果はタイミングチャート表示部１０３に表示される。
【００４７】
図７は、ｍｏｄｕｌｅ１、ｍｏｄｕｌｅ２、ｍｏｄｕｌｅ３に対して検証を行った結果を示している。ｍｏｄｕｌｅ１の状態遷移図３１７、ｍｏｄｕｌｅ２の状態遷移図３１８、ｍｏｄｕｌｅ３の状態遷移図３１９が、それぞれのモジュールの入出力端子の接続状態と入出力タイミングにあわせて結線され表示されている。例えばｍｏｄｕｌｅ１の１サイクル目は、ｍｏｄｕｌｅ１の状態遷移図３１７中の第１状態（３２０）に相当し、ｍｏｄｕｌｅ２の１サイクル目はｍｏｄｕｌｅ２の状態遷移図３１８中の第１状態（３２１）に相当する。
【００４８】
ｍｏｄｕｌｅ１では、記述３０１で示されるように、１サイクル目に信号ｓｉｇ１の出力がなされており、ｍｏｄｕｌｅ２では、記述３０６で示されるように、１サイクル目に信号ｓｉｇ１の参照がなされているが、ｍｏｄｕｌｅ１の第１状態（３２０）とｍｏｄｕｌｅ２の第１状態（３２１）を結線する、信号ｓｉｇ１の入出力を示す線３２２がこの関係を表している。ｍｏｄｕｌｅ１の第１状態（３２０）と、ｍｏｄｕｌｅ２の第１状態（３２１）とは、同じクロックサイクルで動作するので、ｍｏｄｕｌｅ２ではｍｏｄｕｌｅ１が出力した信号ｓｉｇ１の値を正しく参照できる保証が無いため、これは違反の候補と判断され、信号ｓｉｇ１の入出力を示す線３２２が他の線と区別表示される。図７では太線で描画することで区別を表している。同時に接続違反表示部１０４に、警告メッセージを表示する。
【００４９】
図８は、警告メッセージの構成を例示する図である。ｍｏｄｕｌｅ３でもｍｏｄｕｌｅ２と同様、記述３１０で示されるように、２サイクル目に信号ｓｉｇ１の参照がなされており、ｍｏｄｕｌｅ１の第１状態（３２０）とｍｏｄｕｌｅ３の第２状態（３２４）を結線する、信号ｓｉｇ１の入出力を示す線３２５がこの関係を表している。この接続の場合、ｍｏｄｕｌｅ３での信号ｓｉｇ１の参照はｍｏｄｕｌｅ１での信号ｓｉｇ１の出力の後のクロックサイクルで行われるため、違反候補とみなされず、線３２５は区別表示されていない。
【００５０】
次に、ｍｏｄｕｌｅ１の４サイクル目は、ｍｏｄｕｌｅ１の状態遷移図３１７中の第４状態（３２６）に相当し、ｍｏｄｕｌｅ２の４サイクル目はｍｏｄｕｌｅ２の状態遷移図３１８中の第４状態（３２７）に相当する。ｍｏｄｕｌｅ１では記述３０２で示されるように、４サイクル目にメモリｍｅｍの書き込みがなされており、ｍｏｄｕｌｅ２では記述３０７で示されるように、４サイクル目にメモリｍｅｍの参照がなされているが、ｍｏｄｕｌｅ１の第４状態（３２６）とｍｏｄｕｌｅ２の第４状態（３２７）を結線する、メモリｍｅｍへの書き込みと参照を示す線３２８がこの関係を表している。ｍｏｄｕｌｅ１の第４状態（３２６）とｍｏｄｕｌｅ２の第４状態（３２７）は同じクロックサイクルで動作するので、ｍｏｄｕｌｅ２ではｍｏｄｕｌｅ１が書き込んだメモリの値を正しく参照できる保証が無いため、これは違反の候補と判断され、メモリｍｅｍへの書き込みと参照を示す線３２８が他の線と区別表示される。
【００５１】
また、ｍｏｄｕｌｅ３の６サイクル目は、ｍｏｄｕｌｅ３の状態遷移図３１９中の第６状態（３２９）に相当し、ｍｏｄｕｌｅ１の５サイクル目はｍｏｄｕｌｅ１の状態遷移図３１７中の第５状態（３３０）に相当する。ｍｏｄｕｌｅ３では記述３１１で示されるように、６サイクル目に信号ｓｉｇ３の出力がなされており、ｍｏｄｕｌｅ１では記述３０３で示されるように、５サイクル目に信号ｓｉｇ３の参照がなされているが、ｍｏｄｕｌｅ３の第６状態（３２９）とｍｏｄｕｌｅ１の第５状態（３３０）を結線する、信号ｓｉｇ３の入出力を示す線３３１がこの関係を表している。ｍｏｄｕｌｅ３の第６状態（３２９）より、ｍｏｄｕｌｅ１の第５状態（３３０）は早いクロックサイクルで動作するので、ｍｏｄｕｌｅ１ではｍｏｄｕｌｅ３が出力した信号ｓｉｇ３の値を正しく参照できる保証が無いため、これは違反の候補と判断され、信号ｓｉｇ３の入出力を示す線３３１が他の線と区別表示される。
【００５２】
ここで、設計者がタイミングチャート表示部１０３の各部位を選択することで、選択された部位に相当する中間記述情報から、対応関係記憶部１２６に記憶された動作レベル記述との関係を元に動作レベル記述の関連部位を抽出し、動作レベル記述表示部１０１で区別表示を行う。
【００５３】
図９は、動作レベル記述表示部で違反箇所の区別表示がなされている様子を例示する図である。例えば、上述の実施形態において、違反候補とみなされている、ｍｏｄｕｌｅ１の第１状態（３２０）とｍｏｄｕｌｅ２の第１状態（３２１）を結線している信号ｓｉｇ１の入出力を示す線３２２を特定する。
【００５４】
信号ｓｉｇ１の入出力を示す線３２２について、信号ｓｉｇ１を出力しているｍｏｄｕｌｅ１の第１状態（３２０）を選択すると、ｍｏｄｕｌｅ１の動作レベル記述３００の第１状態に相当する全ての行３３２が区別表示される。信号ｓｉｇ１の入出力を示す線３２２について、信号ｓｉｇ１を参照しているｍｏｄｕｌｅ２の第１状態（３２１）を選択すると、ｍｏｄｕｌｅ２の動作レベル記述３０５の第１状態に相当する全ての行３３３が区別表示される。また、信号ｓｉｇ１の入出力を示す線３２２を選択すると、ｍｏｄｕｌｅ１の動作レベル記述３００の第１状態内での信号ｓｉｇ１の出力記述３３４と、ｍｏｄｕｌｅ２の動作レベル記述３０５の第１状態内での信号ｓｉｇ１の参照記述３３５とが区別表示される。
【００５５】
更に、信号ｓｉｇ１の入出力を示す線３２２に対して、違反の可能性が無い入出力関係の候補を表示する操作を実行すると、その候補の一つとしてタイミングチャート表示部１０３上で、ｍｏｄｕｌｅ２の第２状態（３２３）が区別表示され、同時にｍｏｄｕｌｅ２の動作レベル記述３０５の第２状態に相当する全ての行３３６が区別表示される。
【００５６】
更に、接続違反表示部１０４に表示される違反メッセージの状態名、信号名などを選択することで、タイミングチャート表示部１０３と同様、動作レベル記述の区別表示を行うことができる。
【００５７】
このように本システムにおいては、複数のモジュールの接続が行われる記述がある場合、その接続の入出力のタイミング上での妥当性を検証し、問題があれば動作レベル記述の関連箇所を区別表示することができるため、違反の発見と対策の作業が容易となる。
【００５８】
以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００５９】
１…回路設計支援システム
１００…入出力装置
１０１…動作レベル記述表示部
１０２…モジュール間接続表示・編集部
１０３…タイミングチャート表示部
１０４…接続違反表示部
１１０…データ処理装置
１１１…動作合成部
１１２…モジュール間接続部
１１３…モジュール間型検証部
１１４…モジュール間タイミング検証部
１２０…記憶装置
１２１…動作レベル記述記憶部
１２２…端子情報記憶部
１２３…中間記述記憶部
１２４…モジュール間接続情報記憶部
１２５…ＦＳＭ情報記憶部
１２６…対応関係記憶部
３００…動作レベル記述
３０１…記述
３０２…記述
３０３…記述
３０４…記述
３０５…記述
３０６…記述
３０７…記述
３０８…記述
３０９…記述
３１０…記述
３１１…記述
３１２…枠
３１３…矩形
３１４…矩形
３１５…矩形
３１６…矩形
３１７…状態遷移図
３１８…状態遷移図
３１９…状態遷移図
３２０…第１状態
３２１…第１状態
３２２…線
３２３…第２状態
３２４…第２状態
３２５…線
３２６…第４状態
３２７…第４状態
３２８…線
３２９…第６状態
３３０…第５状態
３３１…線
３３２…行
３３３…行
３３４…出力記述
３３５…参照記述
３３６…行
ｍｅｍ…メモリ
ｓｉｇ１…信号
ｓｉｇ２…信号
ｓｉｇ３…信号
４００…回路設計支援システム
４０１…入出力装置
４０２…データ処理装置
４０３…記憶装置
４０４…動作レベル記述表示部
４０５…モジュール間接続表示・編集部
４０６…動作合成部
４０７…モジュール間接続部
４０８…モジュール間型検証部
４０９…動作レベル記述記憶部
４１０…端子情報記憶部
４１１…中間記述記憶部
４１２…モジュール間接続情報記憶部
【図１】
2010205073.tif 000003
【図２】
2010205073.tif 000004
【図３】
2010205073.tif 000005
【図４】
2010205073.tif 000006
【図５】
2010205073.tif 000007
【図６】
2010205073.tif 000008
【図７】
2010205073.tif 000009
【図８】
2010205073.tif 000010
【図９】
2010205073.tif 000011
【図１０】
2010205073.tif 000012