Hallo, ich versuche mich schon seit geraumer Zeit daran vom Quartus Platform designer generierte QSYS Systeme und deren Komponenten mit dessen generierten Testbenches vernünftig in ModelSim zu simulieren aber irgendwie gelingt mir das nur ansatzweise. Vielleicht hat ja Jemand Erfahrung damit und kann mir evtl. einen Tipp geben was ich falsch mache... Meine Erste Beobachtung, es scheint leichte Unterschiede zu geben je nachdem ob man verilog oder vhdl als Sprache bei der Generierung der sources / Testbench durch den QSYS Platform designer auswählt. Z.B. hat der generierte sdram controller in vhdl nicht funktioniert, in verilog aber schon... ?! Daher hab ich mich durchgerungen dort verilog zu nutzen (natürlich hab ich mir aber vhdl angeeignet und nicht verilog! ... Ein weitere Ungereimtheit die mir bei der benutzung aufgefallen ist, wenn ich z.B. bei einer PIO einstelle es ist ein input und soll in der Testbench auf einen festen Wert eingestellt werden ist das nachher in der Testbench die der Platform designer generiert einfach nicht da und in der Simulation in ModelSim wird der input auch nicht gesetzt.?! Unabhängig davon ob ich verilog oder vhdl beim generieren der Testbench auswähle. Jetzt hab ich weiter herausgefunden das der eigentlich Ablauf der Testbench in einem "Master Test Programm" beschrieben werden soll, also hab ich mir entprechend eines (system verilog) erstellt und das von Hand in die Testbench eingefügt... funktioniert, aber auch irgendwie komisch das sowas nicht direkt mit angelegt und eingebunden wird beim Erstellen der Testbench durch den Platform designer. Ich meine dafür ist doch so eine GUI und ein designer eigentlich da, oder sehe ich das falsch? So weit so gut aber dann wollte ich den Altera embedded IP UART core simulieren und da wurde es dann noch komischer. Mein Plan war das UART RX pin conduit BFM, was der Platform designer generiert, in dem Master Test Programm zu nutzen um den Pin zu manipulieren / den Empfang eines characters zu simulieren. Klappt auch, ABER der UART tut einfach nichts in der Simulation! Ich sehe der rx Pin nimmt entsprechende Zustände an wenn mein Master Test Programm das Zeichen "sendet" aber der UART core reagiert einfach nicht darauf! Ich habe dann versucht aus dem generiertem verilog source des UART schlau zu werden und da wird alles noch komischer für mich, also in der Simulation wird der divisor für die clock entsprechende verringert um wohl einfach Simulations-Zeit zu sparen, OK muss man auch vorher wissen sonst klappt der Empfang nicht wegen falscher Baudrate (framing error), OK kein Problem, aber dann... es gibt darin Funktionalität die es ermöglicht automatisch ein Character an den internen UART Empfänger senden zu lassen, toll, aber ich sehe nirgends etwas was ermöglicht diesen Character von "Aussen" einzustellen, im Prinzip kann ich ihn nur nachträglich hardwiren in dem vom Platform designer generiertem verilog source, was echt blöde ist da alles überschrieben wird wenn man das QSYS / die Testbench neu generieren lässt. Dazu kommt aber auch noch das dieses interne senden in dem UART core niemals ausgeführt wird weil dessen "enable" irgendwie auf dem eingesynchten internen rx PIN beruht der in der Simulation aber nie gesetzt wird weil das durch diese interne sende Funktionalität passieren soll (so fern ich die verilog source richtig verstehe), also der Hund beißt sich da meiner Meinung nach selbst in den Schwanz. Ich habs nur hinbekommen in dem ich dieses interne senden einfach aus dem UART core rausgenommen habe.... DAS kann doch so nicht richtig sein!!! Btw. ich nutze die aktuelle 20.1.1 Quartus lite Version... Also falls jemand eine Idee hat was da falsch läuft... bitte sagt es mir!!! thx
Huiuiuiui, also erstmal darfst du die Sprachen mischen. Also du kannst ein Verilog Modul in VHDL einbinden und anders herum. Dann kannst du alle Module einzeln in Testbenches testen. Also den UART, den RAM Controller ... Das mit dem QSYS erzeugt dir aber ein System. Und das testest du dann als Ganzes. Das hat im Toplevel Ein- und Ausgänge, die kannst du in einer Testbench bespaßen. Da habe ich noch nicht so wirklich deinen Ansatz verstanden was du genau in den Testbenches machst. Du könntest hier auch Code hochladen. Zu deinem UART: Ja der hat interne Anschlüsse wie Takt und Daten und Busy oder Ready, ... Und extern RX und TX Pins. Wenn du den testen willst, dann musst du auch zumindest manche interne Signale bespaßen. Z. B. mit einem Takt. So eine Testbench ist schnell geschrieben für einen UART. Aber zeig gerne her was du aktuell hast.
:
Bearbeitet durch User
ich hab einfach mein test Projekt nur mit dem uart mal angehängt, das libraries Verzeichnis was ModelSim anlegt hab ich aus Platzgründen gelöscht, hier sieht man das der UART die character empfängt "Hallo" ... dazu habe ich die "testsys_uart.v" anpassen müssen, Zeilen 357-368.
Gustl B. schrieb: > Huiuiuiui, also erstmal darfst du die Sprachen mischen. Also du kannst > ein Verilog Modul in VHDL einbinden und anders herum. Das geht aber nur wenn seine Modelsim Lizenz dieses Feature freigeschaltet hat. Ist das beim integrierten Modelsim in den neuesten Quartus Varianten der Fall?
:
Bearbeitet durch User
Tobias B. schrieb: > Das geht aber nur wenn seine Modelsim Lizenz dieses Feature > freigeschaltet hat. Ist das beim integrierten Modelsim in den neuesten > Quartus Varianten der Fall? also man kann vhdl und verilog/system verilog mischen bis zu nem gewissen Grad. Z.B. kann man von vhdl aus anscheinend keine verilog tasks oder functions ausführen und umgedreht funktionieren da auch ein paar Dinge nicht. Aber ne vhdl testbench / top level zusammen mit den vom Platform designer generierten verilog files geht ohne weiteres.
Tobias B. schrieb: > Das geht aber nur wenn seine Modelsim Lizenz dieses Feature > freigeschaltet hat. Ist das beim integrierten Modelsim in den neuesten > Quartus Varianten der Fall? Ja, ist auch notwendig da mehr und mehr der Intel IP-Cores nur noch in Verilog mit VHDL-Wrapper vorliegen.
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.