JP2003233634A - 回路機能検証方法及びプログラム - Google Patents

回路機能検証方法及びプログラム

Info

Publication number
JP2003233634A
JP2003233634A JP2002030388A JP2002030388A JP2003233634A JP 2003233634 A JP2003233634 A JP 2003233634A JP 2002030388 A JP2002030388 A JP 2002030388A JP 2002030388 A JP2002030388 A JP 2002030388A JP 2003233634 A JP2003233634 A JP 2003233634A
Authority
JP
Japan
Prior art keywords
instruction
data
cpu
hardware
circuit
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
JP2002030388A
Other languages
English (en)
Inventor
Takehisa Shiraishi
偉久 白石
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2002030388A priority Critical patent/JP2003233634A/ja
Publication of JP2003233634A publication Critical patent/JP2003233634A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

(57)【要約】 【課題】ハードウェアの検証を迅速且つ確実に行うこと
のできる回路機能検証方法及びプログラムを提供する。 【解決手段】命令デコーダ18は、バス13gの内容を
監視してCPU13aが処理する命令を解析する。比較
回路19は、命令デコーダ18がロード命令を検出する
と、その命令により読み出すデータと該命令実行後にC
PU13aの内部レジスタ20に読み込まれたデータと
を比較する。又、比較回路19は、命令デコーダ18が
ストア命令を検出すると、その命令により書き込む内部
レジスタ20のデータと該命令実行後に書き込まれたデ
ータとを比較する。そして、論理シミュレータ11は、
比較回路19から不一致を示す判定信号が出力されると
き、ハードウェア13に不具合があると判断する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は回路機能検証方法及
びプログラムに係り、詳しくは、ハードウェア記述言語
で設計されたハードウェアとそれを制御するソフトウェ
アとを含むデジタル回路における回路データの機能検証
を行う際に使用して好適な回路機能検証方法及びプログ
ラムに関する。
【0002】
【従来の技術】半導体集積回路(LSI)は、その試作
を行う前に回路データの機能検証が行われる。例えば、
ハードウェアとそれを制御するソフトウェア(ファーム
ウェア)から構成されるデジタル回路等は、それを機能
記述した動作モデルを用いて実際の動作を論理シミュレ
ータにてシミュレートすることで回路データの機能検証
を行い、それにより回路試作後の動作精度を向上させ
る。従来、このようなデジタル回路(回路データ)の検
証を行うための方法として、例えば以下の2つの方法が
ある。
【0003】第1従来例:ハードウェアの動作を検証す
る論理シミュレータとファームウェアの動作を検証する
ソフトウェアデバッガとを別々に動作させ、それら論理
シミュレータ及びソフトウェアデバッガでの各実行結果
を比較する。
【0004】第2従来例:論理シミュレータとソフトウ
ェアデバッガをハードウェア/ソフトウェア(以下、H
W/SW)協調検証ツールを介して接続し、ソフトウェ
アデバッガの動作と同期させながらハードウェアのシミ
ュレーションを行い、論理シミュレータ及びソフトウェ
アデバッガでの各実行結果を比較する。
【0005】図7は、第1従来例の検証方法を説明する
設計支援装置のブロック図である。同図に示すように、
設計支援装置は、ハードウェア51の検証を行う論理シ
ミュレータ52と、そのハードウェア51を制御するフ
ァームウェア53の検証を行うソフトウェアデバッガ5
4とを含む。
【0006】ハードウェア51は、VHDL等のハード
ウェア記述言語(以下、HDL)で機能記述され、CP
U51a、プログラムメモリ51b、データメモリ51
c及びユーザ回路51d等の各種機能ブロックを含み、
それらはバス51eを介して相互に接続されるように関
連付けられている。尚、ハードウェア51の構成は、図
7に示す構成のみに限らず、設計するハードウェアに応
じた各種機能ブロックを適宜含むようにして構成され
る。
【0007】ファームウェア53は、C言語等のプログ
ラミング言語(高級言語)で記述されたプログラムであ
って、このプログラムはコンパイラ/リンカ55にてC
PU51aが実行可能な機械語等に変換(コンパイル/
リンク)された後、プログラムメモリ51b内に格納さ
れる。
【0008】ソフトウェアデバッガ54は、CPU51
aの命令動作をシミュレートするインストラクション・
セット・シミュレータ(以下、ISS)56を備える。
つまり、ISS56は、CPU51aに代わってファー
ムウェア53を実行することでファームウェア53の動
作を検証し、期待値を生成する。
【0009】論理シミュレータ52は、プログラムメモ
リ51b内に格納されたコンパイル/リンク処理後のフ
ァームウェア53をCPU51aにて実行し、ハードウ
ェア51の論理シミュレーションを行う。そして、論理
シミュレータ52によるシミュレーション結果とソフト
ウェアデバッガ54にて生成された期待値とを比較する
ことにより、ハードウェア51の動作を検証する。つま
り、シミュレーション結果と期待値とを比較し、それら
が一致する場合はハードウェア51の動作が正常である
と判断される。
【0010】図8は、第2従来例の検証方法を説明する
設計支援装置のブロック図である。設計支援装置は、ハ
ードウェア61の検証を行う論理シミュレータ62と、
そのハードウェア61を制御するファームウェア63の
検証を行うソフトウェアデバッガ64と、HW/SW協
調検証ツール(以下、協調検証ツール)65とを含む。
【0011】ハードウェア61は、CPUモデル61
a、プログラムメモリ61b、データメモリ61c及び
ユーザ回路61d等の各種機能ブロックを含み、それら
はバス61eを介して相互に接続されるように関連付け
られている。ここで、CPUモデル61aは、HDLで
機能記述されるCPUをC言語の記述に置き換えて構成
したものであり、プログラムメモリ61b、データメモ
リ61c及びユーザ回路61dは、HDLで機能記述さ
れている。尚、ハードウェア61の構成は、図8に示す
構成のみに限らず、設計するハードウェアに応じた各種
機能ブロックを適宜含むようにして構成される。
【0012】ファームウェア63は、前記ファームウェ
ア53と同様に例えばC言語で記述されるプログラムで
あって、このプログラムはコンパイラ/リンカ66にて
CPUモデル61aが実行可能な機械語等に変換(コン
パイル/リンク)された後、プログラムメモリ61b内
に格納される。
【0013】ソフトウェアデバッガ64は、協調検証ツ
ール65を介して論理シミュレータ62と接続されてい
る。具体的には、ソフトウェアデバッガ64はISS6
7を備え、そのISS67は協調検証ツール65に接続
され、協調検証ツール65はバスインタフェース68を
介してCPUモデル61aと接続される。
【0014】ソフトウェアデバッガ64において、IS
S67は、前記と同様にCPUモデル61aの命令動作
をシミュレートしてファームウェア63の動作を検証
し、該ファームウェア63のプログラム実行の際の期待
値を生成する。
【0015】協調検証ツール65は、そのISS67の
動作に基づいてCPUモデル61aの動作を制御する。
CPUモデル61aは、その協調検証ツール65からの
制御に基づいてプログラムメモリ61b内に格納された
上記コンパイル/リンク処理後のファームウェア63を
実行する。これにより、論理シミュレータ62にてハー
ドウェア61のシミュレーションが実施される。
【0016】このように、協調検証ツール65は、IS
S67の動作に対応してCPUモデル61aの動作を制
御することで、ISS67の動作を論理シミュレータ6
2に反映させる。従って、論理シミュレータ62は、ソ
フトウェアデバッガ64の動作と同期してハードウェア
61のシミュレーションを行う。
【0017】そして、論理シミュレータ62によるシミ
ュレーション結果とソフトウェアデバッガ64にて生成
された期待値とを比較することにより、ハードウェア6
1の動作を検証する。即ち、シミュレーション結果と期
待値とを比較し、それらが一致する場合はハードウェア
61の動作が正常であると判断される。
【0018】このように、従来では、上述した第1又は
第2従来例の検証方法を用いて、回路試作前に論理シミ
ュレータにてハードウェア51,61のシミュレーショ
ンを行うことで、回路(回路データ)の機能を検証す
る。
【0019】
【発明が解決しようとする課題】ところで、ハードウェ
ア記述言語(HDL)で構成された回路を検証する論理
シミュレータの検証速度は一般的に遅い。従って、第1
従来例の検証方法では、ハードウェア51を構成するC
PU51aの動作モデルがHDLで記述されているた
め、論理シミュレータ52の検証速度が遅く、その結
果、シミュレーションに多大な時間を費やしていた。
【0020】一方、第2従来例の検証方法では、ハード
ウェア61を構成するCPUモデル61aはC言語等で
記述された動作モデルを持つため、HDLで記述されて
いる動作モデルより非常に高速な検証を行うことができ
る。従って、第1従来例に比べ、論理シミュレータ62
でのシミュレーション時間を短くすることができる。
【0021】また、第2従来例では、協調検証ツール6
5によってソフトウェアデバッガ64と論理シミュレー
タ62の強調動作(同期動作)が可能である。このた
め、ファームウェア63のソースコードにおける任意の
個所にブレークポイントを設定して論理シミュレータ6
2によるシミュレーションを一時停止させ、その時点で
のハードウェア61の動作を随時確認することもでき
る。
【0022】しかしながら、第1従来例及び第2従来例
の検証方法では、論理シミュレータによるハードウェア
の検証に際して該ハードウェアに不具合が存在するか否
かを判断することが困難であるという問題があった。
【0023】詳述すると、第1従来例においてハードウ
ェア51の検証は、論理シミュレータ52によるシミュ
レーション結果とソフトウェアデバッガ54にて生成さ
れた期待値とを比較することにより行う。その際、シミ
ュレーション結果と期待値とが一致しなかった場合は、
その原因がハードウェア51,61かファームウェア5
3,63の何れか、又は双方にあるのかを特定すること
が難しく、不具合個所を特定するために多大な時間を費
やしていた。従って、ハードウェア51の検証を迅速か
つ確実に行うことができなかった。こうした問題は、第
2従来例においてハードウェア61を検証する際にも同
様に生じていた。
【0024】本発明はこうした実情に鑑みてなされたも
のであり、その目的は、ハードウェアの検証を迅速且つ
確実に行うことのできる回路機能検証方法及びプログラ
ムを提供することにある。
【0025】
【課題を解決するための手段】以下、上記目的を達成す
るための手段及びその作用効果について記載する。請求
項1記載の発明は、ハードウェアと該ハードウェアを制
御するソフトウェアとを含み記憶手段に記憶された回路
データを論理シミュレータにて検証する回路機能検証方
法として、前記回路データには、命令を実行するCPU
の動作を記述したCPUブロックと、前記ソフトウェア
を記憶するメモリブロックと、前記CPUにバスを介し
て接続される周辺回路の動作を記述した少なくとも1つ
の周辺回路ブロックとが含まれ、前記メモリブロックか
ら読み出され前記CPUブロックにて処理される命令を
解析し、前記命令がデータの転送命令の場合に、該命令
に応じて転送元に格納されているデータ内容と転送先に
格納されているデータ内容とを該命令実行後に比較する
ようにした、ことをその要旨とする。
【0026】上記方法によれば、論理シミュレータは、
CPUブロックにて処理する命令がロード命令又はスト
ア命令である際には、該命令が正常に実行されたか否か
を判定するようにしたため、ハードウェアに不具合が存
在する場合には、その異常を1回のシミュレーションで
確実に検出することができるようになる。
【0027】請求項2記載の発明は、請求項1記載の回
路機能検証方法において、前記回路データは、前記ハー
ドウェアに存在するバスの状態を監視し、前記CPUブ
ロックにて処理する命令がデータの転送命令の場合に、
該命令のオペランドを解析し、前記CPUブロックが実
行するデータ転送の転送元及び転送先の情報を出力する
デコードブロックを含む、ことをその要旨とする。
【0028】上記方法によれば、デコードブロックは、
CPUブロックにて処理する命令がロード命令又はスト
ア命令であると、該命令のオペランドを解析し、該命令
によるデータの転送元及び転送先の情報を出力する。そ
して、論理シミュレータは、このデコードブロックから
出力される情報に基づいてロード命令又はストア命令が
正常に実行されたか否かをデータ比較する。従って、こ
のようなデコードブロックを含むことでハードウェアの
不具合を迅速に特定することができるようになる。
【0029】請求項3記載の発明は、請求項1又は2記
載の回路機能検証方法において、前記論理シミュレータ
は、前記命令がデータの転送命令の場合に前記転送元及
び転送先のデータ内容が一致しているか否かの判定信号
を出力するデータ比較手段を含む、ことをその要旨とす
る。
【0030】上記方法によれば、データ比較手段は、C
PUブロックにて処理する命令がロード命令又はストア
命令であると、該命令実行後に、データの転送元及び転
送先のデータ内容が一致しているか否かを判定する。そ
して、論理シミュレータは、このデータ比較手段からの
判定信号によって、ハードウェアの不具合を検出する。
これにより、仮にソフトウェア等に不具合がある場合で
あっても、ハードウェアにおける不具合の存在の有無を
確実に検出できるようになる。
【0031】請求項4記載の発明は、ハードウェアと該
ハードウェアを制御するソフトウェアとを含み記憶手段
に記憶された回路データを検証する論理シミュレータ
と、前記ソフトウェアを検証するソフトウェアデバッガ
とを協調検証ツールにて協調動作させて検証する回路機
能検証方法として、前記回路データには、命令を実行す
るCPUの動作を記述したCPUブロックと、前記ソフ
トウェアを記憶するメモリブロックと、前記CPUにバ
スを介して接続される周辺回路の動作を記述した少なく
とも1つの周辺回路ブロックとが含まれ、前記ソフトウ
ェアデバッガにて解析した命令がデータの転送命令の場
合に、該命令に応じて転送元に格納されているデータ内
容と転送先に格納されているデータ内容とを該命令実行
後に前記論理シミュレータにて比較するようにした、こ
とをその要旨とする。
【0032】上記方法によれば、論理シミュレータは、
ソフトウェアデバッガにて解析した命令がロード命令又
はストア命令である際には、該命令が正常に実行された
か否かを判定するようにしたため、ハードウェアに不具
合が存在する場合には、その異常を1回のシミュレーシ
ョンで確実に検出することができるようになる。この
際、CPUブロックはC言語等の高級言語で記述された
動作モデルであるため、論理シミュレータによるシミュ
レーションは協調検証ツールを介してソフトウェアデバ
ッガと協調動作して行われる。従って、検証速度を高速
にしながら、該検証を確実に実施することができる。
【0033】請求項5記載の発明は、請求項4記載の回
路機能検証方法において、前記ソフトウェアデバッガは
前記命令がデータの転送命令の場合に検出信号を出力
し、前記論理シミュレータは、前記検出信号及び前記C
PUブロックの動作状態を示す信号に基づいて前記転送
元及び転送先のデータ内容が一致しているか否かの判定
信号を出力するデータ比較手段を含む、ことをその要旨
とする。
【0034】上記方法によれば、データ比較手段は、命
令がロード命令又はストア命令であると、ソフトウェア
デバッガからの検出信号及びCPUブロックの動作状態
を示す信号に基づいて、該命令実行後に、データの転送
元及び転送先のデータ内容が一致しているか否かを判定
する。そして、論理シミュレータは、このデータ比較手
段からの判定信号によって、ハードウェアの不具合を検
出する。これにより、仮にソフトウェア等に不具合があ
る場合であっても、ハードウェアにおける不具合の存在
の有無を確実に検出できるようになる。
【0035】請求項6記載の発明は、ハードウェアと該
ハードウェアを制御するソフトウェアとを含み記憶手段
に記憶された回路データを論理シミュレータにて機能検
証するために前記回路データに組み込まれるプログラム
として、前記プログラムは、前記ハードウェアに存在す
るバスの状態を監視し、CPUブロックにて処理する命
令がデータの転送命令の場合に、該命令のオペランドを
解析するステップと、前記CPUブロックが実行するデ
ータ転送の転送元及び転送先の情報を出力するステップ
とを含む、ことをその要旨とする。
【0036】上記ステップを含むプログラムを実行する
ことで、論理シミュレータは、CPUブロックにて処理
する命令がロード命令又はストア命令である場合には、
該命令のオペランドを解析し、該命令によるデータの転
送元及び転送先の内容を比較することで、ロード命令又
はストア命令が正常に実行されたか否かを判定すること
ができる。これにより、ハードウェアの不具合の検出を
迅速に行うことができるようになる。
【0037】
【発明の実施の形態】(第1の実施形態)以下、本発明
に係る第1の実施形態について、図面を参照して説明す
る。
【0038】図1は、本実施形態の検証方法を説明する
設計支援装置のブロック図である。設計支援装置は、一
般的なCAD(Computer Aided Design) 装置であっ
て、論理シミュレータ11及びソフトウェアデバッガ1
2を含む。論理シミュレータ11は、図2に示すハード
ウェア13を検証するシミュレータであり、ソフトウェ
アデバッガ12は、そのハードウェア13を制御するソ
フトウェアとしてのファームウェア14を検証するシミ
ュレータである。
【0039】このような論理シミュレータ11によるハ
ードウェア13の検証は、パーソナルコンピュータ、ワ
ークステーション等の汎用的な目的で使用される計算機
上で実行するコンピュータプログラムにより実現する。
尚、複数の計算機を接続したシステムによりシステムに
より実現することもできる。
【0040】計算機は、処理装置、記憶手段としての主
記憶装置や補助記憶装置、入出力装置などから構成さ
れ、コンピュータプログラムを実行するものである。こ
のコンピュータプログラムは、CD−ROM等の可搬型
媒体やネットワーク接続された他の計算機の主記憶装置
や補助記憶装置等に格納されて提供される。
【0041】提供されたコンピュータプログラムは、可
搬型媒体から直接計算機の主記憶装置にロードされ、ま
たは可搬型媒体から一旦補助記憶装置にコピーまたはイ
ンストール後に主記憶装置にロードされ実行される。ま
た、ネットワーク接続された他の装置に格納されて提供
された場合も、他の装置からネットワークを経由して受
信後に補助記憶装置にコピーまたはインストールされ、
主記憶装置にロードされ実行される。
【0042】本実施形態にて検証を行うハードウェア1
3は、図2に示すようにCPU13a、プログラムメモ
リ13b、第1及び第2ユーザ回路13c,13d、デ
ータメモリ13e、バスコントローラ13fを含む各種
機能ブロックから構成され、それらはバス13gを介し
て相互に接続されるように関連付けられている。
【0043】ここで、上記各種機能ブロックは、VHD
L(Very High Speed IC-HardwareDescription Languag
e)等のハードウェア記述言語(以下、HDL)で回路
動作を機能記述したハードウェア13の回路データであ
り、この回路データは論理シミュレータ11の記憶手段
に記憶される。尚、ハードウェア13の構成は、図2に
示す構成のみに限らず、設計するハードウェアに応じた
各種機能ブロックを適宜含むようにして構成される。
【0044】このようなハードウェア13において、プ
ログラムメモリ13bには、ファームウェア14がCP
U13aにて実行可能な形態で格納される。詳述する
と、ファームウェア14は、C言語等のプログラミング
言語(高級言語)で記述され、コンパイラ15及びリン
カ16を介してCPU13aが実行可能とする機械語等
の命令列に変換されてプログラムメモリ13b内に格納
される。
【0045】ソフトウェアデバッガ12は、そのファー
ムウェア14の動作を検証するためのインストラクショ
ン・セット・シミュレータ(以下、ISS)17を備え
ている。ISS17は、CPU13aの命令動作をシミ
ュレートし、該CPU13aに代わってファームウェア
14を実行することにより、ファームウェア14の動作
検証を行う。こうして、ソフトウェアデバッガ12によ
る検証が完了したファームウェア14は、上記した様に
コンパイラ15及びリンカ16を介してCPU13aが
実行可能な機械語に変換された後、プログラムメモリ1
3b内に格納される。
【0046】そして、論理シミュレータ11は、プログ
ラムメモリ13bに格納されたコンパイル/リンク処理
後のファームウェア14をCPU13aにて実行し、ハ
ードウェア13の動作をシミュレートすることで該ハー
ドウェア13の機能検証を行う。
【0047】本実施形態において、論理シミュレータ1
1によるこのようなハードウェア13の機能検証を行う
際、該ハードウェア13の回路データには、デコードブ
ロックとしての命令デコーダ18がさらに含まれる。詳
しくは、この命令デコーダ18は、図1に示すように、
ハードウェア13の機能検証を行う際に該ハードウェア
13に対して接続可能とするように関連付けられて記述
されたプログラムであり、前記同様に論理シミュレータ
11の記憶手段に記憶されている。
【0048】命令デコーダ18は、シミュレーション時
にバス13gを介してCPU13aと接続されるように
関連付けられ、CPU13aによるファームウェア14
の実行において該CPU13aが処理する命令を解析す
る。そして、命令デコーダ18は、その解析した命令が
データの転送命令である場合に、該転送命令の転送元及
び転送先の情報を持つ検出信号D1を該命令実行後に出
力する。
【0049】ここで、本実施形態で説明するデータの転
送命令とは、具体的にはロード命令もしくはストア命令
である。ちなみに、ロード命令は、転送元のデータ記憶
領域(データメモリ13eや第1及び第2ユーザ回路1
3c,13dが有するレジスタ(図示略)等)に格納さ
れたデータを、転送先のCPU13aの内部レジスタ2
0に読み出す命令である。一方、ストア命令は、転送元
のCPU13aの内部レジスタ20に格納されているデ
ータを、転送先のデータ記憶領域に書き込む命令であ
る。
【0050】論理シミュレータ11は、データ比較手段
としての比較回路19を備え、比較回路19は、命令デ
コーダ18からの検出信号D1に応答して、CPU13
aが処理する命令が正常に実行されたか否かをデータ判
定し、判定信号D2を出力する。
【0051】詳述すると、比較回路19は、ロード命令
を検出した命令デコーダ18からの検出信号D1に応答
して、その命令により読み出すCPU13aのアクセス
先のデータと該命令実行後に内部レジスタ20に読み込
まれたデータとを比較する。そして、比較回路19は、
それら互いのデータが一致するか否かを示す判定信号D
2を出力する。
【0052】また、比較回路19は、ストア命令を検出
した命令デコーダ18からの検出信号D1に応答して、
その命令により書き込む内部レジスタ20のデータと該
命令実行後に書き込まれたCPU13aのアクセス先の
データとを比較する。そして、比較回路19は、それら
互いのデータが一致するか否かを示す判定信号D2を出
力する。
【0053】その結果、論理シミュレータ11は、比較
結果が一致する場合にハードウェア13の動作が正常で
あると判断し、逆に、比較結果が一致しない場合は、ハ
ードウェア13の動作に不具合があると判断して警告を
発生する。
【0054】次に、ハードウェア13の検証に際して論
理シミュレータ11でのシミュレーション動作の詳細な
流れを、図1を参照しながら説明する。尚、検証を行う
にあたって、ファームウェア14は、ソフトウェアデバ
ッガ12に含まれるISS17により動作確認が行われ
る。また、ハードウェア13に含まれる個々の機能ブロ
ック(CPU13a、プログラムメモリ13b,第1及
び第2ユーザ回路13c,13d、データメモリ13
e,バスコントローラ13f)については検証が完全に
終了しているとする。
【0055】先ず、CPU13aは、バス13g(具体
的にはアドレスバス)にプログラムメモリ13bの先頭
アドレスである例えば0x10000000を送出する。バス13
gの状態を監視するバスコントローラ13fは、そのア
ドレスを察知し、図3に示すメモリマップ21を参照し
て該アドレスの送信先をデコードし、アドレス送信先の
機能ブロックへのアクセスを許可する制御信号を生成す
る。即ち、バスコントローラ13fは、バス13gに送
出されたアドレス(0x10000000)がプログラムメモリ1
3bの領域に割り当てられたアドレスであることをメモ
リマップ21から解釈し、そこへのアクセスを許可する
制御信号を生成する。
【0056】その制御信号とアドレス(0x10000000)を
受け取ったプログラムメモリ13bは、0番地に対応す
るインストラクション(命令)をバス13g(具体的に
はデータバス)に送出する。そして、CPU13aは、
バス13gから得たデータを命令であると解釈し、その
命令を実行する。この際、命令デコーダ18は、バス1
3gの内容を監視してCPU13aが処理する命令を解
析する。
【0057】図4は、一般的な命令形態の例を示す説明
図である。尚、図は例としてロード命令の形態例を示
す。命令は、命令の種類を示すオペコード部31と、C
PU13aの内部レジスタ20を指定する第1オペラン
ド32と、CPU13aのアクセス先のアドレスを指定
する第2オペランド33とから構成されている。
【0058】ここで、第2オペランド33の指定方法と
しては、例えば以下のような方法がある。 (1)読み込むデータ(又は書き込むデータ)のアドレ
スをデータ内容として格納しているCPU13aの内部
レジスタ20を指定する方法(例.[R2])。 (2)CPU13aの内部レジスタ20が格納するデー
タ内容に、具体的な数値オフセットを足し合わせて指定
する方法(例.[R2]+0x00000008)。 (3)CPU13aの内部レジスタ20が格納するデー
タ内容に、そのCPU13aが有する別の内部レジスタ
が示すデータ内容を足し合わせて指定する方法(例.
[R2]+[R3])。
【0059】尚、図4は、上述した(1)の指定方法に
て第2オペランド33が指定される場合のロード命令の
一形態を示す。即ち、このロード命令は、第2オペラン
ド33が示すアドレス(内部レジスタ20(図中、R
2)に格納されている)のデータメモリ13eの内容を
第1オペランド32が示す内部レジスタ20(図中、R
1)に読み込む命令である。
【0060】今、図1の命令デコーダ18にて解析した
命令が、例えばデータメモリ13eのアドレスに格納さ
れているデータをCPU13aの内部レジスタ20に読
み出すロード命令である場合について説明する。
【0061】CPU13aは、第2オペランド33が示
すアドレス(例えば0x40000000)をバス13g(具体的
にはアドレスバス)に送出する。このアドレスを察知し
たバスコントローラ13fは、前記と同様に図3のメモ
リマップ21に従ってデータメモリ13eへのアクセス
を許可する制御信号を生成する。
【0062】その制御信号に応答してデータメモリ13
eは、該送出されたアドレス(0x40000000)に格納され
ているデータをバス13g(具体的にはデータバス)に
送出する。そして、CPU13aは、データメモリ13
eが送出したデータを受け取り、そのデータを第1オペ
ランド32が示す内部レジスタ20に格納する。以下、
このような手順を繰り返すことにより、論理シミュレー
ションが進められる。
【0063】図5は、命令デコーダ18にて解析される
命令列及び比較回路19におけるデータ比較処理の概念
を示す説明図である。今、命令デコーダ18は、解析し
た命令が例えばデータメモリ13eのアドレスに格納さ
れているデータを内部レジスタ20に読み出すロード命
令(Load R1[R5])であるとき、該ロード命令の転送元
及び転送先の情報を持つ検出信号D1(図1参照)を出
力する。尚、ここで、転送元の情報はロード命令の第2
オペランド33が示すアドレスであり、転送先の情報は
ロード命令の第1オペランド32が示すCPU13aの
内部レジスタ20である。
【0064】検出信号D1に応答して比較回路19は、
第2オペランド33が示すアドレス([R5])のデータ
メモリ13eの内容(0x07000004)と、第1オペランド
32が示す内部レジスタ20(R1)に読み込まれた内
容(0x07000004)とを該ロード命令の実行後に比較す
る。このとき、互いのデータは一致している。従って、
比較回路19は、比較結果が一致することを示す判定信
号D2(図1参照)を出力する。
【0065】その後、命令デコーダ18は、CPU13
aが処理する命令を順次解析する。命令デコーダ18
は、解析した命令が内部レジスタ20に格納されている
データを例えばデータメモリ13eのアドレスに書き込
むストア命令(Str R5 [R6])であるとき、該ストア命
令の転送元及び転送先の情報を持つ検出信号D1(図1
参照)を出力する。尚、ここで、転送元の情報はストア
命令の第1オペランド32が示すCPU13aの内部レ
ジスタ20であり、転送先の情報はストア命令の第2オ
ペランド33が示すアドレスである。
【0066】検出信号D1に応答して比較回路19は、
第1オペランド32が示す内部レジスタ(R5)の内容
(0x0000000c)と、第2オペランド33が示すデータメ
モリ13eのアドレス([R6])に書き込まれた内容
(0x000000cc)とを該ストア命令の実行後に比較する。
このとき、互いのデータは一致していない。従って、比
較回路19は、比較結果が不一致であることを示す判定
信号D2(図1参照)を出力する。
【0067】そして、論理シミュレータ11は、比較結
果が一致する場合にハードウェア13の動作が正常であ
ると判断し、逆に、比較結果が一致しない場合は、ハー
ドウェア13の動作に不具合があると判断して警告を発
生する。
【0068】以上記述したように、本実施形態によれ
ば、以下の効果を奏する。 (1)命令デコーダ18は、バス13gの内容を監視し
てCPU13aが処理する命令を解析する。比較回路1
9は、命令デコーダ18がロード命令を検出すると、そ
の命令により読み出すデータと該命令実行後にCPU1
3aの内部レジスタ20に読み込まれたデータとを比較
する。又、比較回路19は、命令デコーダ18がストア
命令を検出すると、その命令により書き込む内部レジス
タ20のデータと該命令実行後に書き込まれたデータと
を比較する。そして、論理シミュレータ11は、比較回
路19から不一致を示す判定信号が出力されるとき、ハ
ードウェア13に不具合があると判断して警告を発生す
る。従って、ハードウェア13に不具合が存在する場合
には、その異常を1回のシミュレーションで確実に検出
することができるとともに、その不具合個所の特定を迅
速に行うことができる。これにより、LSIの設計期間
を短縮することができ、設計コストを低減させることが
できる。
【0069】(2)本実施形態では、ロード命令又はス
トア命令の実行後にデータ比較をすることでハードウェ
ア13の不具合の検出を行うようにした。このため、ハ
ードウェア13のシミュレーション実施時に、ファーム
ウェア14に仮に不具合があったとしてもハードウェア
13の不具合を確実に抽出することができる。
【0070】(第2の実施形態)以下、本発明に係る第
2の実施形態について、図面を参照して説明する。図6
は、本実施形態の検証方法を説明する設計支援装置のブ
ロック図である。尚、本実施形態は、論理シミュレータ
によるハードウェアの検証を、ハードウェア/ソフトウ
ェア(HW/SW)協調検証ツールを用いて行う場合に
ついて説明する。従って、上記第1の実施形態の構成と
同様の構成部分についてはその詳細な説明を一部省略す
る。
【0071】この設計支援装置は、論理シミュレータ4
1、ソフトウェアデバッガ42及びHW/SW協調検証
ツール(以下、協調検証ツール)43を含む。論理シミ
ュレータ41はハードウェア44を検証し、ソフトウェ
アデバッガ42はそのハードウェア44を制御するファ
ームウェア45を検証する。
【0072】このような論理シミュレータ41、ソフト
ウェアデバッガ42及び協調検証ツール43によるハー
ドウェア13の検証は、パーソナルコンピュータ、ワー
クステーション等の汎用的な目的で使用される計算機上
で実行するコンピュータプログラムにより実現する。
【0073】ハードウェア44は、CPUモデル44
a、プログラムメモリ44b、第1及び第2ユーザ回路
44c,44d、データメモリ44e、バスコントロー
ラ44f等の各種機能ブロックを含み、それらはバス4
4gを介して相互に接続されるように関連付けられてい
る。
【0074】CPUモデル44aは、C言語等の高級言
語で記述され、その他の機能ブロック(プログラムメモ
リ44b、第1及び第2ユーザ回路44c,44d、デ
ータメモリ44e、バスコントローラ44f)は、VH
DL等のHDLで機能記述されている。尚、ハードウェ
ア44の構成は、図6に示す構成のみに限らず、設計す
るハードウェアに応じた各種機能ブロックを適宜含むよ
うにして構成される。
【0075】ソフトウェアデバッガ42はISS46を
備え、ISS46は、前記同様にCPUモデル44aの
命令動作をシミュレートすることにより、C言語等の高
級言語で記述されたファームウェア45の動作を検証す
る。
【0076】そして、ISS46による検証が完了した
ファームウェア45は、前記と同様に図示しないコンパ
イラ及びリンカを介してCPUモデル44aが実行可能
とする機械語等の命令列に変換された後、ソフトウェア
デバッガ42が有するプログラムメモリ領域47内に格
納される。従って、ハードウェア44が有するプログラ
ムメモリ44bのデータ内容は、ソフトウェアデバッガ
42によって制御される。
【0077】このソフトウェアデバッガ42は、協調検
証ツール43を介して論理シミュレータ41と接続され
る。具体的には、ソフトウェアデバッガ42は協調検証
ツール43に接続され、その協調検証ツール43はバス
インタフェース48を介して論理シミュレータ41と接
続される。
【0078】協調検証ツール43は、ISS46の動作
に基づいてCPUモデル44aの動作を制御する。CP
Uモデル44aは、その協調検証ツール43からの制御
に基づいてプログラムメモリ領域47内に格納された上
記コンパイル/リンク処理後のファームウェア45を実
行する。このように、協調検証ツール43はCPUモデ
ル44aを介してISS46の動作を論理シミュレータ
41に反映させることで、論理シミュレータ41はハー
ドウェア44のシミュレーションをソフトウェアデバッ
ガ42の動作と同期させて行う。
【0079】論理シミュレータ41は、第1の実施形態
と同様にデータ比較手段としての比較回路49を備え
る。ちなみに、本実施形態では、ハードウェア44のシ
ミュレーション時において、ソフトウェアデバッガ42
のISS46は、CPUモデル44aの命令動作をシミ
ュレートする。従って、ISS46は第1の実施形態に
おけるデコードブロックとしての機能を実現する。
【0080】即ち、ISS46は、CPUモデル44a
によるファームウェア45の実行において、該CPUモ
デル44aにて処理する命令を解析し、その命令がロー
ド命令もしくはストア命令である場合に検出信号D3を
出力する。
【0081】この検出信号D3に応答した比較回路49
は、ロード命令又はストア命令を実行するCPUモデル
44aがその処理を終了したか否かを、該CPUモデル
44aから出力される動作状態を示す信号D4に基づい
て判断する。そして、比較回路49は、命令が実行され
た後、その命令が正常に実行されたか否かをデータ判定
して判定信号D5を出力する。
【0082】具体的には、ISS46は、CPUモデル
44aの内部レジスタ、即ちCPUモデル44aの命令
動作をシミュレートするための内部レジスタ50を備え
ている。従って、CPUモデル44aにて処理する命令
がロード命令又はストア命令の場合、比較回路49は、
CPUモデル44aのアクセス先に格納されているデー
タとISS46の内部レジスタ50のデータとを比較す
ることで、それら互いのデータ内容が一致するか否かを
判定する。
【0083】そして、論理シミュレータ41は、比較結
果が一致する場合にハードウェア44の動作が正常であ
ると判断し、逆に、比較結果が一致しない場合は、ハー
ドウェア44の動作に不具合があると判断して警告を発
生する。
【0084】次に、ハードウェア44の検証に際して論
理シミュレータ41でのシミュレーション動作の詳細な
流れを、図6を参照しながら説明する。尚、第1の実施
形態と同様、検証に際してハードウェア44に含まれる
個々の機能ブロックについては検証が完全に終了してい
る。
【0085】先ず、CPUモデル44aは、協調検証ツ
ール43からの指令に基づいてバス44g(具体的には
アドレスバス)にプログラムメモリ44bの先頭アドレ
スを送出する。また、同時にCPUモデル44aは、そ
のアドレスをBIF48及び協調検証ツール43を介し
てソフトウェアデバッガ42に送信する。
【0086】ソフトウェアデバッガ42は、CPUモデ
ル44aから送信されたアドレスを受け取ると、そのア
ドレスに対応する命令をプログラムメモリ領域47から
抽出し、協調検証ツール43及びBIF48を介して論
理シミュレータ41に送信する。CPUモデル44a
は、この命令を受け取って実行する。
【0087】詳述すると、CPUモデル44aは、受信
した命令をBIF48及び協調検証ツール43を介して
ソフトウェアデバッガ42に送信し、該デバッガ42
は、その命令動作をISS46にてシミュレートする。
これにより、ISS46は、CPUモデル44aが処理
する命令を解析する。
【0088】今、この命令がデータメモリ44eのアド
レスに格納されているデータをCPUモデル44aの内
部レジスタ(つまり、ISS46の内部レジスタ50)
に読み出すロード命令である場合について説明する。
【0089】ISS46は、CPUモデル44aにて処
理する命令を解析(図4参照)し、その命令がロード命
令である場合に、その解析情報を検出信号D3を比較回
路49に出力する。また、ISS46は、該ロード命令
の第2オペランド33が示すアドレスを協調検証ツール
43及びBIF48を介してバス44g(具体的にはア
ドレスバス)に送出する。
【0090】このアドレスを察知したバスコントローラ
44fは、前記と同様に図3のメモリマップ21に従っ
てデータメモリ44eへのアクセスを許可する制御信号
を生成する。この制御信号に応答してデータメモリ44
eは、該送出されたアドレスに格納されているデータを
バス44g(具体的にはデータバス)に送出する。
【0091】CPUモデル44aは、データメモリ44
eが送出したデータを受け取ると、そのデータをBIF
48及び協調検証ツール43を介してソフトウェアデバ
ッガ42に送信し、該データは第1オペランド32が示
すISS46の内部レジスタ50に格納される。
【0092】比較回路49は、ISS46からの検出信
号D3に応答して、ロード命令が終了したか否かをCP
Uモデル44aから出力される信号D4に基づいて判断
し、命令実行後に、データメモリ44eのデータとIS
S46の内部レジスタ50に読み込まれたデータとを比
較し、判定信号D5を出力する。
【0093】そして、論理シミュレータ41は、その比
較結果が一致する場合にハードウェア44の動作が正常
であると判断し、逆に、比較結果が一致しない場合は、
ハードウェア44の動作に不具合があると判断して警告
を発生する。以下、このような手順を繰り返して論理シ
ミュレーションが進められることにより、ハードウェア
44の検証を行う。
【0094】以上記述したように、本実施形態によれ
ば、第1の実施形態で奏する効果に加えて以下の効果を
奏する。 (1)本実施形態では、協調検証ツール43を介して論
理シミュレータ41とソフトウェアデバッガ42を接続
し、C言語の動作モデルを持つCPUモデル44aにて
ハードウェア44のシミュレートが行われる。従って、
第1の実施形態に比べて論理シミュレータ41による検
証速度を高速に行うことができるため、ハードウェア4
4の不具合の検出をより迅速に行うことができる。
【0095】尚、上記各実施形態は、以下の態様に変更
して実施してもよい。 ・第1の実施形態では、説明の都合上、ロード命令の際
のCPU13aのアクセス先をデータメモリ13eとし
たが、その他の機能ブロック(第1及び第2ユーザ回路
13c,13d等)がアクセス先である場合にも、同様
な処理が行われる。
【0096】・また、第2の実施形態では、ロード命令
の際のCPUモデル44aのアクセス先をデータメモリ
44eとしたが、その他の機能ブロック(第1及び第2
ユーザ回路44c,44d等)がアクセス先である場合
にも同様な処理が行われる。
【0097】・第2の実施形態において、CPUモデル
44aが持つ内部レジスタ50をISS46内に備えた
が、これに限らず内部レジスタ50は他の個所に備える
ようにしてもよい。
【0098】・第2の実施形態において、CPUモデル
44aはC言語で記述されるが、C++言語等でもよ
い。 ・本実施形態では、データの転送命令としてRISC方
式のCPUにおけるロード命令、ストア命令に適用した
が、CISC方式のCPUに適用してもよい。
【図面の簡単な説明】
【図1】 第1の実施形態の検証方法を説明するための
ブロック図である。
【図2】 ハードウェアの一構成例を示すブロック図で
ある。
【図3】 メモリマップを示す説明図である。
【図4】 命令形態の一例を示す説明図である。
【図5】 命令デコーダにて解析される命令列及びデー
タ比較処理の一例を示す説明図である。
【図6】 第2の実施形態の検証方法を説明するための
ブロック図である。
【図7】 第1従来例の検証方法を説明するためのブロ
ック図である。
【図8】 第2従来例の検証方法を説明するためのブロ
ック図である。
【符号の説明】
11,41…論理シミュレータ、13,44…ハードウ
ェア、14,45…ソフトウェアとしてのファームウェ
ア、42…ソフトウェアデバッガ、43…協調検証ツー
ルとしてのHW/SW協調検証ツール、13a…CPU
ブロックとしてのCPU、44a…CPUブロックとし
てのCPUモデル、13b,44b…メモリブロックと
してのプログラムメモリ、13c,44c…周辺回路ブ
ロックとしての第1ユーザ回路、13d,44d…周辺
回路ブロックとしての第2ユーザ回路、13e,44e
…周辺回路ブロックとしてのデータメモリ、13g,4
4g…バス、18…デコードブロックとしての命令デコ
ーダ、19,49…データ比較手段としての比較回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ハードウェアと該ハードウェアを制御す
    るソフトウェアとを含み記憶手段に記憶された回路デー
    タを論理シミュレータにて検証する回路機能検証方法で
    あって、 前記回路データには、命令を実行するCPUの動作を記
    述したCPUブロックと、前記ソフトウェアを記憶する
    メモリブロックと、前記CPUにバスを介して接続され
    る周辺回路の動作を記述した少なくとも1つの周辺回路
    ブロックとが含まれ、 前記メモリブロックから読み出され前記CPUブロック
    にて処理される命令を解析し、前記命令がデータの転送
    命令の場合に、該命令に応じて転送元に格納されている
    データ内容と転送先に格納されているデータ内容とを該
    命令実行後に比較することを特徴とする回路機能検証方
    法。
  2. 【請求項2】 前記回路データは、前記ハードウェアに
    存在するバスの状態を監視し、前記CPUブロックにて
    処理する命令がデータの転送命令の場合に、該命令のオ
    ペランドを解析し、前記CPUブロックが実行するデー
    タ転送の転送元及び転送先の情報を出力するデコードブ
    ロックを含む、ことを特徴とする請求項1記載の回路機
    能検証方法。
  3. 【請求項3】 前記論理シミュレータは、前記命令がデ
    ータの転送命令の場合に前記転送元及び転送先のデータ
    内容が一致しているか否かの判定信号を出力するデータ
    比較手段を含むことを特徴とする請求項1又は2記載の
    回路機能検証方法。
  4. 【請求項4】 ハードウェアと該ハードウェアを制御す
    るソフトウェアとを含み記憶手段に記憶された回路デー
    タを検証する論理シミュレータと、前記ソフトウェアを
    検証するソフトウェアデバッガとを協調検証ツールにて
    協調動作させて検証する回路機能検証方法であって、 前記回路データには、命令を実行するCPUの動作を記
    述したCPUブロックと、前記ソフトウェアを記憶する
    メモリブロックと、前記CPUにバスを介して接続され
    る周辺回路の動作を記述した少なくとも1つの周辺回路
    ブロックとが含まれ、 前記ソフトウェアデバッガにて解析した命令がデータの
    転送命令の場合に、該命令に応じて転送元に格納されて
    いるデータ内容と転送先に格納されているデータ内容と
    を該命令実行後に前記論理シミュレータにて比較するこ
    とを特徴とする回路機能検証方法。
  5. 【請求項5】 前記ソフトウェアデバッガは前記命令が
    データの転送命令の場合に検出信号を出力し、前記論理
    シミュレータは、前記検出信号及び前記CPUブロック
    の動作状態を示す信号に基づいて前記転送元及び転送先
    のデータ内容が一致しているか否かの判定信号を出力す
    るデータ比較手段を含むことを特徴とする請求項4記載
    の回路機能検証方法。
  6. 【請求項6】 ハードウェアと該ハードウェアを制御す
    るソフトウェアとを含み記憶手段に記憶された回路デー
    タを論理シミュレータにて機能検証するために前記回路
    データに組み込まれるプログラムであって、 前記プログラムは、前記ハードウェアに存在するバスの
    状態を監視し、CPUブロックにて処理する命令がデー
    タの転送命令の場合に、該命令のオペランドを解析する
    ステップと、前記CPUブロックが実行するデータ転送
    の転送元及び転送先の情報を出力するステップとを含む
    ことを特徴とするプログラム。
JP2002030388A 2002-02-07 2002-02-07 回路機能検証方法及びプログラム Pending JP2003233634A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002030388A JP2003233634A (ja) 2002-02-07 2002-02-07 回路機能検証方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002030388A JP2003233634A (ja) 2002-02-07 2002-02-07 回路機能検証方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2003233634A true JP2003233634A (ja) 2003-08-22

Family

ID=27774157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002030388A Pending JP2003233634A (ja) 2002-02-07 2002-02-07 回路機能検証方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2003233634A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078087A (ja) * 2012-10-10 2014-05-01 Meidensha Corp デジタル回路用シミュレーション装置及びそのプログラム
CN111400079A (zh) * 2020-03-16 2020-07-10 上海金卓网络科技有限公司 一种隔离器及其适用的软件复位方法、装置和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078087A (ja) * 2012-10-10 2014-05-01 Meidensha Corp デジタル回路用シミュレーション装置及びそのプログラム
CN111400079A (zh) * 2020-03-16 2020-07-10 上海金卓网络科技有限公司 一种隔离器及其适用的软件复位方法、装置和存储介质
CN111400079B (zh) * 2020-03-16 2024-03-01 上海金卓科技有限公司 一种隔离器及其适用的软件复位方法、装置和存储介质

Similar Documents

Publication Publication Date Title
Ur et al. Micro architecture coverage directed generation of test programs
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US7409330B2 (en) Method and system for software debugging using a simulator
RU2451990C2 (ru) Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
JP2008282308A (ja) 協調検証装置、協調検証方法、協調検証プログラム
Kantrowitz et al. Functional Verification of a Multiple-issue, Pipelined, Superscalar Alpha Processor - the Alpha 21164 CPU Chip
US6968520B2 (en) System verifying apparatus and method which compares simulation result based on a random test program and a function simulation
US10929584B1 (en) Environmental modification testing for design correctness with formal verification
JP2005108007A (ja) Lsi設計検証装置及びlsi設計検証方法
JP2003233634A (ja) 回路機能検証方法及びプログラム
JP5900336B2 (ja) エミュレータ検証システム、エミュレータ検証方法
Schubert et al. Solutions to IBM POWER8 verification challenges
CN116048887A (zh) 一种芯片验证方法及装置、系统、电子设备、存储介质
JPH06309193A (ja) 機械語プログラムの動作検証方法および装置
JP2828590B2 (ja) マイクロプログラム検証方法
JP4589255B2 (ja) ハードウェア/ソフトウェア協調検証装置
JP2006090905A (ja) 試験シミュレータ及び試験シミュレーションプログラム
JP2001290860A (ja) ハードウエア/ソフトウエア協調シミュレータ
JP2013003633A (ja) 故障再現装置、故障再現方法
JP2003281076A (ja) Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム
JP3278588B2 (ja) プログラム開発支援装置及びプログラム開発支援方法
JPH0567164A (ja) 論理シミユレーシヨン方式
JP2009217720A (ja) プログラム生成装置およびプログラム生成方法
JP5425445B2 (ja) 処理制御システム、方法及びプログラム