Ich programmiere seit einigen Jahren Mikrocontroller und habe gerade FPGAs entdeckt, nachdem ich einen Kurs für digitales Design besucht habe. Nachdem ich einige Recherchen zu verschiedenen FPGAs, Entwicklungsboards usw. angestellt habe, zögere ich immer noch, irgendwelche zu kaufen, weil ich nicht wüsste, wie ich meine eigene Version des endgültigen "Produkts" erstellen könnte. Ich habe PICs, SAMs, AVRs usw. ohne Probleme auf benutzerdefinierten PCBs angebracht, daher mache ich mir darüber keine Sorgen - mein Hauptanliegen ist die Programmierung eines FPGA ohne Herstellerplatine.
Meine spezielle Frage: Würde ein FPGA funktionieren, wenn ich die von Quartus, Vivado, iCEcube usw. generierte Bitmap-Datei auf einen SPI-Flash-Speicherchip schreiben würde, der bei Adresse 0 beginnt (z. B. über einen FT2232H), und den Flash-Speicher an die SPI-Pins eines FPGA (mit richtig eingestellter MODE-Konfiguration)?
Ich entschuldige mich für die teilweise Hypothese; Ich bin mir ziemlich sicher, dass das alles ist, was der Diamond Programmer von Lattice tut, aber ich habe mich gefragt, ob dieser Ansatz für FPGAs verschiedener Hersteller funktionieren würde, oder ob Quartus beim Schreiben zusätzliche "Fensterdekoration" oder Header zum Speicher hinzugefügt hat.
Lassen Sie mich wissen, ob ich etwas tun kann, um die Frage zu verbessern / zu klären, oder ob ich einen wichtigen Punkt im FPGA-Programmierungsprozess übersehe. Danke!
Ja, es würde gut funktionieren.
Tatsächlich ermöglichen Ihnen die Entwicklungstools für die meisten FPGAs, den externen Flash direkt über die FPGA-eigene JTAG-Verbindung zu programmieren, sodass keine separate Programmierschnittstelle für den Flash erforderlich ist.
Wenn Sie sagen "die [sic] Bitmap [sic]-Datei generiert von ", lautet die Antwort Ja, solange Sie die richtige auswählen -- Sie haben einen kleinen Fehler gemacht, indem Sie den bestimmten Artikel verwendet haben, da nicht nur eine Datei generiert wird .
Beispielsweise kann Quartus SOF-, POF- und JIC-Dateien erstellen. Letzteres verwenden Sie für die indirekte Programmierung über das FPGA-JTAG. Es wäre nicht sinnvoll, das in den SPI-Flash zu schreiben. Das SOF dient zum Laden über JTAG, um Ihr Design vorübergehend im FPGA auszuführen. POF ist das, was Sie in den Flash-Chip laden müssen.
Siehe FPGA: Bitstream vs. SRAM Object File für viele nützliche Informationen darüber, was die verschiedenen Dateien von jedem der verschiedenen Anbieter bedeuten.
Würde ein FPGA funktionieren, wenn ich ... den Flash-Speicher mit den SPI-Pins eines FPGAs verbinde (mit richtig eingestellter MODE-Konfiguration)?
Wenn ich Ihre Frage richtig verstehe, möchten Sie die FPGA-Konfiguration (z. B. Ihr kompiliertes HDL-Modell) in ein SPI-EEPROM oder einen SPI-Flash schreiben, und Sie möchten, dass sich das FPGA anhand der Daten auf dem SPI-IC selbst programmiert.
(Wenn ich die Antwort von Dave Tweed richtig verstehe, hat er Ihre Frage anders verstanden.)
Zumindest würden viele SPI-Flash-Speichergeräte NICHT funktionieren , da SPI-Flash-Speicher-ICs eine bestimmte Wellenform (z. B. die zu lesende Adresse) senden müssen, damit die Daten aus dem IC ausgelesen werden.
Diese Wellenform ist nicht für alle Flash-Speichergeräte gleich. Auch wenn man nur SD-Speicherkarten betrachtet (die auch als SPI-Flash-Speicher verwendet werden können), finden wir zwei Varianten, bei denen eine andere Wellenform an die Karte gesendet werden muss, bevor die Karte die Daten ausliest.
Wenn die Modus-Pins des FPGA richtig eingestellt werden, sendet das FPGA eine Wellenform, die ein serielles Speichergerät anweist, die Daten zu senden. Da jedoch unterschiedliche ICs unterschiedliche Wellenformen erfordern, wird die Wellenform nicht von allen Flash-ICs verstanden, sondern nur von bestimmten Typen.
Ich weiß, dass Altera spezielle Flash- oder EEPROM-ICs herstellt, die zu ihren FPGAs kompatibel sind.
Wenn Sie einen FPGA-Bitstream ohne die offiziellen FPGA-Programmiertools in den Flash schreiben möchten, möchten Sie diese Bitstream-Datei höchstwahrscheinlich in ein offenes Binärformat konvertieren, das Sie leicht lesen können, wie Raw Binary, Intel HEX oder Motorola SREC ( Beispiel ). Dadurch werden alle proprietären Header entfernt, die ein FPGA-Bitstrom enthalten kann.
Auf diese Weise können Sie den Flash mit den Tools des Flash-Herstellers (oder Ihren eigenen Tools) programmieren oder sogar die mit Ihrem FPGA-Bitstream vorprogrammierten Flash-Chips bestellen.
Eugen Sch.
Spannungsspitze
DKNguyen
Spannungsspitze
David Tweed
DKNguyen
Das Photon
Blake Lucas
DKNguyen
Blake Lucas
DKNguyen
DKNguyen
Ben Voigt