Gast
#6643716
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