2016-08-04 14 views
0

カスタムハードウェアのSpartan 6(XC6SLX16-2CSG225I)およびDDR(IS43R86400D)メモリインターフェイスに問題があります。私はSP601 devボードで試してみましたが、すべて期待どおりに動作します。Spartan 6 MIG DDRでの較正の失敗を調べるには

このサンプルプロジェクトを使用すると、soft_calibrationを有効にすると完了せず、calib_doneは低く保たれます。

キャリブレーションを無効にすると、私が見る限り完全にメモリに書き込むことができます。しかし、それを読み込もうとすると、Xilinxメモリコントローラがコマンドの実装を停止する前に、さまざまな成功した読み出しコマンドが得られます。これが起こると、コマンドFIFOがいっぱいになり、完全な状態を保ちます。成功したコマンドの数は8から300まで変化します。

おそらくDQSのセンタリングに関連するタイミングの問題であると私は確信しています。しかし、有効にすると較正を完了できないため、連続DQSチューニングはありません。だから、タイミングがずれるまでキャリブレーションを無効にして動作すると仮定しています。

キャリブレーションが失敗する理由を探していなければならない場所はありますか?

私はこれが典型的なスタックオーバーフローの問題ではないことを知っています。それが不適切な場所なら、私は引き出します。

おかげ

+0

この質問のより適切な場所は、[Electrical Engineering Stack Exchange](http://electronics.stackexchange.com/)です。私たちはスタックオーバーフローに関するいくつかのHDL質問をしますが、主にロジックに焦点を当てるものであり、この質問のような低レベルのハードウェアの詳細ではありません。 – duskwuff

+0

それはよく知っているよ。どうもありがとうございました。 – Shane

答えて

2

は残念ながら、キャリブレーションプロセスは、単に内部のタップを調整しながら、順次コンテンツを読み書きしようとします。それは成功の一端を見つけ、次に他の方向に進み、成功したタップを特定し、最終的に中央のどこかに落ち着かせる。

これはおそらくHW中心ですので、私は自分の考えを投稿し、他の誰かがスレッドを動かすようにします。

  1. これはこのボードですか?それともそれをやっているのは全部ですか?あなたはチェックしましたか?それが1枚のボードで、RAMがBGAスタイルならば、それは悪いソルダーの仕事かもしれません。チップ上でわずかに指を押して、別の結果が得られるかどうかを確認してください...後でHW中心を取得する
  2. カスタムボード上で実行しているFPGAイメージは、devkitで動作しますか?何度も実用的ではありませんが、私はあなたがdevkitで使用しているイメージには、あなたがカスタムイメージに取り込まれていないFPGAの制約があることを除外して尋ねると思っていました。

  3. トレースの長さの許容誤差を確認してください。長さの制約があったはずです。プラスマイナス50ミルのようなもの。誰もボードのリスピンが必要だと聞くのは好きではありませんが、もしそれらが出ていれば、それはたくさん説明します。

  4. シグナルインテグリティ。終端抵抗はそこにありましたか?正しい値ですか?アクティブなプローブがあるとは思わない?
  5. 正しいDDRメモリを手に入れましたか?時々彼らは異なった速度等級を使用し、それはあらゆる種類の問題を引き起こす可能性があります。
  6. インターフェイスの速度を落とすと、通常はアイテム4と5が役立ちます。そのため、作業を単純にしようとすると、クロックの遅い新しいFPGAイメージを要求することがあります。
+0

ご返信ありがとうございます。私はこれらの提案をすべて調べましたが、いずれも責任はありませんでしたが、調査のラインはハードウェアに間違いを示しました。ボード上のチップセレクトは、ローではなくハイに接続されていました。一度私はすべてが上がったことを固定しました。 – Shane