JP2009009270A - 論理検証装置、論理検証方法 - Google Patents

論理検証装置、論理検証方法 Download PDF

Info

Publication number
JP2009009270A
JP2009009270A JP2007168795A JP2007168795A JP2009009270A JP 2009009270 A JP2009009270 A JP 2009009270A JP 2007168795 A JP2007168795 A JP 2007168795A JP 2007168795 A JP2007168795 A JP 2007168795A JP 2009009270 A JP2009009270 A JP 2009009270A
Authority
JP
Japan
Prior art keywords
error
cpu
memory
logic verification
occurrence
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.)
Granted
Application number
JP2007168795A
Other languages
English (en)
Other versions
JP5006121B2 (ja
Inventor
Toshiyuki Matsunaga
敏幸 松永
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2007168795A priority Critical patent/JP5006121B2/ja
Publication of JP2009009270A publication Critical patent/JP2009009270A/ja
Application granted granted Critical
Publication of JP5006121B2 publication Critical patent/JP5006121B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】シミュレーション時のパリティエラーの発生をプロセッサ内のリソースを増やすことなく実現し、動作の検証を行うことを容易にする。
【解決手段】エラー制御用メモリ領域をCPUの外、エラー発生制御回路とエラー発生回路をCPU内部のハードマクロ(メモリ)論理シミュレーション用機能モデル内に設ける。これらを一つの論理シミュレーション環境内に設けることで、CPUコアからハードマクロ(メモリ)論理シミュレーション用機能モデルへのアドレスをフルに利用したシミュレーション実行中にパリティエラーの発生をプログラム上でコントロールできる。
【選択図】図1

Description

本発明は、論理検証装置に関し、特に半導体集積回路の論理検証装置に関する。
近年、プロセスの微細化、低電圧化に伴い、トランジスタのばらつき、電源ノイズ、配線のクロストーク、中性子線など、メモリに保持するデータが化ける可能性が高まっている。
従って、高信頼性が求められる分野では、エラー発生を抑えると同時に、発生したデータを検出し、システムとして誤動作しないように制御する必要がある。
また、マイクロプロセッサのうち、特に高信頼性を求められる製品に採用されるものは、プロセッサ内の各種データ信号に対し、パリティを付加し、データ保護を行う。パリティエラー等のエラーが発生した時には、そのエラーを見逃さずプロセッサ外に通知し、システム全体のチェックを行うなど特別な動作をすることが求められる。更に、論理シミュレーション時にエラーが発生した場合の動作を検証するためには、実際に信号に正しくないデータを載せる必要がある。
関連する技術として、特開2001−134629号公報(特許文献1)にシミュレーション方法及びシミュレーション装置が開示されている。この公知技術では、メモリモデルにアクセスするためのアドレスのうち、有効なメモリアドレス(下位)と無効なメモリアドレス(上位)を持つ。無効なメモリアドレスにエラー発生のためのアドレスを乗せ、メモリモジュール内部に存在するエラー制御モジュールはその内容に基づき、メモリのRead(読み出し)/Write(書き込み)データに所望のエラーを発生させる。この公知技術では、実際に読み書きするメモリモジュール領域を限定することで無効なアドレスビットを作り出し、その無効なアドレスビットをエラー制御に使用している。このような処理を行うことで、LSIモデルによるメモリへのアクセス時に、任意のアドレスやデータに対し、所望のエラーを発生させることができる。そして、エラー発生の検出などの動作検証を行うことができる。
特開2001−134629号公報
先に説明した公知技術では、メモリモジュールのアドレスの無効な部分を使ってエラー発生の制御を行っているため、無効なアドレスの存在しないメモリでは、そもそもエラーの発生を制御することができない。公知技術では、実際に読み書きするメモリモジュール領域を限定することで無効なアドレスビットを作り出しており、その無効なアドレスビットをエラー制御に使用している。
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の論理検証装置は、CPU(10)と、CPU(10)に接続され、論理検証のためのエラー発生条件を保持するエラー制御用メモリ(21)と、CPU(10)内に設けられ、論理検証実行中、エラー発生条件と、CPU(10)のバスアクセスの状態とに基づき、エラー発生信号を出力するエラー発生制御回路(122)と、CPU(10)内に設けられ、エラー発生信号の内容に応じたバスエラーを発生させるエラー発生回路(123)とを具備する。
このように、論理検証用のエラー発生条件を格納したエラー制御用メモリをCPUの外、エラー発生制御回路とエラー発生回路をCPU内部のハードマクロ(メモリ)論理シミュレーション用機能モデル内に設ける。これらを一つの論理シミュレーション環境内に設けることで、CPUコアからハードマクロ(メモリ)論理シミュレーション用機能モデルへのアドレスをフルに利用したシミュレーション実行中にエラーの発生をプログラム上でコントロールできる。
メモリモデルのどこにアクセスしてもエラーを発生させることが可能となる。
以下に、本発明の第1実施例について添付図面を参照して説明する。
図1は、本発明の対象となる論理シミュレーション環境を示す。なお、この論理シミュレーション環境は、本発明に係る論理検証装置のシステム構成を示す。
論理シミュレーション環境(論理検証装置)1は、CPU10と、外部メモリ20を含む。CPU10と外部メモリ20は、メモリR/W用バス30で接続されている。なお、R/Wは、Read/Writeを示す。
論理シミュレーション環境1は、検証者によって作成された検証用プログラムを実行することで、CPU10が仕様に適合しているかどうかをチェックする。すなわち、正しく機能するか論理検証する。期待通りの動作をすればOK、期待と異なる動作をすればNGと判定する。
CPU10は、論理検証の対象となる半導体集積回路であり、メモリR/W用バス30を介して、外部メモリ20にRead/Writeアクセスをすることで、外部メモリ20内の命令コードやデータの読み出し、命令の実行、結果の書き込み等を行う。
CPU10は、CPUコア11と、ハードマクロ(メモリ)論理シミュレーション用機能モデル12を備える。
CPUコア11は、論理検証の対象となる部分であるCPU内部ロジックを管理し、エラー付きデータを受け取ると仕様に基づいてパリティエラー等のエラーの検出、処理を行う。ここでは、パリティエラーを例に説明するが、実際にはパリティエラーに限定されない。
ハードマクロ(メモリ)論理シミュレーション用機能モデル12は、実際のデバイス内に存在するハードマクロ(メモリ)の動作と等価なシミュレーション用モデルである。
外部メモリ20は、エラー制御用メモリ領域21と、命令・データ用メモリ領域22を有する。エラー制御用メモリ領域21と命令・データ用メモリ領域22は、それぞれ物理的に独立したメモリであっても良い。
エラー制御用メモリ領域21は、CPU11からのRead/Writeアクセスによって読み書き可能な領域である。これにより、エラーの発生を制御することができる。
命令・データ用メモリ領域22は、論理検証のための検証用プログラムや、期待値のデータを格納する。
図1では、検証用プログラムとして、テストパタンファイル40が示されている。
テストパタンファイル40は、CPU10の命令セットに基づいて作成された検証用テストプログラムをアセンブラ等で変換したものである。メモリイメージとして命令・データ用メモリ領域22に格納される。ハードマクロ(メモリ)論理シミュレーション用機能モデル12が複数の場合、それぞれのハードマクロ(メモリ)論理シミュレーション用機能モデルに対し、エラー制御用メモリ領域21の番地を設定することで、独立してエラーの発生を制御することができる。
なお、図1では、ハードマクロ(メモリ)を一つしか図示していないが、CPU10の内部構成によっては複数メモリが存在する。ハードマクロ(メモリ)論理シミュレーション用機能モデル12は、機能が異なるハードマクロ(メモリ)毎に存在する。図2は、複数のハードマクロ(メモリ)論理シミュレーション用機能モデル12(12−i、i=1〜n:nは任意)が存在している場合を示す。
ハードマクロ(メモリ)論理シミュレーション用機能モデル12は、メモリ本体121と、エラー発生制御回路122と、エラー発生回路123を備える。エラー発生制御回路122とエラー発生回路123は、メモリ本体121に接続されたCPU内部バス上の任意の場所に設置可能である。
メモリ本体121は、ハードマクロ(メモリ)論理シミュレーション用機能モデル12の内部にあるハードマクロ(メモリ)である。
エラー発生制御回路122は、論理シミュレーション実行中、エラー制御用メモリ領域21のデータをプローブしている。エラー制御用メモリ領域21の値から生成される条件と、CPUコア11からのバスアクセスの条件がマッチ(適合)した時、エラー発生回路123にエラー発生信号を出力する。
エラー発生回路123は、エラー発生制御回路122からのエラー発生信号を受けて、その内容に応じたバスエラーを発生させ、CPUコア11へエラー付きデータを返す。若しくは、メモリ本体121にエラー付きデータを格納する。
次に、図3を参照して、本発明における全体的な動作について説明する。
(1)ステップS101
検証者等によって記述されたテストプログラムは、図4に示すように、アセンブラ等によりテストパタンファイル40に変換され、メモリイメージとして命令・データ用メモリ領域22に格納される。
(2)ステップS102
CPU10は、リセットが解除されたら外部メモリ20から命令を読み出し、命令に応じた処理を行う。
(3)ステップS103
テストプログラムによっては、エラー制御用メモリ領域21にRead/Writeする記述になっている場合がある。エラー制御用メモリ領域21に書き込まれた内容によっては、エラー発生制御回路122によりハードマクロ(メモリ)論理シミュレーション用機能モデル12の書き込みデータ、読み出しデータにエラーを発生させる場合がある。エラー発生時、CPUコア11は、エラー検出時の仕様に基づいた例外処理を行い、その後再び通常の処理を行う。
(4)ステップS104
テストパタンファイル40に記述された一連の動作を行うと正常終了となる。
(5)ステップS105
仕様に反した動作を行うと異常終了となる。
図5を参照して、論理シミュレーションの流れを説明する。なお、ここではパリティエラーを例に説明しているが、実際には、パリティエラーに限定されない。
(a)パリティエラーが発生しない場合
シミュレーション開始後、リセットが解除されると、CPU10は、テストプログラムに書かれた命令を処理し続ける。この間、外部メモリ20へのRead/Write、ハードマクロ(メモリ)論理シミュレーション用機能モデル12へのRead/Writeを行う。処理実行中に仕様違反が発生すれば、シミュレーションは異常終了となる。仕様違反が発生することなく一連の動作を行えば、シミュレーションは正常終了となる。
(b)パリティエラーが発生する場合
シミュレーション開始後、エラー制御用メモリ領域21に書き込むことでパリティエラー発生条件を設定する。設定された条件に基づいてパリティエラーの検出を行う。パリティエラーが検出できなければ、シミュレーションは異常終了となる。パリティエラーが検出されれば、パリティエラー検出時の仕様に基づいた例外処理を行う。例外処理中であっても仕様違反が発生すれば、シミュレーションは異常終了となる。
次に、図6を参照して、エラー制御用メモリ領域21の詳細について説明する。
図6は、ハードマクロ(メモリ)Nに対し、アドレス0x2番地へのReadアクセス発生時、読み出しデータが0xffff_ff00だった場合、データの0bit目が反転し、エラーを発生するという条件を設定した例である。
図6に示した例では、CPU10が、エラー制御用メモリ領域21に対し、ハードマクロ(メモリ)の数(N)に分割してハードマクロ(メモリ)1〜N用領域を設定する。更に、一つのハードマクロ(メモリ)N用領域(ベースアドレス0x0100)は、アクセスアドレス(オフセット0x0)、アクセスデータ(オフセット0x8)、アクセスタイプ(オフセット0x10)、エラー内容(オフセット0x18)という内容を保持する。論理シミュレーション実施中は、CPUコアからのLoad(読み込み)/Store(格納)命令により読み書き可能である。
次に、図7を参照して、エラー発生制御回路122とエラー発生回路123の詳細について説明する。
図7は、図6の設定をした時、アドレス0x2番地へのReadアクセス時、読み出しデータが0xffff_ff00の時、データの0bit目を反転するためのエラー発生信号をエラー発生回路に通知する場合の例である。
図7に示すように、エラー発生制御回路122は、メモリプローブ部1221と、エラー発生条件チェック部1222を備える。
メモリプローブ部1221は、エラー制御用メモリ領域21の値を論理シミュレーション中にプローブしている。エラー発生制御回路122は、メモリプローブ部1221においてクロックの立ち上がりに同期して毎サイクル、外部メモリ20の情報と、CPUコア11からのアクセスアドレス、アクセスタイプ、アクセスデータ(書き込みデータ)を監視している。
エラー発生条件チェック部1222は、メモリプローブ部1221で読み取ってきたデータと、CPUコア11が出力するアクセスアドレス、アクセスタイプ、書き込みデータ、読み出しデータをチェックし、条件にマッチしているか判定する。判定は、プログラム等により実施しても良い。
例えば、Verilog HDL(ハードウェア記述言語)では、PLI等を使用することや、階層を指定したassign文などで実装することができる。
説明のため、以下にVerilog HDLによる記述のイメージを示す。但し、実際には、この例に限定されない。
<記述例>
assign.TargetAddr=board.ExtMem.PErrAdr;
assign.TargetType=board.ExtMem.PErrTyp;
assign.TargetData=board.ExtMem.PErrDat;
always @(posedge clk)begin
Match=(TargetAddr==MemAddr)
&(TargetType==MemType)
&(TargetData==MemData);
end
ここで、「assign」は、継続的代入を示す。例えば電気回路の配線接続に相当する。「TargetAddr」は、条件となるアクセスアドレスを示す。「TargetType」は、条件となるアクセスタイプを示す。「TargetData」は、条件となるアクセスデータを示す。「board」は、基盤となる半導体集積回路を示す。ここでは、論理シミュレーション環境(論理検証装置)1を示す。「ExtMem」は、外部メモリ20を示す。ここでは、特にエラー制御用メモリ領域21を示す。すなわち、「board.ExtMem.PErrAdr」は、エラー制御用メモリ領域21の値であるアクセスアドレスを示す。同様に、「board.ExtMem.PErrTyp」は、エラー制御用メモリ領域21の値であるアクセスタイプを示す。「board.ExtMem.PErrDat」は、エラー制御用メモリ領域21の値であるアクセスデータを示す。「always @(イベント式)」は、イベント式にあるイベントが発生するたびに実行されるブロックである。「posedge clk」は、クロック信号が0から1に変化した場合を指定する。すなわち、クロック信号の立ち上がりエッジに同期する。「begin ... end」は、汎用のブロック範囲である。「MemAddr」は、CPUコア11からのアクセスアドレスを示す。「MemType」は、CPUコア11からのアクセスタイプを示す。「MemData」は、CPUコア11からのアクセスデータを示す。「Match=(TargetAddr==MemAddr)&(TargetType==MemType)&(TargetData==MemData);」は、条件にマッチしているか否かの判定を示す。ここでは、アクセスアドレス、アクセスタイプ、アクセスデータが全て一致すれば条件にマッチしていると判断する。但し、実際には、アクセスアドレス、アクセスタイプ、アクセスデータのいずれかが一致すれば条件にマッチしていると判断するようにしても良い。
エラー発生条件チェック部1222は、条件にマッチすればエラー発生回路123にエラー発生信号を出力する。
エラー発生回路123は、エラー発生信号の内容に応じてデータの反転処理を行う。
次に、図8を参照して、論理シミュレーション実施中にCPU10からハードマクロ(メモリ)N用領域に対し、アクセスアドレス(0x2)、アクセスデータ(0xffff_ff00)、アクセスタイプ(0x1)、エラー内容(0x1)が書き込まれた場合の動作について説明する。すなわち、0x2番地からの読み出しデータが0xffff_ff00の時にデータの0bit目を反転するという設定である。
(1)ステップS201
エラー発生制御回路122内のメモリプローブ部1221は、ハードマクロ(メモリ)用領域の値をプローブしている。
(2)ステップS202
エラー発生制御回路122内のエラー発生条件チェック部1222は、CPUコア11からのアクセスアドレス、アクセスタイプ、書き込みデータ、メモリ本体121からの読み出しデータという実際のアクセスと、メモリプローブ部1221の値を比較し、条件にマッチしたらエラー発生信号を出力する。ここでは、読み出しデータの0bit目を反転させるための信号を生成する。
(3)ステップS203
エラー発生回路123は、エラー発生制御回路122からのエラー発生信号を受け、読み出しデータの0bit目を反転させ、CPUコア11に読み出しデータとしてエラー付きデータを渡す。
(4)ステップS204
CPUコア11は、エラー付きデータを受け取り、仕様に定められた動作を行う。
以上のように、本発明では、エラー制御用メモリ領域をCPUの外、エラー発生制御回路とエラー発生回路をハードマクロ(メモリ)論理シミュレーション用機能モデル内に設ける。これらを一つの論理シミュレーション環境内に設けることで、CPUコアからハードマクロ(メモリ)論理シミュレーション用機能モデルへのアドレスをフルに利用したシミュレーション実行中にパリティエラーの発生をプログラム上でコントロールできる。公知技術では、メモリモデルの限定された領域でしかエラーの発生を制御できなかったが、本発明では、この問題を解決することができる。
本発明により、パリティエラーの発生タイミングを考慮した論理シミュレーションが可能となる。また、メモリモデルのどこにアクセスしてもエラーを発生させることが可能となる。なお、パリティをECCに置き換えて動作させることも可能である。また、メモリ毎にパリティエラーの発生を制御できるので、例えば、複数メモリでの同時エラー発生といった、普通では起き得ないようなケースなども検証可能となる。更に、実機でパリティエラー起因と思われる不良品の解析をシミュレーションで行うような場合の解析を容易にする。
以下に、本発明の第2実施例について説明する。
背景技術において説明した公知技術では、アクセスすることがトリガ(契機)となってエラーが制御されているので、ランダムなタイミングでエラーが発生するようなケース(事例)には対応できないと考えられる。
本実施例における論理シミュレーション環境(論理検証装置)の基本構成は、第1実施例と同様である。本実施例では、Read(読み出し)/Write(書き込み)の処理に特徴がある。
まず、Read(読み出し)の処理について説明する。
本実施例では、read要求がない時でも、エラー制御用メモリ領域21のアクセスタイプに「read」を設定し、エラー発生条件チェック部1222においてランダムエラー発生条件にマッチしていれば、エラー発生回路123とCPUコア11間の読み出しデータバスにエラーを発生させる。これは、メモリが出しているデータ(例えば前のread時のデータ)に対し、CPUコア11がエラーを誤検出しないという動作をチェックするために行っている。
次に、Write(書き込み)の処理について説明する。
本実施例では、write要求がない時でも、エラー制御用メモリ領域21のアクセスタイプに「write」を設定し、エラー発生条件チェック部1222においてランダムエラー発生条件にマッチしていれば、エラー発生回路123からメモリ本体121への書き込みデータにエラーを発生させ、実際にエラー付きのデータをメモリ本体に書き込む。
例えば、メモリ本体を4セット(way)のキャッシュメモリと想定した場合、同じreadアドレスに対し、4セット(way)のreadデータを出力する。CPUコア11では、読み出してきた4セットのデータから必要なデータを1セット選択し、使用する。
エラー付きのデータをメモリ本体にランダムに書き込むことによって、本来必要でないセット(way)のデータにエラーが発生していてもCPUコア11がエラーを誤検出しないという動作をチェックする。
read時に必要でないセット(way)のデータに対し、CPUコア11からのwriteアクセスを発生させエラーつきで書き込んだ上で再び読み出すという手順を省くことができる。
図9を参照して、本実施例におけるエラー制御用メモリ領域21の詳細について説明する。
本実施例では、ハードマクロ(メモリ)Nに対し、ランダムにエラーが発生するように変更している。図9は、発生時間間隔が0x00000100〜0x0000ff00の範囲、保持期間が0x00000001〜0x000000ffの範囲、発生アドレスが0x00〜0xffの範囲で、Readデータ、Writeデータにデータの0bit目が反転し、エラーを発生するという条件を設定した例である。
図9に示した例では、一つのハードマクロ(メモリ)N用領域(ベースアドレス0x0100)は、発生アドレス(オフセット0x0)、発生時間間隔データ(オフセット0x8)、アクセスタイプ(オフセット0x10)、エラー内容(オフセット0x18)という内容を保持する。図6と図9を比較すると、「アクセスアドレス」と「アクセスデータ」の代わりに、「発生アドレス」と「発生時間間隔データ」が保持されている。すなわち、「アクセスアドレス」として「発生アドレス」を保持し、「アクセスデータ」として「発生時間間隔データ」を保持する。なお、「発生時間間隔データ」の上位32bitを「保持期間」とし、「発生時間間隔データ」の下位32bitを「発生時間間隔」とする。
次に、図10を参照して、本実施例におけるエラー発生制御回路122とエラー発生回路123の詳細について説明する。
図10は、基本的に図7と同様であるが、本実施例では、ランダム設定時にはCPUコア11からのアクセスアドレス、アクセスタイプ、アクセスデータ(書き込みデータ)を監視しない。
図11を参照して、ランダム設定時の動作について説明する。
エラー発生制御回路122内のエラー発生条件チェック部1222や、エラー発生回路123は、以下のような動作を行い、ランダムなエラーを発生する。
(1)ステップS301
エラー発生回路123は、発生時間間隔で示される範囲内の乱数を発生させる。これをエラー発生までのクロック数(A)とする。
(2)ステップS302
エラー発生回路123は、保持期間で示される範囲内の乱数を発生させる。これをエラー発生が継続するクロック数(B)とする。
(3)ステップS303
エラー発生回路123は、発生アドレスで示される範囲内の乱数を発生させる。これをエラー発生対象となるアドレス(C)とする。
(4)ステップS304
エラー発生条件チェック部1222は、クロック数(A)をクロック毎に1ずつ減算する。
(5)ステップS305
エラー発生回路123は、クロック数(A)が0になったらエラーを発生させる。
(6)ステップS306
エラー発生条件チェック部1222は、クロック数(A)が0になったらクロック数(B)をクロック毎に1ずつ減算する。
(7)ステップS307
エラー発生条件チェック部1222は、アクセスタイプをチェックする。
(8)ステップS308
エラー発生回路123は、アクセスタイプがReadであればクロック数(B)が0になるまでの間、読み出しアクセスが発生するしないにかかわらず、エラー発生回路123からCPUコア11への読み出しデータパスにエラー内容に応じたエラーを発生させる。
(9)ステップS309
エラー発生回路123は、アクセスタイプがWriteであればアドレス(C)に対し、エラー内容に応じたエラーを発生させ、メモリ本体に書き込む。
以上の動作を繰り返す。
本実施例では、ランダム設定に基づき発生するエラーのタイミングをCPUコア11からのメモリアクセスのタイミングと分離する。すなわち、トリガとしない。
以下に、本発明の第3実施例について説明する。
本実施例では、CPU、メモリ、I/O(Input/Output)をつなぐ内部共通バス上でエラーを発生させる。
図12を参照して、本実施例におけるCPUの構成について説明する。
本実施例では、CPU10は、CPUコア11と、ハードマクロ(メモリ)論理シミュレーション用機能モデル12と、I/O13と、メモリI/F(インタフェース)14と、内部共通バス15を備える。
CPUコア11(11−j、j=1〜m:mは任意)は、複数でも良い。すなわち、CPU10は、少なくとも1つのCPUコア11を備えている。図12では、例として、CPUコア11−1と、CPUコア11−2を示している。ハードマクロ(メモリ)論理シミュレーション用機能モデル12は、メモリ本体121と、エラー発生制御回路122と、エラー発生回路123を備える。I/O13は、各種の入出力ポートである。メモリI/F14は、外部メモリ20と接続するためのインタフェースである。内部共通バス15は、CPUコア11と、ハードマクロ(メモリ)論理シミュレーション用機能モデル12と、I/O13と、メモリI/F14を相互に接続するための内部バスである。
CPU10と外部メモリ20は、メモリR/W用バス30で接続されている。外部メモリ20は、エラー制御用メモリ領域21と、命令・データ用メモリ領域22を有する。エラー制御用メモリ領域21は、エラー発生制御回路122にデータを提供する。
このような構成にすることにより、ハードマクロ(メモリ)論理シミュレーション用機能モデル12から内部共通バス15上に読み出されたデータ、若しくは内部共通バス15を介してハードマクロ(メモリ)論理シミュレーション用機能モデル12に書き込まれるデータに、エラーを発生させることができる。
最後に、本発明の特徴について説明する。
本発明では、CPUの外側にあるエラー制御用メモリ領域のデータをもとに、エラー発生制御回路がエラー発生回路を制御し、パリティエラーを発生させる。また、エラー発生制御回路とエラー発生回路が、論理合成されないハードマクロ(メモリ)論理シミュレーション用機能モデルの全アドレスに対し、エラーを制御する。そのため、CPUコアに特別なアドレスのビット幅拡張などのための回路を必要としない。更に、エラー発生制御回路とエラー発生回路を変更すれば、エラーの発生方法を自由に変更することができる。プロセッサがテープアウトした後でも可能である。
このように、本発明は、シミュレーション時のエラーの発生をプロセッサ内のリソースを増やすことなく実現し、動作の検証を行うことを容易にする。或いは、実機評価などでエラーが発生した時にシミュレーション上で状況を再現するための手助けになる。
本発明は、高信頼性を求められるマイクロプロセッサの論理検証分野に適用することが可能である。
図1は、本発明の対象となる論理シミュレーション環境(論理検証装置)の構成図である。 図2は、CPU内に複数のメモリが存在する場合の例を示す図である。 図3は、本発明における動作を示すフローチャートである。 図4は、テストプログラムの例を示す図である。 図5は、論理シミュレーションの流れを説明するための図である。 図6は、第1実施例におけるエラー制御用メモリ領域の説明のための図である。 図7は、第1実施例におけるエラー発生制御回路とエラー発生回路の説明のための図である。 図8は、論理シミュレーション実施中にCPUからハードマクロ(メモリ)用領域に各種データがが書き込まれた場合の動作を示すフローチャートである。 図9は、第2実施例におけるエラー制御用メモリ領域の説明のための図である。 図10は、第2実施例におけるエラー発生制御回路とエラー発生回路の説明のための図である。 図11は、ランダム設定時の動作を示すフローチャートである。 図12は、第3実施例におけるCPUの説明のための図である。
符号の説明
1… 論理シミュレーション環境(論理検証装置)
10… CPU
11… CPUコア
12… ハードマクロ(メモリ)論理シミュレーション用機能モデル
121… メモリ本体(ハードマクロ(メモリ))
122… エラー発生制御回路
1221… メモリプローブ部
1222… エラー発生条件チェック部
123… エラー発生回路
20… 外部メモリ
21… エラー制御用メモリ領域
22… 命令・データ用メモリ領域

Claims (14)

  1. CPUと、
    前記CPUに接続され、論理検証のためのエラー発生条件を保持するエラー制御用メモリと、
    前記CPU内に設けられ、論理検証実行中、前記エラー発生条件と、前記CPUのバスアクセスの状態とに基づき、エラー発生信号を出力するエラー発生制御回路と、
    前記CPU内に設けられ、前記エラー発生信号の内容に応じたバスエラーを発生させるエラー発生回路と
    を具備する
    論理検証装置。
  2. 請求項1に記載の論理検証装置であって、
    前記CPUは、
    CPUコアと、
    前記CPUコアとバスを介して接続される内部メモリと
    を具備し、
    前記エラー制御用メモリは、前記エラー発生条件として、アクセスアドレス、アクセスデータ、アクセスタイプ、及びエラー内容に関する情報を保持し、
    前記エラー発生制御回路は、前記CPUコアから前記内部メモリへのアクセスの条件と、前記エラー発生条件とが一致した場合に前記エラー発生信号を出力する
    論理検証装置。
  3. 請求項2に記載の論理検証装置であって、
    前記内部メモリが、複数である場合、
    前記エラー制御用メモリは、前記複数の内部メモリ毎に前記エラー発生条件を保持し、
    前記エラー発生制御回路及び前記エラー発生回路は、前記複数の内部メモリ毎に設けられている
    論理検証装置。
  4. 請求項2又は3に記載の論理検証装置であって、
    前記エラー発生制御回路は、
    論理検証実行中に前記エラー制御用メモリの値をプローブするメモリプローブ部と、
    前記メモリプローブ部で読み取られたデータと、前記CPUコアから前記内部メモリに出力するデータとを比較し、一致すれば前記エラー発生回路に前記エラー発生信号を出力するエラー発生条件チェック部と
    を具備する
    論理検証装置。
  5. 請求項4に記載の論理検証装置であって、
    前記エラー制御用メモリは、前記エラー発生条件として、発生時間間隔、保持期間、及び発生アドレスに関する情報を保持し、
    前記エラー発生条件チェック部は、前記発生時間間隔で示される範囲内の乱数に基づきエラー発生までの第1クロック数を設定し、前記保持期間で示される範囲内の乱数に基づきエラー発生が継続する第2クロック数を設定し、前記発生アドレスで示される範囲内の乱数に基づきエラー発生対象となるアドレスを設定し、前記第1クロック数をクロック毎に1ずつ減算し、前記第1クロック数が0になったら前記第2クロック数をクロック毎に1ずつ減算し、アクセスタイプをチェックし、
    前記エラー発生回路は、前記第1クロック数が0になったらエラーを発生させ、アクセスタイプがReadであれば前記第2クロック数が0になるまでの間、前記エラー発生回路から前記CPUコアへの読み出しデータパスにエラー内容に応じたエラーを発生させ、アクセスタイプがWriteであれば前記アドレスに対し、エラー内容に応じたエラーを発生させ、メモリ本体に書き込む
    論理検証装置。
  6. 請求項1乃至5のいずれか一項に記載の論理検証装置であって、
    前記エラー制御用メモリは、ランダムなバスエラーを発生させるためのランダムエラー発生条件を保持し、
    前記エラー発生回路は、前記ランダムエラー発生条件に基づき、ランダムなタイミング及びアドレスを用いてバスエラーを発生させる
    論理検証装置。
  7. 請求項1乃至6のいずれか一項に記載の論理検証装置であって、
    前記エラー発生回路は、前記エラー発生信号の内容に応じてデータの反転処理を行い、前記CPUにエラー付きデータを渡す
    論理検証装置。
  8. CPUコアと、
    前記CPUコアにバスを介して接続される内部メモリと、
    論理検証実行時に前記CPUコア及び前記内部メモリと等価な動作をするCPUモデルと、
    前記CPUモデルに接続され、論理検証のためのエラー発生条件を保持するエラー制御用メモリと、
    前記CPUコアの命令セットに基づいて作成されたテストパタン情報を保持する命令・データ用メモリと
    を具備し、
    前記CPUモデルは、
    前記テストパタン情報に基づく論理検証実行中、前記CPUコアから前記内部メモリへのアクセス条件が前記エラー発生条件と一致した場合にエラー発生信号を生成するエラー発生制御モデルと、
    前記エラー発生信号に基づいてバスエラーを発生させるエラー発生モデルと
    を有する
    論理検証装置。
  9. CPU内において実行される論理検証方法であって、
    前記CPUに接続されたエラー制御用メモリから論理検証のためのエラー発生条件を取得するステップと、
    論理検証実行中、前記エラー発生条件と、前記CPUのバスアクセスの状態とに基づき、エラー発生信号を出力するステップと、
    前記エラー発生信号の内容に応じたバスエラーを発生させるステップと
    を具備する
    論理検証方法。
  10. 請求項9に記載の論理検証方法であって、
    前記エラー制御用メモリに対し、前記エラー発生条件として、アクセスアドレス、アクセスデータ、アクセスタイプ、及びエラー内容に関する情報を設定するステップと
    を更に具備する
    論理検証方法。
  11. 請求項9又は10に記載の論理検証方法であって、
    前記CPUが複数の内部メモリを有する場合、前記エラー制御用メモリに対して、前記複数の内部メモリ毎に前記エラー発生条件を設定するステップ
    を更に具備する
    論理検証方法。
  12. 請求項9乃至11のいずれか一項に記載の論理検証方法であって、
    前記エラー発生信号の内容に応じてデータの反転処理を行い、前記CPUにエラー付きデータを渡すステップ
    を更に具備する
    論理検証方法。
  13. 請求項9乃至12のいずれか一項に記載の論理検証方法であって、
    前記エラー制御用メモリに、前記エラー発生条件として、発生時間間隔、保持期間、及び発生アドレスに関する情報を設定するステップと、
    前記発生時間間隔で示される範囲内の乱数に基づきエラー発生までの第1クロック数を設定するステップと、
    前記保持期間で示される範囲内の乱数に基づきエラー発生が継続する第2クロック数を設定するステップと、
    前記発生アドレスで示される範囲内の乱数に基づきエラー発生対象となるアドレスを設定するステップと、
    前記第1クロック数をクロック毎に1ずつ減算するステップと、
    前記第1クロック数が0になったらエラーを発生するステップと、
    前記第1クロック数が0になったら前記第2クロック数をクロック毎に1ずつ減算するステップと、
    アクセスタイプをチェックするステップと、
    アクセスタイプがReadであれば前記第2クロック数が0になるまでの間、読み出しアクセスが発生するしないにかかわらず、前記CPUコアへの読み出しデータパスにエラー内容に応じたエラーを発生するステップと、
    アクセスタイプがWriteであれば前記アドレスに対し、エラー内容に応じたエラーを発生し、メモリ本体に書き込むステップと
    を更に具備する
    論理検証方法。
  14. 請求項9乃至13のいずれか一項に記載の論理検証方法であって、
    ランダムなバスエラーを発生させるためのランダムエラー発生条件を前記エラー制御用メモリに設定するステップと、
    前記ランダムエラー発生条件に基づき、ランダムなタイミング及びアドレスを用いてバスエラーを発生させるステップと
    を更に具備する
    論理検証方法。
JP2007168795A 2007-06-27 2007-06-27 論理検証装置、論理検証方法 Expired - Fee Related JP5006121B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007168795A JP5006121B2 (ja) 2007-06-27 2007-06-27 論理検証装置、論理検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007168795A JP5006121B2 (ja) 2007-06-27 2007-06-27 論理検証装置、論理検証方法

Publications (2)

Publication Number Publication Date
JP2009009270A true JP2009009270A (ja) 2009-01-15
JP5006121B2 JP5006121B2 (ja) 2012-08-22

Family

ID=40324307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007168795A Expired - Fee Related JP5006121B2 (ja) 2007-06-27 2007-06-27 論理検証装置、論理検証方法

Country Status (1)

Country Link
JP (1) JP5006121B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015229A (ja) * 2008-07-01 2010-01-21 Fujitsu Ltd 回路設計装置および回路設計方法
JP2012022613A (ja) * 2010-07-16 2012-02-02 Fujitsu Ltd 通信経路モジュール、論理検証プログラム、および論理検証方法
KR20220022437A (ko) * 2020-08-18 2022-02-25 주식회사 아도반테스토 유연한 테스트 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058431A (ja) * 2005-08-23 2007-03-08 Canon Inc シミュレーションモデル、及びシミュレーション方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058431A (ja) * 2005-08-23 2007-03-08 Canon Inc シミュレーションモデル、及びシミュレーション方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015229A (ja) * 2008-07-01 2010-01-21 Fujitsu Ltd 回路設計装置および回路設計方法
US8276108B2 (en) 2008-07-01 2012-09-25 Fujitsu Limited Circuit design apparatus and circuit design method
JP2012022613A (ja) * 2010-07-16 2012-02-02 Fujitsu Ltd 通信経路モジュール、論理検証プログラム、および論理検証方法
KR20220022437A (ko) * 2020-08-18 2022-02-25 주식회사 아도반테스토 유연한 테스트 시스템 및 방법
KR102613770B1 (ko) 2020-08-18 2023-12-13 주식회사 아도반테스토 유연한 테스트 시스템 및 방법

Also Published As

Publication number Publication date
JP5006121B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
US7506217B2 (en) Apparatus and method for software-based control flow checking for soft error detection to improve microprocessor reliability
US9928150B2 (en) System and method for testing a logic-based processing device
US20040255225A1 (en) Control circuit for error checking and correction and memory controller
JP5350677B2 (ja) バス信号制御回路、及び、バス信号制御回路を備えた信号処理回路
JP2008009721A (ja) 評価システム及びその評価方法
US7752527B2 (en) Microcontroller and RAM
JP5462453B2 (ja) 半導体装置
JP2007041665A (ja) Ecc機能検査回路およびecc機能検査方法
Floridia et al. Hybrid on-line self-test strategy for dual-core lockstep processors
JP5006121B2 (ja) 論理検証装置、論理検証方法
US7797134B2 (en) System and method for testing a memory with an expansion card using DMA
JP2005196782A (ja) メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法
CN113760751B (zh) 生成测试用例的方法、电子设备及存储介质
Yiu Design of soc for high reliability systems with embedded processors
US20050120268A1 (en) System and method for testing a memory using DMA
JP5510107B2 (ja) エラー訂正試験方法
JP2007058450A (ja) 半導体集積回路
JP2008176828A (ja) エラー検出訂正回路のテスト回路およびテスト方法
JP6786449B2 (ja) 半導体装置
KR101917165B1 (ko) 반도체 메모리 장치
TW201928981A (zh) 記憶體整體測試之系統及其方法
JP6003735B2 (ja) Dimm擬似故障発生方法およびdimm擬似故障発生装置
JP4426344B2 (ja) メモリデバイス制御方法および装置
US10120737B2 (en) Apparatus for detecting bugs in logic-based processing devices
JP6358122B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120524

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees