(57)【特許請求の範囲】
【請求項１】
ＣＰＵモデルとデジタル回路用の被試験論理回路を有する仮想ハードウェアを、ＣＰＵ命令から構成されたプログラムによりＣＰＵモデルを介して被試験論理回路の試験をコンピュータで実行する方法において、
実機ＣＰＵより広いビット幅のイミディエイトデータを扱う仮想命令群を処理できる機能を前記仮想ハードウェアに備え、
前記プログラムに、仮想ハードウェアに対する実行命令を拡張命令として加えて前記ＣＰＵモデルに入力し、
前記仮想ハードウェアは、２ポートメモリと、それぞれに被試験論理回路を有して２ポートメモリに接続された2組のＣＰＵを備え、
前記プログラムによる拡張命令は、実行待ち時間を生成するＷＡＩＴ拡張命令であり、ＷＡＩＴ拡張命令時に前記２ポートメモリにおける２組のＣＰＵの競合タイミングを調整することを特徴としたデジタル回路用シミュレーション方法。
【請求項２】
前記プログラムによる拡張命令に画面表示を行う拡張命令を持たせ、デジタル回路用シミュレータのコンソールウインドに画面表示することを特徴とした請求項１記載のデジタル回路用シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路用シミュレーション方法に係わり、特にシミュレーション用ＣＰＵの命令拡張に関するものである。
【背景技術】
【０００２】
デジタル回路の開発に当たっては、試作品を作る前に、予測できる問題点を検証し、解決することを目的としてハードウェア／ソフトウェアの協調検証が行われる。協調検証方法としては、非特許文献のような方法が公知となっている。
【０００３】
図６は協調検証を行うためのシミュレーション装置の概略を示したもので、１〜５の機能を有する仮想ハードウェア（仮想ＨＷ）と実行オブジェクト６からなっている。１はユーザが作成するカスタムＬＳＩなどの被試験論理回路（ＡＳＩＣ）、ＲＯＭモデル２とＲＡＭモデル３はソフトウェア動作用のメモリモデル、４はソフトウェア実行部分である実機と等価なＣＰＵモデルで、図７で示すような機能を有している。このＣＰＵモデル４は、図５で示すシミュレータ上で動作するようハードウェア言語で構築される。そして、これら１〜４はバスモデル５によって接続されている。
【０００４】
実行オブジェクト６は、実機のプリント板で動作するオブジェクトである。
実行オブジェクト６から仮想ハードウェアに対して、コンピュータ（以下ＣＰＵという）命令によって生成された指令を出力して初期化し、命令セットが記述されている組込みソフトウェアを読み込んで動作を実行する。実機と等価なＣＰＵモデル４は、実行オブジェクトを読み込むことで実機の時間軸を考慮したソフトウェア動作をシミュレーションできる。
【先行技術文献】
【非特許文献】
【０００５】
公技番号２０１１−５０２１３０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図６で示したような装置を用いてシミュレーションを行う場合、実機のＣＰＵと等価なＣＰＵモデル４は、実機のソフトウェアを正確にシミュレーションすることができる。このため、等価なＣＰＵモデル４を使用した仮想ハードウェア環境を用いた場合、ハードウェア全体の試験を実機ソフトウェアによってシミュレーションすることが可能となっている。
【０００７】
しかし、実機のＣＰＵと同一の命令セットからなる実機ソフトウェアでは、被試験論理回路の試験には必ずしも効果的でない。例えばイミディエイトデータを扱う命令は命令語のビット長に制限され、制限を越えるビット幅のイミディエイトデータの場合、複数行の命令が必要になり可読性が悪い。また、被試験論理回路の試験にはＣＰＵからＲＯＭモデル，ＲＡＭモデルに対するアクセス開始時間の調整が必要になる場合があるが、実機のＣＰＵの命令セットだけでは実現が困難である。また、試験において画面表示が必要な場合があるが、画面表示は表示用の表示コントローラが必要になり、さらに表示コントローラ自体を制御するソフトウェアも必要になる。
【０００８】
本発明が目的とするとこは、本来の試験を行うために効率的な試験用の実行オブジェクトを提供することにある。
【課題を解決するための手段】
【０００９】
ＣＰＵモデルとデジタル回路用の被試験論理回路を有する仮想ハードウェアを、ＣＰＵ命令から構成されたプログラムによりＣＰＵモデルを介して被試験論理回路の試験をコンピュータで実行する方法において、
実機ＣＰＵより広いビット幅のイミディエイトデータを扱う仮想命令群を処理できる機能を前記仮想ハードウェアに備え、
前記プログラムに、仮想ハードウェアに対する実行命令を拡張命令として加えて前記ＣＰＵモデルに入力し、
前記仮想ハードウェアは、２ポートメモリと、それぞれに被試験論理回路を有して２ポートメモリに接続された2組のＣＰＵを備え、
前記プログラムによる拡張命令は、実行待ち時間を生成するＷＡＩＴ拡張命令であり、ＷＡＩＴ拡張命令時に前記２ポートメモリに対する競合タイミングを調整することを特徴としたものである。
【００１２】
更に、本発明は、プログラムによる拡張命令に画面表示を行う拡張命令を持たせ、デジタル回路用シミュレータのコンソールウインドに画面表示することを特徴としたものである。
【発明の効果】
【００１３】
以上のとおり、本発明によれば、仮想ハードウェアに対する実行命令を拡張命令とし、前記実行オブジェクトによる仮想ハードウェアに対する実行命令に拡張命令を追加したことにより、従来のようなＣＰＵの初期設定内容を含んだ実行オブジェクトを必要とせずに、少ない工数でハードウェアに対するデバッグを可能とするものである。また、命令語のビット長に制限を受けないイミディエイトデータ拡張命令としたことで、可読性のよいプログラムミングが可能となるものである。
また、拡張命令は実行待ち時間を生成するものとしたことで、２ポートメモリの競合動作の試験では実機での試験よりも高いカバー率の試験が可能となるものである。
さらに、コンソールウインドで画面表示しながら試験を行う場合においても、画面表示を行うための拡張命令によって、従来のような表示コントローラを制御するソフトウェアを必要とすることなく、画面表示が可能となるものである
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態を示す構成図。
【図２】本発明の実施形態を示す構成図。
【図３】ＣＰＵ命令→拡張命令変換図。
【図４】実行オブジェクトによる拡張指令の出力タイミング図。
【図５】デジタル回路シミュレータ図。
【図６】従来の仮想ハードウェアの構成図。
【図７】従来の実機等価なＣＰＵモデル構成図。
【発明を実施するための形態】
【００１５】
図１は、本発明の実施例を示す仮想ハードウェアの構成図を示したものである。本発明における実行オブジェクト１０は、図６で示す実行オブジェクト６の有する機能の他に、拡張命令を供給する機能を備える。また、ＣＰＵモデル２０は、従来のように実行オブジェクトによるＣＰＵ命令で動作するものではなく、実行待ち時間を生成する拡張命令に基づいて動作するＣＰＵモデルに構成される。
【００１６】
仮想ハードウェア上で使用するＣＰＵモデルは、実機のＣＰＵとソフトウェアの互換性は必要不可欠であり、本発明のＣＰＵモデル２０も実機のＣＰＵとソフトウェアの互換性を有している。したがって、ＣＰＵモデル２０は実機ＣＰＵが実行できる命令群に加え、実機ＣＰＵにはない拡張命令群を処理できる機能が搭載される。また、CPUモデル２０は実機のCPUとは異なり、CPUの初期設定内容を備えているため、CPUの初期設定内容を含んだ実行オブジェクトを必要としない。よって、部分的なハードウェアをデバッグするために作成したソフトウェアのみを実行可能である。以下図に基づいて具体的に説明する。
【実施例１】
【００１７】
図１の実行オブジェクト１０は実機ＣＰＵにはない拡張命令群を含んだ実行オブジェクトを実行する。ＣＰＵモデル２０が実行するオブジェクトも実機のＲＯＭに格納されたものと異なる。本発明の仮想CPU２０はアセンブラ命令語の文字列を処理することで、命令語のビット数の制限はない。このため、イミディエイトアドレス方式によるイミディエイトデータを扱う命令としたことで、制限を受けずに命令が拡張できて可読性のよいプログラミングに貢献できる。
【００１８】
図２は仮想ハードウェアの構成図で、2ポートメモリ３０と２０Ａ，２０Ｂの２個のＣＰＵ（ＣＰＵ−Ａ，ＣＰＵ−Ｂ）よりなるＣＰＵモデル２０から構成される。図２で示す仮想ハードウェアのＣＰＵ２０Ａ（ＣＰＵ−Ａ），ＣＰＵ２０Ｂ（ＣＰＵ−Ｂ）には図示省略されているが、それぞれには図1で示す被試験論理回路（ＡＳＩＣ）、ＲＯＭモデル２とＲＡＭモデル３を備えている。2ポートメモリ３０は、ＣＰＵ−ＡとＣＰＵ−Ｂの両方よりアクセスできる機能と協調検証を実行するためのシミュレーション機能がプログラム（実行プログラム１０Ａ，１０Ｂ）を有している。
【００１９】
図３は実行オブジェクト１０Ａと１０Ｂに、例として３２ビットイミディエイトデータの0x12345678をレジスタにセットする場合を示したものである。図３（ａ）は、本来の実機に対する実行オブジェクトが有するＣＰＵ命令の1例であるが、本発明での実行オブジェクト１０は、さらに（ａ）図のＣＰＵ命令を、図３（ｂ）で示すような拡張命令に１行で実現できる。
【００２０】
実行オブジェクト１０からは、ＣＰＵ−Ａ，ＣＰＵ−Ｂに対し図４で示すような競合タイミングを発生させる命令が格納され、リードタイミング時におけるＣＰＵ−ＡとＣＰＵ−Ｂは、それぞれ図２で示すように同一のプログラムに基づく動作を実行する。また、実行待ち時間を生成するWAIT拡張命令時では、2ポートメモリ３０の競合タイミングを調整しながらハードウェアデバッグを行う。
すなわち、実行待ち時間を生成するWAIT拡張命令は、ＣＰＵ−ＡとＣＰＵ−Ｂに対しその待ち時間WAITに差をもたせてタイミング調整しながら試験をする。これによって、競合タイミングを網羅的に作成できるため、実機での試験より高いカバー率での試験が行える。
【実施例２】
【００２１】
図５はデジタル回路シミュレータ時の実施例である。この実施例は、画面表示を行う拡張命令で、デバッグ中の進行状況の確認に使用する。実機で画面表示を行うには、従来では実機ハードウェアに含まれる表示コントローラを制御するソフトウェアが必要になるが、図５のプログラム例で示すようなPRINT命令を使うことで、表示コントローラを制御するソフトウェアを用いることなく画面表示ができ、その画面表示は、デジタル回路シミュレータのコンソールウインドに表示できる。画面表示を行うPRINT命令はHDL記述の表示系命令（例：$display 、report）を使って実現できる。
なお、仮想ハードウェアは、図１のものが使用される。
【００２２】
以上本発明によれば、実行オブジェクトにおいてＣＰＵ命令に拡張命令を追加する。2個のＣＰＵと２ポートメモリで構成された仮想ハードウェアに対して待ち時間WAITに差をもたせ、タイミング調整しながらシミュレーションできる。よって、従来のようにＣＰＵの初期設定内容を含んだ実行オブジェクトを必要とせずに、少ない工数でハードウェアに対するデバッグを可能とするものである。
【００２３】
また、実行オブジェクトからは、命令語のビット長に制限を受けないイミディエイトデータ拡張命令としたことで、可読性のよいプログラムミングが可能となるものである。
また、拡張命令は実行待ち時間を生成するものとしたことで、実機での試験よりも高いカバー率の試験が可能となるものである。
さらに、コンソールウインドで画面表示しながら試験を行う場合においても、画面表示を行うための拡張命令によって、従来のような表示コントローラを制御するソフトウェアを必要とすることなく、画面表示が可能となるものである。
【符号の説明】
【００２４】
１…  被試験論理回路（ＡＳＩＣ）
２…  ＲＯＭモデル
３…  ＲＡＭモデル
４…  実機と等価なＣＰＵモデル
５…  バスモデル
６…  実行オブジェクト
１０（１０Ａ，１０Ｂ）…  実行オブジェクト
２０（２０Ａ，２０Ｂ）…  ＣＰＵモデル
３０…  ２ポートメモリ
【図１】
0005928128.tif 000002
【図２】
0005928128.tif 000003
【図３】
0005928128.tif 000004
【図４】
0005928128.tif 000005
【図５】
0005928128.tif 000006
【図６】
0005928128.tif 000007
【図７】
0005928128.tif 000008