(57)【特許請求の範囲】
【請求項１】
回路モジュールのインタフェース定義記述が記憶されたコンピュータ読取り可能な記憶媒体であって、
前記インタフェース定義記述は、前記回路モジュールの各入出力端子が特定の時刻に取りうる信号値の組合せを定義するものであって第１の記憶領域に記憶される第１の記号と、前記第１の記号及び前記信号値の組合せの０回以上無限回までの繰返しを表現する記号、前記信号値の発生または非発生を表現する記号、複数種類の前記第１の記号の組合せ候補を表現する記号の少なくとも何れかを含み、前記回路モジュールの機能に対応する前記第１の記号の時系列の組合せを定義する信号系列を定義するものであって第２の記憶領域に記憶される第２の記号によって記述され、
システムのインタフェース記述解析手段が、前記第１及び第２の記号を読み込み、前記第１の記号から前記回路モジュールの各入出力端子が特定の時刻に取りうる信号値の組合せを特定し、前記第２の記号が前記信号値の組合せの０回以上無限回までの繰返しを表現する記号を含む場合には該記号を前記信号値の組合せの０回以上無限回までの繰返しと判定し、前記第２の記号が前記信号値の発生または非発生を表現する記号を含む場合には該記号を前記信号値の発生または非発生と判定し、前記第２の記号が前記複数種類の前記第１の記号の組合せ候補を表現する記号を含む場合には該記号を前記複数種類の前記第１の記号の組合せ候補の何れか１つと判定することにより、前記第２の記号から前記回路モジュールの機能に対応する前記特定された信号値の組合せの時系列の組合せを定義する信号系列を特定し、
前記システムのインタフェース状態生成手段が、前記特定された信号系列から前記回路モジュールの機能に対応する信号系列を表現する状態遷移グラフを作成するのに用いられることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項２】
請求項１に記載のコンピュータ読取り可能な記憶媒体において、
前記システムは、到達ステップ計算手段及び到達期間比較手段をさらに有し、
前記インタフェース記述解析手段が、第１の回路モジュールの第１のインタフェース定義記述及び第２の回路モジュールの第２のインタフェース定義記述を記述する第１及び第２の記号を前記記憶媒体から読み込み、前記第１の記号から前記第１及び第２の回路モジュールの各入出力端子が特定の時刻に取りうる第１及び第２の信号値の組合せを特定し、前記第２の記号が前記信号値の組合せの０回以上無限回までの繰返しを表現する記号を含む場合には該記号を前記第１及び第２の信号値の組合せの０回以上無限回までの繰返しと判定し、前記第２の記号が前記信号値の発生または非発生を表現する記号を含む場合には該記号を前記信号値の発生または非発生と判定し、前記第２の記号が前記複数種類の前記第１の記号の組合せ候補を表現する記号を含む場合には該記号を前記複数種類の前記第１の記号の組合せ候補の何れか１つと判定することにより、前記第２の記号から前記第１及び第２の回路モジュールの機能に対応する前記特定された第１及び第２の信号値の組合せの時系列の組合せを定義する第１及び第２の信号系列を特定し、
前記インタフェース状態生成手段が、前記特定された第１及び第２の信号系列から前記第１及び第２の回路モジュールの機能に対応する第１及び第２の信号系列を表現する第１及び第２の状態遷移グラフを作成し、
前記到達ステップ計算手段が、前記第１及び第２の状態遷移グラフを用いて第１及び第２の到達ステップを計算し、
前記到達期間比較手段が、前記第１及び第２の到達ステップを比較することにより前記第１及び第２の回路モジュールの接続の検証を実行するのに用いられることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項３】
請求項２に記載のコンピュータ読取り可憶な記憶媒体において、
前記到達期間比較手段は、前記第１及び第２の回路モジュールを接続する接続回路における入力側と出力側の前記到達ステップの範囲を比較し、双方の到達ステップの範囲の重なりが無く、かつ前記出力側の到達ステップの範囲よりも入力側の到達ステップの範囲の方が大きい場合には、前記接続回路にデータバッファを設けることにより前記第１及び第２の回路モジュールの接続が可能と判定するのに用いられることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項４】
請求項１に記載のコンピュータ読取り可能な記憶媒体において、
前記システムはさらに、状態トレース手段及び信号波形出力手段を有し、
前記状態トレース手段が、指定される機能に対応する前記状態遷移グラフをトレースし、
前記信号波形出力手段が、前記トレースされた状態遷移グラフに対応する信号変化を出力するのに用いられることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項５】
請求項１乃至４の何れかに記載のコンピュータ読取り可能な記憶媒体において、
前記回路モジュールの構造または動作を示すハードウエア記述情報を更に具備して成ることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項６】
請求項１乃至５の何れかに記載のコンピュータ読取り可能な記憶媒体において、
前記インタフェース定義記述は、前記入出力端子の定義を更に含み、前記入出力端子の定義の各々はビット幅および入力／出力の別を示す識別子を含むことを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項７】
請求項１乃至６の何れかに記載のコンピュータ読取り可能な記憶媒体において、
前記第２の記号は、複数の前記第１の記号によって定義される信号値の組合せを１単位として表現する記号を含み、
前記インタフェース記述解析手段は、該記号を前記複数の第１の記号によって定義される信号値の組合せが１単位であると判定することを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項８】
請求項１乃至７の何れかに記載のコンピュータ読取り可能な記憶媒体において、
前記インタフェース定義記述は、前記第２の記号において、前記第１の記号または前記第１の記号の組が所定の範囲で繰り返されることを規定する条件をさらに含むことを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項９】
請求項１乃至８の何れかに記載のコンピュータ読取り可能な記憶媒体において、
前記第２の記号は、クロック信号の周期の間隔に前記第１の記号を時系列に並べて記述されることを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項１０】
記憶媒体に格納される回路モジュールのインタフェース定義記述を用いてシステムで実行される前記回路モジュールの接続検証方法であって、
前記インタフェース定義記述は、前記回路モジュールの各入出力端子が特定の時刻に取りうる信号値の組合せを定義するものであって第１の記憶領域に記憶される第１の記号と、前記第１の記号及び前記信号値の組合せの０回以上無限回までの繰返しを表現する記号、前記信号値の発生または非発生を表現する記号、複数種類の前記第１の記号の組合せ候補を表現する記号の少なくとも何れかを含み、前記回路モジュールの機能に対応する前記第１の記号の時系列の組合せを定義する信号系列を定義するものであって第２の記憶領域に記憶される第２の記号によって記述され、
前記システムは、インタフェース記述解析手段と、インタフェース状態生成手段と、到達ステップ計算手段と、到達期間比較手段と、を有し、
前記インタフェース記述解析手段は、第１の回路モジュールの第１の前記インタフェース定義記述及び第２の回路モジュールの第２の前記インタフェース定義記述を記述する第１及び第２の記号を前記記憶媒体から読み込み、前記第１の記号から前記第１及び第２の回路モジュールの各入出力端子が特定の時刻に取りうる第１及び第２の信号値の組合せを特定し、前記第２の記号が前記第１及び第２の信号値の組合せの０回以上無限回までの繰返しを表現する記号を含む場合には該記号を前記第１及び第２の信号値の組合せの０回以上無限回までの繰返しと判定し、前記第２の記号が前記第１及び第２の信号値の発生または非発生を表現する記号を含む場合には該記号を前記第１及び第２の信号値の発生または非発生と判定し、前記第２の記号が前記複数種類の前記第１の記号の組合せ候補を表現する記号を含む場合には該記号を前記複数種類の前記第１の記号の組合せ候補の何れか１つと判定することにより、前記第２の記号から前記第１及び第２の回路モジュールの機能に対応する前記特定された第１及び第２の信号値の組合せの時系列の組合せを定義する第１及び第２の信号系列を特定し、
前記インタフェース状態生成手段は、前記特定された第１及び第２の信号系列から前記第１及び第２の回路モジュールの機能に対応する第１及び第２信号系列を表現する第１及び第２の状態遷移グラフを作成し、
前記到達ステップ計算手段は、前記第１及び第２の状態遷移グラフから第１及び第２の到達ステップを計算し、
前記到達期間比較手段は、前記第１及び第２の到達ステップを比較することにより、前記第１及び第２の回路モジュールの接続可否を判定することを特徴とする接続検証方法。
【請求項１１】
記憶媒体に格納される回路モジュールのインタフェース定義記述を用いてシステムで実行される信号パターン生成方法であって、
前記インタフェース定義記述は、前記回路モジュールの各入出力端子が特定の時刻に取りうる信号値の組合せを定義するものであって第１の記憶領域に記憶される第１の記号と、前記第１の記号及び前記信号値の組合せの０回以上無限回までの繰返しを表現する記号、前記信号値の発生または非発生を表現する記号、複数種類の前記第１の記号の組合せ候補を表現する記号の少なくとも何れかを含み、前記回路モジュールの機能に対応する前記第１の記号の時系列の組合せを定義する信号系列を定義するものであって第２の記憶領域に記憶される第２の記号によって記述され、
前記システムは、インタフェース記述解析手段と、インタフェース状態生成手段と、状態トレース手段と、信号波形出力手段と、を有し、
前記インタフェース記述解析手段は、前記第１及び第２の記号を前記記憶媒体から読み込み、前記第１の記号から前記回路モジュールの各入出力端子が特定の時刻に取りうる信号値の組合せを特定し、前記第２の記号が前記信号値の組合せの０回以上無限回までの繰返しを表現する記号を含む場合には該記号を前記信号値の組合せの０回以上無限回までの繰返しと判定し、前記第２の記号が前記信号値の発生または非発生を表現する記号を含む場合には該記号を前記信号値の発生または非発生と判定し、前記第２の記号が前記複数種類の前記第１の記号の組合せ候補を表現する記号を含む場合には該記号を前記複数種類の前記第１の記号の組合せ候補の何れか１つと判定することにより、前記第２の記号から前記回路モジュールの機能に対応する前記特定された信号値の組合せの時系列の組合せを定義する信号系列を特定し、
前記インタフェース状態生成手段は、前記特定された信号系列から前記回路モジュールの機能に対応する信号系列を表現する状態遷移グラフを作成し、
前記状態トレース手段は、指定される機能に対応する前記状態遷移グラフをトレースし、
前記信号波形出力手段は、前記トレースされた状態遷移グラフに対応する信号変化を出力することを特徴とする信号パターン生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の回路モジュールを接続して構成する集積回路システム、あるいはディジタルシステムにおいて、回路モジュールのインタフェース部分の仕様を正しく定義し、それを利用して回路モジュール間の接続を容易化する技術に関する。
【０００２】
【従来の技術】
ＬＳＩの集積度の向上により、チップ上にシステムのほとんどを搭載するシステムＬＳＩが実現される。このような大規模なシステムＬＳＩを設計する場合、既設計の回路モジュールを組み合わせて設計することにより、設計のためのコストと工数を削減することになる。このような設計手法において最も重要な課題の一つは、どのようにして既設計の回路モジュールを再利用可能にするかという事である。この課題に対して、多くの方法が提案されその一部は実現されている。例えば、既設計の論理回路を論理合成可能なハードウェア記述言語で記述する事により、ＬＳＩ製造プロセスに依存しない回路モジュールを実現できる。また、回路モジュールを接続する標準のインタフェース規格を作る試みがバーチャル・ソケット・インタフェース・アライアンス（ＶＳＩＡ）という標準化団体によりなされている。
【０００３】
一方、既設計の論理回路間の接続を容易にする、すなわち、論理回路間の接続回路を自動合成する試みが例えば、Ｒｏｂｅｒｔｏ  Ｐａｓｓｅｒｏｎｅら、第３５回デザインオートメーション・カンファレンス、「Ａｕｔｏｍａｔｉｃ  Ｓｙｎｔｈｅｓｉｓ  ｏｆ  Ｉｎｔｅｒｆａｃｅｓ  ｂｅｔｗｅｅｎ  Ｉｎｃｏｍｐａｔｉｂｌｅ  Ｐｒｏｔｏｃｏｌｓ」、ｐｐ．８−１３．や、Ａｎｄｒｅｗ  Ｓｅａｗｒｉｇｈｔら、第２９回デザインオートメーション・カンファレンス、「Ｓｙｎｔｈｅｓｉｓ  ｆｒｏｍ  Ｐｒｏｄｕｃｔｉｏｎ−Ｂａｓｅｄ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ」ｐｐ．１９４−１９９．に述べられている。
【０００４】
これらの提案では論理回路のインタフェースの動作を特別な言語で記述し、その記述から接続回路を自動的に合成する。インタフェース自体を記述する試みは例えば、Ｊ．Ａ．Ｎｅｓｔｏｒら、１９８６年のインターナショナル・カンファレンス・オン・コンピュータ・エイデッド・デザイン「Ｂｅｈａｖｉｏｒａｌ  Ｓｙｎｔｈｅｓｙｓ  ｗｉｔｈ  Ｉｎｔｅｒｆａｃｅｓ」、ｐｐ．１１２−１１５．や、Ｇａｅｔａｎｏ  Ｂｏｒｒｉｅｌｌｏら、１９８７年のインターナショナル・カンファレンス・オン・コンピュータ・エイデッド・デザイン「Ｓｙｎｔｈｅｓｙｓ  ａｎｄ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｏｆ  Ｉｎｔａｒｆａｃｅ  Ｔｒａｎｓｄｕｃｅｒ  Ｌｏｇｉｃ」、ｐｐ．２７４−２７７．等がある。
【０００５】
【発明が解決しようとする課題】
既設計の回路モジュールを再利用しようとした場合、従来、設計者が参照できたのは、その回路モジュールに関するマニュアルとその回路モジュールのハードウェア記述のみであった。マニュアルにはその回路モジュールの仕様、すなわち機能とタイミングチャート等により説明した動作が記載されていた。しかし、図面として記載された動作はある機能を利用する場合のインタフェース信号の挙動の一例を示しているに過ぎず、すべての動作を網羅的に表現できていなかった。また、図面にのみ表現されていたため、再利用する回路モジュールを接続する回路を検証する場合は、その図面に記載された波形が再現されているかどうかを設計者が確認する必要があった。
【０００６】
この検証作業は人手により行っていたため、多くの設計工数が必要であり、設計者が図面に記載されたタイミングチャートを間違って理解していると、正しい回路を設計できないという問題があった。そのため、設計者はマニュアルを正確に理解し、場合によってはその動作を把握するためにハードウェア記述を解析する必要があった。
【０００７】
【課題を解決するための手段】
従来からある回路モジュールの構造、動作記述をコンピュータ読取り可能な記憶媒体に記憶するのに加えて、回路モジュールの各機能に関係する各入出力端子が特定の時刻に取りうる信号値の組み合わせを識別名で区別し、前記回路記述情報の各機能のインタフェースを前記識別名の時系列の組み合わせで表したインタフェース情報を同時に記録する。
【０００８】
また、二つの回路モジュールに関して、前記コンピュータ読み取り可能な記憶媒体に記憶された情報を用いることにより、所定のイベントの発生する時刻のずれを比較することにより、二つの回路モジュールが接続可能であるか否かを検証する。
【０００９】
また、前記コンピュータ読み取り可能な記憶媒体に記憶された情報を用い、その回路モジュールの入出力端子に現れる信号の時系列変化を追うことにより、信号パタンを合成する。
【００１０】
【発明の実施の形態】
以下に本発明の実施例を説明する。
【００１１】
図１は回路モジュールのインタフェース仕様定義を記憶媒体上に記憶する本発明の概要を説明する図である。図１において入出力信号１０２を持つ論理回路１０１を考える。通常、この論理回路の構造、あるいは動作はハードウェア記述言語を用いて記述されそのデータ（１０４）はコンピュータ読み取り可能な記憶媒体１０３に格納され、保管あるいは設計データとして利用される。あるいはまた電子記憶媒体自体が商品として販売される。これに対して図１では図２に示すインタフェース定義記述２１３をデータ（１０５）として論理回路構造あるいは動作を記述したデータ１０４とともにコンピュータ読み取り可能な記憶媒体１０３に格納する。
【００１２】
図２は図１におけるインタフェース定義記述の詳細を説明する図である。図２において、論理回路２０１は２０２に示す複数の入出力信号を持ち、２０３に示す複数の機能（例えば２０４〜２１０）を持つ。これらの複数の機能は、具体的には、入出力インタフェース信号２０２を通して、２１１に示すような信号系列として利用される。
【００１３】
論理回路２０１の機能２０３を２１３に示す情報により表現する。まず、論理回路２０１が持つ入出力信号インタフェース２０２に関する定義情報２１４を持つ。この定義情報は各端子のビット幅、入出力の区別等を表す。次に信号値の定義情報２１５を持つ。信号値定義情報では、これらの信号の取り得る値の組み合わせを列挙し、それらの各々に記号を設ける。同期型論理回路では２１１に示すようにクロック信号ｃｌｋの１周期に合わせて他の信号も変化する。そして、その１周期分の信号の組み合わせに記号を定義することができる。例えば、２１２の信号の組み合わせにはＲＤＢＨＷという記号を定義する。次の定義情報は機能定義情報２１６である。機能定義情報は論理回路２０１の持つ機能２０４〜２１０の各々に関してその機能に関する信号系列を前記信号値定義情報２１５で定義した記号の列により定義する。例えば、２１１に示す信号系列は「ＮＯＰ、ＮＯＰ、ＲＤＢＨＷ、ＲＤＢＨＷ、ＲＤＢＨＷ、ＲＤＢＨ、ＮＯＰ」という系列で表現できる。実際には一つの機能に対応する信号系列は複数存在する場合もあるので、ある機能は複数の記号列の集合として定義される。そして、この記号列に対して、機能を総称する名称を定義する。機能を表現する信号系列は、その機能の動作として可能性のあるすべての信号系列を過不足無く並べる。例えば、２１１に示す系列の最初のＮＯＰと最後のＮＯＰはあっても無くても機能として不足が無い場合は、２１１の機能は「ＲＤＢＨＷ、ＲＤＢＨＷ、ＲＤＢＨＷ、ＲＤＢＨ」と定義する。最後の定義情報は統括情報定義情報２１７である。この情報は２１６で定義した機能定義情報間の相互関係の定義であり、例えば、論理回路２０１を使用するにあたり最初に必ず行わなくてはならない機能や連続して使用することができない機能等を機能定義情報で定義した名称を用いて定義する。
【００１４】
以上の２１４〜２１７の定義、すなわち、端子定義情報、信号値定義情報、機能定義情報、統括情報定義情報により、論理回路の機能とその機能に対応する入出力インタフェース信号の信号系列の対応関係を表現する。なお、この表現を以下ではインタフェース定義記述と呼ぶ。
【００１５】
図３は図１および図２で説明したコンピュータ読み取り可能な記憶媒体に格納するインタフェース定義記述データ２１３の電子記憶媒体中でのデータ構造を説明する図である。
【００１６】
まず、記述の対象となるインタフェースの名称３０１が格納される。次にインタフェースの持つ複数の端子に関して端子名称、信号幅（信号線本数）、入力または出力等の信号属性の３種類の情報を表すデータを組にして端子の数だけ格納し、最後に終端記号を表すデータを格納する。次が信号値定義情報を表すデータ３０３で、３０２で記述した端子が取り得る論理値（０、１、不定等）の組合せと、その組合せに対する定義名称のデータを組にして表す。図３の例では、定義名称として「信号値定義名称」と「省略形名」の二つを持つ。信号値定義名称は意味のある単語やその羅列で表現し、省略形名は１〜２文字程度の短い名称とする。論理値は３０２で記述した端子名称の数だけ列挙する。この信号値定義名も全てのデータの最後に終端記号を列挙したデータを格納する。
【００１７】
次は機能定義情報３０４で機能定義名称と、その機能に対応する信号系列を３０３に格納した信号値定義名、あるいはその省略形名を用いて表す。また、必要に応じて同じ信号値定義名の繰り返しやどちらか一方といった選択等を表現する記号を格納する。これらは、「信号、記号名」に格納する。ここで使用する記号名には例えば以下の記号を用いる。
【００１８】
（１）“＊”  直前の信号値定義名の０個以上、無限回の繰り返しを意味する記号。たとえば“Ａ  Ｂ  ＊  Ｃ”と格納した場合はＡ  Ｃ，Ａ  Ｂ  Ｃ，Ａ  ＢＢ  Ｃ，Ａ  Ｂ  Ｂ  Ｂ  Ｃ等のすべてを表現する。
【００１９】
（２）“（”、“）”  数学の表記と同様に“（”と“）”にはさまれた信号値定義名の列を一まとめに扱う。例えば“Ａ（Ｂ  Ｃ）＊”と格納した場合はＡ，Ａ  Ｂ  Ｃ，Ａ  Ｂ  Ｃ  Ｂ  Ｃ等を表現する。
【００２０】
（３）“＜”、“＞”  “＜”と“＞”にはさまれた信号値定義名の列があるかあるいはまったく無い場合を表現する。例えば、“Ａ  ＜Ｂ＞  Ｃ”と格納した場合はＡ  Ｃ、Ａ  Ｂ  Ｃを表現する。
【００２１】
（４）“［”、“｜”、“］”  “［”と“］”にはさまれた信号値定義名の列で、“｜”により区切られた複数の列のうちのいずれかに一致する列を表現する。例えば“Ａ［Ｂ｜Ｃ］Ｄ”と格納した場合はＡ  Ｂ  Ｄ、Ａ  Ｃ  Ｄを表現する。
【００２２】
定義する機能は対象とする論理回路の持つ機能、例えば「データ読み出し」「データ書き込み」などの機能に関してのインタフェース信号における信号変化を過不足無く表現する。定義する信号系列の長さは機能毎に異なるため、定義の最後には終端記号を格納する。
【００２３】
最後の３０５は統括情報定義情報で、３０４で定義した機能に関してそれらの機能間の可能な並びを３０４で定義した機能定義名と３０５で使用したのと同じ記号を用いて表し、それを格納する。このデータも可変長データなので、データの最後には終端記号を格納する。統括情報定義情報は、例えば、回路の電源投入時に1回だけ実行する機能Ａとその他の機能Ｂ，Ｃがある場合には統括情報定義は“Ａ［Ｂ｜Ｃ］＊”と格納する。あるいは機能Ａと機能Ｂとの間に実行のための制限が存在する場合、機能Ａの後にはからなず機能Ｃの後機能Ｂが続く場合は“Ａ  Ｃ  Ｂ”という列を格納する。
【００２４】
図３のコンピュータ読み取り可能な記憶媒体に格納するデータ構造とこのデータから、コンピュータの処理により容易に以下の事を実現できる。
【００２５】
（１）このデータ構造から、データ構造が表現するインタフェースを構成する信号が取りうる任意の信号系列を発生する事ができる。これは、コンピュータを用いて論理シミュレーションを実施する際のテストパタン、あるいは論理シミュレーション結果の正しさの確認、さらには、任意のテストパタンにより論理シミュレーションを行った際にどのような機能の動作を再現したかを確認する事が可能になる。後にこれを実現する実施例を図１０を用いて説明する。
【００２６】
（２）こののデータ構造から、二つの論理回路を接続する接続回路を実現することが可能であるかどうかを判定できる。後にこれを実現する実施例を図４を用いて説明する。
【００２７】
（３）このデータ構造から、二つの論理回路間を接続する接続回路を自動的に生成する事が可能になる。
【００２８】
図１１は本発明の実施例２を説明する図である。この例では論理回路１１０１が複数にグループ分けされた入出力インタフェース（１１０２〜１１０４）を持つ。そしてそれに対応して、コンピュータ読み取り可能な記憶媒体１１０５には、論理回路構造、動作記述１１０６とともにそれぞれのインタフェースに対応したインタフェース定義記述１１０７〜１１０９を持つ。
【００２９】
図１２を用いて、拡張されたデータ構造を説明する。図１２は図３のデータ構造を拡張したものである。図中で３０１〜３０３と３０５は図３におけるデータ構造と同じである。
【００３０】
１２０１は拡張された機能定義情報である。３０４と同じ構造であるが、データ構成要素である１２０２には信号名、記号名の他、条件名、手続き名が格納される。
【００３１】
１２０３は定数定義情報である。定数定義情報は、定数定義名と定数型識別子と定数値からなる。ここで定数型識別子として、整数を現すＩ型と時間を現すＴ型がある。
【００３２】
１２０４は変数定義情報である。変数定義情報は、変数定義名と変数型識別子と変数初期値からなる。この変数型識別子は定数型識別子と同じである。
【００３３】
１２０５は条件定義情報である。条件定義情報は条件定義名と変数名、定数名、演算記号名、あるいは演算名からなる構成要素１２０６と終端記号からなる。
【００３４】
１２０７は手続き定義情報である。手続き定義情報は手続き定義名と変数名、定数名、演算記号名、あるいは演算名からなる構成要素１２０８と終端記号からなる。
【００３５】
上記の拡張したデータ構造は、例えば、
定数定義として、
定数名      型   定数値
ＵＰＰＥＲ  Ｉ   ３
変数定義として、
変数名      型   初期値
ｃｎｔ      Ｉ    ０
機能定義として、
機能定義名  １２０２
Ｘ           Ａ       （   ｐ   Ｂ   ｔ  ）＊   “終端記号”
ここで、Ｘは機能定義名、Ａ，Ｂは信号名、ｐは条件定義名、ｔは手続き定義名とする。
【００３６】
条件定義として、
条件定義名   １２０６
ｐ           ｃｎｔ   ＜   ＵＰＰＥＲ  “終端記号”
手続き定義として、
手続き定義名   １２０８
ｔ             ｃｎｔ  ＝   ｃｎｔ ＋  １   “終端記号”
と格納したデータ構造は、機能Ｘとして、Ａの後、Ｂが高々3つしか続かない信号系列、すなわち、Ａ 、Ａ  Ｂ、Ａ  Ｂ  Ｂ、Ａ  Ｂ  Ｂ  Ｂを表現する。
【００３７】
別の例としては、
変数定義として、
変数名     型    初期値
ｔｘ       Ｔ     ０
機能定義として、
機能定義名  １２０２
Ｙ          Ａ  ｔ２      Ｂ  ＊  ｐ２
条件定義として、
条件定義名  １２０６
ｐ２        （  ｎｏｗ  −  ｔｘ  ）  ＜  １００  ｍｓ
手続き定義として、
手続き定義名  １２０８
ｔ２           ｔｘ  ＝  ｎｏｗ
と格納したデータ構造は、機能Ｙとして、Ａの後、Ｂを１００ ｍｓ 以内の期間繰り返す信号系列を意味する。ここで、“ｎｏｗ”は現在の時刻、“ｍｓ”は時間の単位である。
【００３８】
図４は本発明によるインタフェース定義記述を利用した二つの論理回路間の接続可能性を判定するシステムの構成図である。このシステムは、接続すべき二つの論理回路のインタフェース定義記述ＩＦ−Ａ（４０１）とＩＦ−Ｂ（４０４)を入力し、更に、インタフェース定義記述の中で定義されている機能同士がどのように対応するかを記述したデータファイル４０７を入力し、二つのインタフェース間を接続するための論理回路を構成することが可能であるかどうかを判定する。インタフェース間を接続するための論理回路とは例えば図５において、インタフェースＩＦ−Ａを持つ論理回路５０１とインタフェースＩＦ−Ｂを持つ論理回路５０３を接続する接続回路５０２のような回路を指す。
【００３９】
図４の説明の前に、図６〜図９を用いてインタフェース定義記述を解析する事により得られるデータの到達ステップの算出方法を説明する。データの到達ステップとはインタフェースのある機能に関して、処理が開始してから何サイクル目に有効なデータが送信、あるいは受信されるかを表す値である。
【００４０】
図６はあるインタフェースにおける１つの機能を示すタイミングチャートである。このインタフェースにおける信号はクロック信号ｃｌｋの立上りに同期している。６０１と６０２の２つのサイクルは何もしていないサイクルで、ＮＯＰという信号値定義名が付いている。ＲＥＡＤという機能６０６は６０３からはじまり６０５で終了する。開始サイクル６０３からイネーブル信号ｅｎ、ウエイト信号ｗａｉｔ、アドレス値ａｄｒがアサートされる。そしてサイクル６０５ではウエイト信号ｗａｉｔがネゲートされ、データ線ｄａｔａに有効なデータ６０７が現れる。イネーブル信号ｅｎがアサートされ、ウエイト信号ｗａｉｔもアサートされている状態（６０３、６０４）をＲＤＷという信号値定義名、ウエイト信号ｗａｉｔがネゲートされ、データ線ｄａｔａに有効なデータが現れている状態６０５をＲＤという信号値定義名とすると、ここで表現されているＲＥＡＤという機能は「ＲＤＷ  ＲＤＷ  ＲＤ」という信号値定義名の列で表現できる。
【００４１】
この信号値定義名の列を状態遷移グラフで表現すると図７に示すグラフになる。この状態遷移グラフは出発点Ｓ（７０１）と終点Ｅ（７０４）を持ち、グラフの枝が信号値定義名に対応する。「ＲＤＷ  ＲＤＷ  ＲＤ」という例は、最初のＲＤＷが７０１から７０２への遷移枝、次のＲＤＷが７０２から７０３への遷移枝、最後のＲＤが７０３から７０４への遷移枝として表現される。この例では有効なデータ（図６における６０７）は３サイクル目に出現することから到達ステップは３となる。
【００４２】
しかし、実際の回路が、ウエイト信号ｗａｉｔがアサートされている限りＲＤＷの状態を繰り返すという仕様であれば、実際の動作はウエイト信号ｗａｉｔがアサートされない「ＲＤ」のみからＲＤＷが無限に続く場合まで考えられる。このような場合、全ての場合を列挙することは不可能であるため、繰り返し記号「＊」を用いて表現する。すなわち、「ＲＤＷ  ＊  ＲＤ」と記述することにより、０個以上のＲＤＷが連続した後にＲＤが来るという信号系列を表す。この例を状態遷移グラフで表現すると図８に示すグラフになる。出発点Ｓ（８０１）からＲＤＷとＲＤの２本の遷移枝が出ている。ＲＤＷは再び出発点Ｓに戻るため、０回以上、無限回のＲＤＷの繰り返しを表現する。この場合の到達ステップは１以上無限大までなので、［０、∞］という区間で到達ステップを表現できる。
【００４３】
更に、図９の状態遷移の例は、ＲＤが３サイクル目か５サイクル目のどちらかに出現する場合である。このような場合の信号値定義名の列は論理和記号「｜」を用いて「（ＲＤＷ  ＲＤＷ  ＲＤ）｜（ＲＤＷ  ＲＤＷ  ＲＤＷ  ＲＤＷ  ＲＤ）」と記述するか、あるか無いかを示す記号「＜＞」を用いて「ＲＤＷ  ＲＤＷ  ＜ＲＤＷ  ＲＤＷ＞  ＲＤ」と表現する。この場合の到達ステップは（３，５）という集合で表現できる。
【００４４】
以上のように、信号定義名の列から状態遷移グラフを作成し、グラフ上で出発点から特定の枝まで至る枝の本数を算出することにより、到達ステップの値を計算することができる。この原理を用いて図４の接続可能性を判定するシステムの動作を説明する。
【００４５】
図４において、４０１と４０４が接続対象の論理回路に対するインタフェース定義記述を格納するファイルである。４０２、４０５でこのファイルを読み込み、４０３、４０６で状態遷移グラフを作成し、４０９、４１０で各々の到達ステップを計算する。到達ステップの計算に先立ち、二つの論理回路を接続するにあたり、双方の機能の対応関係(例えば、一方はデータを出力する機能、もう一方はデータを入力する機能)を記述したデータファイル４０７を入力し、解析対象の機能と対応する機能に関して有効なデータが出現する箇所を双方の到達ステップ計算手段４０９、４１０に指示する。計算された到達ステップは到達期間比較手段４１１において比較され、その結果は比較結果出力手段４１２において表示装置４１３またはファイル４１４に出力される。
【００４６】
比較の前提として接続対象の論理回路のファイル４０７により指定された機能の対応関係において、データの転送関係、すなわち一方が出力でもう一方が入力、という関係が成立しているものとする。
【００４７】
ここで、到達期間比較手段４１１における比較は２段階で行われる。。まず第１段階において双方の到達ステップの範囲に重なりがあるかどうかを調べる。もし重なりがあれば、同じタイミングでデータを転送できる。ここでもし重なりがなければ第２段階に進み、データの出力側の範囲よりもデータの入力側の範囲の方が大きい値、すなわち時間的に後であるかどうかを調べる。もし、時間的に後であれば、接続回路中にラッチ等のデータを一時的に保持する回路を設ける事により正しくデータを転送できる。以上の比較を行い、接続を正しく行う事が可能かどうかを判断する。比較結果出力手段４１２は前記の比較結果に関して、第1段階で重なりが存在したかどうか、第2段階で条件を満足したかどうかを表示装置４１３またはファイル４１４に出力する。この結果は、第1段階で重なりが存在すれば、データバッファを必要とせずに接続回路を実現できる事がわかる。第2段階で条件を満足すれば、データバッファを必要とする接続回路により実現できる事がわかる。第2段階で条件を満足しなければ、接続回路を実現できないことがわかる。
【００４８】
図４に示す接続可能性を判定するシステムを利用することにより、任意の論理回路間の接続回路の設計の前に、接続回路を実現可能であるかどうかを実際に接続回路を設計する前に検証することが可能になる。
【００４９】
図１０は本発明によるインタフェース定義記述を元に、そのインタフェースに与えるシミュレーション用信号パタンを自動的に生成するシステムの構成図である。処理は接続可能性判定の場合と同様にインタフェース定義記述から状態遷移グラフを生成する。まず、インタフェース定義記述を格納したファイル１００１をインタフェース記述解析手段１００２で読み込み、インタフェース状態生成手段１００３で状態遷移グラフを生成する。また、シミュレーションパタンの生成にあたり、パタン生成の対象となるインタフェースの機能を記述したファイル１００４を機能入力手段１００５で読み込み、状態トレース手段１００６において、指定された機能に対する状態遷移グラフをトレースし、出発点（例えば図７の７０１）から終点（例えば図７の７０４）までの経路、すなわち経路上の信号値定義名を順番に列挙する。列挙された順番を基に、信号波形出力手段１００７では、その信号値定義名に対応した波形を信号値定義情報の中の各端子の論理値をシミュレーションパタンとして表示装置１００８またはファイル１００９に出力する。
【００５０】
以上の処理により、インタフェース定義記述からシミュレーション用信号パタンを生成するシステムを構成できる。
【００５１】
【発明の効果】
本発明を用いると、既設計の論理回路ブロックのインタフェース動作を本発明を用いて記述し、コンピュータ読み取り可能な記憶媒体に記憶する事が可能になる。そして、そのデータを論理回路ブロックのハードウェア記述とセットにして配布したり、そのデータからインタフェースを構成する端子上の信号系列を再生し、表示したり、それを論理シミュレーション用のテストパタンとして利用することが可能になる。さらには接続すべき二つの論理回路のインタフェース記述を用いて、二つの論理回路が接続可能であるかどうかを検証でき、従来課題となっていた、既設計回路の利用時に必要だった設計者による検証作業を軽減することが可能になる。
【図面の簡単な説明】
【図１】本発明の概要を説明する図である。
【図２】本発明によるインタフェース仕様の定義方法を説明する図である。
【図３】図２においてコンピュータ読み取り可能な記憶媒体に記録されるデータ構造を説明する図である。
【図４】二つの論理回路間の接続可能性をインタフェース定義記述を利用して判定するシステムの構成図である。
【図５】本発明が対象とする二つの論理回路間を接続する接続回路を説明する図である。
【図６】あるインタフェースにおける一つの機能の信号系列の例を説明する図である。
【図７】図６の例を状態遷移グラフで表す図である。
【図８】状態遷移グラフの一例を説明する図である。
【図９】状態遷移グラフの他の一例を説明する図である。
【図１０】インタフェース定義記述を元に、そのインタフェースに与えるシミュレーション用信号パタンを生成するシステムの構成図である。
【図１１】論理回路が複数のインタフェース定義記述を備えた実施例を示す図である。
【図１２】図３のデータ構造を拡張したデータ構造を表す図である。
【符号の説明】
１０１…論理回路、１０２…入出力信号、１０３…コンピュータ読み取り可能な記憶媒体、１０４…論理回路構造，動作記述、１０５…インタフェース定義記述。
２０１…論理回路、２０２…入出力信号、２０３…論理回路２０１が持つ機能、２０４…ｒｅａｄ＿ｂｙｔｅ＿ｈ機能、２０５…ｒｅａｄ＿ｂｙｔｅ＿ｌ機能、２０６…ｒｅａｄ＿ｗｏｒｄ機能、２０７…ｗｒｉｔｅ＿ｂｙｔｅ＿ｈ機能、２０８…ｗｒｉｔｅ＿ｂｙｔｅ＿ｌ機能、２０９…ｗｒｉｔｅ＿ｗｏｒｄ機能、２１０…ｎｏｐ機能、１１１…入出力端子２０２の入出力信号系列の１例、２１２…ある時刻の信号波形、２１３…インタフェース定義記述、２１４…端子定義情報、２１５…信号値定義情報、２１６…機能定義情報、２１７…統括情報定義情報。
３０１…インタフェース名、３０２…端子定義情報、３０３…信号値定義情報、３０４…機能定義情報、３０５…統括情報定義情報。
１１０１…論理回路、１１０２〜１１０４…グループ分けされた入出力信号、１１０５…コンピュータ読み取り可能な記憶媒体、１１０６…論理回路構造、動作記述、１１０７〜１１０９…インタフェース定義記述。
１２０１…機能定義情報、１２０２…信号、記号、条件、手続き名、１２０３…定数定義情報、１２０４…変数定義情報、１２０５…条件定義情報、１２０６…変数、定数、演算記号、演算名、１２０７…手続き定義情報、１２０８…変数、定数、演算記号、演算名。
４０１、４０４…インタフェース定義記述ファイル、４０２、４０５…インタフェース記述解析手段、４０３、４０６…インタフェース状態生成手段、４０７…対応機能指定ファイル、４０８…対応状態入力手段、４０９、４１０…到達ステップ計算手段、４１１…到達期間比較手段、４１２…比較結果出力手段、４１３…表示装置、４１４…出力ファイル。
５０１…論理回路Ａ、５０２…接続回路、５０３…論理回路Ｂ。
６０１、６０２…ＮＯＰ波形、６０３、６０４…ＲＤＷ波形、６０５…ＲＤ波形、６０６…ＲＥＡＤ機能、６０７…有効データ出力。
７０１…出発点Ｓ、７０２、７０３…中間節点、７０４…終点Ｅ。
８０１…出発点Ｓ、８０２…終点Ｅ。
９０１…出発点Ｓ、９０２〜９０５…中間節点、９０６…終点Ｅ。
１００１…インタフェース定義記述ファイル、１００２…インタフェース記述解析手段、１００３…インタフェース状態生成手段、１００４…機能指定ファイル、１００５…機能入力手段、１００６…状態トレース手段、１００７…信号波形出力手段、１００８…表示装置、１００９…出力ファイル。
【図１】
0004142176.tif 000002
【図２】
0004142176.tif 000003
【図３】
0004142176.tif 000004
【図４】
0004142176.tif 000005
【図５】
0004142176.tif 000006
【図６】
0004142176.tif 000007
【図７】
0004142176.tif 000008
【図８】
0004142176.tif 000009
【図９】
0004142176.tif 000010
【図１０】
0004142176.tif 000011
【図１１】
0004142176.tif 000012
【図１２】
0004142176.tif 000013