Artikel-ID: 000090295 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 28.02.2023

Wie kann ich den direkten Modus FPGA-zu-HPS-Schnittstelle SDRAM konfigurieren, wenn ECC in Intel Agilex® 7 SoC-Gerät eingeschaltet ist?

Umgebung

  • Intel® Quartus® Prime Design Software
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Wenn ECC im HPS External Memory Interface (EMIF) in Intel Agilex® 7 SoC-Gerät eingeschaltet ist, generiert die Speicheradresse ECC-Daten für den F2H SDRAM Direktmodus und den F2H CCU-Modus. Daher ist es erforderlich, dass FPGA-zu-HPS-Master die gleiche Speicheradresse mit MPU verwenden, selbst im Direktmodus FPGA-zu-HPS-SDRAM. Andernfalls kann ein ECC-Fehler ausgelöst werden. Diese Einschränkung gilt nicht, wenn ECC ausgeschaltet wird.

     

     

    Lösung

    Wenn der FPGA-zu-HPS-Master und MPU-Master Zugriff auf den Speicherplatz unter 2 GB erhalten, wird die Speicheradresse von 0x0000 0000 bis 0x7FFF FFFF verwendet.

    Wenn der FPGA-zu-HPS-Master und der MPU-Master Zugriff auf den Speicherplatz erhalten, der größer als 2 GB ist, verwendet die MPU die in der DTS-Datei definierte Alias-Adresse, um auf diese Speicheradressen zuzugreifen. Der FPGA-to-HPS-Master muss die gleiche Alias-Adresse anstelle der physischen Adresse für den F2H SDRAM Direktmodus und den F2H CCU-Modus verwenden.

    Hier ist das Beispiel für 4 GB HPS EMIF in einem Intel Agilex® 7 SoC-Gerät:

    In DTS wird der Speicher in zwei Regionen definiert, wie unten gezeigt. Dann müssen FPGA-to-HPS Master und MPU eine Adresse von 0x1080000000 zu 0x10FFFFFFFF verwenden, um auf den 2 GB ~ 4 GB Speicherplatz zuzugreifen.

    Speicher {

    reg = ,

    ;

    };

    Um den Zugriff auf den vollen 4-GB-Speicherplatz mit der oben genannten Alias-Adresse zu ermöglichen, sollten auch die folgenden Register entsprechend eingestellt werden. Sie können diese Register in der uboot-Datei uboot-socfpga\arch\arm\mach-socfpga\spl_agilex.c festlegen

    writel(0x100000, 0xF8020110); region0addr_base
    writel(0x0, 0xF8020114); region0addr_baseext
    Writel(0xFFFFFFFF, 0xF8020118); region0addr_limit (geringere 32 Bit)
    writel(0x10, 0xF802011C); region0addr_limitext (obere 32 Bit)
    writel(0x1, 0xF8020104); enable_set für Regionen

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® Agilex™ FPGAs und SoC FPGAs

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.