(57)【要約】【課題】パイプライン処理を行なうプロセッサの論理回路の動作をシミュレーションして検証を行なう場合に正常動作結果が期待値と一致するようにして検証を容易に行う。【解決手段】命令レベルシミュレータ１６によりテストプログラム１２を実行してその複数ステップの各命令コードの実行結果を取得し、該実行結果と、該実行結果が得られる第１時点に対応した論理回路シミュレータ１８による論理回路の動作の第２時点での動作結果とを比較して、該論理回路の検証を行うコンピュータ１０を備えた論理回路シミュレーション装置において、該第１時点における、該命令コードの実行により書き替えられる記憶部の内容と、該第２時点における、該書き替えられる記憶部に対応した該論理回路の記憶部の内容との比較のみ行う。【選択図】　　　　　図１
2004070529.tif 000002
【特許請求の範囲】
【請求項１】
命令レベルシミュレータによりテストプログラムを実行してその複数ステップの各命令コードの実行結果を取得し、該実行結果と、該実行結果が得られる第１時点に対応した論理回路シミュレータによる論理回路の動作の第２時点での動作結果とを比較して、該論理回路の検証を行うコンピュータを備えた論理回路シミュレーション装置において、
該第１時点における、該命令コードの実行により書き替えられる記憶部の内容と、該第２時点における、該書き替えられる記憶部に対応した該論理回路の記憶部の内容との比較のみ行うことを特徴とする論理回路シミュレーション装置。
【請求項２】
該第１時点は、該命令コードのステップ識別コードにより区別され、
該実行結果は、該ステップ識別コードで識別される該命令コードで書き替えられる該記憶部の識別コードと該記憶部の内容とを対応させたデータである、
ことを特徴とする請求項１記載の論理回路シミュレーション装置。
【請求項３】
命令レベルシミュレータによりテストプログラムを実行してその複数ステップの各命令コードの実行結果を取得し、該実行結果と、該実行結果が得られる第１時点に対応した論理回路シミュレータによる論理回路の動作の第２時点での動作結果とを比較して、該論理回路の検証を行う論理回路シミュレーション方法において、
該第１時点における、該命令コードの実行により書き替えられる記憶部の内容と、該第２時点における、該書き替えられる記憶部に対応した該論理回路の記憶部の内容との比較のみ行うことを特徴とする論理回路シミュレーション方法。
【請求項４】
該第１時点は、該命令コードのステップ識別コードにより区別され、
該実行結果は、該ステップ識別コードで識別される該命令コードで書き替えられる該記憶部の識別コードと該記憶部の内容とを対応させたデータである、
ことを特徴とする請求項３記載の論理回路シミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路シミュレーション方法及び装置に係り、特に、命令レベルシミュレータによりテストプログラムを実行してその複数ステップの各命令コードの実行結果を期待値として取得し、これを論理回路シミュレータによる論理回路の動作結果とを比較して論理回路の検証を行う論理回路シミュレーション方法及び装置に関する。
【０００２】
【従来の技術】
論理回路レベルで設計されたプロセッサの動作をシミュレータで検証する場合、命令レベルシミュレータでテストプログラムを実行してその各ステップの命令コード実行結果を期待値として取得し、これを論理回路の動作結果と比較することが行なわれている。このような従来の論理回路シミュレーション方法では、各命令コード実行完了時点での全レジスタの内容が期待値として用いられていた（特開平７−３６７３２号公報）。
【０００３】
ステップ１で例えばレジスタＲ１の内容とレジスタＲ２の内容の乗算を実行してその結果をレジスタＲ３に代入する命令
ＭＵＬ　Ｒ１，Ｒ２，Ｒ３
を実行し、次にステップ２でレジスタＲ４の内容とレジスタＲ５の内容とを加算してその結果をレジスタＲ６に代入する加算命令
ＡＤＤ　Ｒ４，Ｒ５，Ｒ６
を実行する場合、全レジスタがＲ１〜Ｒ６であるとすると、この乗算命令の実行完了時点でのレジスタＲ１〜Ｒ６の内容をステップ１での期待値とし、次に加算命令実行完了時点でのレジスタＲ１〜Ｒ６の内容をステップ２の期待値としていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、設計対象のプロセッサがパイプライン処理を行なう場合、論理回路シミュレータによる論理回路の動作においては上記乗算結果が得られる前に上記加算結果が得られるのに対し、命令レベルシミュレータではパイプライン処理が考慮されないので、論理回路の動作が正常であってもその結果が期待値と一致しない。このため、テストプログラムの内容及びパイプライン処理の動作に応じて、正常動作の場合に両者が一致するように動作結果を解析しなければならないので、論理回路の検証を容易に行なうことができないという問題があった。
【０００５】
本発明の目的は、このような問題点に鑑み、パイプライン処理を行なうプロセッサの論理回路の動作をシミュレーションして検証を行なう場合に正常動作結果が期待値と一致するようにして検証を容易に行うことが可能な論理回路シミュレーション方法及び装置を提供することにある。
【０００６】
【課題を解決するための手段及びその作用効果】
本発明の一態様では、命令レベルシミュレータによりテストプログラムを実行してその複数ステップの各命令コードの実行結果を取得し、該実行結果と、該実行結果が得られる第１時点に対応した論理回路シミュレータによる論理回路の動作の第２時点での動作結果とを比較して、該論理回路の検証を行うコンピュータを備えた論理回路シミュレーション装置において、
該第１時点における、該命令コードの実行により書き替えられる記憶部の内容と、該第２時点における、該書き替えられる記憶部に対応した該論理回路の記憶部の内容との比較のみ行う。
【０００７】
従来のように該命令コード以外の命令コードの実行により書き替えられない記憶部の内容も比較の対象にすると、該論理回路がパイプライン処理する場合、該論理回路が正常動作する場合であっても比較結果に不一致が生ずる可能性がある。
【０００８】
これに対し上記一態様によれば、該命令コードの実行により書き替えられる記憶部の内容のみが比較対象となるので、このような不一致は生ぜず、論理回路の動作の検証を従来よりも容易に行なうことができる。
【０００９】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【００１０】
【発明の実施の形態】
以下、図面を参照して本発明の一実施例を説明する。
【００１１】
図１は、本発明の一実施例の論理回路シミュレーション装置の概略機能ブロック図である。
【００１２】
この装置は、設計されたプロセッサの論理回路レベルの動作を検証するためのものであり、コンピュータ本体１０に入出力装置が接続されたコンピュータシステムで構成されている。
【００１３】
該入出力装置としての外部記憶装置には、被検証論理回路１１及びテストプログラム１２が格納され、シミュレーション実行中に実行結果の所定データを格納するための領域１３及び１４が確保されている。
【００１４】
設計された被検証論理回路１１は、パイプライン処理を行うプロセッサであり、図２（Ｂ）はこの回路のイメージを示す。テストプログラム１２は、被検証論理回路１１が正常に動作するかどうかを試験するためのものであり、図２（Ａ）はテストプログラム１２の一部を示す。このプログラムは、アセンブリ言語で記述され、各ステップ識別コードＳＴＰの命令コードは、被検証プロセッサの命令セットレベルである。動作結果格納領域１３は、被検証論理回路１１の動作結果を格納するためのものであり、実行結果格納領域１４はテストプログラム１２の実行結果を格納するためのものである。出力装置としての表示装置１５は、検証結果を表示させるためのものである。
【００１５】
次に、コンピュータ本体１０の機能ブロック１６〜２１について説明する。
【００１６】
図３は、図１中の命令レベルシミュレータ１６及び出力部１７の動作を示す概略フローチャートである。
【００１７】
（Ｓ１）命令レベルシミュレータ１６は、テストプログラム１２から、次の命令ステップの命令コード読み込む。最初の命令ステップは、テストプログラム１２中のサブテスト範囲（テストプログラム１２の一部又は全部）の実行開始ステップである。サブテスト範囲の実行開始及び終了ステップ（図２（Ａ）中のＳＴＡＲＴ及びＳＴＯＰの位置のステップ）は、不図示の入力装置を操作して決定される。
【００１８】
（Ｓ２）命令レベルシミュレータ１６は、命令ステップがＳＴＯＰ位置の次のステップであれば処理を停止し、そうでなければステップＳ３へ進む。
【００１９】
（Ｓ３）命令レベルシミュレータ１６は、ステップＳ１で読み込んだ命令コードを実行する。
【００２０】
（Ｓ４）出力部１７は、実行された命令コードのステップ識別コードＳＴＰと、命令コードで書き換えられるレジスタの識別コードＲｉと、書き換えられたレジスタの内容（Ｒｉ）とを対応させたレコードを実行結果として領域１４に格納する。ステップ識別コードＳＴＰは、命令コードの実行完了時点に対応している。
【００２１】
例えば図２（Ａ）に示すＳＴＰ＝１２６の命令コード
ＭＵＬ　Ｒ１，Ｒ２，Ｒ３
を実行した場合には、上述のようにレジスタＲｉ＝Ｒ３の内容がレジスタＲ１とＲ２の内容の積で書き換えられるので、１２６，Ｒ３及び（Ｒ３）が実行結果格納領域１４に格納される。同様に、図２（Ａ）に示すＳＴＰ＝１２７の命令コード
ＡＤＤ　Ｒ４，Ｒ５，Ｒ６
を実行した場合には、上述のようにレジスタＲｉ＝Ｒ６の内容がレジスタＲ４とＲ５の内容の和で書き換えられるので、１２７，Ｒ６及び（Ｒ６）が実行結果格納領域１４に格納される。
【００２２】
次にステップＳ１へ戻る。
【００２３】
図１に戻って、論理回路シミュレータ１８は、テストプログラム１２を実行するように被検証論理回路１１を動作させる。
【００２４】
レジスタ読み出しタイミング生成部１９は、ステップ識別コードＳＴＰと書き込みレジスタＲｉの組のデータを保持する。レジスタ読み出しタイミング生成部１９は、論理回路シミュレータ１８から、終了した命令のステップ識別コードＳＴＰを示す信号を受け取り、これに応答して、このステップ識別コードＳＴＰとこれに対応した書き込みレジスタＲｉとを示すデータ信号とともにレジスタ読み出し要求を、出力部２０に供給する。
【００２５】
図４は、図２（Ａ）のプログラムを実行する論理回路の動作の概略を示すタイムチャートである。
【００２６】
出力部２０は、レジスタ読み出しタイミング生成部１９からの該レジスタ読み出し要求に応答して、論理回路シミュレータ１８の動作結果である、該当レジスタＲｉの内容（Ｒｉ）を読み出し、これと、レジスタ読み出しタイミング生成部１９からのステップ識別コードＳＴＰとを含む１レコードを、動作結果格納領域１３に格納する。
【００２７】
命令レベルシミュレータ１６と論理回路シミュレータ１８とは、並列処理を行なっても、一方の処理が終了した後に他方の処理を行なってもよい。
【００２８】
比較部２１は、実行結果格納領域１４からステップ識別コードＳＴＰ、レジスタ識別コードＲｉ及びレジスタの内容（Ｒｉ）を読み出し、このステップ識別コードＳＴＰをキーとして動作結果格納領域１３から、ステップ識別コードＳＴＰに対応したレジスタＲｉの内容（Ｒｉ）を読み出し、両内容（Ｒｉ）が不一致の場合、誤設計解析のために所定ステップ数前から現ステップまでの全レジスタの内容（Ｒ１）〜（Ｒｎ）を動作結果格納領域１３から読み出して表示装置１５に表示させる。該所定ステップ数は上記不図示の入力装置を操作して予め設定されている。
【００２９】
被検証論理回路１１がパイプライン処理を行なっていることと、乗算や除算などの命令実行時間が加算や減算などの命令実行時間よりも長いことから、図４に示すようにＳＴＰ＝１２６の乗算命令実行中にＳＴＰ＝１２７の加算命令及びＳＴＰ＝１２８の論理和命令の実行結果が得られる。これに対し、命令レベルシミュレータ１６は機能レベルのシミュレータでありパイプライン処理を考慮していないので、ＳＴＰ＝１２６の乗算実行結果が得られた後にＳＴＰ＝１２７の加算実行結果が得られる。
【００３０】
したがって、従来のように例えばＳＴＰ＝１２６の命令レベルシミュレータ１６による実行結果（Ｒ１）〜（Ｒｎ）と、これに対応した論理回路シミュレータ１８の動作結果（Ｒ１）〜（Ｒｎ）をそれぞれ比較すると、動作が正常であっても不一致が生ずる。図４ではレジスタＲ６及びＲ１の内容の不一致が生ずる。
【００３１】
しかし、本実施例によれば、命令実行により書き換えられた内容のみが比較部２１で比較されるので、このような不一致は生ぜず、論理回路の動作の検証を従来よりも容易に行なうことができる。
【００３２】
なお、本発明には外にも種々の変形例が含まれる。
【００３３】
例えば、上記実施例では命令コードにより書き替えられる記憶部がレジスタである場合を説明したが、該記憶部はメモリであってもよい。
【００３４】
また、テストプログラム１２は、高級言語、例えばＣ言語で記述されたものを、コンパイラでアセンブリ言語に変換したものであってもよい。
【図面の簡単な説明】
【図１】本発明の一実施例の論理回路シミュレーション装置の概略機能ブロック図である。
【図２】（Ａ）及び（Ｂ）はそれぞれ図１中のテストプログラム１２及び被検証論理回路１１のイメージを示す説明図である。
【図３】図１中の命令レベルシミュレータ１６及び出力部１７の動作を示す概略フローチャートである。
【図４】図２（Ａ）のプログラムを実行する論理回路の動作の概略を示すタイムチャートである。
【符号の説明】
１０　コンピュータ本体
１１　被検証論理回路
１２　テストプログラム
１３　動作結果格納領域
１４　実行結果格納領域
１５　表示装置
１６　命令レベルシミュレータ
１７、２０　出力部
１８　論理回路シミュレータ
１９　レジスタ読み出しタイミング生成部
２１　比較部
ＳＴＰ　ステップ識別コード
ＣＬＫ　クロック
【図１】
2004070529.tif 000003
【図２】
2004070529.tif 000004
【図３】
2004070529.tif 000005
【図４】
2004070529.tif 000006