(57)【要約】      （修正有）【課題】好適なシミュレーション環境の構築を図る。【解決手段】デジタル回路用シミュレーション装置は、試験対象ハードウェアと実機と等価なＣＰＵモデルとソフトウェア動作用のメモリモデル１１，１２とを備えた仮想ハードウェア１を実装する。このメモリモデル１１，１２は、テキストファイルに記述されたメモリデータを読み込むテキストファイル読込機能部と、読み込んだメモリデータＦから該メモリデータが占有する領域部分を選択するアドレス位置選択部と、メモリデータのデータ幅から該メモリデータの占有するバイト位置を選択するバイト位置選択部と、を備える。【選択図】図１
2019028900.tif 000002
【特許請求の範囲】
【請求項１】
デジタル回路についてハードウェア／ソフトウェアの協調シミュレーションを実行する装置であって、
前記デジタル回路の被試験論理回路と、実機と等価なＣＰＵモデルと、ソフトウェア動作用のメモリモデルとを備えた仮想ハードウェアを実装し、
前記メモリモデルは、テキストファイルに記述されたメモリデータを読み込むテキストファイル読込機能部と、
前記テキストファイル読込機能部で読み込んだメモリデータから該メモリデータが占有する領域部分を選択するアドレス位置選択部と、
前記メモリデータのデータ幅から該メモリデータの占有するバイト位置を選択するバイト位置選択部と、
を備えることを特徴とするデジタル回路用シミュレーション装置。
【請求項２】
前記メモリモデルは、前記メモリデータを保持するデータ保持部を、
さらに備えることを特徴とする請求項１記載のデジタル回路用シミュレーション装置。
【請求項３】
前記メモリモデルは、ＲＯＭモデルとＲＡＭモデルとを備える一方、
前記メモリデータは、ＲＯＭモデルに格納するプログラム用ＲＯＭデータと、ＲＡＭモデルに格納する初期値ありＲＡＭデータとを備える
ことを特徴とする請求項１または２記載のデジタル回路用シミュレーション装置。
【請求項４】
前記テキストファイル読込機能部は、前記ＣＰＵモデルの起動イベントに応じて前記テキストファイルのメモリデータを読み込むことを特徴とする請求項１〜３のいずれか１項に記載のデジタル回路用シミュレーション装置。
【請求項５】
前記各メモリモデルの占有する領域として占有アドレス情報が割り当てられ、
前記アドレス位置選択部は、読み込んだメモリデータと前記占有アドレス情報とを比較して前記占有アドレス情報の領域に応じたメモリデータを取得する
ことを特徴とする請求項１〜４のいずれか１項に記載のデジタル回路用シミュレーション装置。
【請求項６】
請求項１〜５のいずれか１項に記載のデジタル回路用シミュレーション装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に組み込み分野におけるデジタル回路のハードウェア／ソフトウェアの協調シミュレーションに関する。
【背景技術】
【０００２】
周知のようにデジタル回路の開発では、開発期間およびコスト低減などの要求から試作品を施策する前に予測可能な問題点を検証し、該問題点を解決するために論理シミュレーションベースのハードウェア／ソフトウェアの協調シミュレーションが実施されている。
【０００３】
この協調シミュレーションは、実行ソフトウェアにより仮想ハードウェアの動作をシミュレーションする。この仮想ハードウェアは、試験対象のデジタル回路としての被試験論理回路と、ソフトウェア動作用のメモリモデルとしてのＲＯＭモデルおよびＲＡＭモデルと、実機と等価なＣＰＵモデルとを備えている。このメモリモデルに関する発明として、特許文献１〜３が公知となっている。
【０００４】
この特許文献１の発明は、仮想ハードウェアがアクセスするメモリモデルの領域に応じたハードウェア用メモリをコンピュータのメモリ領域に確保し、シミュレーション速度の低下防止を図っている。
【０００５】
また、特許文献２の発明は、メモリマップ情報を用いることにより、シミュレーションの際に必要なインタフェース情報量の削減を図っている。さらに特許文献３の発明は、ＥＥＰＲＯＭ（電気的消去可能プログラマブル読出専用メモリ）モデルを使用した試験システムに関し、プログラムがメモリカードから供給されてシミュレーション動作が実行される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３４６５８７号公報
【特許文献２】特開２００１−２５６０７９号公報
【特許文献３】特開平１−２６０３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術においては、メモリモデルデータの作成と利用方法は開示されているものの、各メモリモデルにメモリデータを格納する方法ついては開示されていない。
【０００８】
とりわけ特許文献１，２の発明は、メモリモデルやＣＰＵモデルを含むシミュレーション対象については記載されているものの、メモリモデルの初期化に関する具体的に手段は記載されていない。そのため、メモリモデルを含めたシミュレーション、特にＣＰＵモデルのソフトウェアを含めたシミュレーションにおいてＲＯＭモデルからソフトウェアを実行できず、好適なシミュレーション環境を構築できないおそれがある。
【０００９】
本発明は、このような従来の問題を解決するためになされ、好適なシミュレーション環境の構築を解決課題としている。
【課題を解決するための手段】
【００１０】
本発明は、デジタル回路についてハードウェア／ソフトウェアの協調シミュレーションを実行する装置に関する。このデジタル回路用シミュレーション装置は、前記デジタル回路の被試験論理回路と、実機と等価なＣＰＵモデルと、ソフトウェア動作用のメモリモデルとを備えた仮想ハードウェアを実装する。
【００１１】
このメモリモデルは、テキストファイルに記述されたメモリデータを読み込むテキストファイル読込機能部と、前記テキストファイル読込機能部で読み込んだメモリデータから該メモリデータが占有する領域部分を選択するアドレス位置選択部と、前記メモリデータのデータ幅から該メモリデータの占有するバイト位置を選択するバイト位置選択部と、を備える。なお、前記メモリモデルの一態様として、前記メモリデータを保持するデータ保持部を備える。
【００１２】
前記メモリモデルの他の態様は、ＲＯＭモデルとＲＡＭモデルとを備える一方、前記メモリデータは、ＲＯＭモデルに格納するプログラム用ＲＯＭデータと、ＲＡＭモデルに格納する初期値ありＲＡＭデータとを備える。また、前記テキストファイル読み込み機能部は、前記ＣＰＵモデルの起動イベントに応じて前記テキストファイルのメモリデータを読み込むことが好ましい。
【００１３】
前記各メモリモデルの占有する領域として占有アドレス情報を割り当てることができる。このとき前記アドレス位置選択部は、読み込んだメモリデータと前記占有アドレス情報とを比較して前記占有アドレス情報の領域に応じたメモリデータを取得することができる。
【００１４】
なお、本発明は、デジタル回路用シミュレーション装置としてコンピュータを機能させるためのプログラムとして構成することもできる。
【発明の効果】
【００１５】
本発明によれば、好適なシミュレーション環境を構築することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るデジタル回路用シミュレーション装置の仮想ハードウェアの構成図。
【図２】同  メモリモデルの構成図。
【図３】同  ＣＰＵモデルのメモリマップ。
【図４】同  メモリデータの詳細図。
【図５】同  ＲＯＭモデルおよびＲＡＭモデルの構成図。
【図６】同  実施例１の説明図。
【図７】同  実施例２の説明図。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態に係るデジタル回路用シミュレーション装置を説明する。このシミュレーション装置は、コンピュータにより構成され、主に組み込み分野のデジタルシステムの開発の際、デジタル回路用の仮想ハードウェアをテストプログラムでシミュレーションする。
【００１８】
この仮想ハードウェアは、コンピュータのハードウェアリソースとソフトウェアリソースとが協働した具体的手段、即ちユーザの作成したカスタムＬＳＩなどの試験対象のデジタル回路としての被試験論理回路と、制御系の処理モデルとを主体とする。
【００１９】
≪構成例≫
（１）図１に基づき前記仮想ハードウェアの構成を具体的に説明する。この仮想ハードウェア１は、前記被試験論理回路としての試験対象ハードウェア（ＨＷ）１０と、ソフトウェア動作用のメモリモデルとして機能するＲＯＭモデル１１，ＲＡＭモデル１２と、実機と等価なＣＰＵモデル１３とを有し、この各モデル１１〜１３は前記制御系の処理モデルを構成する。
【００２０】
ここで各構成１０〜１２はバスモデル１４を通じて接続され、またＲＯＭモデル１１，ＲＡＭモデル１２がメモリデータを読み込んで仮想ハードウェア１のメモリモデルが初期化されている。
【００２１】
（２）図２に基づきメモリモデル、即ちＲＯＭモデル１１，ＲＡＭモデル１２の構成を説明する。このメモリモデル１１，１２は、テキストファイル読み込み機能部２１，アドレス位置選択部２２，バイト位置選択部２３，データ保持部２４を有している。
【００２２】
このうちテキストファイル読み込み機能部２１は、テキストファイルに記述されたメモリデータＦを読み込む。ここで読み込まれたメモリデータＦに基づきアドレス位置選択部２２が該メモリデータＦの占有する領域部分を選択し、バイト位置選択部２３がメモリデータＦのデータ幅から該メモリデータＦの占有するバイト位置を選択する。
【００２３】
この各部２１〜２３の処理後にメモリデータＦは、データ保持部２４に保持格納される。なお、データ保持部２４は、コンピュータの記憶装置（ＲＡＭやＲＯＭなどの主記憶装置，ＨＤＤやＳＳＤなどの補助記憶装置）に構築されている。
【００２４】
≪作用・動作の説明等≫
（１）前記シミュレーション装置の構成によれば、ＣＰＵモデル１３がＲＯＭモデル１１に格納されたプログラム用ＲＯＭデータＦ１を読み込んで該プログラムが実行される。このプログラムの実行によってプログラム自身および試験対象ハードウェア１０がシミュレーションされる。
【００２５】
このときＲＡＭモデル１２は、必要に応じて初期値ありＲＡＭデータＦ２を格納することでＣＰＵモデル１３のプログラム実行を支持する。以下、図３〜図５に基づきメモリマップ・メモリデータＦ・メモリモデル１１，１２の詳細を説明する。
【００２６】
まず、図３に基づきＣＰＵモデル１３のメモリマップ、即ちメモリ配置の一例を説明する。ここではＲＯＭモデル１１はアドレス「００００００００ｈ〜０００２００００ｈ」に配置され、かつ容量「１２８ｋｂｙｔｅ」と示されている。一方、ＲＡＭモデル１２はアドレス「０００４００００ｈ〜０００８００００ｈ」に配置され、かつ容量「２５６ｋｂｙｔｅ」と示されている。
【００２７】
つぎに図４に基づきメモリデータＦの一例を説明すれば、前述のようにメモリデータＦはテキストファイルに記述され、ＲＯＭモデル１１に格納するプログラム用ＲＯＭデータＦ１と、ＲＡＭモデル１２に格納される初期値ありＲＡＭデータＦ２とを有している。
【００２８】
この両データＦ１，Ｆ２は、アドレス情報Ｄ１「００００００００や０００４０００など」とデータ情報Ｄ２「４２ＡＤやＣＣ０８など」とを有している。なお、図１および図３では各メモリモデル１１，１２については単数が示されているが、複数の場合も同様にテキストファイルにメモリデータＦを記述することができる。
【００２９】
さらに図５に基づきメモリモデル１１，１２の詳細を説明する。ここでは図３のメモリマップ例を用いるものとする。このメモリマップ例によれば、ＲＯＭモデル１１の容量を「１２８ｋｂｙｔｅ」とする一方、ＲＡＭモデル１２の容量を「２５６ｋｂｙｔｅ」とする。
【００３０】
したがって、ＲＯＭモデル１１は「６４ｋｂｙｔｅ」の１６ビット品を二つの構成とする。この各構成は、図５中において１６ビットＲＯＭモデル１６−１，１６−２と示されている。
【００３１】
一方、ＲＡＭモデル１２は「６４ｋｂｙｔｅ」の８ビット品を四つの構成とする。この各構成は、図５中において８ビットＲＡＭモデル８−１〜８−４と示されている。このようなＲＯＭモデル１１とＲＡＭモデル１２のそれぞれに図４のメモリデータを分割して格納するものとする。
【００３２】
このときＣＰＵモデル１３の起動前において各メモリモデル１１，１２にメモリデータＦを格納し、ＣＰＵモデル１３が起動後にメモリモデル１１，１２にアクセスすることでプログラムのシミュレーションを実行する。
【００３３】
（２）以下、図２に基づきメモリモデル１１，１２にメモリデータＦを格納する方法（メモリモデルの初期化）を説明する。
【００３４】
ここではＣＰＵモデル１３のプログラム実行前にメモリデータＦをメモリモデル１１，１２に格納するため、メモリデータＦの読み込み開始にＣＰＵモデル１３のリセット信号Ｌを用いる。
【００３５】
すなわち、テキストファイル読み込み機能部２１は、ＣＰＵモデル１３の起動イベントに用いるリセット信号Ｌが解除されたときにメモリデータＦの記述されたテキストファイルを読み込む。なお、ＣＰＵモデル１３の起動イベントの信号であれば、リセット信号Ｌ以外を用いてもよい。
【００３６】
読み込んだメモリデータＦはＣＰＵモデル１３のメモリ領域全体の内容となり、またメモリモデル１１，１２は自身の占有する領域のみ選択して取り込むものとする。このときアドレス位置選択部２２は、読み込んだメモリデータＦのアドレス情報Ｄ１と占有アドレス情報Ｉ１とを比較し、各メモリモデル１１，１２自身の占有アドレス領域に応じたメモリデータＦのみを取得する。なお、占有アドレス情報Ｉ１は、あらかじめ各メモリモデル１１，１２に与えておき、前述のようにメモリデータＦの読み込み時に使用される。
【００３７】
また、ＣＰＵモデル１３のデータバスに対するメモリモデル１１，１２は、図５示すとおりであり、前記占有アドレス領域のメモリデータＦから各メモリモデル１１，１２の位置に応じたメモリデータＦを選択して取り込む必要がある。さらにバイト位置選択部２３は、バイト位置情報Ｉ２に基づき各メモリモデル１１，１２のそれぞれのバイト位置に応じたメモリデータＦを選択して取得するものとする。
【００３８】
≪実施例≫
以下、バイト位置選択部２３の実施例を説明する。ここでは図４のメモリデータＦおよび図６のメモリモデル１１，１２の構成を用いるものとする。
【００３９】
（１）図６に基づき実施例１、即ち１６ビットメモリのＲＯＭモデル１１のバイト位置選択を説明する。まず、図４のメモリデータＦは、１６ビット単位で記述しているので、矢印Ｘに示すように、３２ビット化してアドレスを４アドレス毎に配置する。
【００４０】
つぎに図５のような１６ビットメモリの場合、バイト位置情報Ｉ２が“１”のときにデータバス「３１〜１６」のメモリデータＦを取得する。一方、バイト位置情報Ｉ２が“０”のときにデータバス「１５〜０」のメモリデータＦを取得する。
【００４１】
ここで取得した各メモリデータＦをメモリモデル１１，１２に格納する。例えば図５のメモリモデル１６−１，１６−２の構成であれば、バイト位置情報Ｉ２が“０”のときのメモリデータＦは１６ビットＲＯＭモデル１６−１に格納される。一方、バイト位置情報Ｉ２が“１”のときメモリデータＦは１６ビットＲＯＭモデル１６−２に格納される。
【００４２】
（２）図７に基づき実施例２、即ち８ビットメモリのＲＡＭモデル１２のバイト位置選択を説明する。この場合には、バイト位置情報Ｉ２が“１１”のときにデータバス「３１〜２４」のメモリデータＦを取得し、バイト位置情報Ｉ２が“１０”のときにデータバス「２３〜１６」のメモリデータＦを取得する。
【００４３】
また、バイト位置情報Ｉ２が“０１”のときにデータバス「１５〜８」のメモリデータＦを取得し、バイト位置情報Ｉ２が“００”のときにデータバス「７〜０」のメモリデータＦを取得する。
【００４４】
ここで１６ビットメモリの場合と同じく図５のメモリモデル８−１〜８−４の構成に基づき説明すれば、バイト位置情報Ｉ２が“１１”のときのメモリデータＦは８ビットＲＡＭモデル８−４に格納され、バイト位置情報Ｉ２が“１０”のときのメモリデータＦは８ビットＲＡＭモデル８−３に格納される。
【００４５】
また、バイト位置情報Ｉ２が“０１”のときのメモリデータＦは８ビットＲＡＭモデル８−２に格納され、バイト位置情報Ｉ２が“００”のときのメモリデータＦは８ビットＲＡＭモデル８−１に格納される。
【００４６】
このような前記シミュレーション装置によれば、メモリモデル１１，１２にメモリデータＦを格納する前記方法（メモリモデルの初期化）が実行されるため、ＣＰＵモデル１３のプログラム実行前にメモリデータＦがメモリモデル１１，１２に格納される。
【００４７】
したがって、メモリモデル１１，１２を含めたシミュレーション、特にＣＰＵモデル１３のソフトウェアを含めたシミュレーションにおいてＲＯＭモデル１１からソフトウェアを実行可能な好適なシミュレーション環境を構築することができる。
【００４８】
≪その他・他例≫
本発明は、上記実施形態に限定されるものではなく、仮想ハードウェア１の構成などは各請求項に記載された範囲内で変更して実施することができる。例えば仮想ハードウェア１は、デュアルＣＰＵをモデル化したＣＰＵモデルであってもよく、各ＣＰＵモデルからアクセス可能な２ポートメモリとしてもよい。
【００４９】
また、本発明は、前記シミュレーション装置としてコンピュータを機能させるシミュレーション用のプログラムとして構成することもできる。このプログラムによれば、メモリモデル１１，１２にメモリデータＦを格納する前記方法（メモリモデルの初期化）が実行される。
【００５０】
このプログラムは、ＷＥＢサイトや電子メールなどのネットワークを通じて提供することができ、またＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなどの記録媒体に記録して提供することができる。この記録媒体は、記録媒体駆動装置（光学ドライブ装置など）を利用して読み出され、そのプログラムコード自体が前記実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【符号の説明】
【００５１】
１…仮想ハードウェア
８−１〜８−４…８ビットＲＡＭモデル
１０…試験対象ＨＷ（ハードウェア）
１１…ＲＯＭモデル
１２…ＲＡＭモデル
１３…ＣＰＵモデル
１４…バスモデル
１６−１，１６−２…１６ビットＲＯＭモデル
２１…テキストファイル読み込み機能部
２２…アドレス位置選択部
２３…バイト位置選択部
２４…データ保持部
【図１】
2019028900.tif 000003
【図２】
2019028900.tif 000004
【図３】
2019028900.tif 000005
【図４】
2019028900.tif 000006
【図５】
2019028900.tif 000007
【図６】
2019028900.tif 000008
【図７】
2019028900.tif 000009