mikrocontroller.net

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


Autor: Markus Brenner (elektronik-bastler)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: high_speed (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/over...
http://www.altera.com/products/devices/serialcfg/o...

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

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast vergessen: Verwende einen Altera ACEX1K EP1K50TC144-1

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt funktionierts

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

MFG Clemens

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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(?)

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.