
XJFlash — FPGA-basierter, extrem schneller Flash-Programmierer

XJFlash ist eine FPGA-basierte fortschrittliche und innovative Methode, die JTAG für die Hochgeschwindigkeits-In-System-Programmierung (ISP) von Flash-Speichern verwendet – alle seriellen und parallelen Flash-Komponenten werden unterstützt. Die häufigste Verwendung von XJFlash ist die Programmierung des SPI/QSPI NOR-Flashs, der zur Konfiguration einer FPGA verwendet wird.
Mit XJFlash können Sie die FPGA auf Ihrem Board verwenden, um Flashprogrammierungsgeschwindigkeiten zu erreichen, die bis zu 50-mal schneller sind als mit herkömmlichen Boundary-Scan-Techniken möglich und erreichen oft die maximale Geschwindigkeit für den Flash-Speicher.
- Schnelle Flash-Programmierung
- Schnelles Firmware-Upgrade
Wesentliche Vorteile
Reduziert Flash-Programmierzeiten
Flash-Unterstützung von SPI, QSPI, parallelen NOR-Schnittstellen
Unterstützung für NAND-Flashgeräte auf Anfrage verfügbar
Verkürzt Entwicklungszyklen
Kein zusätzliches Equipment notwendig
Kann für schnelle Firmware-Upgrades verwendet werden
Keine FPGA-Entwicklung erforderlich
Flexible Lizenzoptionen
Hardware-Lizenz
– auf dem JTAG-Controller, damit XJTAG auf beliebig vielen PCs eingesetzt werden kann
Netzwerk-Lizenz
– auf einem vernetzten Lizenzserver, auf den weltweit zugegriffen werden kann
Automatisch generierte, kundenspezifische Lösungen
Mit XJFlash können Sie automatisch benutzerdefinierte Programmierlösungen für die an FPGAs und FPGA-SoCs (wie Xilinx Zynq® und Intel Cyclone® V) angeschlossenen Flash-Komponenten auf Ihrem Board generieren.
Die Funktionsfähigkeiten der FPGAs werden genutzt, um die schnellstmöglichen Programmiergeschwindigkeiten zu bieten. XJFlash generiert automatisch ein benutzerdefiniertes Design für jede FPGA/Flash-Kombination, so dass Sie die besten Programmierzeiten erreichen, während Sie keinerlei FPGA-Entwicklung erbringen müssen.*
Wenn Ihr Flash-Speicher mit einer FPGA von Intel (Altera), Xilinx, Microsemi oder Lattice verbunden ist, verwendet XJFlash den Standard-JTAG-Port der FPGA, um eine In-Circuit-Programmieralternative zu einem SPI-Programmierer oder parallelen Flash-Programmierer anzubieten. XJFlash unterstützt alle SPI-Modi (Single-Bit-, Dual-, Quad-, QSPI- und Oktal-) sowie parallele NOR-Flash-Komponenten.
*Bei der Konfiguration von XJFlash wird eine lizenzierte Version der entsprechenden Tools des FPGA-Herstellers benötigt. Freie Versionen reichen für viele Geräte aus.
Test-Integration
Die XJFlash-Programmierung kann mit XJDeveloper einfach in Ihr XJTAG-Testsystem integriert werden. Alle XJFlash-Programmierungen können als Teil eines Boundary-Scan-Testprojekts in XJRunner ausgeführt werden.
Konfigurierbare Flash-Programmierung
Es spielt keine Rolle, ob Sie eine einzelne oder mehrere, in Serie verbundenen, Flash-Komponenten programmieren, den Adressraum oder parallel dazu den Datenbus erweitern: Sie können mit XJFlash Ihre Programmieraktivitäten beschleunigen.
Kundenspezifische Entwicklung
XJFlash kann auch für eigenständige Programmieranforderungen verwendet werden, einschließlich direkten Zugriffs auf I²C- und SPI-Busse oder benutzerdefinierte Protokolle wie Microchips ICSP.
Die benötigten Anschlüsse müssen nicht von einem FPGA auf der Zielleiterplatte kommen. Wenn die Protokollsignale auf einem Header auf dieser Platine zur Verfügung stehen, sollte es möglich sein, XJFlash zu verwenden, um eine schnelle Programmierung als Teil einer XJTAG-Lösung zu erreichen.
XJFlash-Zeitsteuerung (Beispiel)
Theoretische Mindestzeit für konventionellen Boundary-Scan: 35 Minuten.
Gesamte XJFlash-Laufzeit: 10,5 bis 32,6 Sek – Bis zu 50x schneller.
XJFlash durchläuft jedes Mal automatisch vier Stufen, wenn eine Flash-Komponente programmiert wird:
Initialisierung – Das mit dem Flash verbundene FPGA wird mit dem für die Zielleiterplatte benötigten XJFlash-Bild konfiguriert. Beispielzeit: 2.1 Sek.
Löschung – Der Flash kann gelöscht werden, indem einer von zwei Algorithmen angewandt wird. Die Basis-Löschung löscht einfach alle Blöcke innerhalb eines definierten Bereichs (dies kann der ganze Flash oder nur der Platz, der für das zu programmierende Bild benötigt wird, sein). Die intelligentere Löschung wird die Tatsache nutzen, dass es schneller ist, den Flash zu lesen, als ihn komplett zu löschen. So wird von jeder Adresse ausgehend gelesen und nur dann gelöscht, wenn auch wirklich Daten gefunden werden. Dieser Schritt kann übersprungen werden, wenn bekannt ist, dass der Flash immer unbeschrieben ist, bevor er programmiert wird.
Beispielzeit – intelligente Löschung aktiviert: 0,9 Sek. bei bereits gelöschter Komponente, auf 23 Sek. bei voll programmierter Komponente (begrenzt durch die Löschzeit der Komponente).
Programmierung – Daten aus den Zielbildern werden über den JTAG-Port in den FPGA gestreamt. Der FPGA programmiert diese Daten dann in den/die angeschlossenen Flash(s). Mehrere Dateien können bei definierten Abweichungen spezifiziert und programmiert werden. Dieser Schritt kann ausgelassen werden, wenn lediglich eine Überprüfung erforderlich ist.
Beispielzeit: 6.2 Sek. (begrenzt durch die Programmiergeschwindigkeit der Komponente).
Verifizierung – Die Verifizierung prüft jedes Byte im Flash gegen die angegebene(n) Datei(en), um sicherzustellen, dass es keine Datenbitfehler gibt. Dieser Schritt kann ausgelassen werden, wenn nur eine Programmierung oder Löschung erforderlich ist.
Beispielzeit: 1,8 Sek. mit TCK bei 10 MHz, reduziert auf 1,3 Sek. mit TCK bei 20 MHz.
Diese Beispielzeiten sind für eine Spartan-6 XC6SLX9-Programmierung einer pseudozufälligen 2 Mbyte-Datendatei in die FPGA SPI-Konfiguration PROM vorgesehen.
Beispielzeiten mit einer Xilinx Zynq®-7000 Serie SoC
Eine 256 Mbit-Datei kann in einen SPI NOR-Flash programmiert und in ca. 46s verifiziert werden, abhängig von der TCK-Geschwindigkeit und dem verwendeten Speichertyp*; 32 Mbit Code benötigt etwas mehr als 7s.
Durch Hinzufügen eines anfänglichen Lösch-Zyklus‘ werden nur 3,1 s für einen leeren 256-Mbit-Flash oder 54 s für einen vollständigen Flash hinzugefügt. Dies sinkt auf 0,4 s und zwischen 6,5 und 9,2 s für eine 32 Mbit-Komponente.
* TCK = 66 MHz, Pseudozufallsdatendatei. Die Zeit variiert je nach Flashtyp.
Beispielzeiten mit einer Xilinx Zynq® UltraScale+™ Serie SoC
Eine 256 Mbit-Datei kann in einen SPI NOR-Flash programmiert und in ca. 42s verifiziert werden, abhängig von der TCK-Geschwindigkeit und dem verwendeten Speichertyp**; 32 Mbit Code benötigt 7s.
Durch Hinzufügen eines anfänglichen Lösch-Zyklus‘ werden nur 2 s für einen leeren 256-Mbit-Flash oder 57 s für einen vollständigen Flash hinzugefügt. Dies sinkt auf 0,3 s und 6,9 s für eine 32 Mbit-Komponente.
** TCK = 30 MHz, Pseudozufallsdatendatei. Die Zeit variiert je nach Flashtyp.
Kann ich XJFlash verwenden?
Um XJFlash anwenden zu können, müssen alle Daten, Adress- und Steuersignale auf dem(n) Flash(s) mit einem FPGA auf der Zielleiterplatte verbunden sein. Dies kann eine PROM-Konfiguration oder eine Flash-Komponente sein, die mit einem beliebigen I/O-Pin verbunden ist. Diese Verbindungen können direkt oder indirekt sein, zugewiesen oder gemeinsam genutzt werden:
Direkte Verbindungen – JA
Der Flash ist direkt mit dem FPGA verbunden.
Indirekte Verbindungen – JA
- Der Flash wird über einen Pufferspeicher mit dem FPGA verbunden
- Einige der Adresssignale werden mit den Datensignalen geteilt und über einen Latch verbunden
- Zudem gibt es andere konfigurierbare Komponenten, wie z. B. eine CPLD, zwischen Flash und FPGA
Geteilte Verbindung – JA
Der Flash ist mit dem FPGA in einem der oben beschriebenen Modi verbunden, aber diese Verbindungen werden mit einer anderen Komponente (wie z.B. einem Prozessor) geteilt.
Keine Verbindung – JA (mit Anpassungen im Design)
Wenn Ihr Design ein FPGA beinhaltet, aber der Flash nicht mit einer der beschriebenen Konfigurationen angeschlossen ist, kann eine Verwendung von Ersatzpins auf dem FPGA möglich sein, um Verbindungen zum Flash herzustellen. Diese Verbindungen werden nicht im Missionsmodus des Boards verwendet, sondern erlauben Ihnen, XJFlash zu verwenden, um schnelles Programmieren des Flashs durchzuführen. Wenn Ihre FPGA bereits mit einer gleichen Adresse/einem gleichen Datenbus wie der Flash verbunden ist, dann wird dies nicht viele zusätzliche Signale erfordern.
Keine FPGA – nicht direkt
Leider ist es nicht möglich, XJFlash zu verwenden, wenn es keine FPGA gibt. Wenn es jedoch möglich ist, die Verbindungen des Flash zu einem Header oder Testpunkten auf der Platine zu bringen, kann die schnelle XJFlash-Programmierung über diese Verbindungen mit einer XJAccelerator-Karte verwendet werden.
Alternativ kann es möglich sein, eine schnelle Flash-Programmierung über die Debug-Schnittstelle auf einem Prozessor auszuführen – bitte kontaktieren Sie uns, um zu sehen, ob Sie diesen Ansatz auf Ihrem Board verwenden können.
Kompabilität
- Intel (Altera) – Arria GX, Arria II GX, Arria II GZ, Arria V, Arria V GZ, Arria 10, Cyclone, Cyclone II, Cyclone III, Cyclone III LS, Cyclone IV E, Cyclone IV GX, Cyclone V, Stratix, Stratix GX, Stratix II, Stratix II GX, Stratix III, Stratix IV, Stratix V, Stratix 10
- Lattice – MachXO2, LatticeECP3, LatticeXP2
- Microchip (Microsemi) – IGLOO2, ProASIC3, ProASIC3E, ProASIC3L, SmartFusion2
- AMD (Xilinx) – Artix-7, Artix UltraScale+, Kintex-7, Kintex UltraScale, Kintex UltraScale+, Spartan-3, Spartan-3A, Spartan-3E, Spartan-6, Spartan-7, Versal, Virtex-II, Virtex-II Pro, Virtex-4, Virtex-5, Virtex-6, Virtex-7, Virtex UltraScale, Virtex UltraScale+, Zynq-7000, Zynq UltraScale+
Diese Liste wird kontinuierlich erweitert, deswegen kontaktieren Sie uns für die aktuellsten Details.
Alle Marken sind Eigentum ihrer jeweiligen Inhaber.
Empfohlene Systemanforderungen
- Intel® Core i3, i5, i7 Prozessor oder gleichwertig (jede Generation)
- Microsoft® Windows® 10 1607 und höher (32 oder 64 bit), oder Windows 11
- 8 GB RAM
Bitte kontaktieren Sie Ihren örtlichen Vetriebspartner für weitere Informationen über diesen Service.
Sind Sie bereit?
Sehen Sie XJTAG in Aktion
Unsere Experten zeigen Ihnen gerne, wie die XJTAG-Tools Ihnen helfen können Fehler auf dem Board zu diagnostizieren und den Entwicklungs- und Reparaturaufwand zu minimieren.
Fragen? Kontaktieren Sie uns!
Wir sind da, um Ihnen zu helfen.
Senden Sie uns eine Nachricht und einer unserer Testspezialisten wird sich in Kürze mit Ihnen in Verbindung setzen.

Erhalten Sie einen kostenlosen Testaufbau
Probieren Sie das XJTAG-System mit vollem Funktionsumfang 30 Tage lang aus und lassen Sie sich das erste Testprojekt für Ihr Board einrichten – kostenlos. Es besteht keinerlei Kaufverpflichtung.