Pins DQ/DQS der externen Speichergruppe Cyclone V

Ich versuche, die Funktionen externer Speicherpins in Cyclone V (5csema5af31c6n) zu verstehen. Ich verstehe, dass die Spalten HMC Pin Assignment for DDR3/DDR2/LPDDR2 Pin-Funktionen für die Implementierung des externen Speichers (mithilfe des Festplattenspeichercontrollers) anzeigen. Aber für welche DQS x8 und DQS x 16 Spalten? Ist das irgendeine Schnittstelle? Warum werden einige Funktionen dupliziert? Ich kann es nicht einmal beim Lesen des Cyclone V-Handbuchs (Kapitel Externe Speicherschnittstellen in Cyclone V-Geräten) und des Handbuchs für externe Speicherschnittstellen verstehen. Pinbelegungsdatei für 5CSEMA5AF31C6N Dies ist ein Screenshot aus der zugehörigen Pinbelegungsdatei

Antworten (2)

Es gibt zwei Möglichkeiten, DDR-Speicher auf einem Cyclone V mit einem HPS und einer HMC zu handhaben:

  • Verwendung des HMC (Hard Memory Controller), der im FPGA-Teil sitzt
  • Verwendung des Speichercontrollers des HPS (der auch mit FPGA ohne HMC verfügbar ist)

Dies erklärt, warum Sie in den Spalten „HMC“ zwei Sätze von DDR-Signalen haben, einer, der mit B_xyz beginnt, ist für die HMC und der andere, der mit HPS_xyz beginnt, ist für den HPS-Controller. Das ist leicht zu verstehen, dem stimme ich zu.

Aber es gibt auch eine dritte Möglichkeit, DDR-Speicher über einen Soft-Memory-Controller im FPGA-Teil (mit ALTMEM_PHY IP, denke ich) zu steuern, sodass Sie I/O-Pins für diesen Controller verwenden können. I/O-Pins werden allgemein verwendet und können keine hohe DDR-Frequenz erreichen, aber Altera hat versucht, das interne Routing dieser Pins zu optimieren, um eine anständige Speichergeschwindigkeit zu erreichen.

Da dies der FPGA-Teil und die allgemeine E / A ist, können Sie Ihre eigene Pinbelegung wählen ... in Grenzen. Diese Grenzen werden durch die Spalte DQS x8 oder DQS x16 angegeben:

Alle Pins einer DQx-Gruppe sollten sich in einer DQx-Gruppe der Pin-Liste befinden. Wenn wir eine DQ[0...7] / DQS-DQSn0-Gruppe nehmen und Sie sie in der Gruppe DQS4B der DQS x8-Spalte haben möchten, dann:

  • DQS0 = AB15 (DQS4B)
  • DQSn0 = AC14 (DQSn4B)
  • DQ[0...7] werden wie gewünscht zwischen DQS4B-Pins platziert: AG13, AJ6, AG12, AK8, AK9, AH14, AJ9, AH13.

Ich verwende derzeit einen Cyclone V SE, aber ohne HMC und ohne Soft-Memory-Controller, also kontaktieren Sie bitte Altera für weitere Details oder versuchen Sie es mit einer Pinbelegung in Quartus.

Es ist die Busbreite. Siehe diesen IC. Sehen Sie sich die Pinbelegung auf Seite 9 an.

Sie müssen nur sicherstellen, dass Sie die richtigen DQS-Pins für Ihre Busbreite verwenden. Ich denke, sie haben einige Zeitbeschränkungen.

Ok, aber ... betrachten wir diese Situation. Wenn ich Ihren IC mit meinem FPGA mit HMC verdrahten möchte, sollte ich dies mit Pins in der HMC-Spalte tun, und es ist durchaus verständlich, wenn ich in der Pinbelegungsdatei nachschaue. Ich verstehe jedoch immer noch nicht, warum diese Pins in DQS x8- und DQS x 16-Spalten dupliziert werden? Und was ist mit der weichen Implementierung? Kann ich jeden I/O-Pin für jeden IC-Pin verwenden? Und DQS-Pins haben meines Wissens keine Zeitbeschränkungen.
Einige funktionieren für beide Modi, deshalb werden sie dupliziert. Einfache Regel: Wählen Sie DQS-Pins aus, die Ihren gewählten Modus unterstützen. Sie benötigen weiterhin DQ und DQS auch für den Soft-Controller, da dieser die harten IOs verwendet. Der beste Weg, dies zu überprüfen, besteht darin, das Design zu synthetisieren. Wenn Sie eine ungültige PIN-Platzierung haben, schlagen der Ort und die Route mit entsprechenden Meldungen fehl. Ich empfehle immer die Synthese vor dem Layout, da einige Dinge in den Datenblättern nicht gut dokumentiert oder schwer zu finden sind. Versuchen Sie es zumindest mit einem Top-Level-Design nur mit dem Speichercontroller, oder laden Sie eines ihrer Designs herunter und tauschen Sie die Pins aus.