Zynq 5cm基板−DDRのアドレス・コマンド配線は難しい ― バラバラのピン配置と長さ合わせ | 有限会社 FPGAインフォメーション

BLOG & INFO

XC7Z020A 5cmFPGA ブログ

Zynq 5cm基板−DDRのアドレス・コマンド配線は難しい ― バラバラのピン配置と長さ合わせ

前回は、DDRのデータ側について書きました。

データ側については、Byte Lane内でピンスワップを活用することで、かなりきれいに配線することができました。

中間VIAもほぼ使わず、配線長についてもかなり細かく揃えることができました。

しかし、アドレス・コマンド側はそう簡単にはいきませんでした。


English Summary

The DDR data lines were routed relatively cleanly by using pin swapping within each Byte Lane. However, the address and command signals were much more difficult.

On the Zynq PS DDR interface, these signals have very limited pin-swapping flexibility, and the pins are distributed across the package rather than arranged in an easy routing order. As a result, many traces inevitably cross each other.

Because of this, intermediate VIAs were necessary to move signals between routing layers. The VIA locations and layer usage were planned in advance so that the crossing signals could be organized without running out of routing space.

Another challenge was trace-length matching. The address and command signals had to be matched against the DDR clock within the timing limits defined by the design guidelines.

Since the chosen DDR3L devices provided sufficient timing margin for the intended operating speed, the routing constraints could be handled somewhat more flexibly than the most conservative case. Even so, the layout was adjusted carefully, and the final PCB trace-length differences were kept to approximately 5 mm or less relative to the clock.

Compared with the data side, the address and command routing required much more effort because pin swapping could not be used to simplify the topology.

The final result showed that even a difficult DDR interface with many unavoidable crossings can be routed on a compact six-layer board by planning VIA positions, routing layers, and trace lengths as a complete system.


アドレス・コマンドはほとんどスワップできない

今回使っているZynqのPS側DDRインターフェースでは、データ線のように自由度の高いピンスワップを使うことができません。

しかも、アドレスやコマンドのピンがFPGA側できれいな順番に並んでいるわけでもありません。

PCB上でDDRへ向かって配線しようとすると、

どうしても信号同士が交差する

という状態になります。

データ側ではピンを入れ替えて配線しやすい順番にすることができましたが、アドレス・コマンド側ではその方法がほとんど使えません。

そのため今回は、中間VIAを使って別の配線層へ信号を逃がすことが前提になりました。

中間VIAを使って信号を交差させる

理想を言えば、高速信号なのでVIAはできるだけ少なくしたいところです。

しかし今回のような6層基板では、物理的に信号が交差する以上、すべてを同じ層だけで通すことはできません。

そこで、

  • この信号はこの層
  • ここでVIAを使って別の層へ移動
  • 交差する信号を別レイヤで通す
  • 必要に応じて元の層へ戻す

という形で配線していきました。

前の記事で書いたように、VIAを置く場所についてはある程度先に計画していたため、最初の配線よりはかなり整理して進めることができました。

それでもアドレス・コマンドの配線は、データ側とは比較にならないくらい大変でした。

配線するだけではなく、長さも揃える

さらにDDRでは、単純にすべての信号がつながれば終わりではありません。

アドレス・コマンド系についても、クロックとの配線長差を一定範囲に収める必要があります。

設計ガイドを見るとかなり厳しい条件が示されており、最初に見たときには、

「これをこの基板で本当に守れるのか?」

と思いました。

特に今回のZynq側のピン配置では、信号ごとのスタート地点がかなり違います。

その状態からDDRまで配線して、さらに長さまで合わせる必要があります。

正直、この部分がDDR配線の中で一番苦労したところかもしれません。

使用するDDRデバイスも含めて条件を確認する

DDRの配線条件は、使用するデバイスや動作速度、デバイス内部のタイミング条件なども含めて考える必要があります。

今回使用するDDR3Lについても、Zynqが必要とする速度に対して十分な性能を持つデバイスを選びました。

設計ガイドの条件を確認しながら、現実的な範囲で配線長をできるだけ揃えることにしました。

最初は、

「クロックとの差が10mm程度まで収まればいいかな」

くらいに考えていました。

しかし、実際に調整を続けていくと、もう少し追い込むことができました。

最終的には約5mm以内まで調整

配線を何度も動かしながら調整した結果、

アドレス・コマンド系についても、クロックに対するPCB上の配線長差をおおむね5mm以内

に収めることができました。

データ側のように中間VIAなしというわけにはいきません。

それでも、最初に見たときには、

「こんなバラバラなピン配置から本当に全部通るのか」

と思っていたので、最終的にすべて配線できたときはかなり安心しました。

データ側とは全く違う難しさ

今回DDRを配線してみて分かったのは、

同じDDRでも、データ側とアドレス・コマンド側では配線の考え方がかなり違う

ということです。

データ側ではピンスワップを積極的に使い、できるだけ直線的な配線を目指しました。

一方、アドレス・コマンド側では、

  • ピンスワップの自由度がほとんどない
  • FPGA側のピン位置が分散している
  • 信号の交差が避けられない
  • 中間VIAが必要
  • その上でクロックとの配線長も合わせる

という条件になります。

かなり根気のいる作業でした。

それでもVIAの位置や配線層を先にある程度計画していたことで、最終的には6層基板の中に収めることができました。

DDR配線は、単に信号を一本ずつつなぐ作業ではありません。

ピン配置、層構成、VIA、配線経路、そして長さを全体として考える必要がある

ということを、今回かなり実感しました。


弊社では短期間基板開発を支援します


FPGAインフォメーションのページはこちらからどうぞ

お問い合わせは、こちらからです。

プライバシーポリシー / 特定商取引法に基づく表記 / 利用規約

Copyright © 2026 有限会社FPGAインフォメーション All Rights Reserved.

CLOSE