JP2009009270A - 論理検証装置、論理検証方法 - Google Patents
論理検証装置、論理検証方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【解決手段】エラー制御用メモリ領域をCPUの外、エラー発生制御回路とエラー発生回路をCPU内部のハードマクロ(メモリ)論理シミュレーション用機能モデル内に設ける。これらを一つの論理シミュレーション環境内に設けることで、CPUコアからハードマクロ(メモリ)論理シミュレーション用機能モデルへのアドレスをフルに利用したシミュレーション実行中にパリティエラーの発生をプログラム上でコントロールできる。
【選択図】図1
Description
図1は、本発明の対象となる論理シミュレーション環境を示す。なお、この論理シミュレーション環境は、本発明に係る論理検証装置のシステム構成を示す。
論理シミュレーション環境(論理検証装置)1は、CPU10と、外部メモリ20を含む。CPU10と外部メモリ20は、メモリR/W用バス30で接続されている。なお、R/Wは、Read/Writeを示す。
テストパタンファイル40は、CPU10の命令セットに基づいて作成された検証用テストプログラムをアセンブラ等で変換したものである。メモリイメージとして命令・データ用メモリ領域22に格納される。ハードマクロ(メモリ)論理シミュレーション用機能モデル12が複数の場合、それぞれのハードマクロ(メモリ)論理シミュレーション用機能モデルに対し、エラー制御用メモリ領域21の番地を設定することで、独立してエラーの発生を制御することができる。
(1)ステップS101
検証者等によって記述されたテストプログラムは、図4に示すように、アセンブラ等によりテストパタンファイル40に変換され、メモリイメージとして命令・データ用メモリ領域22に格納される。
(2)ステップS102
CPU10は、リセットが解除されたら外部メモリ20から命令を読み出し、命令に応じた処理を行う。
(3)ステップS103
テストプログラムによっては、エラー制御用メモリ領域21にRead/Writeする記述になっている場合がある。エラー制御用メモリ領域21に書き込まれた内容によっては、エラー発生制御回路122によりハードマクロ(メモリ)論理シミュレーション用機能モデル12の書き込みデータ、読み出しデータにエラーを発生させる場合がある。エラー発生時、CPUコア11は、エラー検出時の仕様に基づいた例外処理を行い、その後再び通常の処理を行う。
(4)ステップS104
テストパタンファイル40に記述された一連の動作を行うと正常終了となる。
(5)ステップS105
仕様に反した動作を行うと異常終了となる。
(a)パリティエラーが発生しない場合
シミュレーション開始後、リセットが解除されると、CPU10は、テストプログラムに書かれた命令を処理し続ける。この間、外部メモリ20へのRead/Write、ハードマクロ(メモリ)論理シミュレーション用機能モデル12へのRead/Writeを行う。処理実行中に仕様違反が発生すれば、シミュレーションは異常終了となる。仕様違反が発生することなく一連の動作を行えば、シミュレーションは正常終了となる。
(b)パリティエラーが発生する場合
シミュレーション開始後、エラー制御用メモリ領域21に書き込むことでパリティエラー発生条件を設定する。設定された条件に基づいてパリティエラーの検出を行う。パリティエラーが検出できなければ、シミュレーションは異常終了となる。パリティエラーが検出されれば、パリティエラー検出時の仕様に基づいた例外処理を行う。例外処理中であっても仕様違反が発生すれば、シミュレーションは異常終了となる。
<記述例>
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
エラー発生制御回路122内のメモリプローブ部1221は、ハードマクロ(メモリ)用領域の値をプローブしている。
(2)ステップS202
エラー発生制御回路122内のエラー発生条件チェック部1222は、CPUコア11からのアクセスアドレス、アクセスタイプ、書き込みデータ、メモリ本体121からの読み出しデータという実際のアクセスと、メモリプローブ部1221の値を比較し、条件にマッチしたらエラー発生信号を出力する。ここでは、読み出しデータの0bit目を反転させるための信号を生成する。
(3)ステップS203
エラー発生回路123は、エラー発生制御回路122からのエラー発生信号を受け、読み出しデータの0bit目を反転させ、CPUコア11に読み出しデータとしてエラー付きデータを渡す。
(4)ステップS204
CPUコア11は、エラー付きデータを受け取り、仕様に定められた動作を行う。
背景技術において説明した公知技術では、アクセスすることがトリガ(契機)となってエラーが制御されているので、ランダムなタイミングでエラーが発生するようなケース(事例)には対応できないと考えられる。
本実施例では、read要求がない時でも、エラー制御用メモリ領域21のアクセスタイプに「read」を設定し、エラー発生条件チェック部1222においてランダムエラー発生条件にマッチしていれば、エラー発生回路123とCPUコア11間の読み出しデータバスにエラーを発生させる。これは、メモリが出しているデータ(例えば前のread時のデータ)に対し、CPUコア11がエラーを誤検出しないという動作をチェックするために行っている。
本実施例では、write要求がない時でも、エラー制御用メモリ領域21のアクセスタイプに「write」を設定し、エラー発生条件チェック部1222においてランダムエラー発生条件にマッチしていれば、エラー発生回路123からメモリ本体121への書き込みデータにエラーを発生させ、実際にエラー付きのデータをメモリ本体に書き込む。
エラー発生制御回路122内のエラー発生条件チェック部1222や、エラー発生回路123は、以下のような動作を行い、ランダムなエラーを発生する。
エラー発生回路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、メモリ、I/O(Input/Output)をつなぐ内部共通バス上でエラーを発生させる。
本実施例では、CPU10は、CPUコア11と、ハードマクロ(メモリ)論理シミュレーション用機能モデル12と、I/O13と、メモリI/F(インタフェース)14と、内部共通バス15を備える。
本発明では、CPUの外側にあるエラー制御用メモリ領域のデータをもとに、エラー発生制御回路がエラー発生回路を制御し、パリティエラーを発生させる。また、エラー発生制御回路とエラー発生回路が、論理合成されないハードマクロ(メモリ)論理シミュレーション用機能モデルの全アドレスに対し、エラーを制御する。そのため、CPUコアに特別なアドレスのビット幅拡張などのための回路を必要としない。更に、エラー発生制御回路とエラー発生回路を変更すれば、エラーの発生方法を自由に変更することができる。プロセッサがテープアウトした後でも可能である。
10… CPU
11… CPUコア
12… ハードマクロ(メモリ)論理シミュレーション用機能モデル
121… メモリ本体(ハードマクロ(メモリ))
122… エラー発生制御回路
1221… メモリプローブ部
1222… エラー発生条件チェック部
123… エラー発生回路
20… 外部メモリ
21… エラー制御用メモリ領域
22… 命令・データ用メモリ領域
Claims (14)
- CPUと、
前記CPUに接続され、論理検証のためのエラー発生条件を保持するエラー制御用メモリと、
前記CPU内に設けられ、論理検証実行中、前記エラー発生条件と、前記CPUのバスアクセスの状態とに基づき、エラー発生信号を出力するエラー発生制御回路と、
前記CPU内に設けられ、前記エラー発生信号の内容に応じたバスエラーを発生させるエラー発生回路と
を具備する
論理検証装置。 - 請求項1に記載の論理検証装置であって、
前記CPUは、
CPUコアと、
前記CPUコアとバスを介して接続される内部メモリと
を具備し、
前記エラー制御用メモリは、前記エラー発生条件として、アクセスアドレス、アクセスデータ、アクセスタイプ、及びエラー内容に関する情報を保持し、
前記エラー発生制御回路は、前記CPUコアから前記内部メモリへのアクセスの条件と、前記エラー発生条件とが一致した場合に前記エラー発生信号を出力する
論理検証装置。 - 請求項2に記載の論理検証装置であって、
前記内部メモリが、複数である場合、
前記エラー制御用メモリは、前記複数の内部メモリ毎に前記エラー発生条件を保持し、
前記エラー発生制御回路及び前記エラー発生回路は、前記複数の内部メモリ毎に設けられている
論理検証装置。 - 請求項2又は3に記載の論理検証装置であって、
前記エラー発生制御回路は、
論理検証実行中に前記エラー制御用メモリの値をプローブするメモリプローブ部と、
前記メモリプローブ部で読み取られたデータと、前記CPUコアから前記内部メモリに出力するデータとを比較し、一致すれば前記エラー発生回路に前記エラー発生信号を出力するエラー発生条件チェック部と
を具備する
論理検証装置。 - 請求項4に記載の論理検証装置であって、
前記エラー制御用メモリは、前記エラー発生条件として、発生時間間隔、保持期間、及び発生アドレスに関する情報を保持し、
前記エラー発生条件チェック部は、前記発生時間間隔で示される範囲内の乱数に基づきエラー発生までの第1クロック数を設定し、前記保持期間で示される範囲内の乱数に基づきエラー発生が継続する第2クロック数を設定し、前記発生アドレスで示される範囲内の乱数に基づきエラー発生対象となるアドレスを設定し、前記第1クロック数をクロック毎に1ずつ減算し、前記第1クロック数が0になったら前記第2クロック数をクロック毎に1ずつ減算し、アクセスタイプをチェックし、
前記エラー発生回路は、前記第1クロック数が0になったらエラーを発生させ、アクセスタイプがReadであれば前記第2クロック数が0になるまでの間、前記エラー発生回路から前記CPUコアへの読み出しデータパスにエラー内容に応じたエラーを発生させ、アクセスタイプがWriteであれば前記アドレスに対し、エラー内容に応じたエラーを発生させ、メモリ本体に書き込む
論理検証装置。 - 請求項1乃至5のいずれか一項に記載の論理検証装置であって、
前記エラー制御用メモリは、ランダムなバスエラーを発生させるためのランダムエラー発生条件を保持し、
前記エラー発生回路は、前記ランダムエラー発生条件に基づき、ランダムなタイミング及びアドレスを用いてバスエラーを発生させる
論理検証装置。 - 請求項1乃至6のいずれか一項に記載の論理検証装置であって、
前記エラー発生回路は、前記エラー発生信号の内容に応じてデータの反転処理を行い、前記CPUにエラー付きデータを渡す
論理検証装置。 - CPUコアと、
前記CPUコアにバスを介して接続される内部メモリと、
論理検証実行時に前記CPUコア及び前記内部メモリと等価な動作をするCPUモデルと、
前記CPUモデルに接続され、論理検証のためのエラー発生条件を保持するエラー制御用メモリと、
前記CPUコアの命令セットに基づいて作成されたテストパタン情報を保持する命令・データ用メモリと
を具備し、
前記CPUモデルは、
前記テストパタン情報に基づく論理検証実行中、前記CPUコアから前記内部メモリへのアクセス条件が前記エラー発生条件と一致した場合にエラー発生信号を生成するエラー発生制御モデルと、
前記エラー発生信号に基づいてバスエラーを発生させるエラー発生モデルと
を有する
論理検証装置。 - CPU内において実行される論理検証方法であって、
前記CPUに接続されたエラー制御用メモリから論理検証のためのエラー発生条件を取得するステップと、
論理検証実行中、前記エラー発生条件と、前記CPUのバスアクセスの状態とに基づき、エラー発生信号を出力するステップと、
前記エラー発生信号の内容に応じたバスエラーを発生させるステップと
を具備する
論理検証方法。 - 請求項9に記載の論理検証方法であって、
前記エラー制御用メモリに対し、前記エラー発生条件として、アクセスアドレス、アクセスデータ、アクセスタイプ、及びエラー内容に関する情報を設定するステップと
を更に具備する
論理検証方法。 - 請求項9又は10に記載の論理検証方法であって、
前記CPUが複数の内部メモリを有する場合、前記エラー制御用メモリに対して、前記複数の内部メモリ毎に前記エラー発生条件を設定するステップ
を更に具備する
論理検証方法。 - 請求項9乃至11のいずれか一項に記載の論理検証方法であって、
前記エラー発生信号の内容に応じてデータの反転処理を行い、前記CPUにエラー付きデータを渡すステップ
を更に具備する
論理検証方法。 - 請求項9乃至12のいずれか一項に記載の論理検証方法であって、
前記エラー制御用メモリに、前記エラー発生条件として、発生時間間隔、保持期間、及び発生アドレスに関する情報を設定するステップと、
前記発生時間間隔で示される範囲内の乱数に基づきエラー発生までの第1クロック数を設定するステップと、
前記保持期間で示される範囲内の乱数に基づきエラー発生が継続する第2クロック数を設定するステップと、
前記発生アドレスで示される範囲内の乱数に基づきエラー発生対象となるアドレスを設定するステップと、
前記第1クロック数をクロック毎に1ずつ減算するステップと、
前記第1クロック数が0になったらエラーを発生するステップと、
前記第1クロック数が0になったら前記第2クロック数をクロック毎に1ずつ減算するステップと、
アクセスタイプをチェックするステップと、
アクセスタイプがReadであれば前記第2クロック数が0になるまでの間、読み出しアクセスが発生するしないにかかわらず、前記CPUコアへの読み出しデータパスにエラー内容に応じたエラーを発生するステップと、
アクセスタイプがWriteであれば前記アドレスに対し、エラー内容に応じたエラーを発生し、メモリ本体に書き込むステップと
を更に具備する
論理検証方法。 - 請求項9乃至13のいずれか一項に記載の論理検証方法であって、
ランダムなバスエラーを発生させるためのランダムエラー発生条件を前記エラー制御用メモリに設定するステップと、
前記ランダムエラー発生条件に基づき、ランダムなタイミング及びアドレスを用いてバスエラーを発生させるステップと
を更に具備する
論理検証方法。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058431A (ja) * | 2005-08-23 | 2007-03-08 | Canon Inc | シミュレーションモデル、及びシミュレーション方法 |
-
2007
- 2007-06-27 JP JP2007168795A patent/JP5006121B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058431A (ja) * | 2005-08-23 | 2007-03-08 | Canon Inc | シミュレーションモデル、及びシミュレーション方法 |
Cited By (5)
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 | |
US8607105B1 (en) | Memory test circuit and memory test techniques | |
JP2005196782A (ja) | メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法 | |
JP5510107B2 (ja) | エラー訂正試験方法 | |
JP2008176828A (ja) | エラー検出訂正回路のテスト回路およびテスト方法 | |
Yiu | Design of SOC for high reliability systems with embedded processors | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
US20050120268A1 (en) | System and method for testing a memory using DMA | |
JP2007058450A (ja) | 半導体集積回路 | |
JP6786449B2 (ja) | 半導体装置 | |
KR101917165B1 (ko) | 반도체 메모리 장치 | |
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 |