SD/SDIO/eMMC

Versal アダプティブ SoC PCB デザイン ユーザー ガイド (UG863)

Document ID
UG863
Release Date
2024-04-01
Revision
1.8 日本語

eMMC

  • JEDEC 規格 JESD84-B451 『Embedded Multi-media Card (eMMC)』に従い、EMMCx_DATA[7:0] と EMMCx_CMD にはプルアップ抵抗が必要です
  • EMMCx_DATA[7:0]/EMMCx_CMD と EMMCx_CLK 間のスキューは、50ps 以内にします。
    • 最適な性能を実現するため、アダプティブ SoC と eMMC デバイス間のトレース遅延は約 1 ns までに制限します。
  • すべての周波数で、セットアップ/ホールド タイムが Versal および eMMC デバイスの要件を満たすことを確認します。次の式を参照して、セットアップ/ホールド タイムの要件を満たすことを確認し、最大動作周波数を決定します。
    • 定義:
      • Clock_Period = eMMC インターフェイス クロック EMMCx_CLK のクロック周期 (1/FEMMCSCLK)
      • TEMMCCKO max/min = Versal アダプティブ SoC eMMC clock-to-output 遅延
      • TEMMCDCK = Versal アダプティブ SoC eMMC セットアップ タイム
      • TEMMCCKD = Versal アダプティブ SoC eMMC ホールド タイム
      • CTO min/max (flash) = フラッシュ デバイス clock-to-output 遅延 (eMMC デバイス データシート参照)
      • Tsetup (flash) = eMMC デバイス セットアップ タイム (eMMC デバイス データシート参照)
      • Thold (flash) = eMMC デバイス ホールド タイム (eMMC デバイス データシート参照)
      • Max_PCB_trace_delay = EMMCx_CLK、EMMCx_DATA[7:0] の最大 PCB トレース遅延
      • Min_PCB_trace_delay = EMMCx_CLK、EMMCx_DATA[7:0] の最小 PCB トレース遅延
    • 数式:
      • 書き込み:
        • eMMC 標準、DDR モード: Tsetup (flash) ≤ Clock_Period/2 – TEMMCCKO max – (EMMCx_CLK PCB トレース遅延と最大 EMMCx_DATA[7:0] PCB トレース遅延の間のスキュー)
        • その他すべてのモード: Tsetup (flash) ≤ Clock_Period – TEMMCCKO max – (EMMCx_CLK PCB トレース遅延と最大 EMMCx_DATA[7:0] PCB トレース遅延の間のスキュー)
        • Thold (flash) ≤ TEMMCCKO min - (EMMCx_CLK PCB トレース遅延と最小 EMMCx_DATA[7:0] PCB トレース遅延の間のスキュー)
          注記: スキューのガイドラインは、このセクションの 3 番目の箇条書き項目を参照してください。
      • 読み出し (非 DLL モード):
        • eMMC 標準モード: Tsetup (Versal アダプティブ SoC) ≤ Clock_Period/2 – CTO max (flash) + 2 x Max_PCB_trace_delay
        • Thold(Versal アダプティブ SoC) < CTO min (flash) + 2 x Min_PCB_trace_delay
          注記: 両方の式で PCB トレース遅延を 2 倍しているのは、フラッシュ デバイスまでのラウンドトリップ時間のためです。
      • 25MHz より高い周波数 (DLL モード) では、RX のタイミングのために、最大周波数は PCB トレース遅延の関数になりません。RX チューニングのシミュレーションを実行して、Versal およびフラッシュ デバイスのセットアップ/ホールド タイム要件を満たすことを確認できます。
  • PCB でのシグナル インテグリティが適切であることを確認します。
    • Versal デバイスの近端または遠端に反射がない
      • 30Ω の直列抵抗は、できるだけアダプティブ SoC ピンに接近して EMMCx_CLK、EMMCx_CMD、および EMMC_DATA[7:0] ライン上に配置する必要があります。
        • この配置はほとんどのセットアップに最適です。
        • シミュレーションによってシグナル インテグリティが適切であることを確認します。
    • VIH/VIL および VOH/VOL レベルが Versal デバイスとフラッシュ デバイスの両方の要件を満たすことを確認します。
    • 値は Versal アダプティブ SoC データシート の「PSIO レベル」に記載されています。
      • 使用する電圧 (すなわち、LVCMOS18、LVCMOS33) に合わせて適切なレベルを選択してください。

SD/SDIO

  • Versal アダプティブ SoC および SD チップで使用される電圧 (SD 3.0 など) によっては、レベル シフターが必要になる場合があります。
  • 非同期信号の SDx_DETECT および SDx_WP には、SDx_CLK とのタイミング関係はありません。
  • SDx_DETECT および SDx_WP の両ラインは、それぞれの 4.7kΩ 抵抗で MIO 電圧にプルアップする必要があります。micro SD を使用している場合、SDx_WP と SDx_DETECT は接続なしにできます。
  • 方向ピン付きレベル シフターの SD カード側の SDx_DATA[3] に 10kΩ のプルアップ抵抗を追加します。
  • 自動方向レベル シフターを使用する場合は、レベル シフターの近くの SDx_DATA[1]、SDx_DATA[2]、および SDx_DATA[3] ラインに 15kΩ のプルアップ抵抗を追加します。
  • 自動方向レベル シフターを使用する場合は、SDx_DIR_CMD、SDx_DIR0 および SDx_DIR1 は接続なしにできます。
  • SDx_DATA[3:0]/SDx_CMD と SDx_CLK 間のスキューは、±50ps 以内にします。
  • 最適な性能を実現するため、アダプティブ SoC と SD カード間のトレース遅延は 1.0 ns までに制限します。
  • すべての周波数で、セットアップ/ホールド タイムが Versal および SD デバイスの要件を満たすことを確認します。次の式を参照して、セットアップ/ホールド タイムの要件を満たすことを確認し、最大動作周波数を確定します。
    • 定義:
      • Clock_Period = SD インターフェイス クロック SDx_CLK のクロック周期
      • TSDCKO max/min = Versal アダプティブ SoC SD clock-to-output 遅延
      • TSDDCK = Versal アダプティブ SoC SD セットアップ タイム
      • TSDCKD = Versal アダプティブ SoC SD ホールド タイム
      • CTO_max/min (flash) = フラッシュ デバイス clock-to-output 遅延 (SD デバイス データシート参照)
      • Tsetup (flash) = SD デバイス セットアップ タイム (SD デバイス データシート参照)
      • Thold (flash) = SD デバイス ホールド タイム (SD デバイス データシート参照)
      • Max_PCB_trace_delay = SDx_CLK、SDx_DATA[3:0] の最大 PCB トレース遅延
      • Min_PCB_trace_delay = SDx_CLK、SDx_DATA[3:0] の最小 PCB トレース遅延
      • SD_Level_Shifter_CLK_Propagation_delay_min/max = レベル シフターによるクロック ラインの遅延
        • 値は信号の方向 (すなわち、「Host-to-Card」および「Card-to-Host」) によって異なることがあります。
      • SD_Level_Shifter_DATA_Propagation_delay_min/max = レベル シフターによる最短/最長データ ラインの遅延
        • 値は信号の方向 (すなわち、「Host-to-Card」および「Card-to-Host」) によって異なることがあります。
      • SD_Level_Shifter_Propagation_delay_min/max = SDx_CLK、SDx_DATA[3:0] 間の最小/最大レベル シフター伝搬遅延
        • 値は信号の方向 (すなわち、「Host-to-Card」および「Card-to-Host」) によって異なることがあります。
    • 数式:
      • 書き込み:
        • SD デフォルト、DDR モード: Tsetup (flash) ≤ Clock_Period/2 – TSDCKO max – (SDx_CLK PCB トレース遅延と最大 SDx_DATA[3:0] PCB トレース遅延の間のスキュー) – SD_Level_Shifter_Propagation_delay_max
        • その他すべてのモード: Tsetup (flash) ≤ Clock_Period – TSDCKO max – (SDx_CLK PCB トレース遅延と最大 SDx_DATA[3:0] PCB トレース遅延の間のスキュー) – SD_Level_Shifter_Propagation_delay_max
        • Thold (flash) ≤ TSDCKO min – (SDx_CLK PCB トレース遅延と最小 SDx_DATA[3:0] PCB トレース遅延の間のスキュー) – SD_Level_Shifter_Propagation_delay_min
          注記: スキューのガイドラインは、このセクションの 7 番目の箇条書き項目を参照してください。
      • 読み出し (非 DLL モード):
        • SD デフォルト モード: TSDDCK ≤ Clock_Period/2 – CTOmax (flash) – 2 x Max_PCB_trace_delay – (最大レベル シフター遅延 (card-to-host)) – SD_Level_Shifter_Propagation_delay_max(host-to-card)
        • SDR12: TSDDCK ≤ Clock_Period – CTOmax (flash) + 2 x Max_PCB_trace_delay – (最大レベル シフター遅延 (card-to-host)) – SD_Level_Shifter_Propagation_delay_max (host-to-card)
        • TSDCKD ≤ CTOmin (flash) + 2*Min_PCB_trace_delay + SD_Level_Shifter_Propagation_delay_min(card-to-host) + SD_Level_Shifter_Propagation_delay_min(host-to-card)
          注記: 両方の式で PCB トレース遅延を 2 倍しているのは、フラッシュ デバイスまでのラウンドトリップ時間のためです。
      • 25MHz より高い周波数 (DLL モード) では、RX のタイミングのために、最大周波数は PCB トレース遅延の関数になりません。RX チューニングのシミュレーションを実行して、Versal およびフラッシュ デバイスのセットアップ/ホールド タイム要件を満たすことを確認できます。
  • PCB でのシグナル インテグリティが適切であることを確認します。
    • Versal デバイスの近端または遠端に反射がない
      • 30Ω の直列抵抗は、できるだけアダプティブ SoC ピンに接近して SDx_CLK、SDx_CMD、および SDx_DATA[3:0] ライン上に配置する必要があります。
        • この配置はほとんどのセットアップに最適です。
        • シミュレーションによってシグナル インテグリティが適切であることを確認します。
    • VIH/VIL および VOH/VOL レベルが Versal デバイスとフラッシュ デバイスの両方の要件を満たすことを確認します。