Kommunikation mit Softcore in Simulation

Gast #3643293
Lesenswert?

Moin,

um in der Simulation einen Softcore (MicroBlaze) mit der "Außenwelt" 
kommunizieren zu lassen, benutze ich momentan einen schnell getakteten 
UART mit VHDL-Prozessen in der Testbench, die den UART lesen/schreiben 
können. Funktioniert prinzipiell gut, und war einfacher als ich dachte. 
Es hat auch den Vorteil (abgesehen von der Baudrate) identisch mit der 
echten Hardware zu sein.

Allerdings ist das sehr langsam. Gibt es eine schnellere, einfache 
Möglichkeit, die ich übersehe? Auf Anhieb konnte ich im Netz nichts 
finden.
Gast #3643387
Lesenswert?

greg schrieb:
> Die UART-Kommunikation ist langsam im Verhältnis zum Rest,
Ich habe mir ein kleines Modul gebaut: Der Softcore schreibt Zeichen auf 
eine Speicherstelle. Die Testbench sammelt die Zeichen und gibt sie bei 
Newline komplett aus.

Damit die Software weiß, ob sie richtige UART machen muss oder nicht, 
wird am GPIO ein Signal angelegt, welches in der Simulation '1' ist und 
im synthetisierten Design '0'.

Mit dieser Information kann man auch gleich die relativ langsame 
Initialisierung für ein Text-LCD o.ä. überspringen.

Duke
Gast #3643576
Lesenswert?

Guck mal nach `ghdlex´ in der GHDL mailing liste, da gibt es einige sehr 
praktische Co-Simulation-Utilities. Allerdings vermute ich, dass sich 
der microblaze mit GHDL nicht simulieren lässt. Wir machen hier mit dem 
Core des Autors zyklengenaue Simulationen mit Coprozessor-HW, ist 
allerdings langsamer als die 50k-Teuren Cadence-Tools, aber mit einer 
schnellen Kiste und cleverem Threading geht eine saubere Verifikation in 
vernünftiger Zeit.
Gast #3646363
Lesenswert?

Duke Scarring schrieb:
> Ich habe mir ein kleines Modul gebaut: Der Softcore schreibt Zeichen auf
> eine Speicherstelle. Die Testbench sammelt die Zeichen und gibt sie bei
> Newline komplett aus.

Hmm, klingt simpel, und nicht schlecht. Ich könnte ggf. die Zeichen auch 
einfach per AXI4-Stream raushauen, das READY-Signal dabei konstant auf 1 
setzen, und immer wenn ein VALID anliegt, die Daten in meiner Testbench 
lesen. Da brauche ich gar keine zusätzliche Peripherie mehr.

Fitzebutze schrieb:
> Guck mal nach `ghdlex´ in der GHDL mailing liste, da gibt es einige sehr
> praktische Co-Simulation-Utilities. Allerdings vermute ich, dass sich
> der microblaze mit GHDL nicht simulieren lässt.

Ich denke auch, dass ich den Microblaze damit nicht simulieren kann. 
Aber der Tipp mit der Co-Simulation klingt gut. Es muss doch etwas 
Ähnliches wie VHPI für Modelsim geben?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren