”
Veritak 3.68AのChipScopeとシミュレーションの波形比較機能”の補足をする。

上の図で”真ん中や、右はじに赤いところがあるが、詳しくは調査してみないとわからないが、どうもバースト長がシミュレーションと実機で違っているようだ。”と書いたが、それが本当ならばシミュレーションの意味を揺るがすほどの事実。(パソコンのPCIボードへのアクセスなど、シミュレーションするのが非常に難しい場合もあるが、この場合は実機とシミュレーションが、たぶん一致するはず。。。)シミュレーションと実機は同じであるはずだ。だって、シミュレーションと実機が違っていたら、シミュレーションの意味がない。そこには何らかの要因があるはず。
というわけで社運ならぬ私運をかけて解析した。おかげで首がこってしまったが、解明することができた。ふ~。前ふりが長かったが、皆さんなんだと思われますか?
実はリフレッシュ動作のタイミングの違いでした。
シミュレーションは、待つのがいやなので初期化の一部の時間を縮めてある。例えば”電源とクロックが安定した(リセットが解除されてから)200us後で、CKEを1にしてNOPまたはDESECTコマンドを入れる”などの項目だ。
DDR2 SDRAMの初期化のシーケンスはここを参照。
ところが実機の方はそのまま初期化シーケンスを実行しているので、リフレッシュのタイミングが双方で異なっていたのだ。それをとらえた波形をお見せしよう。

上の図で水色のrasb_node_2d, casb_node_2d, web_node_2dに注目してほしい。これらはChipScopeでキャプチャした波形だ。上図で緑色で囲ったところがプリチャージ・コマンド、紫色で囲ったところがリフレッシュ・コマンドになっている。そのためタイミングがずれて、後ろが真っ赤になってしまった。
これもVeritakの比較機能がなければ、このような現象が起こっていること自体がわからなかった。
- 2009年06月28日 04:56 |
- ChipScope、シミュレーション協調検証
-
| トラックバック:0
-
| コメント:0