www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA & PCIe, vorgehen PowerUp/Programmierung


Autor: Florian Pfanner (db1pf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss als Teil meine Diplomarbeit über PCIe Daten zwischen PC und 
FPGA austauschen. Ich weiß, dass es sowohl von der Hardware- wie auch 
von der Softwareseite nicht ganz einfach ist. Im Moment habe ich aber 
noch keine Vorgaben was Übertragungsgeschwindigkeit o.ä. angeht, so dass 
es jetzt erst mal um das eigentliche zustandekommen der Übertragung 
geht.

Was mir im Moment aber noch nicht ganz klar ist, wie das Board im System 
(PC) programmiert wird. Eigentlich ist ja PCIe Hotplug-fähig, aber ich 
habe bereits gelesen dass es von der Betriebssystemseite nicht richtig 
unterstütz wird.
Somit kommen zwei Möglichkeiten in Betracht:
1. Board ausbauen, flashen, einbauen, PC einschalten
2. Board im laufenden PC programmieren, PC rebooten

Die erste Option ist sehr aufwändig, ich müsste das Board häufig aus- 
und einbauen, zum Programmieren externe Stromversorgung anschließen, 
etc. Das würde ich gerne vermeiden.

Bei der zweiten Option bin ich mir nicht sicher, ob das so funktioniert. 
Kommt das BIOS damit klar, dass ein PCIe-Slave auf einmal nicht mehr 
ansprechbar ist (während der Programmierung) und dann anschließend neu 
konfiguriert werden muss (PnP?)
Oder muss ich den Rechner über den Reset-Knopf 'am arbeiten hindern' und 
in der Zeit das Board programmieren?
Oder reicht es nach dem Programmieren den Reset-Knopf zu betätigen?


Würde mich freuen, wenn mir jemand seine Erfahrungen / Arbeitsablauf 
mitteilen könnte.


Noch ein paar Informationen zum Board:
Es handelt sich um das ML506 von Xilinx 
(http://www.xilinx.com/products/devkits/HW-V5-ML506-UNI-G.htm), mit 
einem Virtex-5 FPGA...

Vielen Dank,
Grüße,
Florian

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

willst du das Board über den PCIe programmieren oder über einen 
Programmierkabel? Wenn du ein Programmierkabel verwendest, kannst du vor 
der Programmierung den Treiber deaktivieren und nach dem Programmieren 
wider aktivieren. Habe viel mit PCI entwikelt, bei einem deaktivierent 
Treiber war es sogar möglich (unter Spannung) die Karte auszubauen, 
wider einzubauen und den Treiber zu aktivieren, ohne Windows neu zu 
booten.

Gruss

Autor: Florian Pfanner (db1pf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erst mal vielen Dank für deine Antwort. Das hört sich vielversprechend 
an.

Ich werde das FPGA über einen externen Programmer programmieren. Die 
Anbindung an PCIe ist nicht der Kern der Arbeit, die Schnittstelle soll 
nur verwendet werden um die Daten auszutauschen. Somit möchte ich hier 
auch den einfachern Weg gehen und das Programmieren über PCIe erst mal 
sein lassen ;)


Grüße,
Florian

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann aber auch bei deaktiviertem Treiber passieren dass beim 
Programmieren des Boards der System freezed. Stell dich schonmal auf 
einige Reboots ein. Du solltest es deswegen auch wenns im PC steckt noch 
extern mit dem Netzteil versorgen, solange du am testen bist.

Autor: Florian Pfanner (db1pf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo D.I.,

das Board wird nicht über den PCIe-Stecker mit Spannung versorgt. Es hat 
einen Anschluss für 5,2" Laufwerke, über den es versorgt wird.
Sollte ich trotzdem noch ein weiters Netzteil anschließen? (Weiß jetzt 
gar nicht ob es unterstützt wird, ich meine da muss man einen Schalter 
umlegen...) Aber die Versorgungsspannung aus dem PC-Netzteil sollte doch 
stabil sein oder?

Auf die System-freezes bin ich schon vorbereitet. Darum möchte ich das 
Board auch nicht über den PCIe-Bus programmieren sondern extern, von 
einem anderen Rechner aus.


Danke, Grüße,
Florian

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Florian,

du schreibst das neue Design einfach in den Flash und verhinderst, dass 
der FPGA nach Abschluss der Programmierung daraus neu konfiguriert wird. 
Dafür gibt es ein Häkchen. Dann fährst du den PC herunter, schaltest aus 
und bootest neu.

Tom

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich weiß schon was du meinst. Aber ich meinte du sollst es extern mit 
dem mitgelieferten netzteil versorgen, also nicht mit dem selben 
netzteil mit dem du auch den pc anfährst

Autor: Christian Leber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Florian Pfanner
Mach dir nicht soviele Gedanken, programmier das Board einfach im 
Rechner  und sobald es fertig ist powercycle den Rechner einfach.
Extra Netzteil oder so brauchst du nicht.

Hotplug faehig sind nur slots in wenigen teuren Servern.


Viel komplizierter ist das Aufsetzen einer Simulationsumgebung fuer 
deinen code, viel Glueck! :-)

Autor: Florian Pfanner (db1pf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal vielen Dank für die Antworten. Ich habe bereits begonnen die 
Testbench aufzusetzen bzw. die von Xilinx zum laufen zu bringen. Die 
Simulation dauert nur ewig...
Im Moment bin ich noch dabei mich in das Testprogramm einzuarbeiten. Ist 
aufwändiger als ich dachte ;)

Grüße,
Florian

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.