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.
greg schrieb: > Allerdings ist das sehr langsam. Was ist langsam? Die Simulation der SIO oder die Simulation des Softcores an sich?
Die UART-Kommunikation ist langsam im Verhältnis zum Rest, denn ich kann mit einem UART-Modul maximal 921600 BPS verwenden. Die CPU wartet die meiste Zeit nur auf den lahmen UART. Die Simulationsgeschwindigkeit an sich ist (IMHO) in Ordnung.
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
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.