MITOUJTAGでDDR2/3メモリのテスト
MITOUJTAG Proには、C言語を使ってバウンダリスキャンの動作を記述する機能があります。この機能をつかって、DDR2メモリやDDR3メモリを操作してみました。
使ったボードは、特電Artix-7評価ボードと、Spartan-6評価ボード。
まず、MITOUJTAG Proを起動したら、論理合成のときに使ったピン定義ファイル(XDCファイルや、UCFファイル)を記述します。
そして、ピン定義ファイルというファイルを自動生成します。これは、何番目のJTAGデバイスのどのピンに、どんな名前の信号がつながっているかを記述したシンプルなファイルです。
それから、DDR2やDDR3メモリを操作するサンプルが用意されているので、それを見てピン定義ファイルに記述した「信号名」をC++のクラスのメンバ変数に代入していきます。
・・・
プログラムのコア部分はこんな感じです。
プログラムが書き終わったら実行してみます。
このような表示が出て、正常にメモリテストが終わったことが示されます。
このテストでは何をしていたかというのを波形で表示してみると、まず、DDR3メモリのデータバスの1本1本をHにして読み書きし、全データピンの結線を調べています。
次に、同様にデータバスの1本1本をLにして全データピンの決戦を調べます。
次にアドレスバスの1本1本をHにして、アドレスピンが切れていないか、ショートしていないかなどを調べます。
バウンダリスキャンは大変遅いので、1回のテストに秒単位の時間がかかります。
SDRAMはリフレッシュが停止するとデータは消えるとされていて、検査時間はリフレッシュ時間よりもはるかに長いのですが、数秒程度ならば消えないようです。
そのため、MITOUJTAGのバウンダリスキャンを使ってDDR2/3メモリのテストができるのです。
| 固定リンク
コメント