Hallo, ich bin dabei eine Stoppuhr in VHDL zu schreiben. Die Testbench für die algorithmische, der VHDL Code der algorithmischen und RT Ebene sind bereits fertig und verifiziert. Die RT Ebene wollen wir nun mit unserer vorhandenen Testbench überprüfen, benötigen jedoch dafür einen Wrapper / Golden code. Die Frage ist nun, wie schreibe ich so etwas? Bzw. gibt es Literatur oder vor allem Beispiele? Vielen Dank Manuel Schwarz
Wofür brauchst du einen Wrapper, wenn du die Testbench und das Modul schon hast? Im Normalfall sollte dein algorithmisches Modell und dein RT-Modell aus Interfacesicht nicht zu unterscheiden sein und beides in dieselbe TB passen, meinst du das? Oder willst du algorithmisches Modell und RT-Modell gegeneinander simulieren?
Ihr habt eine dermaßen abstrakte Testbench, dass der Prüfling nicht drauf passt? Ein Wrapper ist i.a. nur ein VHDL Modul, dass die Ports des einen Moduls (Stoppuhr) an die Ports des anderen Moduls (TB) anpasst. Und wenn sich die "algorithmische Uhr" und die "RTL Uhr" gleich verhalten sollen, dann müssen sie zuerst mal die selben Ports haben. Und dann sollte die "algorithmische TB" ganz ohne Anpassung gegen die "RTL Uhr" laufen können...
In der algorithmischen Ebene besteht unsere Stoppuhr nur aus drei Tasten als Eingänge und einer Zeitvariablen als Ausgang. Hingegen in der RT Ebene sollen wir nun ein Prozess mit der Sensitivty auf den Clock testen und unseren logischen Ein- und Ausgänge sind immernoch die drei Taster, aber die Zeit wird mit vier 7-Segment-Anzeigen ausgegegeben, weshalb unsere Testbench nicht mehr passt. Den Wrapper brauchen wir, da sich die Portdefinition von algorithmischer zur RT-Ebene unterscheiden. LG Manu
Da brauchst du nicht unbedingt einen Wrapper, sondern kannst auch in der TB die Referenz 7-Segment codieren und dann vergleichen. Oder andersrum die 7-Segment des Modules decodieren und vergleichen.
Die Testbench ist normalerweise einfach die Umgebung. Mit den Eingabeelementen bzw. Sensoren, den Aktoren und sonstigen EA Bausteinen. Was soll sich da jetzt bei einer anderen internen Beschreibung ändern? Manuel Schwarz schrieb: > In der algorithmischen Ebene besteht unsere Stoppuhr ... > Hingegen in der RTL Ebene sollen wir ... > weshalb unsere Testbench nicht mehr passt. Ist ja klar: ihr habt 2 unterschiedliche Stoppuhren. Deshalb braucht ihr auch 2 unterschiedliche Testbenches... Oder, wenn ihr unbedingt diese RTL-Uhr mit der (falschen) Zähler-TB prüfen wollt, dann muss der Wrapper aus den LED-Signalen wieder eine Zahl machen, die in der Zähler-TB kontrolliert werden kann.
:
Bearbeitet durch Moderator
Manuel Schwarz schrieb: > Zeitvariablen als Ausgang Eine Variable? Oder ein Signal, dass als Variable gesehen wird? Manuel Schwarz schrieb: > da sich die Portdefinition von algorithmischer > zur RT-Ebene unterscheiden. Wieso ist das so? Und wo ist das Problem, den wrapper in 1min hinzuschreiben, wenn man die ports und deren Bedeutung kennt? Leute, in der Zeit, in der ihr sowas in VHDL macht, löte ich das dreimal auf.
VHDL-Altling schrieb im Beitrag #4204513: > Manuel Schwarz schrieb: >> Zeitvariablen als Ausgang > Eine Variable? Oder ein Signal, dass als Variable gesehen wird? Das ist vermutlich nur ein kleines Terminologie-Problem eines Softwerkers... > Leute, in der Zeit, in der ihr sowas in VHDL macht, löte ich das dreimal > auf. Manuel ist noch am Lernen... Manuel Schwarz schrieb: > einer Zeitvariablen als Ausgang. Natürlich ist weder ein Signal und noch weniger eine Variable der Ausgang, sondern einfach ein Port...
:
Bearbeitet durch Moderator
Manuel Schwarz schrieb: > ich bin dabei eine Stoppuhr in VHDL zu schreiben. > Die Testbench für die algorithmische, der VHDL Code der algorithmischen > und RT Ebene sind bereits fertig und verifiziert. Niemand schreibt eine Stoppuhr in RTL-Ebene. Das ist seit 10 Jahren rum. Wir sind in 2015 angekommen.
Servus! Wir sind eine Ecke weiter gekommen. Das dauert alles ein wenig, da wir keine Profis und deswegen kommen manchmal auch vielleicht "dumme" Fragen. Wer jedoch nicht liest und keine Fragen stellt, der macht auch keinen Fortschritt. In dem Sinne bedanke ich mich für die Hilfe! Wir haben noch einen Fehler mit unserem Wrapper. Er funktioniert soweit schon, gibt jedoch eine Fehlermeldung mit "Block specification does not match arcitecture". Die Arcitekturen und die Portmaps haben wir schon mehrmals überprüft. Woran könnte der Fehler noch liegen? Vielen Dank.
Manuel schrieb: > Woran könnte der Fehler noch liegen? Dass du Fragen zu einem Sourcecode stellst, denn wir nicht sehen können...
Manuel schrieb: > gibt jedoch eine Fehlermeldung mit "Block specification does not match > arcitecture". Welcher Teil welcher Toolchain meldet denn sowas?
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.