JPH09231255A - ハードウエア/ソフトウエア協調検証方式 - Google Patents

ハードウエア/ソフトウエア協調検証方式

Info

Publication number
JPH09231255A
JPH09231255A JP8039301A JP3930196A JPH09231255A JP H09231255 A JPH09231255 A JP H09231255A JP 8039301 A JP8039301 A JP 8039301A JP 3930196 A JP3930196 A JP 3930196A JP H09231255 A JPH09231255 A JP H09231255A
Authority
JP
Japan
Prior art keywords
simulator
instruction
logic circuit
architecture
hardware
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
JP8039301A
Other languages
English (en)
Inventor
Yoshiaki Kinoshita
佳明 木下
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 JP8039301A priority Critical patent/JPH09231255A/ja
Publication of JPH09231255A publication Critical patent/JPH09231255A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】論理回路シミュレータとアーキテクチャー(命
令)シミュレータを容易に同期させる。 【解決手段】アーキテクチャ(命令)シミュレータの機能
として、論理回路シミュレータを起動する条件を定義
し、その定義によってソフトウエア内の任意の命令コー
ドやデータが任意の条件を満たした場合、アーキテクチ
ャ(命令)シミュレータから論理回路シミュレータを起動
する。さらに、論理回路シミュレータの機能として、ア
ーキテクチャ(命令)シミュレータを起動する制御定義を
定義し、その制御定義によって論理回路内の任意の信号
が任意の条件を満たした場合、論理回路シミュレータか
らアーキテクチャ(命令)シミュレータを起動する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウエアとソ
フトウエアを同時に開発するマイクロプロセッサ等の電
子計算機の設計時に使用するハードウエア/ソフトウエ
ア協調検証方式に関する。
【0002】
【従来の技術】マイクロプロセッサ等の電子計算機の開
発は、大規模化・複雑化に伴って、開発期間の短縮が急
務となっている。特に、LSI化が進んでいるために、
論理不良が混入した場合、その不良の発見と修正に多大
な時間を要する。さらに、ハードウエアとフトウエアを
同時に開発する場合には、各々の検証をハードウエアは
論理回路シミュレータで行い、ソフトウエアはアーキテ
クチャ(命令)シミュレータで別々に行うのが一般的であ
り、不良が発生しても相関関係が明確でないために、原
因の切り分けと対策に多くの時間を費やす結果となる。
このため、論理設計段階の早い時期からハードウエアと
ソフトウエアを同時に協調検証するために、論理回路シ
ミュレータとアーキテクチャ(命令)シミュレータを同期
させて実行することが必要になってきた。しかし、各々
のシミュレータには相互移行の機能が完備されていない
のが現状である。
【0003】論理回路シミュレータでは、従来からC言
語等の他言語接続機能のサポートは一般的であった。そ
のため、他言語接続機能を使ってアーキテクチャ(命令)
シミュレータを接続することは可能であった。これによ
って、例えば初期設定部、試験部及び結果判定部からな
る試験プログラムを用いて論理検証を行う場合、初期設
定部及び結果判定部をアーキテクチャ(命令)シミュレー
タ上で高速に実行し、試験部を論理路シミュレータ上で
詳細に検証することが可能になる。このような公知例と
しては、特開平2−268341『論理シミュレーショ
ン装置』がある。
【0004】第2図は従来の方式により、初期設定部及
び結果判定部をアーキテクチャ(命令)シミュレータ上で
高速に実行し、試験部を論理回路シミュレータ上で詳細
に検証する場合の事例である。すなわち、初期設定部20
1、試験部203、結果判定部204に分類さたソフトウエア
において、初期設定部201、及び結果判定部204を入力デ
ータ205、207としてアーキテクチャ(命令)シミュレータ
113を実行し、試験部203を入データ206として論理回路
シミュレータ101を実行する。その際、初期設定部201及
び試験部203の命令列の最後に動作には無関係の切り替
え命令202を挿入し、その切り替え命令202が出現した場
合には、アーキテクチャ(命令)シミュレータ113からは
論理回路シミュレータ101に処理移行208を行い、論理回
路シミュレータ101からはアーキテクチャ(命令)シミュ
レータ113に処理移行209を行っていた。
【0005】
【発明が解決しようとする課題】しかし、この方式では
ソフトウエアの命令列の中に、あらかじめ切り替え命令
を指定しておく必要があり、進捗に合わせて任意の命令
をアーキテクチャ(命令)シミュレータと論理回路シミュ
レータの間で任意に実行できないという問題があった。
【0006】一方、ソフトウエア設計者は、ハードウエ
アと並行に開発を進める必要性から、アーキテクチャ
(命令)シミュレータを使って検証(デバッグ)を行うのが
主な検証手段であるが、アーキテクチャ(命令)シミュレ
ータでは実際のハードウエアの論理回路を使った検証に
比べて検証精度に問題があり、そうかと言って膨大なス
テップ数のソフトウエアを直接、論理回路シミュレータ
を使って検証するのは、論理回路シミレータの性能から
実現不可能である。そこで、大部分のソフトウエアはア
ーキテクチャ(命令)シミュレータを使って検証しなが
ら、論理回路(ハードウエア)に大きく依存する命令列や
データを使用する場合のみ、論理回路シミュレータで詳
細に検証する方法が望まれている。
【0007】
【課題を解決するための手段】本発明では、まず、アー
キテクチャ(命令)シミュレータの機能として、論理回路
シミュレータを起動する条件を定義し、その定義によっ
てソフトウエア内の任意の命令コードやデータが任意の
条件を満たした場合、アーキテクチャ(命令)シミュレー
タから論理回路シミュレータを起動することを可能にし
た。次に、論理回路シミュレータの機能として、アーキ
テクチャ(命令)シミュレータを起動する制御定義を定義
し、その制御定義によって論理回路内の任意の信号が任
意の条件を満たした場合、論理回路シミュレータからア
ーキテクチャ(命令)シミュレータを起動することを可能
にした。これによって特定の命令コードやデータの変化
から論理回路シミュレータの起動が可能となり、また、
論理回路内の任意の信号変化からアーキテクチャ(命令)
シミュレータの起動が可能となり、ハードウエアとソフ
トウエアの協調検証を容易に同期させることが可能にな
った。
【0008】
【発明の実施の形態】第1図は、本発明を実現する場合
の実施例である。アーキテクチャ(命令)シミュレータ11
3は、ソフトウエア114と条件定義115を入力として動作
する。 通常、論理回路(ハードウエア)102の詳細な動作
を必要としない命令コードに対してはアーキクチャ(命
令)シミュレータ113でその動作をシミュレートする。こ
れに対して論理回路(ハードウエア)102の詳細な動作を
必要とする命令コードに対しては、条件定義115に、命
令定義116及び118と、データ定義117及び119を定義す
る。この実施例では、加算命令(Add)のすべてのデータ
に対して論理回路シミュレータ(GateSIM) 101を使用す
ることを、命令定義116とデータ定義117で定義してい
る。また、減算命令(Sub)で、第1レジスタのデータが、
16進数で"00FFFFFF"で、かつ、第2レジスタのデータ
が、10進数で"1"のデータに対して論理回路シミュレー
タ(GateSIM) 101を使用することを、命令定義118とデー
タ定義119で定義しいる。それらの条件定義115を満たす
場合、起動処理120を使って、論理回路シミュレータ101
を起動する。起動処理120では、まず、初期処理(Init_S
im)121を起動し、出力関数(Put-value)122によって宣言
部108及び109で宣言したSIG1及びSIG2の信号値を設定す
る。その後、論理回路シミュレータ(GateSIM) 101を起
動する。
【0009】論理回路シミュレータ(GateSIM) 101は、
論理回路102と制御定義107を入力として動作する。信号
名(SIGA)103、信号名(SIGB)104、信号名(SIGC)105、信
号名(SIGD)106は論理回路102内に存在し、論理回路シミ
ュレータ101を実行することによって信号値が変化す
る。その信号変化は、直ちに制御定義107内の宣言部108
及び109に伝えられる。宣言部108では、信号名(SIGA)10
3と信号名(SIGB)104を構成信号とてSIG1を宣言してい
る。また、宣言部109では、信号名(SIGC) 105と信号名
(SIGD)106を構成信号としてSIG2を宣言している。この
宣言部109での信号変化を受けて、トリガ定義部110では
任意の条件式が成立した場合、指定したプログラムを開
始する定義を行う。この例ではSIG2が0より大きかった
場合、アーキクチャ(命令)シミュレータ113内の終了処
理(End_Sim) 124を起動することをトリガ定義部110で定
義している。すなわち、信号名(SIGC)105と信号名(SIG
D)106のどちらかが、信号値"1"になるか、またはどちら
も信号値"1"になった場合に、トリガ定義部110の条件式
が成立する。このトリガ定義部110からの処理移行126に
よって、アーキテクチャ(命令)シミュレータ113に処理
が戻る。アーキテクチャ(命令)シミュレータ113では入
力関数(Get-value)125によって宣言部1及び109で宣言し
たSIG1及びSIG2の信号値を取り込む。処理が終了した
後、アーキテクチャ(命令)シミュレータ113は、本来の
ソフトウエア114を入力とし処理を続行する。
【0010】第3図はアーキテクチャ(命令)シミュレー
タ113と論理回路シミュレータ101の処理を示すフローチ
ャートである。アーキテクチャ(命令)シミュレータ113
をスタートさせると、まず命令コード/データの読み出
し301を行う。次に条件定義115で指定された命令定義や
データ定義に対して、命令コード/データが一致するか
チェック302する。一致しない場合は、命令コード/デー
タを入力データとしてシミュレーション304を行う。そ
の後、この命令が最後の命令かどうかをチェック305す
る。最後でない場合は次の命令コード/データを読み出
す。最後の場合は終了となる。さて、一致する場合は、
起動処理120によって、レジスタ等の内容を構成する信
号(103等)の信号値として設定303し、論理回路シミュレ
ータ101に処理を移行する。論理回路シミュレータ101で
は、まず入力信号値の取り込み311を行い、その信号値
によってシミュレーション312を行う。次に、制御定義1
07で指定され信号値と条件が成立しているかをチェック
313する。成立しない場合は時刻が最後のサイクルかチ
ェック315する。最後でない場合は時刻を1サイクル進
める316。最後の場合は終了となる。さて、一致する場
合は、起動処理120によって、信号(103等)の信号値をレ
ジスタ等に設定314し、アーキテクチャ(命令)シミュレ
タ113に処理を移行する。
【0011】
【発明の効果】本発明によって、被検証対象の大部分の
ソフトウエアをアーキテクチャ(命令)シミュレータで高
速にシミュレートすることを主に処理しながら、論理回
路(ハードウエア)に依存する任意の命令コードやデータ
に対してのみ、論理回路シミュレータを適用することが
可能となり、ハードウエアとソフトウエアの協調検証を
容易に同期させることが可能になる。
【図面の簡単な説明】
【図1】本発明の実施例を示す図である。
【図2】従来の協調検証方式の例を示す図である。
【図3】アーキテクチャ(命令)シミュレータと論理回路
シミュレータの処理を示すフローチャートである。
【符号の説明】
101・・・論理回路シミュレータ、 102・・・被検証対
象論回路(ハードウエア)、107・・・アーキテクチャ(命
令)シミュレータ移行制御定義、 113・・・アーキテク
チャ(命令)シミュレータ、 114・・・被検証対象ソフ
トウエア、 115・・・論理回路シミュレータ移行条件
定義、 120・・・論理回路シミュレータ起動処理

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】ハードウエアとソフトウエアの両方で構成
    されている被論理検証対象の論理装置に対して、ハード
    ウエアの動作を検証する論理回路シミュレータと、ソフ
    トウエアの動作を検証するアーキテクチャ(命令)シミュ
    レータの両方をコンカレントに実行する協調検証方式に
    おいて、論理回路シミュレータとアーキテクチャ(命令)
    シミュレータの間で処理を容易に移行するための接続手
    順を有することを特徴とするハードウエア/ソフトウエ
    ア協調検証方式。
  2. 【請求項2】前記論理回路シミュレータにおいて、論理
    回路(ハードウエア)内の任意の信号の信号変化に対して
    任意の条件を設定する機能と、該条件設定が成立した場
    合、ソフトウエアを検証する該アーキテクチャ(命令)シ
    ミュレータに処理を移行する機能有することを特徴とす
    る請求項1記載のハードウエア/ソフトウエア協調検証
    方式。
  3. 【請求項3】前記アーキテクチャ(命令)シミュレータに
    おいて、被検証対象のソフトウエア内の任意の命令コー
    ドと任意のデータに対して任意の条件を設定する機能
    と、該条件設定が成立した場合、論理回路(ハードウエ
    ア)を検証する該論理回路シミュレータに処理を移行す
    る機能を有することを特徴とする請求項1記載のハード
    ウエア/ソフトウエア協調検証方式。
JP8039301A 1996-02-27 1996-02-27 ハードウエア/ソフトウエア協調検証方式 Pending JPH09231255A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8039301A JPH09231255A (ja) 1996-02-27 1996-02-27 ハードウエア/ソフトウエア協調検証方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8039301A JPH09231255A (ja) 1996-02-27 1996-02-27 ハードウエア/ソフトウエア協調検証方式

Publications (1)

Publication Number Publication Date
JPH09231255A true JPH09231255A (ja) 1997-09-05

Family

ID=12549309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8039301A Pending JPH09231255A (ja) 1996-02-27 1996-02-27 ハードウエア/ソフトウエア協調検証方式

Country Status (1)

Country Link
JP (1) JPH09231255A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368546B1 (ko) * 2000-01-18 2003-01-24 한국 Mds (주) 실제 프로세서를 이용한 낙관적 실행에 의한하드웨어-소프트웨어 통합 검증방법
US8036874B2 (en) 2007-06-21 2011-10-11 Kabushiki Kaisha Toshiba Software executing device and co-operation method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368546B1 (ko) * 2000-01-18 2003-01-24 한국 Mds (주) 실제 프로세서를 이용한 낙관적 실행에 의한하드웨어-소프트웨어 통합 검증방법
US8036874B2 (en) 2007-06-21 2011-10-11 Kabushiki Kaisha Toshiba Software executing device and co-operation method

Similar Documents

Publication Publication Date Title
US7139936B2 (en) Method and apparatus for verifying the correctness of a processor behavioral model
US6983234B1 (en) System and method for validating processor performance and functionality
US20040025127A1 (en) Logic verification and logic cone extraction technique
US7093218B2 (en) Incremental, assertion-based design verification
US10929584B1 (en) Environmental modification testing for design correctness with formal verification
JPH09231255A (ja) ハードウエア/ソフトウエア協調検証方式
US6813751B2 (en) Creating standard VHDL test environments
CN116048952A (zh) 一种基于可裁剪ip的实例化模块仿真验证方法及装置
US7051301B2 (en) System and method for building a test case including a summary of instructions
JPH0962720A (ja) デジタル信号処理回路シミュレーション装置
JP2828590B2 (ja) マイクロプログラム検証方法
Glamm et al. Automatic verification of instruction set simulation using synchronized state comparison
JP2961969B2 (ja) 論理シミュレーター
US10853546B1 (en) Method and system for sequential equivalence checking
JP6949440B2 (ja) ベクタ生成装置及びベクタ生成用プログラム
JP2002041595A (ja) バックアノテーション装置およびその方法
US20040107393A1 (en) Method and device for testing the mapping/implementation of a model of a logic circuit onto/in a hardware emulator
JP2871518B2 (ja) 論理回路エミュレーション装置
KR100427029B1 (ko) 집적회로의 설계 검증 방법
JPH10149382A (ja) プログラム言語により電子回路を設計する装置
JPH0444175A (ja) 論理シミュレーションシステム
JPH06203091A (ja) 論理シミュレータおよびその制御方法
JPH05266124A (ja) 論理回路シミュレーション用回路素子ライブラリの作成方法
JPH08287134A (ja) 論理回路の検証方法
JP2002083007A (ja) イベントドリブンシミュレータの論理検証装置及びその論理検証方法