Xilinx Spartan 3A-Programmierverbindung: Wo sind MISO- und MOSI-Pins?

Ich versuche, SPI-Verbindungen zu finden, um mein Programm auf Xilinx XC3S50A-4VQG100C herunterzuladen , kann aber nicht herausfinden, welche Pins SPI-Pins sind.

Neuling-Alarm: Ich habe gerade angefangen, FPGA zu lernen und versuche, mein eigenes Entwicklungsboard von Grund auf neu zu bauen (auf diese Weise lerne ich immer besser). In der Welt der Mikrocontroller musste ich nur MOSI, MISO, SCK, SS an die Anschlussstifte anschließen und den Programmierer ausführen, aber hier sind die Dinge anders! Ich verwende den Waveshare-ProgrammiererGeben Sie hier die Bildbeschreibung ein

FPGA ist eine programmierbare Blackbox ... Wenn Sie Ihr eigenes Entwicklungsboard bauen, werden Sie nicht wirklich lernen, was sich in der Blackbox befindet, die der FPGA-Teil des Geräts ist
FWIW, ich denke, die Spartan3-Serie wurde von Xilinx für veraltet erklärt, sodass Sie möglicherweise Probleme haben, Tools zu finden, die Sie verwenden können.
@ElliotAlderson Xilinx ISE funktioniert immer noch, obwohl es seit einigen Jahren nicht mehr aktualisiert wird. Nur wenige Möglichkeiten, wenn Sie Ihr eigenes FPGA-Board erstellen und sich nicht mit BGA befassen möchten. Das ist der Hauptgrund, warum ich mein eigenes FPGA-Board nicht ausprobiert habe.

Antworten (2)

Wenn Sie erwarten, dass Sie Ihren Programmierer einfach verwenden können, um einen Konfigurations-Bitstream direkt in das FPGA zu laden, das diesen nur in einem spezialisierten SRAM speichert, werden Sie überrascht sein, wenn es jedes Mal alles vergisst, wenn Sie es ausschalten.

Im Gegensatz zu Mikrocontrollern hat die überwiegende Mehrheit der FPGAs keinen integrierten nichtflüchtigen Speicher. Das SPI soll in einen externen SPI-Flash-Speicher schreiben. Das FPGA erwartet ein bestimmtes Protokoll für den SPI-Flash-Speicher und ein bestimmtes Verdrahtungsschema dazu.

Jedes Mal, wenn beim Einschalten die richtigen Jumper vorhanden sind, durchläuft das FPGA automatisch eine Sequenz, um seinen Konfigurations-Bitstream aus dem SPI-Flash zu lesen und sich selbst zu konfigurieren. Daher sollten Sie das Handbuch sorgfältig lesen, um den akzeptablen Flash-Speicher sowie das Verdrahtungsschema zu ermitteln, da dies Ihr Board ähnlich wie eine falsche JTAG-Programmierverdrahtung auf einem Mikrocontroller beschädigen oder beschädigen wird.

Wenn Sie diesen grundlegenden Unterschied übersehen haben, haben Sie wahrscheinlich einige andere wichtige Fallstricke übersehen, die sich von Mikrocontrollern unterscheiden. Lesen Sie das Handbuch sorgfältig durch oder überfliegen Sie zumindest jeden Abschnitt mehrmals, um eklatante Unterschiede zu erkennen. Es gibt andere Unterschiede (wie Taktung und Stromversorgung). Es gibt einen Grund, warum die Implementierung eines FPGA auf einer Leiterplatte schwieriger (manchmal viel schwieriger) ist als auf einer MCU. Gehen Sie nicht davon aus, dass die Dinge auf einem FPGA bereits wie auf einer MCU erledigt sind. Das eine ist wie manuelles Fahren und das andere wie Automatik fahren.

Ich schlage vor, Sie besorgen sich zuerst ein Entwicklungsmodul, das wie ein winziges abgespecktes Entwicklungsboard ohne fast nichts darauf ist (normalerweise nur das FPGA, Netzteile, Uhr, Konfigurations-ROM, manchmal ein nichtflüchtiges ROM, manchmal RAM, vielleicht ein ADC, und manchmal ein USB-Programmierer), den Sie an Ihr eigenes Board (oder sogar ein Steckbrett) anschließen können. Auf diese Weise haben Sie eine Referenz dafür, ob Ihr Code für Ihr eigenes Devboard funktioniert oder nicht. Andernfalls debuggen Sie gleichzeitig von zwei Enden aus. Ganz zu schweigen davon, dass Sie sich das Schema des Entwicklungsmoduls ansehen können, das viel kleiner und einfacher zu verstehen ist. Es könnte sich lohnen, den Schaltplan zu untersuchen, auch wenn es nicht dasselbe FPGA ist. Ich empfehle Micronova, Trenz (die eigentlich von Trenz hergestellten Module, da sie auch andere verkaufen) und Alchitry.

Vielen Dank für die ausführliche Beschreibung. @DKNguyen Ich habe gerade darüber gelesen und war davon ausgegangen, dass Spartan-3 über ISF (In System Flash Memory) verfügt, das für solche Zwecke verwendet werden könnte, oder vielleicht irre ich mich
@Aug Einige Spartan 3 verfügen über einen integrierten nichtflüchtigen Konfigurationsspeicher, die meisten jedoch nicht. Verlassen Sie sich also nicht darauf, es sei denn, Sie haben sich ausdrücklich Mühe gegeben, einen zu bekommen. Onboard-Flash ist definitiv nicht das, was eine ganze Reihe von FPGAs auf der ganzen Linie haben wird; Nur Sondervarianten. Ich glaube nicht, dass sie sogar in geringen Mengen verfügbar sind. Ich denke, Sie müssen Tausende auf einmal bestellen, damit die Fabrik die Produktion speziell für Sie hochfährt.
Tolle Details, glauben Sie, Sie können mir die Richtung eines Schaltplans zeigen?
Mikronova, Trenz und Alchitry. Es sieht so aus, als hätte Micronova sein Mercury-Modul veraltet, indem es den Link von seiner Website entfernt hat. Also führt es jetzt nur noch zum Mercury II. Sie interessieren sich vielleicht mehr für den Mercury I, der einen Spartan anstelle eines Artix verwendet, aber Sie können immer noch Google verwenden, um direkt zur Webseite dafür zu gelangen. micro-nova.com/products/me1b
„Im Gegensatz zu Mikrocontrollern hat die überwiegende Mehrheit der FPGAs keinen integrierten nichtflüchtigen Speicher.“ Nun, alles außer den billigsten Entwicklungsboards hat normalerweise einen nichtflüchtigen Speicher auf einem separaten Chip, der fest mit dem FPGA verdrahtet ist. Das ist also leicht zu beheben. Auf diesen Boards gibt es oft einen Schalter, um zwischen dem flüchtigen und dem nicht flüchtigen Modus zu wechseln, und wenn OP wirklich ein eigenes Entwicklungsboard erstellen möchte, würde ich dies vorschlagen.
@Mast Wir sprechen hier über das FPGA, nicht über das Board, auf dem es sich befindet. Wenn Sie versuchen, ein FPGA auf Ihrem eigenen Board zu implementieren, spielt es keine Rolle, dass andere Boards immer einen externen nichtflüchtigen Speicher enthalten, da Ihr eigenes FPGA-Board diesen Umstand nicht nutzen kann.
Sie können davon Gebrauch machen, wenn sie es ihrem Board hinzufügen.
@Mast Das verdreht die Dinge wirklich, es sei denn, Sie wollten mit Ihrer Absicht enden, anstatt damit zu führen.
Das hätte ich definitiv besser formulieren können, ja.

Für das Gerät XC3S50A-4VQG100C verwenden Sie die JTAG-Schnittstelle, nicht SPI. Es hat dedizierte Pins.

JTAG ist eine etwas ähnliche Schnittstelle wie SPI, aber standardisiert für FPGAs, Debug-Schnittstellen auf vielen Mikroprozessoren und für Testzwecke.

Es gibt XC3S50AN-Bausteine, die einen nichtflüchtigen Speicher im selben Paket haben, sodass Sie keinen separaten Flash-Speicher auf der Platine einbauen müssen. Xilinx kennzeichnet diese Geräte mit dem Suffix „N“ in der Teilenummer.

Die JTAG-Signale befinden sich an diesen Pins für dieses Gerät und Paket:

XC3S50A-4VQG100C JTAG-Signale

XC3S50A-4VQG100C Datenblatt