JP2003186929A - インタフェース仕様定義を記録した記憶媒体 - Google Patents
インタフェース仕様定義を記録した記憶媒体Info
- Publication number
- JP2003186929A JP2003186929A JP2001384506A JP2001384506A JP2003186929A JP 2003186929 A JP2003186929 A JP 2003186929A JP 2001384506 A JP2001384506 A JP 2001384506A JP 2001384506 A JP2001384506 A JP 2001384506A JP 2003186929 A JP2003186929 A JP 2003186929A
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- area
- storage medium
- group
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
(57)【要約】
【課題】 並列動作を表現可能なインタフェース仕様定
義情報を、情報量を削減しつつ、コンピュータ読み取り
可能な記憶媒体に格納する。 【解決手段】 第1の端子群102の各端子が取りうる
信号値の組み合わせパターンを第1の識別子群として格
納する第1識別子領域111と、第2の端子群103の
各端子が取りうる信号値の組み合わせパターンを第2の
識別子群として格納する第2識別子領域121と、第1
の識別子と第2の識別子との組み合わせとして定義され
る上記回路モジュールの機能を第3の識別子群として格
納する第3識別子領域141とを有し、第3の識別子
は、第1の識別子に対応する組み合わせパターンと第2
の識別子に対応する組み合わせパターンの開始順序が不
定であることを示す符号(par)を含む。
義情報を、情報量を削減しつつ、コンピュータ読み取り
可能な記憶媒体に格納する。 【解決手段】 第1の端子群102の各端子が取りうる
信号値の組み合わせパターンを第1の識別子群として格
納する第1識別子領域111と、第2の端子群103の
各端子が取りうる信号値の組み合わせパターンを第2の
識別子群として格納する第2識別子領域121と、第1
の識別子と第2の識別子との組み合わせとして定義され
る上記回路モジュールの機能を第3の識別子群として格
納する第3識別子領域141とを有し、第3の識別子
は、第1の識別子に対応する組み合わせパターンと第2
の識別子に対応する組み合わせパターンの開始順序が不
定であることを示す符号(par)を含む。
Description
【0001】
【発明の属する技術分野】本発明は、複数の回路モジュ
ールを接続して構成する集積回路やディジタルシステム
において、回路モジュールのインタフェースの仕様を正
しく定義し、それを利用して回路モジュール間の接続を
容易化する技術に関する。更には、それら技術を用いて
LSIの設計を行う技術に関する。
ールを接続して構成する集積回路やディジタルシステム
において、回路モジュールのインタフェースの仕様を正
しく定義し、それを利用して回路モジュール間の接続を
容易化する技術に関する。更には、それら技術を用いて
LSIの設計を行う技術に関する。
【0002】
【従来の技術】LSIの集積度の向上により、システム
を構成する上で必要とされる要素の大部分が一つの半導
体チップ上に搭載可能となってきた。このような大規模
なシステムLSIを設計する場合には、既に設計され、
資産として所有されている回路モジュール、あるいは他
より購入した回路モジュールを組み合わせて設計するこ
とにより設計のためのコストと工数を削減することが可
能となる。既に設計された回路モジュールを再利用可能
とするために、回路モジュールの各機能を各入出力端子
が特定の時刻に取りうる信号値及びその時系列に関連付
けて表現することが、本願発明の発明者である鈴木敬ら
による、「OwL: An Interface De
scription Language for IP
Reuse」(Custom Integrated
Circuit Conference、1999.
pp.403−406)に開示されている。これによれ
ば、回路モジュールの仕様、すなわち機能とタイミング
チャート等により説明した動作を、状態遷移機械を用い
て計算機上で表現することにより、計算機によって回路
モジュールの仕様理解を支援し、さらに二つの回路モジ
ュール間の接続検証や、合成等の設計自動化を行うこと
が記載されている。なお、上記文献に記載された内容に
関係する出願としては、特開2000−123064号
公報がある。また、回路モジュールの外部端子を複数の
端子集合に分け、ある端子集合を基準に他の端子集合に
おける信号変化のタイミングを指定可能にした、特開2
001−297124号公報がある。
を構成する上で必要とされる要素の大部分が一つの半導
体チップ上に搭載可能となってきた。このような大規模
なシステムLSIを設計する場合には、既に設計され、
資産として所有されている回路モジュール、あるいは他
より購入した回路モジュールを組み合わせて設計するこ
とにより設計のためのコストと工数を削減することが可
能となる。既に設計された回路モジュールを再利用可能
とするために、回路モジュールの各機能を各入出力端子
が特定の時刻に取りうる信号値及びその時系列に関連付
けて表現することが、本願発明の発明者である鈴木敬ら
による、「OwL: An Interface De
scription Language for IP
Reuse」(Custom Integrated
Circuit Conference、1999.
pp.403−406)に開示されている。これによれ
ば、回路モジュールの仕様、すなわち機能とタイミング
チャート等により説明した動作を、状態遷移機械を用い
て計算機上で表現することにより、計算機によって回路
モジュールの仕様理解を支援し、さらに二つの回路モジ
ュール間の接続検証や、合成等の設計自動化を行うこと
が記載されている。なお、上記文献に記載された内容に
関係する出願としては、特開2000−123064号
公報がある。また、回路モジュールの外部端子を複数の
端子集合に分け、ある端子集合を基準に他の端子集合に
おける信号変化のタイミングを指定可能にした、特開2
001−297124号公報がある。
【0003】
【発明が解決しようとする課題】しかし、従来提案され
ているモジュール仕様表現方法では、実際に存在する信
号変化を記述しようとしたときに、記述不可能な信号変
化、および、記述量が膨大となるために実質的に記述不
可能になるおそれのある信号変化が存在した。 1.順序依存制約のない並列動作 複数の端子集合が存在し、それら端子集合におけるサブ
トランザクションの開始順序および終了順序が一意に決
まらないような信号変化は、従来のモジュール仕様表現
方法では表現できなかった。例えば、通信系のインタフ
ェース回路では、通信ノイズに対する耐性を強化する目
的で同じデータを複数の端子集合を用いて送信し、複数
の端子集合により受信したデータに基づき正しいデータ
を再現するようなものがある。したがって、同じデータ
であっても、受信されるデータは物理的な遅延により到
着のタイミングがずれたり、データの見かけ上の長さが
変わったりすることが許容されなければならない。
ているモジュール仕様表現方法では、実際に存在する信
号変化を記述しようとしたときに、記述不可能な信号変
化、および、記述量が膨大となるために実質的に記述不
可能になるおそれのある信号変化が存在した。 1.順序依存制約のない並列動作 複数の端子集合が存在し、それら端子集合におけるサブ
トランザクションの開始順序および終了順序が一意に決
まらないような信号変化は、従来のモジュール仕様表現
方法では表現できなかった。例えば、通信系のインタフ
ェース回路では、通信ノイズに対する耐性を強化する目
的で同じデータを複数の端子集合を用いて送信し、複数
の端子集合により受信したデータに基づき正しいデータ
を再現するようなものがある。したがって、同じデータ
であっても、受信されるデータは物理的な遅延により到
着のタイミングがずれたり、データの見かけ上の長さが
変わったりすることが許容されなければならない。
【0004】例えば、受信側の端子集合がA、B、Cの
3つあった場合に起こり得るサブトランザクションの開
始順序はABC、ACB、BAC、BCA、CAB、C
BAである。しかしながら、従来のモジュール仕様表現
方法では、いずれかの端子集合を基準として他の端子集
合の順序を決定することしか想定しておらず、このよう
などの端子集合も基準にならない信号変化については定
義することができなかった。
3つあった場合に起こり得るサブトランザクションの開
始順序はABC、ACB、BAC、BCA、CAB、C
BAである。しかしながら、従来のモジュール仕様表現
方法では、いずれかの端子集合を基準として他の端子集
合の順序を決定することしか想定しておらず、このよう
などの端子集合も基準にならない信号変化については定
義することができなかった。
【0005】なお、本明細書においては、トランザクシ
ョンとは一つの機能を実行するための一連の動作(信号
変化)をいい、サブトランザクションとはトランザクシ
ョンにおいて実行される個々の動作(信号変化)をい
う。 2.レスポンスを共有する並列動作 1つの信号変化が複数のトランザクションに対応する信
号変化は、従来のモジュール仕様表現方法では表現でき
なかった。例えば、互いに接続されたマスタモジュール
とスレーブモジュールにおいて、マスタモジュールにト
ランザクション(書き込み)が発生し、スレーブモジュ
ールにリクエストパケットを送り(サブトランザクショ
ン:書き込み要求の送信)、スレーブモジュールは、デ
ータを正しく受け取った場合にはレスポンスパケットを
返す(サブトランザクション:レスポンスの返信)とい
うインタフェースがあるとする。ここで、マスタモジュ
ールはスレーブモジュールのレスポンスを待つことな
く、次々にトランザクションのリクエストを発行し、ス
レーブモジュールは複数のリクエストに対して正常に処
理が実行された場合に一つのレスポンスを返すことが許
容されている場合がある。これはリクエストとレスポン
スを厳格に対応づけることによるバスの混雑を避けるた
めに認められる。例えば、マスタモジュールがスレーブ
モジュールからのレスポンスを待たずにリクエストを3
個発行し、その後スレーブモジュールから正しくデータ
を受信したレスポンスが1個帰ってきた場合には、3個
のデータすべてが正しく受信されたということを表す。
従来の方法ではトランザクションはそれぞれ固有のサブ
トランザクションからなることが想定されており、1つ
のサブトランザクションを複数のトランザクションで共
有するような仕様を表現することはできなかった。 3.スプリットトランザクション 同一の端子集合上で、あるトランザクションの複数のサ
ブトランザクションが任意の時間的な間隔を開けて発生
し、その間に他のトランザクションのサブトランザクシ
ョンが生じるような信号変化である。例えば、データ信
号線が双方向になっており、そこでリクエストパケット
とレスポンスパケットが互いに時間的な間隔をもって行
き来するようなインタフェースがこれに該当する。従来
のモジュール仕様表現方法では、同一の端子集合上に生
じる場合は想定されていなかった。 4.順不同に発生するサブトランザクション トランザクションTを実行したときに、いくつかのサブ
トランザクションが順不同に生じるような信号変化があ
る。例えば、1個のマスタモジュールと3個のスレーブ
モジュールA,B,Cとがバスでつながっているとす
る。マスタモジュールがリクエストを出すと、すべての
スレーブモジュールがそれに反応し、各々がマスタにデ
ータを送る(これをブロードキャストと呼ぶ)。スレー
ブモジュールは準備のできたものからレスポンスを返信
するので、レスポンスが返信される順序は6通りある。
従来のモジュール仕様表現方法では、これを列挙する必
要があった。例えば、以下のように表記される。 ここで、括弧[]は、その中で縦棒|で仕切られたいず
れか1つの部分だけが生じることを表し、トランザクシ
ョンTはリクエストREQ及びスレーブモジュールA,
B,CからのレスポンスRESからなり、レスポンスR
ESの順番は6通りあることを示している。このように
組み合わせの数は階乗で増えてしまい、スレーブモジュ
ールが4個のとき24通り、5個のとき120通りを列
挙しなければならず、事実上表現が不可能であった。 5.トランザクションの共通制約 回路モジュールの有する複数のトランザクションに共通
の制約が含まれる場合がある。例えば、回路モジュール
に10種類のトランザクションが実行可能であり、これ
らすべてのトランザクションに共通に、「トランザクシ
ョンのリクエストを出してから、10サイクル以内にレ
スポンスが帰ってこなければならない」という制約があ
るとする。従来のモジュール仕様表現方法では、信号変
化は各トランザクション単位で定義されるため、すべて
のトランザクションについて制約を書かなければならな
い。例えば、以下のようになる。 TRANSACTION READ_BYTE= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION READ_WORD= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION READ_LONG= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA PROPERTY NUMIDLE:(#IDLE<=
9) 記号*は、*直前の状態を0回以上繰り返すことを示す
記号であり、記号’は、その後に制約が記述されること
を示す記号である。また、PROPERTYとは状態機
械を遷移するときの制約であり、制約NUMIDLEに
よりIDLEの繰り返しが9回以下であると制限してい
る。
ョンとは一つの機能を実行するための一連の動作(信号
変化)をいい、サブトランザクションとはトランザクシ
ョンにおいて実行される個々の動作(信号変化)をい
う。 2.レスポンスを共有する並列動作 1つの信号変化が複数のトランザクションに対応する信
号変化は、従来のモジュール仕様表現方法では表現でき
なかった。例えば、互いに接続されたマスタモジュール
とスレーブモジュールにおいて、マスタモジュールにト
ランザクション(書き込み)が発生し、スレーブモジュ
ールにリクエストパケットを送り(サブトランザクショ
ン:書き込み要求の送信)、スレーブモジュールは、デ
ータを正しく受け取った場合にはレスポンスパケットを
返す(サブトランザクション:レスポンスの返信)とい
うインタフェースがあるとする。ここで、マスタモジュ
ールはスレーブモジュールのレスポンスを待つことな
く、次々にトランザクションのリクエストを発行し、ス
レーブモジュールは複数のリクエストに対して正常に処
理が実行された場合に一つのレスポンスを返すことが許
容されている場合がある。これはリクエストとレスポン
スを厳格に対応づけることによるバスの混雑を避けるた
めに認められる。例えば、マスタモジュールがスレーブ
モジュールからのレスポンスを待たずにリクエストを3
個発行し、その後スレーブモジュールから正しくデータ
を受信したレスポンスが1個帰ってきた場合には、3個
のデータすべてが正しく受信されたということを表す。
従来の方法ではトランザクションはそれぞれ固有のサブ
トランザクションからなることが想定されており、1つ
のサブトランザクションを複数のトランザクションで共
有するような仕様を表現することはできなかった。 3.スプリットトランザクション 同一の端子集合上で、あるトランザクションの複数のサ
ブトランザクションが任意の時間的な間隔を開けて発生
し、その間に他のトランザクションのサブトランザクシ
ョンが生じるような信号変化である。例えば、データ信
号線が双方向になっており、そこでリクエストパケット
とレスポンスパケットが互いに時間的な間隔をもって行
き来するようなインタフェースがこれに該当する。従来
のモジュール仕様表現方法では、同一の端子集合上に生
じる場合は想定されていなかった。 4.順不同に発生するサブトランザクション トランザクションTを実行したときに、いくつかのサブ
トランザクションが順不同に生じるような信号変化があ
る。例えば、1個のマスタモジュールと3個のスレーブ
モジュールA,B,Cとがバスでつながっているとす
る。マスタモジュールがリクエストを出すと、すべての
スレーブモジュールがそれに反応し、各々がマスタにデ
ータを送る(これをブロードキャストと呼ぶ)。スレー
ブモジュールは準備のできたものからレスポンスを返信
するので、レスポンスが返信される順序は6通りある。
従来のモジュール仕様表現方法では、これを列挙する必
要があった。例えば、以下のように表記される。 ここで、括弧[]は、その中で縦棒|で仕切られたいず
れか1つの部分だけが生じることを表し、トランザクシ
ョンTはリクエストREQ及びスレーブモジュールA,
B,CからのレスポンスRESからなり、レスポンスR
ESの順番は6通りあることを示している。このように
組み合わせの数は階乗で増えてしまい、スレーブモジュ
ールが4個のとき24通り、5個のとき120通りを列
挙しなければならず、事実上表現が不可能であった。 5.トランザクションの共通制約 回路モジュールの有する複数のトランザクションに共通
の制約が含まれる場合がある。例えば、回路モジュール
に10種類のトランザクションが実行可能であり、これ
らすべてのトランザクションに共通に、「トランザクシ
ョンのリクエストを出してから、10サイクル以内にレ
スポンスが帰ってこなければならない」という制約があ
るとする。従来のモジュール仕様表現方法では、信号変
化は各トランザクション単位で定義されるため、すべて
のトランザクションについて制約を書かなければならな
い。例えば、以下のようになる。 TRANSACTION READ_BYTE= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION READ_WORD= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION READ_LONG= RE
Q IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA TRANSACTION WRITE_BYTE= R
EQ IDLE* ’NUMIDLE DATA PROPERTY NUMIDLE:(#IDLE<=
9) 記号*は、*直前の状態を0回以上繰り返すことを示す
記号であり、記号’は、その後に制約が記述されること
を示す記号である。また、PROPERTYとは状態機
械を遷移するときの制約であり、制約NUMIDLEに
よりIDLEの繰り返しが9回以下であると制限してい
る。
【0006】したがって、制約の記述量は、制約の個数
とトランザクションの個数の積に比例する。現実の回路
では一つのトランザクションにおいて制約は数個〜十数
個になることも珍しくない。このことは現実にインタフ
ェースを記述することを困難にしていた。
とトランザクションの個数の積に比例する。現実の回路
では一つのトランザクションにおいて制約は数個〜十数
個になることも珍しくない。このことは現実にインタフ
ェースを記述することを困難にしていた。
【0007】制約には、リクエストの最小サイクル数や
最大サイクル数といったものの他、読み出すデータの個
数、前のデータと次のデータの時間間隔、前のトランザ
クションから次のトランザクションの時間間隔、トラン
ザクションを連続して実行しても良い最大数などが挙げ
られる。 6.トランザクションの共通手続き 回路モジュールの有する複数のトランザクションに共通
の手続きが含まれる場合がある。本明細書では手続きと
は、サブトランザクションの実行において付随的に実施
される動作をいい、サブトランザクションが回路モジュ
ール間でやりとりされる動作であるのに対して、手続き
は一般に各回路モジュールが独自に実行する動作であ
る。具体的には、手続きとはトランザクションを実行し
たときにフラグを立てたり、イベントの発生回数を数え
たり、あるイベントから次のイベントへの時間的な間隔
を測るような動作である。従来の表現方法では、手続き
はトランザクションの定義中で参照するようになってい
た。したがって、手続きの個数とトランザクションの個
数の積に比例して記述量が増大していた。例えば、以下
のようである。 TRANSACTION READ_BYTE= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION READ_WORD= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION READ_LONG= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TASK COUNTIDLE:{N=N+1;} 記号$は、その後に手続き名が記述されることを示す記
号である。TASKは手続きを定義しており、手続きC
OUNTIDLEによりIDLEの繰り返しをカウント
している。 7.トランザクションの順序定義 複数のトランザクションが実行される間において、何も
発生しない状態の期間が生じる場合がある。従来のモジ
ュール仕様表現方法においては、トランザクションが行
われていない状態も一つの状態として明示的に定義し、
どのような状況においてその状態が生じ得るかについて
正規表現を使って明示的に記載することが要求された。
例えば、初期化(INIT)の後に、読み出し(REA
D)もしくは書き込み(WRITE)を行うが、初期化
に続くトランザクションの開始タイミングに任意性のあ
るインタフェースは、非実行なる状態IDLEを定義し
て、以下のように書く必要があった。 INIT [READ|WRITE|IDLE]+ 記号+は、+直前の状態を1回以上繰り返すことを示す
記号である。このように、非実行なる状態が通常のトラ
ンザクションと同じように定義されるために、その名前
の付け方によってはどれがトランザクションでどれが非
実行状態かということが記述者以外には分からなくなっ
てしまう。また、設計者の意図という点では、シーケン
スのどこまでが初期化のためのシーケンスか、どこから
が定常状態を表しているかという情報も、記述から読み
取ることはできない。さらに、非実行状態になり得るす
べての個所にいちいち挿入しなければならないため、記
述量が増えてしまうという問題も生じる。
最大サイクル数といったものの他、読み出すデータの個
数、前のデータと次のデータの時間間隔、前のトランザ
クションから次のトランザクションの時間間隔、トラン
ザクションを連続して実行しても良い最大数などが挙げ
られる。 6.トランザクションの共通手続き 回路モジュールの有する複数のトランザクションに共通
の手続きが含まれる場合がある。本明細書では手続きと
は、サブトランザクションの実行において付随的に実施
される動作をいい、サブトランザクションが回路モジュ
ール間でやりとりされる動作であるのに対して、手続き
は一般に各回路モジュールが独自に実行する動作であ
る。具体的には、手続きとはトランザクションを実行し
たときにフラグを立てたり、イベントの発生回数を数え
たり、あるイベントから次のイベントへの時間的な間隔
を測るような動作である。従来の表現方法では、手続き
はトランザクションの定義中で参照するようになってい
た。したがって、手続きの個数とトランザクションの個
数の積に比例して記述量が増大していた。例えば、以下
のようである。 TRANSACTION READ_BYTE= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION READ_WORD= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION READ_LONG= RE
Q (IDLE $COUNTIDLE)* DATA TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TRANSACTION WRITE_BYTE= R
EQ (IDLE $COUNTIDLE)* DAT
A TASK COUNTIDLE:{N=N+1;} 記号$は、その後に手続き名が記述されることを示す記
号である。TASKは手続きを定義しており、手続きC
OUNTIDLEによりIDLEの繰り返しをカウント
している。 7.トランザクションの順序定義 複数のトランザクションが実行される間において、何も
発生しない状態の期間が生じる場合がある。従来のモジ
ュール仕様表現方法においては、トランザクションが行
われていない状態も一つの状態として明示的に定義し、
どのような状況においてその状態が生じ得るかについて
正規表現を使って明示的に記載することが要求された。
例えば、初期化(INIT)の後に、読み出し(REA
D)もしくは書き込み(WRITE)を行うが、初期化
に続くトランザクションの開始タイミングに任意性のあ
るインタフェースは、非実行なる状態IDLEを定義し
て、以下のように書く必要があった。 INIT [READ|WRITE|IDLE]+ 記号+は、+直前の状態を1回以上繰り返すことを示す
記号である。このように、非実行なる状態が通常のトラ
ンザクションと同じように定義されるために、その名前
の付け方によってはどれがトランザクションでどれが非
実行状態かということが記述者以外には分からなくなっ
てしまう。また、設計者の意図という点では、シーケン
スのどこまでが初期化のためのシーケンスか、どこから
が定常状態を表しているかという情報も、記述から読み
取ることはできない。さらに、非実行状態になり得るす
べての個所にいちいち挿入しなければならないため、記
述量が増えてしまうという問題も生じる。
【0008】このように、従来のインタフェース仕様表
現方法においては、現実に存在する回路モジュールの仕
様を十分、かつ簡潔に表現することができなかった。
現方法においては、現実に存在する回路モジュールの仕
様を十分、かつ簡潔に表現することができなかった。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、所定の符号を定義して、並列的に実行されるインタ
フェース動作を記憶させる。
に、所定の符号を定義して、並列的に実行されるインタ
フェース動作を記憶させる。
【0010】順序依存制約のない場合には、第1の端子
群と第2の端子群とを有する回路モジュールのインタフ
ェース情報を記録するコンピュータ読み取り可能な記憶
媒体において、第1の端子群の各端子が所定の時刻に取
りうる信号値の組み合わせパターンを第1の識別子群と
して格納する第1識別子領域と、第2の端子群の各端子
が所定の時刻に取りうる信号値の組み合わせパターンを
第2の識別子群として格納する第2識別子領域と第1識
別子領域に格納された所定の第1の識別子と第2識別子
領域に格納された所定の第2の識別子との組み合わせと
して定義される回路モジュールの機能を第3の識別子群
として格納する第3識別子領域とを有し、第3の識別子
は、所定の第1の識別子、所定の第2の識別子及び所定
の第1の識別子に対応する組み合わせパターンと所定の
第2の識別子に対応する組み合わせパターンの開始順序
が不定であることを示す符号の列を含むようにする。
群と第2の端子群とを有する回路モジュールのインタフ
ェース情報を記録するコンピュータ読み取り可能な記憶
媒体において、第1の端子群の各端子が所定の時刻に取
りうる信号値の組み合わせパターンを第1の識別子群と
して格納する第1識別子領域と、第2の端子群の各端子
が所定の時刻に取りうる信号値の組み合わせパターンを
第2の識別子群として格納する第2識別子領域と第1識
別子領域に格納された所定の第1の識別子と第2識別子
領域に格納された所定の第2の識別子との組み合わせと
して定義される回路モジュールの機能を第3の識別子群
として格納する第3識別子領域とを有し、第3の識別子
は、所定の第1の識別子、所定の第2の識別子及び所定
の第1の識別子に対応する組み合わせパターンと所定の
第2の識別子に対応する組み合わせパターンの開始順序
が不定であることを示す符号の列を含むようにする。
【0011】また、レスポンスを共有する場合には、第
3の識別子は、所定の第1の識別子、所定の第2の識別
子及び所定の第1の識別子に対応する組み合わせパター
ンの複数回の発生に対応して所定の第2の識別子に対応
する組み合わせパターンが1回発生しうることを示す符
号の列を含むようにする。
3の識別子は、所定の第1の識別子、所定の第2の識別
子及び所定の第1の識別子に対応する組み合わせパター
ンの複数回の発生に対応して所定の第2の識別子に対応
する組み合わせパターンが1回発生しうることを示す符
号の列を含むようにする。
【0012】スプリットトランザクションに対しては、
端子群の各端子が所定の時刻に取りうる信号値の組み合
わせパターンを識別子群として格納する第1識別子領域
と、第1識別子領域に格納された複数の第1の識別子の
組み合わせとして定義される回路モジュールの機能を第
2の識別子群として格納する第2識別子領域とを有し、
第2の識別子は、複数の第1の識別子及び複数の第1の
識別子に対応する複数の組み合わせパターンが時間的な
隔たりを持って発生し、その間に第1識別子領域に格納
された別の識別子に対応する組み合わせパターンが発生
しうることを示す符号の列を含むようにする。
端子群の各端子が所定の時刻に取りうる信号値の組み合
わせパターンを識別子群として格納する第1識別子領域
と、第1識別子領域に格納された複数の第1の識別子の
組み合わせとして定義される回路モジュールの機能を第
2の識別子群として格納する第2識別子領域とを有し、
第2の識別子は、複数の第1の識別子及び複数の第1の
識別子に対応する複数の組み合わせパターンが時間的な
隔たりを持って発生し、その間に第1識別子領域に格納
された別の識別子に対応する組み合わせパターンが発生
しうることを示す符号の列を含むようにする。
【0013】また、順不同に発生するサブトランザクシ
ョンに対しては、第2の識別子は、複数の第1の識別子
及び複数の第1の識別子に対応する複数の組み合わせパ
ターンが任意の順序で発生しうることを示す符号の列を
含むようにする。
ョンに対しては、第2の識別子は、複数の第1の識別子
及び複数の第1の識別子に対応する複数の組み合わせパ
ターンが任意の順序で発生しうることを示す符号の列を
含むようにする。
【0014】さらに、制約や手続きについて複数のトラ
ンザクションに共通な制約、手続きを定義することを可
能にする。
ンザクションに共通な制約、手続きを定義することを可
能にする。
【0015】さらに、意味のある動作(トランザクショ
ン)と意味のない動作(非実行状態)とを少なくとも区
別して格納する。さらに、初期化シーケンスに属する動
作を意味のある動作と分離して格納する。
ン)と意味のない動作(非実行状態)とを少なくとも区
別して格納する。さらに、初期化シーケンスに属する動
作を意味のある動作と分離して格納する。
【0016】
【発明の実施の形態】(第1の実施の形態)以下、図面
を用いて本発明の実施の形態を説明する。 1.順序依存制約のない並列動作 図1は、順序依存制約のない並列動作を有するインタフ
ェースをもった回路モジュールを説明する図である。
を用いて本発明の実施の形態を説明する。 1.順序依存制約のない並列動作 図1は、順序依存制約のない並列動作を有するインタフ
ェースをもった回路モジュールを説明する図である。
【0017】論理回路101は、端子105を持つ。こ
の端子は、それぞれ意味的にまとまりのある端子群10
2、端子群103、端子群104に分けられる。端子群
102〜104に対応する信号波形がそれぞれ入出力系
列163〜165に示されている。
の端子は、それぞれ意味的にまとまりのある端子群10
2、端子群103、端子群104に分けられる。端子群
102〜104に対応する信号波形がそれぞれ入出力系
列163〜165に示されている。
【0018】論理回路101の構造あるいは動作はハー
ドウェア記述言語を用いて記述される。これには、端子
の定義と回路の定義とが含まれる。回路の定義は動作レ
ベル、レジスタトランスファレベル、ゲートレベルのい
ずれであってもよい。上記論理回路のHDLデータ10
7は、コンピュータ読み取り可能な記憶媒体106に格
納される。記憶媒体106としては、特に限定しない
が、半導体メモリや、フレキシブルディスク、ハードデ
ィスクのような磁気的記憶媒体、CD−ROM、DVD
のような光学的記憶媒体が挙げられる。記憶媒体106
にはHDLデータ107と対としてそのインタフェース
定義記述108を記憶している。インタフェース定義デ
ータ108は、入出力系列163〜165を記述したも
のである。
ドウェア記述言語を用いて記述される。これには、端子
の定義と回路の定義とが含まれる。回路の定義は動作レ
ベル、レジスタトランスファレベル、ゲートレベルのい
ずれであってもよい。上記論理回路のHDLデータ10
7は、コンピュータ読み取り可能な記憶媒体106に格
納される。記憶媒体106としては、特に限定しない
が、半導体メモリや、フレキシブルディスク、ハードデ
ィスクのような磁気的記憶媒体、CD−ROM、DVD
のような光学的記憶媒体が挙げられる。記憶媒体106
にはHDLデータ107と対としてそのインタフェース
定義記述108を記憶している。インタフェース定義デ
ータ108は、入出力系列163〜165を記述したも
のである。
【0019】論理回路101は、接続先からデータを受
信するというトランザクションtranを有する。接続
先は、論理回路101に対して同じコマンドおよびデー
タを端子群102、103、104に送信する。論理回
路101は、各端子群で受信されたデータを比較して間
違いがあれば訂正して、正しいデータを受信する。端子
群102、103、104で受信されるデータの内容は
同じものであるが、各端子群で受信されるデータの長さ
及び各端子群に到着するタイミングは、伝送路の遅延に
よって毎回異なり、一意に決められない。本実施例にお
いては、このようなインタフェースを次のようなフォー
マットで表現する。特に関連機能定義情報141を設け
たことが特徴である。関連機能定義情報とは機能定義情
報の一種であって、サブインタフェースで定義されてい
る機能により定義される機能を定義する情報である。
信するというトランザクションtranを有する。接続
先は、論理回路101に対して同じコマンドおよびデー
タを端子群102、103、104に送信する。論理回
路101は、各端子群で受信されたデータを比較して間
違いがあれば訂正して、正しいデータを受信する。端子
群102、103、104で受信されるデータの内容は
同じものであるが、各端子群で受信されるデータの長さ
及び各端子群に到着するタイミングは、伝送路の遅延に
よって毎回異なり、一意に決められない。本実施例にお
いては、このようなインタフェースを次のようなフォー
マットで表現する。特に関連機能定義情報141を設け
たことが特徴である。関連機能定義情報とは機能定義情
報の一種であって、サブインタフェースで定義されてい
る機能により定義される機能を定義する情報である。
【0020】インタフェースif−allは、端子群1
02〜104にそれぞれ対応する3つのサブインタフェ
ースif−A〜Cを有する。サブインタフェースはそれ
ぞれ端子定義、信号値定義、機能定義とを有する。信号
値は各サブインタフェースが取りうる状態を定義してい
る。図1の例では、インタフェースif−Aは、クロッ
ク信号の立ち上がりにおいて、端子command1に入力され
る2ビットの信号が2’b00であった場合に、端子da
ta1に入力される信号がハイインピーダンス状態である
状態を有し、この状態をIDLE1と定義している(信
号値定義の例)。また、信号値DAT1が0回以上繰り
返され、信号値END1が1回生じる信号値系列を受信
機能tran1と定義している(機能定義の例)。イン
タフェースif−allでは、あらかじめ定まった順序
なくして、トランザクションtran1,tran2,
tran3が発生する。このようなトランザクションの
発生を関連機能定義情報141及び統括機能定義情報1
51により定義し、インタフェース仕様として記憶媒体
106に格納する。図1の例では、nop1〜nop3
という状態(nop)、tran1〜tran3という
トランザクションが発生した状態(tran)が順不同
に発生し、インタフェース全体としては、nopまたは
tranの状態が1回以上繰り返されるということを意
味する。
02〜104にそれぞれ対応する3つのサブインタフェ
ースif−A〜Cを有する。サブインタフェースはそれ
ぞれ端子定義、信号値定義、機能定義とを有する。信号
値は各サブインタフェースが取りうる状態を定義してい
る。図1の例では、インタフェースif−Aは、クロッ
ク信号の立ち上がりにおいて、端子command1に入力され
る2ビットの信号が2’b00であった場合に、端子da
ta1に入力される信号がハイインピーダンス状態である
状態を有し、この状態をIDLE1と定義している(信
号値定義の例)。また、信号値DAT1が0回以上繰り
返され、信号値END1が1回生じる信号値系列を受信
機能tran1と定義している(機能定義の例)。イン
タフェースif−allでは、あらかじめ定まった順序
なくして、トランザクションtran1,tran2,
tran3が発生する。このようなトランザクションの
発生を関連機能定義情報141及び統括機能定義情報1
51により定義し、インタフェース仕様として記憶媒体
106に格納する。図1の例では、nop1〜nop3
という状態(nop)、tran1〜tran3という
トランザクションが発生した状態(tran)が順不同
に発生し、インタフェース全体としては、nopまたは
tranの状態が1回以上繰り返されるということを意
味する。
【0021】図2はインタフェース定義データ108の
記憶媒体106中でのデータ構造を説明する図である。
記憶媒体には、状態、機能等を指示する名称、それらの
関係等を表す符号の列として形成される識別子が記憶さ
れる。
記憶媒体106中でのデータ構造を説明する図である。
記憶媒体には、状態、機能等を指示する名称、それらの
関係等を表す符号の列として形成される識別子が記憶さ
れる。
【0022】インタフェース名201には、図1の例で
は「if−all」という名称が格納される。インタフ
ェースif−allはインタフェースif−A〜Cとい
うサブインタフェースを有するため、それぞれのサブイ
ンタフェースがサブインタフェース定義情報211にお
いて定義される。なお、各情報にはその区切りを示すた
めに終端記号が付加される。各サブインタフェースにつ
いて、端子定義情報214、信号値定義情報215、機
能定義情報216が記憶される。これらは、図1のif
−A〜C定義情報111、121,131に対応する。
端子定義情報214には端子名、信号幅、属性が記憶さ
れる。端子名とはそのインタフェース(サブインタフェ
ース)に属する端子群を特定するための名称である。信
号幅とは各端子に入出力される信号が何ビットの信号で
あるかを定義する。また、属性は各端子に入出力される
信号が入力信号、出力信号、クロック信号のいずれであ
るかの区別を与える。信号値定義情報215には、ある
時刻における信号値の状態を定義する情報が記憶され
る。機能定義情報216には、信号値系列として定義さ
れるインタフェースのとりうる状態(機能)を定義する
情報が記憶される。機能定義は信号値名称または記号名
の列として記述される。図1の例では、nop1という
状態は「IDLE1」という信号値名称と「+」という
記号名で記述される。ここで使用される記号は、信号値
(または機能)間の関係を表現するための正規表現記号
である。
は「if−all」という名称が格納される。インタフ
ェースif−allはインタフェースif−A〜Cとい
うサブインタフェースを有するため、それぞれのサブイ
ンタフェースがサブインタフェース定義情報211にお
いて定義される。なお、各情報にはその区切りを示すた
めに終端記号が付加される。各サブインタフェースにつ
いて、端子定義情報214、信号値定義情報215、機
能定義情報216が記憶される。これらは、図1のif
−A〜C定義情報111、121,131に対応する。
端子定義情報214には端子名、信号幅、属性が記憶さ
れる。端子名とはそのインタフェース(サブインタフェ
ース)に属する端子群を特定するための名称である。信
号幅とは各端子に入出力される信号が何ビットの信号で
あるかを定義する。また、属性は各端子に入出力される
信号が入力信号、出力信号、クロック信号のいずれであ
るかの区別を与える。信号値定義情報215には、ある
時刻における信号値の状態を定義する情報が記憶され
る。機能定義情報216には、信号値系列として定義さ
れるインタフェースのとりうる状態(機能)を定義する
情報が記憶される。機能定義は信号値名称または記号名
の列として記述される。図1の例では、nop1という
状態は「IDLE1」という信号値名称と「+」という
記号名で記述される。ここで使用される記号は、信号値
(または機能)間の関係を表現するための正規表現記号
である。
【0023】正規表現記号とは以下のようなものが含ま
れる。 *:0回以上の繰り返し +:1回以上の繰り返し <>:<>内の信号値または機能を0回または1回実行 {n,m}:{}内の信号値または機能のn回以上m回
以下の繰り返し a|b:a信号値(機能)またはb信号値(機能)を選
択的に実行 図1の関連機能定義情報141、統括機能定義情報15
1にそれぞれ対応して、関連機能定義情報221、統括
機能定義情報231が格納される。関連機能定義情報2
21では、サブインタフェース定義情報211において
定義した機能の出現順序を、機能定義名称および記号名
の列として記述する。こちらで使用する記号には、上記
の正規表現記号に加えて、信号値(または機能)間の順
序関係を表現するための並列動作表現記号がある。
れる。 *:0回以上の繰り返し +:1回以上の繰り返し <>:<>内の信号値または機能を0回または1回実行 {n,m}:{}内の信号値または機能のn回以上m回
以下の繰り返し a|b:a信号値(機能)またはb信号値(機能)を選
択的に実行 図1の関連機能定義情報141、統括機能定義情報15
1にそれぞれ対応して、関連機能定義情報221、統括
機能定義情報231が格納される。関連機能定義情報2
21では、サブインタフェース定義情報211において
定義した機能の出現順序を、機能定義名称および記号名
の列として記述する。こちらで使用する記号には、上記
の正規表現記号に加えて、信号値(または機能)間の順
序関係を表現するための並列動作表現記号がある。
【0024】並列動作表現記号には以下のようなものが
含まれる。 &/:a信号値(機能)開始後にb信号値(機能)を開
始 &:a信号値(機能)開始後同時にb信号値(機能)を
開始 #/:a信号値(機能)終了後にb信号値(機能)を開
始 #:a信号値(機能)終了後同時にb信号値(機能)を
開始 統括機能定義情報231では、関連機能定義情報221
で定義した機能間の順序を、機能定義名称および記号名
の列として記述する。こちらでも、正規表現記号と並列
動作表現記号が使用される。
含まれる。 &/:a信号値(機能)開始後にb信号値(機能)を開
始 &:a信号値(機能)開始後同時にb信号値(機能)を
開始 #/:a信号値(機能)終了後にb信号値(機能)を開
始 #:a信号値(機能)終了後同時にb信号値(機能)を
開始 統括機能定義情報231では、関連機能定義情報221
で定義した機能間の順序を、機能定義名称および記号名
の列として記述する。こちらでも、正規表現記号と並列
動作表現記号が使用される。
【0025】この際、本発明では、関連機能定義情報2
21および統括機能定義情報231において使用する記
号名241の一つとして、順不同開始記号265を格納
する。本実施例においては、順不同に開始される並列動
作を表す記号として、par(a,b)を導入し、信号
値(機能)aと信号値(機能)bとが順不同に開始され
ることを示す。
21および統括機能定義情報231において使用する記
号名241の一つとして、順不同開始記号265を格納
する。本実施例においては、順不同に開始される並列動
作を表す記号として、par(a,b)を導入し、信号
値(機能)aと信号値(機能)bとが順不同に開始され
ることを示す。
【0026】本記号を格納した記憶媒体を使用すること
により、従来のモジュール仕様表現方法では表現できな
かったインタフェースを表現し、コンピュータで解釈す
ることが可能となる。 2.レスポンスを共有する並列動作 図2は、レスポンスを共有する並列動作を有するインタ
フェースをもった回路モジュールを説明する図である。
により、従来のモジュール仕様表現方法では表現できな
かったインタフェースを表現し、コンピュータで解釈す
ることが可能となる。 2.レスポンスを共有する並列動作 図2は、レスポンスを共有する並列動作を有するインタ
フェースをもった回路モジュールを説明する図である。
【0027】論理回路301は、端子305を持つ。こ
の端子は、それぞれ意味的にまとまりのある端子群30
2、端子群303に分けられる。端子群302〜303
に対応する信号波形がそれぞれ入出力系列361〜36
7に示されている。
の端子は、それぞれ意味的にまとまりのある端子群30
2、端子群303に分けられる。端子群302〜303
に対応する信号波形がそれぞれ入出力系列361〜36
7に示されている。
【0028】図1と同様に、論理回路の回路記述307
は、インタフェース定義データ308とともに記憶媒体
306に格納される。
は、インタフェース定義データ308とともに記憶媒体
306に格納される。
【0029】論理回路301は、書き込みのトランザク
ションを発生させることができる。論理回路301に
は、リクエストreqと同時にデータdataとパリテ
ィparityを出力する。接続先のモジュールは、送
られてきたデータとそのパリティを見て、データの誤り
有無を解析し、判定結果をレスポンスr_rglとして
返す。このとき、取り込みタイミングを示すためのタイ
ミング信号r_reqも同時に返信される。基本的には
1回の書き込みに対してそれぞれ判定結果を返すが、複
数の書き込みに対する結果を1回のレスポンスで返して
もよい。すなわち、入出力系列371における1回目の
波形はtran1(#1)に対するレスポンスであり、
2回目の波形はtran1(#2)、tran1(#
3)双方に対するレスポンスである。論理回路301
は、2回目のレスポンスがERRORであれば(図3の
場合はREGAL)、それまでにレスポンスの返ってき
ていなかった書き込み(すなわち、tran2、tra
n3)を再試行する必要がある。
ションを発生させることができる。論理回路301に
は、リクエストreqと同時にデータdataとパリテ
ィparityを出力する。接続先のモジュールは、送
られてきたデータとそのパリティを見て、データの誤り
有無を解析し、判定結果をレスポンスr_rglとして
返す。このとき、取り込みタイミングを示すためのタイ
ミング信号r_reqも同時に返信される。基本的には
1回の書き込みに対してそれぞれ判定結果を返すが、複
数の書き込みに対する結果を1回のレスポンスで返して
もよい。すなわち、入出力系列371における1回目の
波形はtran1(#1)に対するレスポンスであり、
2回目の波形はtran1(#2)、tran1(#
3)双方に対するレスポンスである。論理回路301
は、2回目のレスポンスがERRORであれば(図3の
場合はREGAL)、それまでにレスポンスの返ってき
ていなかった書き込み(すなわち、tran2、tra
n3)を再試行する必要がある。
【0030】本実施例では、機能定義情報322におい
てある信号変化が複数のトランザクションに対応しうる
ことを示す情報(if−B定義情報のtran2という
機能がこれに相当する)を格納する。本情報を格納した
ことにより、tran2というサブトランザクション
は、複数のトランザクションtranに対応すると解釈
することが可能になる。すなわち、トランザクションt
ranはtran1とtran2のサブトランザクショ
ンからなり(関連機能定義情報341を参照)、tra
n2は機能定義情報322において複数のトランザクシ
ョンに対応すると指示されることにより、複数回のtr
an1の発生後のtran2の発生は、これら複数回の
tran1に応答するものと解釈されることになる。
てある信号変化が複数のトランザクションに対応しうる
ことを示す情報(if−B定義情報のtran2という
機能がこれに相当する)を格納する。本情報を格納した
ことにより、tran2というサブトランザクション
は、複数のトランザクションtranに対応すると解釈
することが可能になる。すなわち、トランザクションt
ranはtran1とtran2のサブトランザクショ
ンからなり(関連機能定義情報341を参照)、tra
n2は機能定義情報322において複数のトランザクシ
ョンに対応すると指示されることにより、複数回のtr
an1の発生後のtran2の発生は、これら複数回の
tran1に応答するものと解釈されることになる。
【0031】また、レスポンスの共有は同じトランザク
ションで共有するのみならず、異なる種類のトランザク
ションでレスポンスを共有する場合もある。例えばwr
ite_byteおよびwrite_wordという異
なるトランザクションがあって、それぞれ書き込みのリ
クエスト(サブトランザクションreq_byte,r
eq_word)と、書き込み結果に対する共有可能な
レスポンス(サブトランザクションres)で構成され
るとする。この場合は、以下のような情報が記憶媒体3
06に格納される。 SHARED: res; write_byte=req_byte &/ re
s; write_word=req_word &/ re
s; 図4は図3で説明したコンピュータ読み取り可能な記憶
媒体に格納するインタフェース定義データ308の、電
子記憶媒体中でのデータ構造を説明する図である。
ションで共有するのみならず、異なる種類のトランザク
ションでレスポンスを共有する場合もある。例えばwr
ite_byteおよびwrite_wordという異
なるトランザクションがあって、それぞれ書き込みのリ
クエスト(サブトランザクションreq_byte,r
eq_word)と、書き込み結果に対する共有可能な
レスポンス(サブトランザクションres)で構成され
るとする。この場合は、以下のような情報が記憶媒体3
06に格納される。 SHARED: res; write_byte=req_byte &/ re
s; write_word=req_word &/ re
s; 図4は図3で説明したコンピュータ読み取り可能な記憶
媒体に格納するインタフェース定義データ308の、電
子記憶媒体中でのデータ構造を説明する図である。
【0032】図2と異なる点として、機能定義情報41
6に、機能属性441として複数トランザクション間共
有可能属性を示す記号「SHARED」を格納する。本
情報を格納した記憶媒体を使用することにより、従来の
状態遷移機械にもとづくモジュール仕様表現方法では表
現できなかったインタフェースを表現し、コンピュータ
で解釈することが可能となる。 3.スプリットトランザクション 図5は、スプリットトランザクションを有するインタフ
ェースをもった回路モジュールを説明する図である。
6に、機能属性441として複数トランザクション間共
有可能属性を示す記号「SHARED」を格納する。本
情報を格納した記憶媒体を使用することにより、従来の
状態遷移機械にもとづくモジュール仕様表現方法では表
現できなかったインタフェースを表現し、コンピュータ
で解釈することが可能となる。 3.スプリットトランザクション 図5は、スプリットトランザクションを有するインタフ
ェースをもった回路モジュールを説明する図である。
【0033】論理回路501は、端子502を持つ。端
子群502に対応する信号波形が入出力系列561に示
されている。
子群502に対応する信号波形が入出力系列561に示
されている。
【0034】図3と同様に、論理回路の回路記述507
は、インタフェース定義データ508とともに記憶媒体
506に格納される。論理回路507は、データ転送の
トランザクションtranを持つ。このトランザクショ
ンは、リクエスト時にアドレスadrと、トランザクシ
ョンのIDidを転送する。ここで一度バスを開放し、
他のモジュールもバスを使用可能になる。その後転送す
るデータが準備が完了し、かつ、バスが空き状態のとき
に、再びリクエストを発し、同時に、データdataと
最初にリクエストしたときのIDidとを出力する。こ
れにより、データを転送する。リクエストとデータ転送
との間の期間に、次の転送のリクエストもしくはデータ
転送をおこなってもよい。
は、インタフェース定義データ508とともに記憶媒体
506に格納される。論理回路507は、データ転送の
トランザクションtranを持つ。このトランザクショ
ンは、リクエスト時にアドレスadrと、トランザクシ
ョンのIDidを転送する。ここで一度バスを開放し、
他のモジュールもバスを使用可能になる。その後転送す
るデータが準備が完了し、かつ、バスが空き状態のとき
に、再びリクエストを発し、同時に、データdataと
最初にリクエストしたときのIDidとを出力する。こ
れにより、データを転送する。リクエストとデータ転送
との間の期間に、次の転送のリクエストもしくはデータ
転送をおこなってもよい。
【0035】本発明では、機能定義情報541に、同一
端子上でのトランザクションの分離可能情報を格納する
ことにより、そのようなインタフェースを表現できるよ
うにした。図5において、トランザクションtranを
A/Dのように、サブトランザクションAとサブトラン
ザクションDの間に、その時間的隔たりの間に次のトラ
ンザクションの発生が可能なことを意図する記号(/)
を使って定義している。これにより、1回目のtran
(tran(#1))に対応するデータが返ってくる
(D(#1))前に、2回目のtran(tran(#
2))に対応するリクエストの送信(A(#2))、ま
たはリクエスト送信(A(#2))及びデータ返信(D
(#2))が生じうることがコンピュータ解釈可能な形
で表現される。
端子上でのトランザクションの分離可能情報を格納する
ことにより、そのようなインタフェースを表現できるよ
うにした。図5において、トランザクションtranを
A/Dのように、サブトランザクションAとサブトラン
ザクションDの間に、その時間的隔たりの間に次のトラ
ンザクションの発生が可能なことを意図する記号(/)
を使って定義している。これにより、1回目のtran
(tran(#1))に対応するデータが返ってくる
(D(#1))前に、2回目のtran(tran(#
2))に対応するリクエストの送信(A(#2))、ま
たはリクエスト送信(A(#2))及びデータ返信(D
(#2))が生じうることがコンピュータ解釈可能な形
で表現される。
【0036】図5に示したようにでは同じトランザクシ
ョンの連続ではなく、異なるトランザクションが連続す
る場合にも適用可能である。例えば2種類のトランザク
ションwrite_byteおよびwrite_wor
dがあり、それぞれ書き込みのリクエスト(サブトラン
ザクションreq_byte,req_word)と、
書き込み結果に対するレスポンス(サブトランザクショ
ンres_byte,res_word)で構成される
とする。この場合は、以下のような情報が記憶媒体50
6に格納される。 write_byte=req_byte / res
_byte; write_word=req_word / res
_word; この場合、write_byte、write_wor
dの順で実行されたときに、req_byteとres
_byteの間にwrite_wordのサブトランザ
クションが、write_word、write_by
teの順で実行されたときに、req_wordとre
s_wordの間にwrite_byteのサブトラン
ザクションが発生しうると解釈される。
ョンの連続ではなく、異なるトランザクションが連続す
る場合にも適用可能である。例えば2種類のトランザク
ションwrite_byteおよびwrite_wor
dがあり、それぞれ書き込みのリクエスト(サブトラン
ザクションreq_byte,req_word)と、
書き込み結果に対するレスポンス(サブトランザクショ
ンres_byte,res_word)で構成される
とする。この場合は、以下のような情報が記憶媒体50
6に格納される。 write_byte=req_byte / res
_byte; write_word=req_word / res
_word; この場合、write_byte、write_wor
dの順で実行されたときに、req_byteとres
_byteの間にwrite_wordのサブトランザ
クションが、write_word、write_by
teの順で実行されたときに、req_wordとre
s_wordの間にwrite_byteのサブトラン
ザクションが発生しうると解釈される。
【0037】図6は図5で説明したコンピュータ読み取
り可能な記憶媒体に格納するインタフェース定義データ
508の、電子記憶媒体中でのデータ構造を説明する図
である。
り可能な記憶媒体に格納するインタフェース定義データ
508の、電子記憶媒体中でのデータ構造を説明する図
である。
【0038】図2と異なる点として、本実施例では機能
定義情報621および統括機能定義情報631で使用す
る記号名として、正規表現記号と並列動作記号に加え
て、あるトランザクションのサブトランザクション間で
別のトランザクションのサブトランザクションが実行で
きることを示す分離可能記号を格納できるようにした。
本情報を格納した記憶媒体を使用することにより、従来
の状態遷移機械にもとづくモジュール仕様表現方法では
表現できなかったインタフェースを表現し、コンピュー
タで解釈することが可能となる。 4.順不同に発生するサブトランザクション 図7は、順不同に発生するサブトランザクションを有す
るインタフェースをもった回路モジュールを説明する図
である。
定義情報621および統括機能定義情報631で使用す
る記号名として、正規表現記号と並列動作記号に加え
て、あるトランザクションのサブトランザクション間で
別のトランザクションのサブトランザクションが実行で
きることを示す分離可能記号を格納できるようにした。
本情報を格納した記憶媒体を使用することにより、従来
の状態遷移機械にもとづくモジュール仕様表現方法では
表現できなかったインタフェースを表現し、コンピュー
タで解釈することが可能となる。 4.順不同に発生するサブトランザクション 図7は、順不同に発生するサブトランザクションを有す
るインタフェースをもった回路モジュールを説明する図
である。
【0039】論理回路701は、端子702を持つ。端
子群702に対応する信号波形が入出力系列763に示
されている。
子群702に対応する信号波形が入出力系列763に示
されている。
【0040】図5と同様に、論理回路の回路記述707
は、インタフェース定義データ708とともに記憶媒体
706に格納される。論理回路701は、複数のモジュ
ールが接続されるバスに接続されている。論理回路70
1は、コマンドをバスの複数のモジュールに対して一度
に送信する。コマンドを受け取った全モジュールは、コ
マンドの内容に従ってデータを準備し、各々論理回路7
01に返す。このとき返す順序は、一意に決まっておら
ず、準備できたものから、バス上でデータが衝突するこ
とのないように送り返す。したがって、返ってくる順序
は、コマンドを受信したモジュール数をnとすると、n
の階乗通り存在する。
は、インタフェース定義データ708とともに記憶媒体
706に格納される。論理回路701は、複数のモジュ
ールが接続されるバスに接続されている。論理回路70
1は、コマンドをバスの複数のモジュールに対して一度
に送信する。コマンドを受け取った全モジュールは、コ
マンドの内容に従ってデータを準備し、各々論理回路7
01に返す。このとき返す順序は、一意に決まっておら
ず、準備できたものから、バス上でデータが衝突するこ
とのないように送り返す。したがって、返ってくる順序
は、コマンドを受信したモジュール数をnとすると、n
の階乗通り存在する。
【0041】本実施例では、機能定義情報751に順不
同出現可能情報を格納することにより、常に1通りの情
報量で、上記のnの階乗通りを表現できるようにした。
たとえばサブトランザクションA,B,Cの3つが順不
同で生じうるとき、 PERMUTATION(A、B、C) と書くことにより、すべての順の組み合わせ、つまりこ
こでは、ABC、ACB、BAC、BCA、CAB、C
BAの6通りをあらわすと解釈するようにした。
同出現可能情報を格納することにより、常に1通りの情
報量で、上記のnの階乗通りを表現できるようにした。
たとえばサブトランザクションA,B,Cの3つが順不
同で生じうるとき、 PERMUTATION(A、B、C) と書くことにより、すべての順の組み合わせ、つまりこ
こでは、ABC、ACB、BAC、BCA、CAB、C
BAの6通りをあらわすと解釈するようにした。
【0042】図8は図7で説明したコンピュータ読み取
り可能な記憶媒体に格納するインタフェース定義データ
708の、電子記憶媒体中でのデータ構造を説明する図
である。
り可能な記憶媒体に格納するインタフェース定義データ
708の、電子記憶媒体中でのデータ構造を説明する図
である。
【0043】図2と異なる点として、本実施例では機能
定義情報621および統括機能定義情報631で使用す
る記号名として、正規表現記号に順不同出現可能情報
(permutation)を格納できるようにした。本情報を格
納した記憶媒体を使用することにより、従来の状態遷移
機械にもとづくモジュール仕様表現方法では表現できな
かったインタフェースを表現し、コンピュータで解釈す
ることが可能となる。 5.トランザクションの共通制約 従来のモジュール仕様表現方法では、状態機械を遷移す
る際の制約として、制約定義部で制約を定義し、その制
約を機能定義部および統括機能定義部で参照するという
ことができた。制約定義部で定義した制約を機能定義部
で参照することにより、当該機能において制約が適用さ
れるようになっていた。
定義情報621および統括機能定義情報631で使用す
る記号名として、正規表現記号に順不同出現可能情報
(permutation)を格納できるようにした。本情報を格
納した記憶媒体を使用することにより、従来の状態遷移
機械にもとづくモジュール仕様表現方法では表現できな
かったインタフェースを表現し、コンピュータで解釈す
ることが可能となる。 5.トランザクションの共通制約 従来のモジュール仕様表現方法では、状態機械を遷移す
る際の制約として、制約定義部で制約を定義し、その制
約を機能定義部および統括機能定義部で参照するという
ことができた。制約定義部で定義した制約を機能定義部
で参照することにより、当該機能において制約が適用さ
れるようになっていた。
【0044】本実施例においては、制約定義部1121
に適用についての情報を記憶させる。制約は、信号値名
もしくは変数名(演算定義部を設けた場合には、任意の
変数を定義することができる)と、演算名により定義さ
れる。演算には比較演算、四則演算および論理演算が含
まれる。比較演算には、等号(==)、不等号(!
=)、大小比較(<、>、≦、≧等)があり、四則演算
には和(+)、差(−)、積(*)、商(/)があり、
論理演算には論理積(&)等がある。たとえば、アイド
ルサイクルは9サイクル以内である、という制約がある
場合には、制約NUMIDLE:(#IDLE<=9)
という制約を制約定義部で定義する。この制約がトラン
ザクションに適用される場合に、従来はそれぞれの機能
定義部で参照していたのに対し、本実施例では、各制約
にその制約の適用についての情報を記憶させる。すなわ
ち適用範囲1080として、当該制約を参照した機能定
義でのみ有効なのか、あるいは参照しない機能に関して
も自動的にすべての機能に有効であるのか、という情報
を記憶させる。図9では、各制約単位に適用範囲を合わ
せて記録する方法を示したが、これは適用範囲ごとに制
約を区別して別々な箇所に格納するようにしてもよい。
に適用についての情報を記憶させる。制約は、信号値名
もしくは変数名(演算定義部を設けた場合には、任意の
変数を定義することができる)と、演算名により定義さ
れる。演算には比較演算、四則演算および論理演算が含
まれる。比較演算には、等号(==)、不等号(!
=)、大小比較(<、>、≦、≧等)があり、四則演算
には和(+)、差(−)、積(*)、商(/)があり、
論理演算には論理積(&)等がある。たとえば、アイド
ルサイクルは9サイクル以内である、という制約がある
場合には、制約NUMIDLE:(#IDLE<=9)
という制約を制約定義部で定義する。この制約がトラン
ザクションに適用される場合に、従来はそれぞれの機能
定義部で参照していたのに対し、本実施例では、各制約
にその制約の適用についての情報を記憶させる。すなわ
ち適用範囲1080として、当該制約を参照した機能定
義でのみ有効なのか、あるいは参照しない機能に関して
も自動的にすべての機能に有効であるのか、という情報
を記憶させる。図9では、各制約単位に適用範囲を合わ
せて記録する方法を示したが、これは適用範囲ごとに制
約を区別して別々な箇所に格納するようにしてもよい。
【0045】また、さらにきめ細かな制約の適用を可能
にするためには、適用範囲1080の情報に加えて、制
約の適用条件を合わせて格納することが望ましい。制約
によっては、ある条件が成立してからチェックを開始し
たり、ある条件が満たされるまでチェックしたりという
区別がついたほうがよい場合がある。たとえば、リセッ
ト状態の間はチェックしても意味がない制約に関して
は、リセット解除を条件に制約を適用するようにするこ
とが望ましい。そのための付加情報として、制約条件1
190を格納する。
にするためには、適用範囲1080の情報に加えて、制
約の適用条件を合わせて格納することが望ましい。制約
によっては、ある条件が成立してからチェックを開始し
たり、ある条件が満たされるまでチェックしたりという
区別がついたほうがよい場合がある。たとえば、リセッ
ト状態の間はチェックしても意味がない制約に関して
は、リセット解除を条件に制約を適用するようにするこ
とが望ましい。そのための付加情報として、制約条件1
190を格納する。
【0046】制約条件として用いるものとしては、他の
制約を参照して、その制約が成立している間、その制約
が成立した以降、その制約が成立するまでがあげられ
る。また、ある機能定義名を参照して、その機能を実行
している間のみ、その機能を実行した以降、その機能を
実行するまでが挙げられる。
制約を参照して、その制約が成立している間、その制約
が成立した以降、その制約が成立するまでがあげられ
る。また、ある機能定義名を参照して、その機能を実行
している間のみ、その機能を実行した以降、その機能を
実行するまでが挙げられる。
【0047】図9には適用範囲、適用条件の双方を設け
ているが、適用範囲のみを設けてもよく、適用条件のみ
を設けてもよい。 6.トランザクションの共通手続き 図9に関連して説明した制約と同様に、従来のモジュー
ル仕様表現方法では、手続き定義部で代入や四則演算お
よびif文やwhile文などの制御構造を使って手続
きを定義し、それを機能定義部で参照することにより、
機能定義部で手続きを使用する情報を生成していた。
ているが、適用範囲のみを設けてもよく、適用条件のみ
を設けてもよい。 6.トランザクションの共通手続き 図9に関連して説明した制約と同様に、従来のモジュー
ル仕様表現方法では、手続き定義部で代入や四則演算お
よびif文やwhile文などの制御構造を使って手続
きを定義し、それを機能定義部で参照することにより、
機能定義部で手続きを使用する情報を生成していた。
【0048】本実施例においては、手続き定義部122
1に適用についての情報を記憶させ、これにより機能定
義部931の情報を削減する。たとえば、アイドルサイ
クルをカウントする必要がある場合には、COUNTI
DLE:(NUM_IDLE=NUM_IDLE+1)
という手続きを手続き定義部で定義する。従来の表現方
法では、この手続きを全てのトランザクションにおいて
実行する場合には、すべての機能定義部でカウントする
箇所に当該手続きを参照する必要であったのに対し、本
実施例では、図9と同様に、手続きの有効な範囲を適用
範囲1080に格納し、また、その手続きが適用される
条件を適用条件1190に格納することとした。
1に適用についての情報を記憶させ、これにより機能定
義部931の情報を削減する。たとえば、アイドルサイ
クルをカウントする必要がある場合には、COUNTI
DLE:(NUM_IDLE=NUM_IDLE+1)
という手続きを手続き定義部で定義する。従来の表現方
法では、この手続きを全てのトランザクションにおいて
実行する場合には、すべての機能定義部でカウントする
箇所に当該手続きを参照する必要であったのに対し、本
実施例では、図9と同様に、手続きの有効な範囲を適用
範囲1080に格納し、また、その手続きが適用される
条件を適用条件1190に格納することとした。
【0049】適用範囲、適用条件は図9に関連して説明
した内容と同様である。これにより、各機能でカウント
する手続きを参照することなく、アイドル状態を検出
し、その回数をカウントすることができる。 7.トランザクションの順序定義 従来のモジュール仕様表現方法では、機能定義部で回路
モジュールの各機能に関する信号変化を定義し、何も機
能が行われていないアイドル状態に関しても、機能を定
義するときと同様に、機能定義部で信号変化を定義す
る。このため、リセット後に必ず実行される初期化実行
シーケンスも通常の機能と同様に定義し、また、初期化
実行シーケンス後に任意に実行される各機能の出現順序
を統括機能定義部において定義する際、このとき何も機
能が行われない可能性があるすべての個所に、機能定義
部で定義したアイドル状態を挿入するようになってい
た。
した内容と同様である。これにより、各機能でカウント
する手続きを参照することなく、アイドル状態を検出
し、その回数をカウントすることができる。 7.トランザクションの順序定義 従来のモジュール仕様表現方法では、機能定義部で回路
モジュールの各機能に関する信号変化を定義し、何も機
能が行われていないアイドル状態に関しても、機能を定
義するときと同様に、機能定義部で信号変化を定義す
る。このため、リセット後に必ず実行される初期化実行
シーケンスも通常の機能と同様に定義し、また、初期化
実行シーケンス後に任意に実行される各機能の出現順序
を統括機能定義部において定義する際、このとき何も機
能が行われない可能性があるすべての個所に、機能定義
部で定義したアイドル状態を挿入するようになってい
た。
【0050】従来の統括機能定義の情報では、初期化実
行シーケンスと、通常の機能、アイドル状態の信号変化
を区別されておらず、例えば次のように定義される。 I+ N* SET N* CHK [N|W]+
[R|W|N]+ このため、どこまでが必ず行われる初期化のシーケンス
であるのか、それの後の任意に発生するトランザクショ
ンのうち、どれが意味のあるトランザクションで、どれ
がトランザクションの行われていない状態かを、この統
括機能定義の情報のみからでは第三者には理解できず、
またツールによって解釈することはできない。
行シーケンスと、通常の機能、アイドル状態の信号変化
を区別されておらず、例えば次のように定義される。 I+ N* SET N* CHK [N|W]+
[R|W|N]+ このため、どこまでが必ず行われる初期化のシーケンス
であるのか、それの後の任意に発生するトランザクショ
ンのうち、どれが意味のあるトランザクションで、どれ
がトランザクションの行われていない状態かを、この統
括機能定義の情報のみからでは第三者には理解できず、
またツールによって解釈することはできない。
【0051】これに対し本実施例では、図11のよう
に、初期実行シーケンス定義部1332と、初期実行シ
ーケンス後に実行可能な機能定義部1333、アイドル
状態定義部1334を分けて格納する。これにより、従
来の状態遷移機械にもとづくモジュール仕様表現方法の
記述能力を下回ることなく、初期実行シーケンスと、そ
の後の機能、アイドル状態をツールで区別可能になると
ともに、従来は逐一挿入していたアイドル状態を定義す
る必要がなくなる。
に、初期実行シーケンス定義部1332と、初期実行シ
ーケンス後に実行可能な機能定義部1333、アイドル
状態定義部1334を分けて格納する。これにより、従
来の状態遷移機械にもとづくモジュール仕様表現方法の
記述能力を下回ることなく、初期実行シーケンスと、そ
の後の機能、アイドル状態をツールで区別可能になると
ともに、従来は逐一挿入していたアイドル状態を定義す
る必要がなくなる。
【0052】例えば、上記の記述例は以下のように書く
ことができる。 INITIALは初期化のシーケンスとして回路起動時
に必ず生じる信号変化を表す。FOREGROUNDは
初期化後に任意的に生じ、意味のある動作(トランザク
ション)を表す。この場合、INITIALで定義され
る信号変化後には、トランザクションRまたはトランザ
クションWが実行されることを意味する。BACKGR
OUNDは、初期化及びその後における意味のある動作
の生じていないアイドル状態を表している。
ことができる。 INITIALは初期化のシーケンスとして回路起動時
に必ず生じる信号変化を表す。FOREGROUNDは
初期化後に任意的に生じ、意味のある動作(トランザク
ション)を表す。この場合、INITIALで定義され
る信号変化後には、トランザクションRまたはトランザ
クションWが実行されることを意味する。BACKGR
OUNDは、初期化及びその後における意味のある動作
の生じていないアイドル状態を表している。
【0053】以上、従来のモジュール仕様表現方法にあ
った1〜7の問題を解決できるデータ構成について説明
した。これらのいくつかまたは全てを組み合わせ用いる
ことができることは明らかである。また、以上は例を用
いて説明したに過ぎず、一部の例ではサブインタフェー
ス定義に用いられているが、インタフェース定義に用い
てもよく、逆にインタフェース定義に用いられた内容を
サブインタフェース定義に用いても良い。
った1〜7の問題を解決できるデータ構成について説明
した。これらのいくつかまたは全てを組み合わせ用いる
ことができることは明らかである。また、以上は例を用
いて説明したに過ぎず、一部の例ではサブインタフェー
ス定義に用いられているが、インタフェース定義に用い
てもよく、逆にインタフェース定義に用いられた内容を
サブインタフェース定義に用いても良い。
【0054】以下、本発明を適用して仮想のインタフェ
ースex1を記述した記述例を示す。なお、「//」はその
内容を示すための注釈である。 interface ex1;//インタフェースex1の定義開始 port; //端子の定義開始 input.clock clk; input.control pa1; output.data pa2; output.control pb1; input.data pb2; input.control pc1; inout.data pc2; input.control reset en; endport//端子の定義終了 state#dif; //信号値情報の定義開始 signalset a=[clk、 pa1、 pa2];//サブインタフェース
(端子集合)1定義 A0= [ R 、 0 、 0 ]; //「R」は信号clkの立
ち上がりを意味する。
ースex1を記述した記述例を示す。なお、「//」はその
内容を示すための注釈である。 interface ex1;//インタフェースex1の定義開始 port; //端子の定義開始 input.clock clk; input.control pa1; output.data pa2; output.control pb1; input.data pb2; input.control pc1; inout.data pc2; input.control reset en; endport//端子の定義終了 state#dif; //信号値情報の定義開始 signalset a=[clk、 pa1、 pa2];//サブインタフェース
(端子集合)1定義 A0= [ R 、 0 、 0 ]; //「R」は信号clkの立
ち上がりを意味する。
【0055】
A1= [ R 、 0 、 1 ];
A2= [ R 、 1 、 0 ];
A#= [ R 、 1 、 1 ];
endsignalset
signalset b=[clk、 pb1、 pb2];//サブインタフェース
(端子集合)2定義 B0= [ R 、 0 、 0 ]; B1= [ R 、 0 、 1 ]; B2= [ R 、 1 、 0 ]; B#= [ R 、 1 、 1 ]; endsignalset signalset c=[clk、 pc1、 pc2];//サブインタフェース
(端子集合)3定義 C#= [ R 、 0 、 0 ]; C1= [ R 、 0 、 1 ]; C2= [ R 、 1 、 0 ]; C3= [ R 、 1 、 1 ]; endsignalset endstate#dif //信号値情報の定義終了 func#dif; //機能の定義開始 a0= A# ; b0= B# ; c0= C# ; a1= A1[1、4] A2[4]; b1= < B1[1、2][4][8] > B2 ; b2= B3 B1 B2; c1= [ C1+ 'numofC1#eq#8(#C1) | C2+ ] C3; c2= C3 C1 C2; SHARED:c1#2= c1; //サブトランザクションc1が複数ト
ランザクションで共有可能であることを意味する。
(端子集合)2定義 B0= [ R 、 0 、 0 ]; B1= [ R 、 0 、 1 ]; B2= [ R 、 1 、 0 ]; B#= [ R 、 1 、 1 ]; endsignalset signalset c=[clk、 pc1、 pc2];//サブインタフェース
(端子集合)3定義 C#= [ R 、 0 、 0 ]; C1= [ R 、 0 、 1 ]; C2= [ R 、 1 、 0 ]; C3= [ R 、 1 、 1 ]; endsignalset endstate#dif //信号値情報の定義終了 func#dif; //機能の定義開始 a0= A# ; b0= B# ; c0= C# ; a1= A1[1、4] A2[4]; b1= < B1[1、2][4][8] > B2 ; b2= B3 B1 B2; c1= [ C1+ 'numofC1#eq#8(#C1) | C2+ ] C3; c2= C3 C1 C2; SHARED:c1#2= c1; //サブトランザクションc1が複数ト
ランザクションで共有可能であることを意味する。
【0056】Rfunc: //関連機能定義情報
Idle= A0 &/ B0 &/ C0 ;
w1= par (a1、b1、c1) ; //サブトランザクションa1、b
1、c1が順不同に出現することを意味する。
1、c1が順不同に出現することを意味する。
【0057】w2= a1 #/ b1 #/ c1#2 ;
w3= a1 #/ b2 #/ (c1/c2) ; //サブトランザクションc
1、c2は同一端子上でのスプリットトランザクションで
あることを意味する。
1、c2は同一端子上でのスプリットトランザクションで
あることを意味する。
【0058】w4= a1 & b1 & c1 ;
endfunc#dif; //機能の定義終了
property; //参照により実行される制約の定義開始
numofC1#eq#8(int num):(num == 8);
enable: (stoi(en)==0); // stoiは信号値enをint型に
変換する関数である。
変換する関数である。
【0059】assert#reset:(stoi(reset)==1);
endproperty //参照により実行される制約の定義終了
constraint; //全機能に共通な制約の定義開始
constraint1//全機能に共通な制約1
RESET('assert#reset): //制約assert#resetが真となっ
たら、制約constraint1を初期化する。
たら、制約constraint1を初期化する。
【0060】ENABLE('enable): //制約enableが真とな
っているときのみ、制約constraint1は有効である。
っているときのみ、制約constraint1は有効である。
【0061】b2 => c2 ; //「=>」はサブトランザクシ
ョンb2の実行後に、サブトランザクションc2が必ず実行
されることを示す。 constraint2//全機能に共通な制約2 WHILE(interval(A0、A3)): //信号値定義A0を検出して
から、A3を検出する間のみ、制約constraint2が有効で
あることを意味する。
ョンb2の実行後に、サブトランザクションc2が必ず実行
されることを示す。 constraint2//全機能に共通な制約2 WHILE(interval(A0、A3)): //信号値定義A0を検出して
から、A3を検出する間のみ、制約constraint2が有効で
あることを意味する。
【0062】a0 & b0 & c0 => 'false ; //「'false」
は禁止された仕様であることを示し、「a0 & b0 & c0」
という状態が生じることは禁止することを示す。このよ
うな内容を制約として記述しておくことは、回路の論理
検証において有効である。 endconstraint//全機能に共通な制約の定義終了 watch; //全機能に共通な手続きの定義開始 c1 => $count#c1 ; //サブトランザクションc1が実行さ
れれば、サブトランザクションc1のカウントを必ず実行
することを示す。 endwatch //全機能に共通な手続きの定義終了 Gfunc#dif; //統括機能定義の開始 FOREGROUND: //初期化実行シーケンス後任意に実行可能
な機能の定義情報 w1 ; w2 ; w3+ w4; BACKGROUND: //アイドル状態の定義情報 idle ; endGfunc#dif; //統括機能定義の終了 endinterface//インタフェースex1の定義終了 以上のテキスト記述に関しては、従来の状態遷移機械に
もとづくモジュール仕様表現方法を踏襲した記述方法を
使用した。本例では可読性を高めるためにasciiコード
で各識別子を表現しているが、記憶媒体に格納される場
合には、これらのasciiコードはバイナリ形式で格納さ
れる。また、ここで使用した名称は例示であって、これ
に限定されるものではない。
は禁止された仕様であることを示し、「a0 & b0 & c0」
という状態が生じることは禁止することを示す。このよ
うな内容を制約として記述しておくことは、回路の論理
検証において有効である。 endconstraint//全機能に共通な制約の定義終了 watch; //全機能に共通な手続きの定義開始 c1 => $count#c1 ; //サブトランザクションc1が実行さ
れれば、サブトランザクションc1のカウントを必ず実行
することを示す。 endwatch //全機能に共通な手続きの定義終了 Gfunc#dif; //統括機能定義の開始 FOREGROUND: //初期化実行シーケンス後任意に実行可能
な機能の定義情報 w1 ; w2 ; w3+ w4; BACKGROUND: //アイドル状態の定義情報 idle ; endGfunc#dif; //統括機能定義の終了 endinterface//インタフェースex1の定義終了 以上のテキスト記述に関しては、従来の状態遷移機械に
もとづくモジュール仕様表現方法を踏襲した記述方法を
使用した。本例では可読性を高めるためにasciiコード
で各識別子を表現しているが、記憶媒体に格納される場
合には、これらのasciiコードはバイナリ形式で格納さ
れる。また、ここで使用した名称は例示であって、これ
に限定されるものではない。
【0063】また、回路モジュールの流通においては、
図1等に例示したような記憶媒体により流通させる。こ
れにより、当該回路モジュールを用いてシステムLSI
を構築する場合に、インタフェースの検証等が容易に行
える。
図1等に例示したような記憶媒体により流通させる。こ
れにより、当該回路モジュールを用いてシステムLSI
を構築する場合に、インタフェースの検証等が容易に行
える。
【0064】(第2の実施の形態)本発明の記憶媒体を
半導体集積回路の論理検証に利用する。図12及び図1
3により利用方法の一例を示す。
半導体集積回路の論理検証に利用する。図12及び図1
3により利用方法の一例を示す。
【0065】図12は本発明の記憶媒体1501に記憶
されたインタフェース記述から、変換プログラム150
2により論理検証用の擬似回路1507を生成するフロ
ーを示している。プログラム1502は状態機械生成ス
テップ1503及びハードウェア記述言語生成ステップ
1504を有する。状態機械生成ステップ1503は、
記憶媒体1501を入力として状態機械1506をプロ
グラム1502を実行するコンピュータ(図示せず)の
メモリ1505内に生成する。インタフェース記述(a+
[b|c])と状態機械1506とは等価である。
されたインタフェース記述から、変換プログラム150
2により論理検証用の擬似回路1507を生成するフロ
ーを示している。プログラム1502は状態機械生成ス
テップ1503及びハードウェア記述言語生成ステップ
1504を有する。状態機械生成ステップ1503は、
記憶媒体1501を入力として状態機械1506をプロ
グラム1502を実行するコンピュータ(図示せず)の
メモリ1505内に生成する。インタフェース記述(a+
[b|c])と状態機械1506とは等価である。
【0066】ハードウェア記述言語生成ステップ150
4は、この状態機械1506を論理回路のシミュレーシ
ョンの際に実行可能にするためにハードウェア記述言語
で書かれた擬似回路1507に変換する。擬似回路15
07は、状態機械1506と同じ状態機械を持ち、か
つ、状態機械1506と異なる入力を検出した場合に
は、その時のシミュレーション時刻や、異なる信号の名
称や、検出した信号値、期待値をダンプする機能を持
つ。
4は、この状態機械1506を論理回路のシミュレーシ
ョンの際に実行可能にするためにハードウェア記述言語
で書かれた擬似回路1507に変換する。擬似回路15
07は、状態機械1506と同じ状態機械を持ち、か
つ、状態機械1506と異なる入力を検出した場合に
は、その時のシミュレーション時刻や、異なる信号の名
称や、検出した信号値、期待値をダンプする機能を持
つ。
【0067】図13は、図12で作成した擬似回路を利
用して、論理シミュレーションを実行するための構成例
である。論理回路1508は、CPU、メモリなどの論
理回路モジュールに加えて検証対象とする論理回路15
10で構成されるシステムLSIである。検証は計算機
COMP、メモリMEM、キーボード等の入出力装置IODEV、デ
ィスプレイDESを有する計算機システムにより行われ
る。メモリMEM上には、ハードウェア記述言語により記
述された論理回路1508、図12で作成した検証用擬
似回路1507、論理回路1508を動作させるための
テストパタンTPが記憶される。また、メモリMEM上には
ログ等を記憶するメモリ領域LGが記憶される。
用して、論理シミュレーションを実行するための構成例
である。論理回路1508は、CPU、メモリなどの論
理回路モジュールに加えて検証対象とする論理回路15
10で構成されるシステムLSIである。検証は計算機
COMP、メモリMEM、キーボード等の入出力装置IODEV、デ
ィスプレイDESを有する計算機システムにより行われ
る。メモリMEM上には、ハードウェア記述言語により記
述された論理回路1508、図12で作成した検証用擬
似回路1507、論理回路1508を動作させるための
テストパタンTPが記憶される。また、メモリMEM上には
ログ等を記憶するメモリ領域LGが記憶される。
【0068】検証は、テストパタンTPを論理回路150
8のメモリに読み込ませ、実行させる(シミュレーショ
ン)。検証用擬似回路1507は、テストパタンTPの実
行をモニタし、検証対象論理回路1510が仕様通りの
動作をしているかどうかモニタする。このシミュレーシ
ョンにより、擬似回路1507は、検証対象論理回路1
510の論理バグや、検証対象論理回路1510への信
号の誤りを検出し、検出したバグをログ領域LGにダンプ
したり、シミュレーション時のメッセージとしてコンピ
ュータのディスプレイDES上に出力したりすることが可
能になる。
8のメモリに読み込ませ、実行させる(シミュレーショ
ン)。検証用擬似回路1507は、テストパタンTPの実
行をモニタし、検証対象論理回路1510が仕様通りの
動作をしているかどうかモニタする。このシミュレーシ
ョンにより、擬似回路1507は、検証対象論理回路1
510の論理バグや、検証対象論理回路1510への信
号の誤りを検出し、検出したバグをログ領域LGにダンプ
したり、シミュレーション時のメッセージとしてコンピ
ュータのディスプレイDES上に出力したりすることが可
能になる。
【0069】
【発明の効果】本発明の記憶媒体を用いることにより、
従来のモジュール仕様表現方法では、記述不可能または
記述困難だった信号変化を容易に記述できるようにな
る。
従来のモジュール仕様表現方法では、記述不可能または
記述困難だった信号変化を容易に記述できるようにな
る。
【図1】第1の実施形態における第1の構成例を説明す
るための図である。
るための図である。
【図2】図1に対応するインタフェース記述のデータ構
造を示す図である。
造を示す図である。
【図3】第1の実施形態における第2の構成例を説明す
るための図である。
るための図である。
【図4】図3に対応するインタフェース記述のデータ構
造を示す図である。
造を示す図である。
【図5】第1の実施形態における第3の構成例を説明す
るための図である。
るための図である。
【図6】図5に対応するインタフェース記述のデータ構
造を示す図である。
造を示す図である。
【図7】第1の実施形態における第4の構成例を説明す
るための図である。
るための図である。
【図8】図7に対応するインタフェース記述のデータ構
造を示す図である。
造を示す図である。
【図9】第1の実施形態における第5の構成例に対応す
るインタフェース記述のデータ構造を示す図である。
るインタフェース記述のデータ構造を示す図である。
【図10】第1の実施形態における第6の構成例に対応
するインタフェース記述のデータ構造を示す図である。
するインタフェース記述のデータ構造を示す図である。
【図11】第1の実施形態における第7の構成例に対応
するインタフェース記述のデータ構造を示す図である。
するインタフェース記述のデータ構造を示す図である。
【図12】第2の実施形態における検証用擬似回路を生
成するフローを示す図である。
成するフローを示す図である。
【図13】第2の実施形態におけるシミュレーションを
実行する計算機システムを示す図である。
実行する計算機システムを示す図である。
101…論理回路、102〜104…端子群、106…
コンピュータ読み取り可能な記憶媒体、107…論理回
路構造、動作記述、108…インタフェース定義記述。
コンピュータ読み取り可能な記憶媒体、107…論理回
路構造、動作記述、108…インタフェース定義記述。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 鈴木 敬
東京都国分寺市東恋ヶ窪一丁目280番地
株式会社日立製作所中央研究所内
(72)発明者 中田 恒夫
神奈川県川崎市中原区上小田中4丁目1番
1号 富士通株式会社内
(72)発明者 岩下 洋哲
神奈川県川崎市中原区上小田中4丁目1番
1号 富士通株式会社内
(72)発明者 古渡 聡
神奈川県川崎市中原区上小田中4丁目1番
1号 富士通株式会社内
Fターム(参考) 5B046 AA08 BA03 JA05
5F064 HH06 HH08 HH12
Claims (16)
- 【請求項1】 第1の端子群と第2の端子群とを有する
回路モジュールのインタフェース情報を記録するコンピ
ュータ読み取り可能な記憶媒体であって、 上記第1の端子群の各端子が所定の時刻に取りうる信号
値の組み合わせパターンを第1の識別子群として格納す
る第1識別子領域と、 上記第2の端子群の各端子が所定の時刻に取りうる信号
値の組み合わせパターンを第2の識別子群として格納す
る第2識別子領域と、 上記第1識別子領域に格納された所定の第1の識別子と
上記第2識別子領域に格納された所定の第2の識別子と
の組み合わせとして定義される上記回路モジュールの機
能を第3の識別子群として格納する第3識別子領域とを
有し、 上記第3の識別子は、上記所定の第1の識別子、上記所
定の第2の識別子及び上記所定の第1の識別子に対応す
る組み合わせパターンと上記所定の第2の識別子に対応
する組み合わせパターンの開始順序が不定であることを
示す符号の列を含むことを特徴とする記憶媒体。 - 【請求項2】 請求項1において、 上記回路モジュールの動作または構造を記述したHDL
データを格納する領域を有することを特徴とする記憶媒
体。 - 【請求項3】 第1の端子群と第2の端子群とを有する
回路モジュールのインタフェース情報を記録するコンピ
ュータ読み取り可能な記憶媒体であって、 上記第1の端子群の各端子が所定の時刻に取りうる信号
値の組み合わせパターンを第1の識別子群として格納す
る第1識別子領域と、 上記第2の端子群の各端子が所定の時刻に取りうる信号
値の組み合わせパターンを第2の識別子群として格納す
る第2識別子領域と、 上記第1識別子領域に格納された所定の第1の識別子と
上記第2識別子領域に格納された所定の第2の識別子と
の組み合わせとして定義される上記回路モジュールの機
能を第3の識別子群として格納する第3識別子領域とを
有し、 上記第3の識別子は、上記所定の第1の識別子、上記所
定の第2の識別子及び上記所定の第1の識別子に対応す
る組み合わせパターンの複数回の発生に対応して上記所
定の第2の識別子に対応する組み合わせパターンが1回
発生しうることを示す符号の列を含むことを特徴とする
記憶媒体。 - 【請求項4】 請求項3において、 同一のトランザクションが複数回発生することに対応し
て、上記所定の第1の識別子に対応する組み合わせパタ
ーンが複数回発生することを特徴とする記憶媒体。 - 【請求項5】 請求項3において、 異なるトランザクションが複数回発生することに対応し
て、上記所定の第1の識別子に対応する組み合わせパタ
ーンが複数回発生することを特徴とする記憶媒体。 - 【請求項6】 端子群を有する回路モジュールのインタ
フェース情報を記録するコンピュータ読み取り可能な記
憶媒体であって、 上記端子群の各端子が所定の時刻に取りうる信号値の組
み合わせパターンを識別子群として格納する第1識別子
領域と、 上記第1識別子領域に格納された第1の識別子(A)と
上記第1識別子領域に格納された第1の識別子(B)と
の組み合わせとして定義される上記回路モジュールの機
能を第2の識別子群として格納する第2識別子領域とを
有し、 上記第2の識別子は、上記第1の識別子(A)、上記第
1の識別子(B)及び上記第1の識別子(A)に対応す
る組み合わせパターンと上記第1の識別子(B)とが時
間的な隔たりを持って発生し、その間に上記第1識別子
領域に格納された別の識別子に対応する組み合わせパタ
ーンが発生しうることを示す符号の列を含むことを特徴
とする記憶媒体。 - 【請求項7】 端子群を有する回路モジュールのインタ
フェース情報を記録するコンピュータ読み取り可能な記
憶媒体であって、 上記端子群の各端子が所定の時刻に取りうる信号値の組
み合わせパターンを識別子群として格納する第1識別子
領域と、 上記第1識別子領域に格納された複数の第1の識別子と
の組み合わせとして定義される上記回路モジュールの機
能を第2の識別子群として格納する第2識別子領域とを
有し、 上記第2の識別子は、上記複数の第1の識別子及び上記
複数の第1の識別子に対応する複数の組み合わせパター
ンが任意の順序で発生しうることを示す符号の列を含む
ことを特徴とする記憶媒体。 - 【請求項8】 端子群を有する回路モジュールのインタ
フェース情報を記録するコンピュータ読み取り可能な記
憶媒体であって、 制約を定義する制約定義領域と、 上記端子群の各端子が所定の時刻に取りうる信号値の組
み合わせパターンを識別子群として格納する第1識別子
領域と、 上記第1識別子領域に格納された所定の第1の識別子及
び上記制約定義領域に格納された所定の制約により定義
される上記回路モジュールの機能を第2の識別子群とし
て格納する第2識別子領域とを有し、 上記制約は第1の制約と第2の制約とを有し、上記第1
の制約は上記第2の識別子で参照されることにより有効
とされ、上記第2の制約は上記第2の識別子で参照され
ることなく有効とされることを特徴とする記憶媒体。 - 【請求項9】 請求項8において、 上記制約は論理演算として定義されることを特徴とする
記憶媒体。 - 【請求項10】 請求項8において、 上記制約は第3の制約を有し、上記第3の制約は所定の
適用条件が満足される場合に有効とされることを特徴と
する記憶媒体。 - 【請求項11】 端子群を有する回路モジュールのイン
タフェース情報を記録するコンピュータ読み取り可能な
記憶媒体であって、 手続きを定義する手続き定義領域と、 上記端子群の各端子が所定の時刻に取りうる信号値の組
み合わせパターンを識別子群として格納する第1識別子
領域と、 上記第1識別子領域に格納された所定の第1の識別子及
び上記手続き定義領域に格納された所定の手続きにより
定義される上記回路モジュールの機能を第2の識別子群
として格納する第2識別子領域とを有し、 上記手続きは第1の手続きと第2の手続きとを有し、上
記第1の手続きは上記第2の識別子で参照されることに
より有効とされ、上記第2の手続きは上記第2の識別子
で参照されることなく有効とされることを特徴とする記
憶媒体。 - 【請求項12】 請求項11において、 上記手続きは演算として定義されることを特徴とする記
憶媒体。 - 【請求項13】 請求項11において、 上記手続きは第3の手続きを有し、上記第3の手続きは
所定の適用条件が満足される場合に有効とされることを
特徴とする記憶媒体。 - 【請求項14】 端子群を有する回路モジュールのイン
タフェース情報を記録するコンピュータ読み取り可能な
記憶媒体であって、 上記端子群の各端子が所定の時刻に取りうる信号値の組
み合わせパターンを識別子群として格納する第1識別子
領域と、 上記第1識別子領域に格納された第1の識別子を用いて
定義される上記回路モジュールの機能を第2の識別子群
として格納する第2識別子領域と、 上記第2の識別子領域に格納された複数の第2の識別子
を用いて定義される上記回路モジュールの機能の出現順
序を第3の識別子群として格納する第3識別子領域とを
有し、 上記第3の識別子領域は第1領域と第2領域とを有し、
上記第1領域には定常状態において出現する上記回路モ
ジュールの機能を定義する第2の識別子を格納し、上記
第2領域には上記回路モジュールが非動作状態にあるこ
とを定義する第2の識別子を格納することを特徴とする
記憶媒体。 - 【請求項15】 請求項14において、 上記第3の識別子領域は第3領域を有し、上記第3領域
は初期化開始から上記定常状態に至るまでの期間に実行
される上記回路モジュールの機能を定義する第2の識別
子を格納することを特徴とする記憶媒体。 - 【請求項16】 請求項15において、 上記初期化は、上記回路モジュールに電源を投入するか
もしくはリセットが生じることにより開始されることを
特徴とする記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001384506A JP2003186929A (ja) | 2001-12-18 | 2001-12-18 | インタフェース仕様定義を記録した記憶媒体 |
US10/295,839 US20030115554A1 (en) | 2001-12-18 | 2002-11-18 | Storage medium for recording interface specification definition |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001384506A JP2003186929A (ja) | 2001-12-18 | 2001-12-18 | インタフェース仕様定義を記録した記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003186929A true JP2003186929A (ja) | 2003-07-04 |
Family
ID=19187730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001384506A Withdrawn JP2003186929A (ja) | 2001-12-18 | 2001-12-18 | インタフェース仕様定義を記録した記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030115554A1 (ja) |
JP (1) | JP2003186929A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907584B1 (en) * | 2003-03-14 | 2005-06-14 | Xilinx, Inc. | Method and apparatus for providing an interface to an electronic design of an integrated circuit |
JP2007115002A (ja) * | 2005-10-20 | 2007-05-10 | Fujitsu Ltd | 半導体回路装置の検証方法及びその検証方法を実施するためのcad装置 |
CN112115656B (zh) * | 2020-09-23 | 2024-06-14 | 恒为科技(上海)股份有限公司 | 一种快速设置内存条约束的方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572437A (en) * | 1990-04-06 | 1996-11-05 | Lsi Logic Corporation | Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models |
EP0653708B1 (en) * | 1993-10-15 | 2000-08-16 | Hitachi, Ltd. | Logic circuit having error detection function, redundant resource management method, and fault tolerant system using it |
US5752000A (en) * | 1994-08-02 | 1998-05-12 | Cadence Design Systems, Inc. | System and method for simulating discrete functions using ordered decision arrays |
US5638291A (en) * | 1994-10-14 | 1997-06-10 | Vlsi Technology, Inc. | Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew |
US6836877B1 (en) * | 1998-02-20 | 2004-12-28 | Lsi Logic Corporation | Automatic synthesis script generation for synopsys design compiler |
US6148436A (en) * | 1998-03-31 | 2000-11-14 | Synopsys, Inc. | System and method for automatic generation of gate-level descriptions from table-based descriptions for electronic design automation |
US6219809B1 (en) * | 1999-03-01 | 2001-04-17 | Verisity Ltd. | System and method for applying flexible constraints |
JP2002073719A (ja) * | 2000-08-31 | 2002-03-12 | Hitachi Ltd | 回路動作モデル記述の生成方法および論理設計検証装置 |
-
2001
- 2001-12-18 JP JP2001384506A patent/JP2003186929A/ja not_active Withdrawn
-
2002
- 2002-11-18 US US10/295,839 patent/US20030115554A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20030115554A1 (en) | 2003-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8448111B2 (en) | System and method for metastability verification of circuits of an integrated circuit | |
US7464361B2 (en) | System and method for asynchronous logic synthesis from high-level synchronous descriptions | |
JP2002073719A (ja) | 回路動作モデル記述の生成方法および論理設計検証装置 | |
JP4599266B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
CN112100950B (zh) | 用于芯片设计的方法、系统、设备以及存储介质 | |
US20020049578A1 (en) | Hardware-assisted disign verification system using a packet-based protocol logic synthesized for efficient data loading and unloading | |
US20060282586A1 (en) | Bus system design method and apparatus | |
US6701510B2 (en) | Computer readable medium with definition of interface recorded thereon, verification method for feasibility to connect given circuit and method of generating signal pattern | |
JP2003186929A (ja) | インタフェース仕様定義を記録した記憶媒体 | |
MacEwen et al. | Using higher-order logic for modular specification of real-time distributed systems | |
US6789242B1 (en) | Method and system for integrated circuit design and diagnosis | |
Plessier et al. | Formal verification of a commercial serial bus interface | |
US8090564B1 (en) | Automatic generation of transaction level bus simulation instructions from bus protocol | |
JP2000194610A (ja) | システム分析のためにバス・ア―ビトレ―ション制御を使用する同期方法及び装置 | |
US6339751B1 (en) | Circuit design support apparatus and a method | |
SMITH | Improved verification of networks of timed automata | |
JP5145167B2 (ja) | クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体 | |
Fedotov et al. | Effective System Level Liveness Verification | |
Kaja et al. | Modelling Peripheral Designs using FSM-like Notation for Complete Property Set Generation | |
JP2007241566A (ja) | 検証方法及び検証装置 | |
Pierre | Auxiliary Variables in Temporal Specifications: Semantic and Practical Analysis for System-Level Requirements | |
Szollar | Suzan Szollar and A. Richard Newton Introduction | |
Moinudeen et al. | Model based verification of SystemC designs | |
JP2006163599A (ja) | 検証用情報出力方法及び検証用情報出力装置 | |
JP2979918B2 (ja) | 割り込み検出回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041112 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20070523 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20081219 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20090428 |