Forum: FPGA, VHDL & Co. Microblaze startet nach Reset nicht


von Vivado Einsteiger (Gast)


Lesenswert?

Hallos zusammen,

ich habe mir einen Xilinx Arty zur Beschäftigung angeschafft und arbeite 
fleißig die Digilent Tutorials durch.

Aktuell bin ich bei der UART Ausgabe des Microblaze:
https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze/start

Dabei stoße ich aktuell bei der Verwendung des Microblaze Prozessors auf 
folgendes Problem:

Wenn ich den Reset Button drücke startet das Programm nicht erneut, bzw. 
werden nur kryptische UART Symbole gesendet.

Nur wenn ich den Bitstream ernaut auf das Board lade und dann das 
Programm starte geht es wieder 1x. (Ich starte immer mit "Launch on 
Hardware (System Debugger)".

Was muss ich denn ändern, damit das Programm bei Reset von vorne 
startet?

Vielen Dank.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Du musst zunächst das Block RAM mit dem Binary des Programm 
initialisieren. Dies kann entweder bei der Generierung des Bitstreams 
geschehen oder auch anschließend durch Modifikation des zuvor erzeugten 
Bitstreams. Anschließend musst Du den seriellen Flashbaustein auf dem 
Board mit dem modizifizierten Bitstream programmieren. Danach sollte das 
ganze resetfest gespeichert sein.

Auch wenn das FPGA mit einem Bitstream geladen wurde, der ein 
Microblaze-Programm enthält, kann man das zugehörige Block RAM auch 
später noch mit dem Debugger überprogrammieren. Dieses nachgeladene 
Programm wird aber natürlich auch beim nächsten Reset wieder gelöscht.

von Vivado Einsteiger (Gast)


Lesenswert?

Vielen Dank, das hat mich in die richtige Richtung gelenkt :-)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Anschließend musst Du den seriellen Flashbaustein auf dem
> Board mit dem modizifizierten Bitstream programmieren. Danach sollte das
> ganze resetfest gespeichert sein.

Oh, noch ein Hinweis:
Nach dem Programmieren des Flashs steht der Bitstream nur in selbigem 
und noch nicht im FPGA. Daher muss anschließend ein Reset o.ä. 
durchgeführt werden, damit der Bitstream aus dem Flash ins FPGA geladen 
wird.

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.