Forum: FPGA, VHDL & Co. FPGA und CPLD programmieren


von Markus B. (elektronik-bastler)


Lesenswert?

Hallo,

als Neuling auf diesem Gebiet habe ich ein paar Fragen,

wenn ich nun einen CPLD oder FPGA Baustein von Altera über JTAG
"programmiere", bleibt das Programm nach dem Abschalten der
Versorgungsspannung weiterhin im Baustein??
Was muss ich machen, wenn ich wie beim Mikrocontroller ein Programm
permanent in den Baustein brennen möchte? Wie bekomme ich dann das
Programm in den Baustein rein?
Wie oft kann man einen Baustein programmieren?

Danke für eure Antworten!

von high_speed (Gast)


Lesenswert?

Hallo Markus

Einen FPGA kannst du so oft wie du willst programmieren.
Durch das Programmieren bekommst du ihn nicht kaputt.
Die logische Verschaltung wir in einem FPGA durch eine SRAM-Struktur
generiert. Das hat aber den Nachteil, dass er ohne Betriebsspannung
den programmierten Zustand verliert.

Dagegen wird bei einem CPLD die Verschaltung in einer EEPROM-Struktur
gespeichert. Dabei bedeutet jedes Programmieren eine Schädigung der
Speicherzellen. ca. 10000 mal
Der Speichererhalt (meist 10 Jahre) wird aber nur für ein paar
Programmiervorgänge gewährleistet.

Um den FPGA beim Start zu Laden, gibt es spezielle Flash-EEPROMs von
den FPGA-Herstellern, in denen man das Modell speichern kann.
Ansonsten besteht auch die Möglichkeit das Modell mit einem µC in den
FPGA zu laden.


FPGA:
Bei Altera heißt der Chip zum Beispiel EPCS4.
(Es gibt von Altera auch andere Configuration Devices.)
http://www.altera.com/products/devices/config/overview/cfg-overview.html
http://www.altera.com/products/devices/serialcfg/overview/scg-overview.html

Beispiel für EPCS4:
Wenn du den Chip über den FPGA Programmieren willst, öffnest du dein
Projekt in QuartusII. Wenn das Projekt noch nicht Synthetisiert wurde,
tust du dies als erstes. (lila Pfeil) Jetzt hat das Synthesetool die
*.sof-Datei erzeugt. (Diese Datei kann man mit dem Programmiertool
direkt in den FPGA laden.)

Um das Model in den externen Flash-EEPROM zu schreiben:

File -> Convert Programming file
Programming file type: JTAG Indirect Configuration File (*.jjc)
Configuration device: EPCS4
File name: Test_file.jjc  (als Beispiel)

Flash Loader  [Add Device]  (FPGA auswählen)
SOF Data [Add File]  (die *.sof-Datei von oben)
[OK]

Jetzt das Programmiertool öffnen.
[Add File] Test_file.jjc
Jetzt siehst du in Programmiertool, das zwei Chips programmiert werden
sollen. In den FPGA wird ein Modell zum Programmieren geladen, so dass
damit dann der Chip programmiert werden kann. Du musst bei
Program/Configure beide auswählen.
[Start]

Nach dem du kurzzeitig die Versorgung unterbrochen hast, liest der
FPGA das Modell aus dem externen Speicher.
Über die JTAG-Schnittstelle kannst du den FPGA wieder überschreibe.
Beim nächsten Start ist dann wieder das Modell aus dem Flash in FPGA.

!! Für Testzwecke würde ich nur in den FPGA schreiben.

Ansonsten kannst du auch noch in das Datenblatt vom FPGA schauen, da
stehen die Programmiermöglichkeiten auch noch drin.

MfG
Holger

von Clemens (Gast)


Lesenswert?

Kann man eigentlich für Testzwecke den FPGA ohne Konfigurationsspeicher
betreiben (FPGA wird direkt über JTAG programmiert)? Ich habs schon
versucht, weiß aber nicht genau wie ich die ganzen Konfigurationspins
des FPGAs setzen muss.

Grüße Clemens

von Clemens (Gast)


Lesenswert?

Fast vergessen: Verwende einen Altera ACEX1K EP1K50TC144-1

von Clemens (Gast)


Lesenswert?

Jetzt funktionierts

MSEL1 => GND
MSEL0 => GND
nStatus => Pullup
INIT_Done => Pullup
CONF_Done => Pullup

MFG Clemens

von FPGAküchle (Gast)


Lesenswert?

wenn ich nun einen CPLD oder FPGA Baustein von Altera über JTAG
"programmiere", bleibt das Programm nach dem Abschalten der
Versorgungsspannung weiterhin im Baustein??

FPGA(SRAM basierend): Nein
CPLD: Ja

Es gibt FPGA's die einmal Progrmmierbar sind. Das sind die
sogennanten
Anti-Fuse basierenden FPGA's von Actel(?)

von FPGAküchle (Gast)


Lesenswert?

<Kann man eigentlich für Testzwecke den FPGA ohne
<Konfigurationsspeicher
<betreiben (FPGA wird direkt über JTAG programmiert)? Ich habs schon
<versucht, weiß aber nicht genau wie ich die ganzen Konfigurationspins
<des FPGAs setzen muss.

Normalerweise ja.. JTAG als Prüfschnittstelle sollte immer ansprechbar
sein. Zumindest bei Xilinx ist der FPGA immer per JTAG
programmierbar, egal wie die ModePins stehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.