Menu:

Project: FPGA68k  -  Hardware

Bei der Entwicklung des Spartan-6 FPGA-Evaluationboard sollten möglichst einfach anzusteuernde Schnittstellen Verwendung finden. Schaut man sich kommerzielle Spartan-6 Boards an, so findet man entweder Boards mit sehr wenigen Schnittstellen oder Boards mit Schnittstellen, wie zum Beispiel HDMI oder Ethernet. Ich denke jedoch, dass solche Schnittstellen für Anfänger zu komplex sind und habe aus diesem Grund bei meinem Board zum Beispiel auf HDMI zugunsten einer Standard-VGA-Schnittstelle verzichtet.

Die Hardware basiert auf einem modernen Spartan-6 FPGA, welcher hier in seinem größten TQFP-Gehäuse verbaut wird. Größere FPGA werden nur im BGA-Gehäuse produziert, so dass ein Selbstbau wesentlich aufwändiger wäre. Deshalb wurde dieser Gehäusetyp als Basis für das FPGA-Evaluationboard ausgewählt.

Am Ende dieser Seite kannst Du Dir den Schaltplan und die Layoutdatei downloaden, entweder als PDF oder als XML-Datei für EAGLE 6.3.x (und höhere Versionen).

Für den Betrieb ist neben einem externen Netzteil ein Xilinx Programmieradapter nötig!

 

Features

Das Spartan-6 FPGA-Evaluationboard besitzt folgende Eigenschaften und Anschlußmöglichkeiten:

Spannungsversorgung

Zur Spannungsversorgung wird ein externes Netzteil mit stabilisierten 5.00 V benötigt. Diese werden über zwei Längsregler auf 3.30 V und auf 1.20 V stabilisiert. Beide Spannungsebenen werden für die Versorgung des FPGA verwendet. Das User-Interface besitzt einen eigenen Spannungsregler für 3.30 V, der ausschließlich die LED-Anzeigen versorgt. Die eingespeisten 5.00 V werden wahlweise (d.h. über einen Jumper wählbar) für die Versorgung einer externen Maus (oder Tastatur) an die PS/2-Schnittstelle geführt. Besteht kein Bedarf für 5.00 V an der PS/2-Buchse, dann darf die eingespeiste Spannung von 5.00 V auch leicht nach oben abweichen.

Spartan-6 XC6SLX9, 25,00 MHz-Eingangstakt

Dieses FPGA ist das größte FPGA, welches noch in einem TQFP-Gehäuse verfügbar ist. Getaktet wird das FPGA von einem 25,00 MHz-Quarzoszillator. Mit dieser Taktfrequenz sind beispielsweise VGA-Designs einfach zu realisieren. Der Oszillator kann aber auch problemlos durch eine höhere Frequenz ersetzt werden. Zusätzlich ist das FPGA in der Lage einen eingespeisten Takt über eine PLL zu routen, was bedeutet, dass höhere Taktraten auch ohne Oszillatortausch realisiert werden können.

68SEC000 CPU (68k-Derivat, Bestückung ist optional!)

Da ich viele Jahre damit verbracht habe einen 68000er in Assembler zu programmieren und ich eine externe CPU haben wollte, entschied ich mich den 68SEC000 zu verbauen, damit ich eventuell wieder Routinen für diese CPU schreiben könnte.
Die Idee dahinter: In einer Initialisierungsphase beschreibt das FPGA den RAM mit einem Programm für die 68000er-CPU und hält diese während dieser Zeit in Reset. Danach wird Reset aufgehoben und die CPU kann das Programm im RAM abarbeiten. Speicherdekodierungen für RAM und eventuell Speicherbereiche innerhalb des FPGA - vielleicht für Video oder LEDs - werden dann vom FPGA übernommen.

Die Bestückung ist jedoch kein Muss! Wenn Du nichts mit dieser CPU anfangen kannst, dann lasse sie einfach weg. Frei werdende FPGA-Leitungen, welche ausschließlich zur CPU geroutet wurden, können dann frei verwendet werden.

512 KByte (256K*16 Bit) statisches RAM (Bestückung ist optional!)

Das Evaluationboard besitzt einen externen statischen RAM-Baustein von 512 KByte, aufgeteilt in 262144 Worte mit jeweils 16 Bit. Das RAM kann für die unterschiedlichsten Dinge verwendet werden, zum Beispiel als Videospeicher für eine VGA-Ausgabe oder als Programmspeicher für die externe 68000er-CPU.

Die Bestückung des externen RAM ist ebenfalls kein Muss! Wenn Dir der interne Speicher des FPGA ausreicht, dann lasse diesen Baustein einfach weg.

VGA-Ausgang

Der VGA-Ausgang ist in der Lage 4096 Farben darzustellen. Die Helligkeit der Grundfarben (Rot, Grün und Blau) wird jeweils mit 4 Bit (also in 16 Stufen) aufgelöst. Die benötigten 12 Signalleitungen sind direkt an das FPGA angeschlossen. Zusätzlich werden zwei FPGA-Pins für die Sync-Signale verwendet.

Atari-kompatibler Joystick-Port

Sollte das Evaluationboard für Videospiele eingesetzt werden, so kann man über diesen Anschluß "atari-kompatible" Joysticks anschließen. Selbstverständlich können die fünf hier verwendeten FPGA-Ports auch für andere Aufgaben genutzt werden, wenn man auf den Anschluß eines Joysticks verzichtet. Zusätzlich findet sich an diesem Port ein Spannungsausgang (3.30 V) für externe Schaltungen.

PS/2-Buchse

Für den Anschluß einer Tastatur oder einer Maus befindet sich auf dem FPGA-Evaluationboard ein sechspoliger Mini-DIN-Anschluß. Die Buchse verfügt über einen Spannungsausgang, um das angeschlossene Gerät mit Spannung versorgen zu können. Die Spannung beträgt wahlweise 3,30 V oder 5,00 V und wird über ein Jumper umgeschaltet.

Zwei serielle Ports (RS232 und USB-Slave)

Ein serieller Port nach dem RS232-Standard ist vorhanden. über eine neunpolige Buchse kann hier mit externen Geräten kommuniziert werden. Ferner gibt es ein USB-Port, wobei hier ein FTDI-Chip für die serielle Verbindung zwischen dem FPGA und dem USB-Host dient.

Expansion Port

Auf der linken Seite des Evaluationboards befindet sich eine 40-polige Stiftleiste für den Anschluß von sogenannten Add-On Boards. Hier finden sich zehn freie FPGA-Pins sowie freie Pins vom Display-Driver für eigene Entwicklungen.

JTAG-Schnittstelle

Zum Anschluß eines externen Programmieradapters wird eine sechspolige Stiftleiste benutzt. An dieser Stiftleiste sind alle JTAG-relevanten Signale zu finden. In der JTAG-Kette befindet sich ausschließlich das FPGA. Das Speichern der Designs im SPI-Flash geschieht über ein kleines Logikdesign, welches in das FPGA geladen wird, die zu speichernden Daten über JTAG empfängt und dann im SPI-Flash ablegt. Diese Vorgehensweise wird von Xilinx Impact unterstützt. Man muss Impact nur den Typ des SPI-Flash angeben, der Rest läuft automatisch ab.

 

Schaltplan

Unter den folgenden Links kannst Du Dir den Schaltplan für das FPGA68k-Evaluation Board downloaden. Ich habe es hier im "Portable Document Format" (PDF) bereitgestellt. Zusätzlich steht die Originaldatei im XML-Format zur Verfügung, damit Du Dir den Schaltplan direkt in Eagle ansehen kannst.

  Schaltplan FPGA68k-Evaluation Board V1.0: XML (für Eagle 6.3.x und höher)
  Schaltplan FPGA68k-Evaluation Board V1.0: PDF

 

Layout

Hier findest Du die Original-Layoutdatei für Eagle 6.3.

  Layout FPGA68k-Evaluation Board V1.0: XML (für Eagle 6.3.x und höher)
  Layout FPGA68k-Evaluation Board V1.0: PDF

 

Stückliste (Bill of Material)

Hier findest du eine Zusammenstellung aller benötigten elektronischen und mechanischen Bauteile:

  Stückliste FPGA68k-Evaluation Board V1.0: Textdatei
  Stückliste FPGA68k-Evaluation Board V1.0: PDF