記事 ID: 000085697 コンテンツタイプ: トラブルシューティング 最終改訂日: 2012/09/11

SOPC Builder で使用すると、DDR SDRAM の内容が破損するのはなぜですか?

環境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

Altera® SOPC Builder の DDR (1/2/3) SDRAM コントローラーを使用すると、データ破損が発生する可能性があります。 これは、SDRAM コントローラーと SOPC Builder バースト・アダプターが SDRAM コントローラーのスレーブ・ポートをシーケンシャル・バースト・マスター・ポートに適応させなかった場合に使用されるバーストライン・ストランプレーションが原因です。 スレーブポートのバースト境界は、次の式を使用して決定できます。

スレーブ・バースト境界サイズ [bytes] = スレーブ・データ幅 [bytes] * スレーブ最大バースト長 [beats]

例えば、X16 バースト長の 4 デバイスに DDR SDRAM コントローラーを使用する場合、バースト境界サイズは 8 バイトです。 その結果、シーケンシャル・バースト・マスターが 8 バイトの境界で起動せずにメモリーへのバースト読み取りまたは書き込みトランザクションを開始すると、データ破損が生じます。 マスターがこのメモリーのバイトアドレス 4 に 2 ビート・バースト・トランザクションを投稿すると、最初のビートの間に 4~7 バイト、2 番目のビートでバイト 0 から 3 にアクセスします (アドレス 8 から 11 ではなく)。

このデータ破損を回避するには、以下を使用してください。

  1. 上記の式を使用して、スレーブポートのバースト境界への転送を常に整列させます。
  2. マスター・バーストの次の境界に到達するまで、1 ビートのバーストをポストするようにマスターを構築します。
  3. 高性能 DDR SDRAM コントローラーの場合、マスターまたはスレーブのバーストサポートを無効にします。また、ハーフレート・モードを使用してバーストサポートを回避することもできます。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。