JP2002073719A - 回路動作モデル記述の生成方法および論理設計検証装置 - Google Patents

回路動作モデル記述の生成方法および論理設計検証装置

Info

Publication number
JP2002073719A
JP2002073719A JP2000268393A JP2000268393A JP2002073719A JP 2002073719 A JP2002073719 A JP 2002073719A JP 2000268393 A JP2000268393 A JP 2000268393A JP 2000268393 A JP2000268393 A JP 2000268393A JP 2002073719 A JP2002073719 A JP 2002073719A
Authority
JP
Japan
Prior art keywords
function
description
circuit
input
state transition
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.)
Pending
Application number
JP2000268393A
Other languages
English (en)
Inventor
Masaki Ito
雅樹 伊藤
Yoshio Takamine
美夫 高嶺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000268393A priority Critical patent/JP2002073719A/ja
Priority to US09/906,756 priority patent/US6536031B2/en
Publication of JP2002073719A publication Critical patent/JP2002073719A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

(57)【要約】 【課題】 シュミレーションに必要な回路動作モデル記
述の自動生成方法と論理設計検証装置を提供する。 【解決手段】 論理回路モジュールの入出力信号の状態
遷移をクロックサイクル精度で定義したインタフェース
記述10と、上記論理回路モジュールが備える信号また
はデータの処理機能をプログラム関数として定義した機
能記述20とを読み込み、回路内部動作と入出力信号の
状態遷移をクロックサイクル精度で定義した論理回路動
作モデル記述40を自動的に生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、回路動作モデル記
述の生成方法および論理設計検証装置に関し、更に詳し
くは、論理回路装置におけるシステムレベルの設計に必
要な回路動作モデル記述の生成方法および回路動作モデ
ル記述生成ソフトウエアと、論理回路装置のシステム全
体または一部ハードウェアの論理設計の正しさを検証す
るための論理設計検証装置に関する。
【0002】
【従来の技術】従来、例えば、デジタル同期式計算機や
システムLSIなどの論理回路装置をLSI化する場
合、システムレベルの設計で、C言語やC++言語など
のソフトウェア・プログラミング言語を適用した設計手
法が知られている。これらのプログラミング言語によっ
てシステム機能を記述し、それを計算機上でコンパイル
した後、シュミレーション・ライブラリとリンクして実
行することにより、機能シミュレーションによる論理回
路装置の機能検証が可能となる。但し、上記設計手法
は、論理回路装置のシステム機能のみに着目したもので
あり、論理回路装置の一部または全部をハードウェア化
する場合に考慮すべき各種信号の入出力タイミングをも
含んだシステム動作の記述、あるいはそれらの検証を可
能とするものではない。
【0003】一方、計算機上で実行されるソフトウェア
と既存のハードウェア回路モジュールとを組み合わせ、
不足する機能部分を新規に設計することによって、所望
されるシステム全体機能を実現するシステム設計手法が
ある。以下の説明では、計算機に含まれる中央処理装置
もハードウェア回路モジュールの一つとして考える。複
数の回路モジュールから構成される論理回路システムで
は、各回路モジュールのインタフェースをモジュール間
の信号交信手順(以下、プロトコルと言う)に適合する
ように設計する必要がある。
【0004】各種信号の入出力タイミングが判るように
回路モジュールのインタフェースを記述するための技術
として、例えば、K. Suzuki他、“OwL: An Interface D
escription Language for IP Reuse” IEEE CICC'99、p
p.403-406があり、これと同様の技術が特開平12−1
23064号(特願平10−297827号)に開示さ
れている。
【0005】上記インタフェース記述法では、回路モジ
ュールにおける入出力信号の信号値組合せをアルファベ
ット名で表し、回路モジュールの各インタフェースをア
ルファベット名系列の集合として定義している。また、
系列の表現方法とその集合の表現方法として正規表現を
用いることにより、比較的小さな記述量で多彩なインタ
フェース表現を可能としている。以下の説明では、上記
特開平12−123064号に開示されたインタフェー
ス記述法をOwLインタフェース記法と呼ぶことにす
る。
【0006】従来、論理回路装置のハードウェア設計の
検証方法として、論理シミュレーションが広く利用され
ている。論理シミュレーションでは、ハードウェア記述
言語で設計論理を記述し、シミュレータにより模擬実行
する。論理回路装置が複数の回路モジュールからなる場
合、検証対象となる新たな回路モジュール(新たな設計
部分)は、設計結果を示す詳細記述をシュミレータに入
力し、上記検証対象モジュールに結合される他の回路モ
ジュール(周辺論理)は、高速実行できるように簡易記
述の形でシュミレータに入力することにより、システム
全体のシミュレーションが行われる。尚、周辺論理の簡
易記述は、ハードウェア記述言語で記述する場合もあれ
ば、例えば、C言語などのソフトウェア・プログラミン
グ言語で記述する場合もある。
【0007】上述したシュミレータによる設計検証で
は、テストパタンに従って検証対象と周辺論理の動作を
模擬実行し、得られた出力値や、内部レジスタあるいは
メモリなどの内容を期待値と比較することにより、検証
対象が正しく動作するか否かを判定する。判定のために
必要となる検証対象の期待値は、予め人手によって計算
しておくか、期待値計算用の特殊なプログラムを利用し
て生成する。期待値計算用プログラムをシュミレータに
接続し、検証対象のシュミレーション実行時に各期待値
を算出するようにしてもよい。これらの期待値計算用プ
ログラムは、ハードウェア記述言語で記述する場合もあ
れば、C言語などのソフトウェア・プログラミング言語
で記述する場合もある。
【0008】
【発明が解決しようとする課題】然るに、上述した従来
の設計手法では、ハードウェアの設計検証に先だって準
備すべき周辺論理記述や、検証対象の期待値計算用のプ
ログラムの開発に多大な工数が必要となる。これは、設
計対象となる論理回路の高速化、複雑化に伴って、周辺
論理の記述や期待値計算プログラムにかなりの精度が要
求されているためである。
【0009】本発明の目的は、論理回路装置のシュミレ
ーションにおける前処理工程の所要時間を短縮すること
にある。本発明の他の目的は、各種入出力信号のタイミ
ング情報を含む回路動作モデル記述を迅速に準備できる
の回路動作モデル記述の生成方法およびソフトウエアを
提供することにある。本発明の他の目的は、回路モジュ
ールの検証に必要な高精度の期待値を迅速に用意できる
回路動作モデル記述の生成方法およびソフトウエアを提
供することにある。本発明の他の目的は、回路モジュー
ルの設計結果を迅速に検証できる論理設計検証装置を提
供することにある。本発明の他の目的は、1つ或いは複
数の周辺回路モジュールと結合して1つの論理システム
を構成する要素回路モジュールの設計結果を迅速に検証
できる論理設計検証装置を提供することにある。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、回路モジュールのシステムレベルの機
能記述と、上記回路モジュールのインタフェース記述と
を入力として、シュミレータが必要とする回路動作モデ
ル記述を自動的に生成することを特徴とする。更に詳述
すると、本発明による回路動作モデルの生成方法は、回
路モジュールの1群の入出力信号の状態遷移をクロック
サイクル精度で定義したインタフェース記述と、上記回
路モジュールが備える信号またはデータの処理機能を機
能毎にプログラム関数として定義した機能記述とを読み
込み、上記インタフェース記述で定義された入出力信号
の状態遷移に上記機能記述で定義されたプログラム関数
の内容を組み込むことによって、回路内部動作と入出力
信号の状態遷移をクロックサイクル精度で定義した回路
動作モデル記述を生成することを特徴とする。
【0011】また、本発明の論理設計検証装置は、論理
回路の1群の入出力信号の状態遷移をクロックサイクル
精度で定義したインタフェース記述と、上記論理回路が
備える信号またはデータの処理機能を動作クロックとは
無関係に定義した機能記述とに基づいて、回路内部動作
と入出力信号の状態遷移をクロックサイクル精度で定義
した動作モデル記述を自動生成する動作モデル記述生成
手段を備えたことを特徴とする。
【0012】上記動作モデル記述生成手段によって、検
証対象となる論理回路の動作モデル記述を生成した場
合、この動作モデル記述は検証対象論理回路の期待値計
算モデルとなる。従って、上記動作モデル記述と予め用
意された上記論理回路の論理設計データとに基づいて、
上記論理設計データにより実現されるハードウエア論理
回路の動作をクロックサイクル精度で検証することが可
能となる。
【0013】上記動作モデル記述生成手段は、周辺回路
の動作モデル記述を生成することもできる。従って、検
証対象となる論理回路のインタフェース記述と機能記述
とから第1の動作モデル記述を生成し、上記論理回路と
結合される周辺回路のインタフェース記述と機能記述と
から第2の動作モデル記述を生成することによって、上
記自動生成された第1、第2の動作モデルと、予め用意
された上記論理回路の論理設計データとに基づいて、上
記論理設計データで実現される回路動作をクロックサイ
クル精度で検証することが可能となる。
【0014】本発明の他の特徴は、(1)論理回路モジ
ュールの1群の入出力信号の状態遷移をクロックサイク
ル精度で定義したインタフェース記述を外部ファイルか
ら読み込むステップと、(2)上記インタフェース記述
で定義されたクロックサイクル毎の入出力信号値の組合
せと状態名との対応関係をマクロ記述に変換するステッ
プと、(3)上記インタフェース記述における入出力信
号定義に基づいて、複数の内部変数を含む関数名を生成
するステップと、(4)上記インタフェース記述におけ
る入出力信号の状態遷移定義に基づいて、上記論理回路
モジュールの状態遷移をモデル化した決定性有限状態機
械を生成するステップと、(5)上記論理回路モジュー
ルが備える信号またはデータの処理機能を定義した機能
記述ファイルを選択的に参照しつつ、上記決定性有限状
態機械の動作を所定のルールでプログラム関数に変換す
るステップとからなる回路動作モデル生成ソフトウエア
を記録したコンピュータで読み取り可能な記憶媒体にあ
る。
【0015】
【発明の実施の形態】以下、本発明の実施例を図面を参
照して説明する。図1は、本発明による論理設計検証装
置の基本的構成を示す。図1において、30は、1つの
回路モジュール(論理回路)に関する機能記述10とイ
ンタフェース記述20とを入力として、上記回路モジュ
ールの回路動作モデル記述40を生成する回路動作モデ
ル記述生成ルーチンを示し、70は、上記回路動作モデ
ル記述40と、検証対象となる回路モジュールの回路記
述50と、テストデータ80とに基づいてシュミレーシ
ョン動作を実行し、実行結果を出力装置90に出力する
シュミレータを示す。
【0016】機能記述10は、1つの回路モジュールが
もつ機能を表す機能記述データであり、例えば、ハード
ディスク装置などの記憶装置に格納され、機能記述10
には入出力信号のタイミング情報は含まれていない。上
記機能記述10は、例えば、C言語やC++言語などの
ソフトウェア・プログラミング言語、あるいは、VHD
LやVerilog−HDLなどのハードウエア記述言
語で記述される。1つの回路モジュールが複数の機能を
もっている場合、機能記述10は、例えば、図2に示す
ように、各機能と対応した関数名をもつ複数のプログラ
ム関数として記述される。回路動作モデル記述生成ルー
チン30は、上記プログラム関数名を指定することによ
って、特定機能の機能記述を呼び出す。
【0017】図2は、機能記述10の1例として、関数
名「byte-read」をもつ機能記述部分を示す。この機能
記述は、8ビット幅のアドレス線と8ビット幅のワード
長とを持つメモリにおけるデータの読み出し機能をC言
語で記述したものであり、第1の引数(int addr [8])
で指定した読み出しアドレスにあるメモリ内容を第2の
引数(int *value)で指定した書き込みアドレスに順次
に転送する機能を表している。インタフェース記述20
は、機能記述10が記述している回路モジュールの外部
インタフェースを示しており、回路モジュールの各機能
を利用する場合に必要となる入出力信号のタイミング情
報を含んでいる。
【0018】図3は、回路モジュールにおけるインタフ
ェースの1例として、単純メモリにおけるデータ読み出
し時の各種入出力信号の変化を時系列的に示す。また、
図4は、OwLインタフェース記法で記述した上記信号
波形と対応するインタフェース記述の1例を示す。図3
において、clk、rst_n、en_n、rw、addr、wait_n、d
は、それぞれクロック信号、リセット信号、イネーブル
信号、リードライト信号、アドレス、ウエイト信号およ
びデータを示し、RST(reset)、NOP(no operation)、RRQ
(read request)、RWAIT(read wait)、ROUT(read outpu
t)は、各クロックサイクルにおける上記信号群の状態組
合せに対して与えられた状態名(アルファベット名称)
である。
【0019】OwLインタフェース記法では、図3に示
した信号変化を示すインタフェースを、例えば、図4に
示すように、インタフェース宣言部201、端子定義2
02、信号値定義203、機能定義204、統括情報定
義205からなる記述形式によって定義する。インタフ
ェース宣言部201では、モジュール(インタフェー
ス)名“simple_memory”が記述され、端子定義202
では、回路モジュール(この例では、メモリ)のインタ
フェースで扱う各種信号が入出力属性(入力/出力/入
出力)と信号種別属性(クロック/制御/データ)を付
した形で定義される。
【0020】信号値定義203は、上記信号群の信号値
組合せと状態名(アルファベット名称)との関係を定義
したものであり、最初の行で{ }内に信号群の名称が
定義され、以下、状態名毎に、{ }内に信号群の信号
値の状態が定義される。ここで、信号値“posedge”
は、状態“0”から“1”への信号の立ち上がりを意味
し、原則として、端子定義(define port部)202でc
lock属性をもつ信号に対してのみ使用される。また、
“*”はdon't care値、“Z”はハイインピーダンス状態
を意味し、“$i.Xa”はアドレスaddrの確定、“$o.Xd”
は出力データdの確定を意味している。
【0021】機能定義204は、上記回路モジュールが
備える機能をそれぞれインタフェースで起こり得る信号
状態の遷移(状態名の組合せ)によって定義している。
ここで、マーク“*”は、その直前の状態名が示す信号
状態が0回以上、無限回繰り返され得ることを意味して
いる。
【0022】図4に示した例によれば、この回路モジュ
ールは、“NOP”状態の繰り返し機能(機能定義名称:n
op)と、“RST”状態の繰り返し機能(機能定義名称:r
eset)と、“RRQ、RWAIT、RWAIT、ROUT”の状態遷移に
よるデータXdの読み出し機能(機能定義名称:byte_r
ead(Xa))とを備えていることが判る。
【0023】統括情報定義205は、回路モジュールに
おける上記機能定義204で定義された機能の生起順序
(状態遷移)を統括的に記述したもので、[ ]内に示さ
れた“|”はOR記号に相当している。図4に示して例
では、[ ]の後に*マークが付されているため、reset状
態の後で、reset、nop、またはbyte_read(Xa)の何れか
状態が発生し、何れかの状態が繰り返して起こり得るこ
とを意味している。
【0024】上記実施例では、1例として、nop、rese
t、byte_read(Xa)機能を備えたメモリのインタフェース
記述について示したが、上記メモリが、更に他の機能と
して、例えば、データ書き込み機能(機能定義名称:by
te_write(Xa))をもっていた場合、もし、このデータ書
き込み機能に特有の信号値の組合せがあれば、信号値定
義203にこの信号値の組み合わせを示す状態名(アル
ファベット名称)が追加され、機能定義204にbyte_w
rite(Xa)と信号状態遷移との関係を示す記述が追加さ
れ、統括情報定義205が、[ ]内にbyte_write(Xa)を
含む記述形式に変更される。この場合、機能記述10
は、上記byte_write(Xa)と対応する関数名をもつ機能記
述を含むことになる。
【0025】図5は、回路動作モデル記述生成ルーチン
30の1実施例を示すフローチャート、図6と図7は、
上記ルーチンによって生成される回路動作モデル記述4
0の1実施例を示す。回路動作モデル記述生成ルーチン
30では、先ず、図4に例示したインタフェース記述1
0を読み込む(ステップ301)。次に、信号値定義
(define alphabet部)203に記載された各信号値
を、それぞれの状態名(alphabet名称)をマクロ名にし
て、マクロ記述に変換する(ステップ302)。
【0026】例えば、図4の信号値定義203におい
て、NOPという状態名は、{ }内に示すように、次の
信号値組合せを表している。 clk = posedge、 rst_n = 1、 en_n = 1、 rw =
*、addr = *、 wait_n = 1、 d = Z これをC言語のマクロに変換すると次のようになる。 #define NOP ( (clk == 1) && (rst_n == 1) && (en_n
== 1)&& ( *wait_n == 1) ) ここで、インタフェース記述10の信号値定義203で
は、信号値posedgeは“0”から“1”への立上りを示
しているが、マクロでは変化後の信号値を示す“1”が
記述される。また、マクロでは、信号値が“*”や“Z”
の信号は省略され、端子定義(define port部)で入出
力属性が“output”または“inout”の信号は、例え
ば、「*wait_n」のように、信号名の前に*マークが付さ
れる。
【0027】図4の信号値定義203に示した全ての状
態名(アルファベット名称)について、上述したマクロ
変換を繰り返すことによって、図6に示すように、回路
動作モデル記述40における信号値定義部401が生成
される。
【0028】次に、インタフェース記述10のインタフ
ェース宣言部201にあるモジュール名を関数名とし、
端子定義202に記述された信号を引数とし、戻り値型
がvoidの関数名記述を生成する(ステップ303)。例
えば、図4の例では、端子定義202に、clk、rst_n、
rw、en_n、addr、wait_n、dの7つの信号が記述されて
いるが、このうち、入出力属性がinputで幅を持たない
信号はint型、入出力属性がoutputまたはinoutの信号は
int *型とし、入出力属性がinputで幅を持つ信号(ここ
ではaddr)はint []型とする。これにより、図6に示す
ように、回路動作モデル記述40における関数名記述4
02が生成される。
【0029】次に、関数内部変数を宣言する(ステップ
304)。ここでは、先ず、状態保持用の変数state
と、前状態保持用の変数prev_stateをstatic long int
型で宣言し、それぞれの初期値を“1”、“0”とす
る。次に、媒介変数iをlong int型で宣言し、信号値定
義203に入力方向の引数($iが付いた引数)があれ
ば、この引数と対応する信号のビット幅と同じ幅のint
型配列を宣言する。図4に示した信号値定義203で
は、状態名RRQの引数Xaが入力方向の引数となっている
ため、これと対応する信号addrの幅(8ビット)と同じ
幅の変数Xa[8]がint型配列として宣言される。これによ
って、図6に示すように、回路動作モデル記述40にお
ける関数内部変数宣言記述403が生成される。
【0030】この後、状態遷移動作を表す記述を生成す
る。インタフェース記述20の統括情報定義(define s
entence部)205に記述された状態遷移は、正規表現
となっているため、先ず、これと等価な有限状態機械
(非決定性有限状態機械)に変換する(ステップ30
5)。例えば、図4の記述「reset [ reset|nop|byte
_read(Xa) ]」を有限状態機械に変換すると、図8のよ
うになる。
【0031】この有限状態機械は、1つの入力系列に対
して複数の経路が存在し得る非決定性の有限状態機械と
なっているため、簡単化のために、これを決定性の有限
状態機械に変換(ステップ307)した後、C言語プロ
グラム関数に変換する(ステップ308)。
【0032】図8に示した非決定性有限状態機械を決定
性有限状態機械に変換して簡単化すると、図9に示す有
限状態機械となる。正規表現から非決定性有限状態機械
に変換したり、非決定性有限状態機械から決定性有限状
態機械に変換し、簡単化するアルゴリズムは、例えば、
岩波書店「岩波講座情報科学 6オートマトン・形式言
語理論と計算論」に記載されている。但し、上述した有
限状態機械の簡単化は、有限状態機械の動作そのものを
変える訳ではないため、回路動作モデル記述40の生成
において必ずしも不可欠な工程ではない。
【0033】図9に示した決定性有限状態機械は、ステ
ップ308で、例えば、以下のようにして、C言語プロ
グラム関数に変換される。先ず、記述404に示すよう
に、状態の切替えを宣言するステートメントswitch(sta
te) {を生成し、次に、図9の状態遷移機械の各状態に
対して番号を割り振る。最初の状態には番号1が割り当
てられる。この値は、関数内部変数を宣言部403で宣
言された変数stateの初期値に対応している。ここで、
各状態に割り当てられた状態番号をnとすると、各状態
毎に以下の処理が繰り返される。
【0034】先ず、「case nL:」を生成する。例えば、
状態番号が2であれば、図6の記述405−2の第1行
目に示すように、「case 2L:」が生成される。次に、イ
ンタフェース記述20の端子定義202にあるclock属
性の信号名clkを引用して、 if (clk == 0) { を記述する。このifブロックの中では、この状態から次
の遷移でoutput信号またはinout信号に対して代入すべ
き値を記述する。
【0035】例えば、図9に示した有限状態機械におい
て、初期状態1からの遷移はRSTのみであり、信号値定
義203が示すように、状態RSTでは、output信号wait_
nは*(don't care値)、inout信号dはZ(ハイ・インピ
ーダンス)となっているため、何も記述しない。一方、
図9の状態2では、次の遷移RST、NOP、RRQの何れにお
いてもwait_nは1であるから、 *wait_n = 1; を記述する。ただし、inout信号dは、ハイ・インピーダ
ンスを表すZとなっているため、記述する必要はない。
【0036】前の状態によって出力値を変更する必要が
ある場合は、前の状態を表すprev_stateと、現状態を表
すstateの値によって条件を分ける。また、次の遷移の
中で出力方向の引数を持つ場合は、機能記述10から該
当する関数を呼出す。例えば、図4の信号値定義203
によれば、状態ROUTで、信号dに対して出力方向の引数
「$o.Xd」が与えてある。また、機能定義204におい
て、機能byte_readに上記状態名ROUTが与えてある。そ
こで、状態ROUTが次の遷移になるような状態(ここに示
した例では、状態5)で、機能記述10から関数byte_re
adを呼出す。
【0037】本実施例では、機能記述10で定義される
関数名とインタフェース記述20の機能定義204で使
用する機能名とを同一名称としたが、予め機能名と関数
名との対応関係を定義してあれば、呼出すべき関数を別
名称としてもよい。
【0038】上記if文を“}”で終了する。この状態か
ら更に他の遷移がある場合はさらに else if ( TRANSITION ) { を続ける。ここで、TRANSITIONは遷移の名前であり、既
に述べたマクロ名でもある。このifの中では、変数prev
_stateに現状態を表すstateの値を代入し、変数stateに
はその遷移先の状態を表す値を代入する。この遷移が引
数を持ち、入力方向である場合、データを取り込む必要
がある。
【0039】図4の例では、機能byte_readに含まれる
状態名RRQがこれに該当する。RRQは信号addrに「$i.X
a」を持っているため、機能記述10の関数byte_readを
利用して、Xaに具体的な値を取り込む必要がある。そこ
で、信号addrは8ビットの幅を持つため、媒介変数iを
用いて、 for (i = 7L; i >= 0L; i--) Xa[i] = addr[i]; を記述する。現在の状態に他の遷移がある場合は、その
数だけこれを繰返す。
【0040】最後にif文を}で終了し、 else fprintf(stderr, "illegal state transition\
n"); break; を出力する。
【0041】以上を状態の数だけ繰返すことによって、
図6に示す記述405−1、405−2と、図7に示す
記述405−3〜405−5が生成される。最後に、記
述406で示すように、 で終了する。
【0042】上記変換処理によって、図2の機能記述1
0と図4のインタフェース記述20から、図6、図7に
示す回路動作モデル記述40が得られる。以上の実施例
では、回路動作モデル40をC言語で記述したが、回路
動作モデル40の記述には、C++など他のソフトウェ
ア・プログラミング言語でも適用できる。また、実施例
では、インタフェースをOwLインタフェース記法で記
述したが、機能記述との関連付けが可能であれば、イン
タフェース記述20に他の記法を適用しても構わない。
【0043】図10は、上述した回路動作モデル生成ル
ーチン30を適用して設計検証される論理回路システム
110の1例を示す。以下の説明では、簡単化のため
に、互いにハンドシェイクして動作するモジュールA:
100AとモジュールV:100Vの2つの回路モジュ
ールからなるシステム構成について示すが、本発明は、
3つ以上の回路モジュールからなる論理回路システムに
も同様に適用できる。
【0044】図10の論理回路システム110におい
て、回路モジュールAを既存のモジュール、回路モジュ
ールVを新たに設計したモジュール(設計検証対象)と
する。上記2つの回路モジュールが、信号線101、1
02、103を介して所定のプロトコルで信号(または
データ)を送受信し、互いに連携して動作するものと仮
定すると、既存の回路モジュールAは、新たな回路モジ
ュールVの周辺回路と位置付けることができる。この場
合、モジュールVの動作(設計の正しさ)を論理シミュ
レーションで検証するためには、周辺回路モジュールA
の回路動作モデルが必要となる。また、モジュールVの
出力を検証するためには、モジュールVの期待値計算モ
デルが必要となる。
【0045】図11は、上述した複数の回路モジュール
からなる論理回路システム110を検証することができ
る本発明による論理設計検証装置の構成を示す。図にお
いて、10AはモジュールAの機能記述、20Aはモジ
ュールAのインタフェース記述、10VはモジュールV
の機能記述、20VはモジュールVのインタフェース記
述であり、それぞれ前述したC言語およびOwLインタ
フェース記法によって記述され、ディスク装置などの記
憶装置に格納されている。また、60は、上記モジュー
ルAの機能記述10AとモジュールVの機能記述10B
に基づいて、論理回路システム110の全体機能を検証
するための機能シュミレータ、70は、モジュールVの
詳細設計結果50Vの正しさを検証するためのハードウ
エア・シュミレータ、80はテストデータファイル、9
0は出力装置を示す。ここで、機能シュミレータ60、
回路モデル記述生成ルーチン30、ハードウエア・シュ
ミレータ70は、それぞれ記憶媒体に記憶されたソフト
ウエアであり、計算機上で実行される。
【0046】本発明では、モジュールAの機能記述10
AとモジュールAのインタフェース記述20Aを回路動
作モデル生成ルーチン30で処理することにより、モジ
ュールAの回路動作モデル記述40Aを生成する。生成
された回路動作モデル記述40Aは、モジュールVに対
する周辺回路モデルとして、ハードウエアシュミレータ
70に供給される。これと同様に、モジュールVの機能
記述10VとモジュールVのインタフェース記述20V
を回路動作モデル生成ルーチン30で処理することによ
り、モジュールVの回路動作モデル記述40Vを生成す
る。生成された回路動作モデル記述40Vは、モジュー
ルVの期待値計算モデルとして、ハードウエアシュミレ
ータ70に供給される。
【0047】機能シュミレータ60は、図示しないプロ
グラム・ライブラリとリンクすることによって、図12
に示すように、モジュールAの機能記述(プログラム関
数)10Aをシュミレータ内に取り込むことによって形
成されるモジュールA機能モデル11Aと、モジュール
Vの機能記述(プログラム関数)10Vをシュミレータ
内に取り込むことによって形成されるモジュールV機能
モデル11Vとを結合した1つの実行可能なプログラム
を形成し、論理回路システム110の全体機能を検証す
る。
【0048】ハードウエアシュミレータ70は、図13
に示すように、モジュールAの回路動作モデル40Aを
シュミレータ内に取り込むことによって形成される周辺
回路モデル41Aと、モジュールVの回路動作モデル4
0Vをシュミレータ内に取り込むことによって形成され
る期待値計算モデル41Vと、モジュールVの詳細設計
結果をシュミレータ内に取り込むことによって形成され
た検証対象回路51Vとを結合し、これらのモデルおよ
び回路の出力を照合機能71で検証する。
【0049】上記照合機能71は、検証対象回路51V
と期待値計算モデル41Vの互いに対応する入出力信号
(outputまたはinout属性の信号)を監視し、クロック
サイクル単位で、これらの入出力値が一致しているか否
かを判定し、判定結果を出力装置90に出力する。尚、
上記照合機能61は、期待値計算モデル41Vの機能の
一部として提供するようにしてもよい。
【0050】
【発明の効果】以上の実施例から明らかなように、本発
明によれば、回路モジュールのインタフェース記述と機
能記述から、回路内部動作と入出力信号の状態遷移をク
ロックサイクル精度で定義した高精度の動作モデルを自
動的に生成できるため、回路モジュールのシュミレーシ
ョンに先だって必要となる前処理作業の工数を大幅に削
減することが可能となる。
【図面の簡単な説明】
【図1】本発明による論理設計検証装置の基本的な構成
を示す図。
【図2】機能記述10の1例を示す図。
【図3】回路モジュールのインタフェースにおける入出
力信号波形の1例を示す図。
【図4】インタフェース記述の1例を示す図。
【図5】回路動作モデル生成ルーチン30の機能を示す
フローチャート。
【図6】上記回路動作モデル生成ルーチン30によって
生成される回路動作モデル記述40の1部を示す図。
【図7】図6に示した回路動作モデル記述40の残り部
分を示す図。
【図8】インタフェース記述20の統括情報定義に記述
された状態遷移から変換された非決定性の有限状態機械
の1例を示す図。
【図9】図8の非決定性の有限状態機械から変換された
決定性の有限状態機械を示す図。
【図10】設計検証対象となる論理回路システムの1例
を示す図。
【図11】本発明による論理設計検証装置の1実施例を
示す図。
【図12】図11における機能シュミレータ60の機能
図。
【図13】図11におけるハードウエア・シュミレータ
70の機能図。
【符号の説明】
10:機能記述、20:インタフェース記述、30:回
路動作モデル記述生成ルーチン、40:回路動作モデル
記述、50:検証回路記述、60:機能シュミレータ、
70:ハードウエア・シュミレータ。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 2G032 AA01 AB01 AC08 AC09 AE12 AG07 5B046 AA08 BA03 JA05 5F064 HH01 HH05 HH06 HH08 HH10

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】回路モジュールの1群の入出力信号の状態
    遷移をクロックサイクル精度で定義したインタフェース
    記述と、上記回路モジュールが備える信号またはデータ
    の処理機能を機能毎にプログラム関数として定義した機
    能記述とを読み込み、 上記インタフェース記述で定義された入出力信号の状態
    遷移に上記機能記述で定義されたプログラム関数の内容
    を組み込むことによって、回路内部動作と入出力信号の
    状態遷移をクロックサイクル精度で定義した回路動作モ
    デル記述を生成することを特徴とする回路動作モデル生
    成方法。
  2. 【請求項2】前記インタフェース記述が、前記回路モジ
    ュールの各入出力信号の名称と属性を定義した端子定義
    部と、各クロックサイクルにおける前記入出力信号群の
    特定の信号値組合せに対して状態名を定義した信号値定
    義部と、上記状態名の特定の組み合わせに対して固有の
    機能名を定義した機能定義部と、上記回路モジュールで
    起こり得る入出力信号の状態遷移を上記機能定義部で定
    義された機能名の組合せによって統括的に定義した統括
    情報定義部とを有し、 前記機能記述における各プログラム関数が上記機能定義
    部で定義された何れかの機能名と予め関係付けられてい
    ることを特徴とする請求項1に記載の回路動作モデル生
    成方法。
  3. 【請求項3】検証対象となるハードウエア回路の1群の
    入出力信号の状態遷移をクロックサイクル精度で定義し
    たインタフェース記述と、上記ハードウエア回路が備え
    る信号またはデータの処理機能を動作クロックとは無関
    係に定義した機能記述とに基づいて、回路内部動作と入
    出力信号の状態遷移をクロックサイクル精度で定義した
    動作モデル記述を自動生成する動作モデル記述生成手段
    を備え、 上記自動生成された動作モデル記述と予め用意された上
    記ハードウエア回路の論理設計データとに基づいて、上
    記論理設計データによるハードウエア回路の動作をクロ
    ックサイクル精度で検証することを特徴とする論理設計
    検証装置。
  4. 【請求項4】論理回路の1群の入出力信号の状態遷移を
    クロックサイクル精度で定義したインタフェース記述
    と、上記論理回路が備える信号またはデータの処理機能
    を動作クロックとは無関係に定義した機能記述とに基づ
    いて、論理回路の内部動作と入出力信号の状態遷移をク
    ロックサイクル精度で定義した動作モデル記述を自動生
    成する動作モデル記述生成手段を備え、 上記動作モデル記述生成手段によって、検証対象となる
    論理回路のインタフェース記述と機能記述とから上記論
    理回路の内部動作と入出力信号の状態遷移をクロックサ
    イクル精度で定義した第1の動作モデル記述を生成し、
    上記論理回路と結合される周辺回路のインタフェース記
    述と機能記述とから上記周辺回路の内部動作と入出力信
    号の状態遷移をクロックサイクル精度で定義した第2の
    動作モデル記述を生成し、上記自動生成された第1、第
    2の動作モデルと、予め用意された上記論理回路の論理
    設計データとに基づいて、上記論理設計データによる回
    路動作をクロックサイクル精度で検証することを特徴と
    する論理設計検証装置。
  5. 【請求項5】検証対象となるハードウエア回路の論理設
    計データを記憶するための第1の記憶手段と、 上記ハードウエア回路に結合される周辺回路の1群の入
    出力信号の状態遷移をクロックサイクル精度で定義した
    インタフェース記述と、上記周辺回路が備える信号また
    はデータの処理機能を動作クロックとは無関係に定義し
    た機能記述とに基づいて、上記周辺回路の内部動作と入
    出力信号の状態遷移をクロックサイクル精度で定義した
    動作モデル記述を自動的に生成し、第2の記憶手段に記
    憶する動作モデル記述生成手段とを備え、 上記第1の記憶手段に記憶された上記ハードウエア回路
    の論理設計データと、上記第2の記憶手段に記憶された
    周辺回路の動作モデル記述とに基づいて、上記ハードウ
    エア回路の動作をクロックサイクル精度で検証すること
    を特徴とする論理設計検証装置。
  6. 【請求項6】前記インタフェース記述が、前記回路の各
    入出力信号の名称と属性を定義した端子定義部と、各ク
    ロックサイクルにおける前記入出力信号群の特定の信号
    値組合せに対して状態名を定義した信号値定義部と、上
    記状態名の特定の組み合わせに対して固有の機能名を定
    義した機能定義部と、上記論理回路モジュールで起こり
    得る入出力信号の状態遷移を上記機能定義部で定義され
    た機能名の組合せによって統括的に定義した統括情報定
    義部とを有し、 前記機能記述が、前記回路が備える信号またはデータの
    処理機能を上記機能定義部で定義された何れかの機能名
    と予め関係付けられたプログラム関数として定義してお
    り、 前記動作モデル記述生成手段が、上記機能名とプログラ
    ム関数との関係を利用して上記インタフェース記述と機
    能記述とを結合し、前記動作モデルを生成することを特
    徴とする請求項3〜請求項5の何れかに記載の論理設計
    検証装置。
  7. 【請求項7】回路モジュールの1群の入出力信号の状態
    遷移をクロックサイクル精度で定義したインタフェース
    記述を外部ファイルから読み込むステップと、 上記インタフェース記述で定義されたクロックサイクル
    毎の入出力信号値の組合せと状態名との対応関係をマク
    ロ記述に変換するステップと、 上記インタフェース記述における入出力信号定義に基づ
    いて、複数の内部変数を含む関数名を生成するステップ
    と、 上記インタフェース記述における入出力信号の状態遷移
    定義に基づいて、上記回路モジュールの状態遷移をモデ
    ル化した決定性有限状態機械を生成するステップと、 上記回路モジュールが備える信号またはデータの処理機
    能を定義した機能記述ファイルを選択的に参照しつつ、
    上記決定性有限状態機械の動作を所定のルールでプログ
    ラム関数に変換するステップとからなる回路動作モデル
    生成ソフトウエアを記録したことを特徴とするコンピュ
    ータで読み取り可能な記憶媒体。
JP2000268393A 2000-08-31 2000-08-31 回路動作モデル記述の生成方法および論理設計検証装置 Pending JP2002073719A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000268393A JP2002073719A (ja) 2000-08-31 2000-08-31 回路動作モデル記述の生成方法および論理設計検証装置
US09/906,756 US6536031B2 (en) 2000-08-31 2001-07-18 Method for generating behavior model description of circuit and apparatus for logic verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000268393A JP2002073719A (ja) 2000-08-31 2000-08-31 回路動作モデル記述の生成方法および論理設計検証装置

Publications (1)

Publication Number Publication Date
JP2002073719A true JP2002073719A (ja) 2002-03-12

Family

ID=18755177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000268393A Pending JP2002073719A (ja) 2000-08-31 2000-08-31 回路動作モデル記述の生成方法および論理設計検証装置

Country Status (2)

Country Link
US (1) US6536031B2 (ja)
JP (1) JP2002073719A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191837A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd 装置モデル変換器およびそれを用いた情報システム
WO2015030095A1 (ja) 2013-08-29 2015-03-05 オムロン株式会社 シミュレーション装置およびシミュレーションプログラム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049652A (ja) * 2000-08-03 2002-02-15 Hiroshi Yasuda デジタル回路設計方法、そのコンパイラーおよびシミュレータ
US20030023950A1 (en) * 2001-01-10 2003-01-30 Wei Ma Methods and apparatus for deep embedded software development
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
JP2003030262A (ja) * 2001-07-19 2003-01-31 Hitachi Ltd Ipの仕様と回路の比較結果の認定を特徴とするip認定方法、および前記認定方法により出荷されたip
JP2003186929A (ja) * 2001-12-18 2003-07-04 Hitachi Ltd インタフェース仕様定義を記録した記憶媒体
JP2003222659A (ja) * 2002-01-31 2003-08-08 Umc Japan 解析シミュレータ、解析シミュレート方法及び解析シミュレートプログラム
EP1387261A1 (fr) * 2002-07-30 2004-02-04 Sereneo Logiciel de generation de code d'application informatique et langage de description de logiciel
GB0226803D0 (en) * 2002-11-16 2002-12-24 Koninkl Philips Electronics Nv State machine modelling
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
US6983435B2 (en) * 2003-06-19 2006-01-03 International Business Machines Corporation Integrated design verification and design simplification system
US7451299B2 (en) * 2003-07-18 2008-11-11 Bea Systems, Inc. System and method for generating multi-way branches
JP4251964B2 (ja) * 2003-11-10 2009-04-08 富士通マイクロエレクトロニクス株式会社 検証装置、検証方法およびプログラム
US7231619B1 (en) * 2004-03-03 2007-06-12 Marvell Semiconductor Israel Ltd. Extended model checking hardware verification
US7290241B1 (en) * 2004-08-06 2007-10-30 Xilinx, Inc. Method and system for managing behavior of algorithms
JP2006048525A (ja) * 2004-08-06 2006-02-16 Toshiba Corp シミュレーション方法
US7360177B1 (en) 2004-08-06 2008-04-15 Xilinx, Inc. Method and arrangement providing for implementation granularity using implementation sets
JP4481762B2 (ja) * 2004-08-13 2010-06-16 富士通株式会社 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
DE102004044963A1 (de) * 2004-09-16 2006-04-06 Tatung Co., Ltd. Protokollverfahren für wiederverwendbare Hardware-IP bei einer System-on-Chip-Vorrichtung
US7240310B2 (en) * 2004-12-07 2007-07-03 International Business Machines Corporation Method, system and program product for evaluating a circuit
US7302656B2 (en) * 2005-06-21 2007-11-27 International Business Machines Corporation Method and system for performing functional verification of logic circuits
US7711537B2 (en) * 2006-05-03 2010-05-04 International Business Machines Corporation Signals for simulation result viewing
JP4445517B2 (ja) * 2007-05-14 2010-04-07 株式会社東芝 回路設計検証方法および回路設計検証のためのプログラム
JP5163308B2 (ja) * 2008-06-23 2013-03-13 富士通セミコンダクター株式会社 Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム
WO2014061312A1 (ja) * 2012-10-16 2014-04-24 日本電気株式会社 回路シミュレーション装置、回路シミュレーション方法及びプログラム
US9026966B1 (en) * 2014-03-13 2015-05-05 Cadence Design Systems, Inc. Co-simulation methodology to address performance and runtime challenges of gate level simulations with, SDF timing using emulators
KR102301651B1 (ko) * 2015-06-02 2021-09-14 에스케이하이닉스 주식회사 테스트 패턴 발생 장치 및 방법, 이를 이용한 테스트 시스템과, 컴퓨터 프로그램
US10635766B2 (en) 2016-12-12 2020-04-28 International Business Machines Corporation Simulation employing level-dependent multitype events
US10606971B2 (en) * 2017-11-29 2020-03-31 International Business Machines Corporation Testing netlists based on singular independent signals

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6074428A (en) * 1994-10-19 2000-06-13 Hewlett-Packard Company Minimizing logic by resolving "don't care" output values in a finite state machine
US5670375A (en) * 1996-02-21 1997-09-23 Biomerieux Vitek, Inc. Sample card transport method for biological sample testing machine
JP4142176B2 (ja) 1998-10-20 2008-08-27 株式会社ルネサステクノロジ インタフェース仕様定義を記録した記憶媒体、及び接続検証方法、及び信号パタン生成方法
US6308292B1 (en) * 1998-12-08 2001-10-23 Lsi Logic Corporation File driven mask insertion for automatic test equipment test pattern generation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191837A (ja) * 2010-03-12 2011-09-29 Hitachi Ltd 装置モデル変換器およびそれを用いた情報システム
WO2015030095A1 (ja) 2013-08-29 2015-03-05 オムロン株式会社 シミュレーション装置およびシミュレーションプログラム

Also Published As

Publication number Publication date
US6536031B2 (en) 2003-03-18
US20020046391A1 (en) 2002-04-18

Similar Documents

Publication Publication Date Title
JP2002073719A (ja) 回路動作モデル記述の生成方法および論理設計検証装置
US7020722B2 (en) Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
JPH10116302A (ja) 集積回路の設計方法及びそれによって設計された集積回路
US7822591B2 (en) Logic circuit model conversion apparatus and method thereof; and logic circuit model conversion program
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
JP2002368104A (ja) 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法
EP1376413A1 (en) Test bench generator for integrated circuits, particularly memories
US7231338B2 (en) Distributed simulation system having phases of a timestep
JP4142176B2 (ja) インタフェース仕様定義を記録した記憶媒体、及び接続検証方法、及び信号パタン生成方法
US6957178B2 (en) Incremental automata verification
Oberg et al. Grammar-based hardware synthesis from port-size independent specifications
Bensalem et al. A Simplified Approach for Testing Real-Time Systems Based on Action Refinement.
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US20030140054A1 (en) Processor composing apparatus, system LSI composing apparatus, processor composing method, system LSI composing method, and program therefor
JP3048969B2 (ja) サイクルベースシミュレータ
JP2007156728A (ja) 論理検証方法及び論理検証システム
Lin et al. Hierarchical optimization of asynchronous circuits
JP2003345849A (ja) 論理シミュレーション方法および装置
CN116911219A (zh) 用于逻辑系统设计的仿真的方法、电子设备和存储介质
JP3640684B2 (ja) テスト系列生成装置及びテスト容易化設計装置
JP2003067442A (ja) 非同期回路のタイミング検証装置とそのタイミング検証方法
JPH10261005A (ja) 有限状態機械変換装置及び変換方法
Siegmund et al. An approach to specification and synthesis of adaptive interfaces of reusable hardware modules
Abrar et al. SystemC-Based Loose Models for Simulation Speed-Up by Abstraction of RTL IP Cores
JP2000113010A (ja) タイミング解析システムおよびタイミング解析方法ならびに論理合成システムおよび論理合成方法