Hi Johannes,ich werd am WE die beiden Sachen verheiraten. Soll ich noch weitere Energie in die Tests für trunk/ stecken, oder wird der nicht mehr weiter gebraucht? Mir ist nämlich aufgefallen, dass noch einige opcodes (v.a. branch-Befehle) nicht implementiert sind. Müssen wir die noch einbauen oder reicht es, wenn am Ende die strukturelle Beschreibung die geforderten Features hat?
Viele Grüße, Johannes -------- Original Message -------- Subject: [vhdl_group2] Re: [vhdl_group2] trunk: Testsystem fertig From: Johannes Boch <johannes.boch@xxxxxxxx> To: vhdl_group2@xxxxxxxxxxxxx Date: 12.02.2009 10:35
Hallo Johannes, im neuesten trunk2 sollte sich eine Datei namens "System.vhdl" befinden. Dort sind CPU, Mainbus und Speicher zusammengefügt. Mein Vorschlag: Dort die "Init_Memory" einfügen, um das Testprogramm mittels "access_bus" in den Speicher zu schreiben. Nach Ablauf des Programmes wieder mittels "access_bus" den Speicher auslesen und mit dem Sollwert vergleichen. Die entsprechenden Interface-Signale sind dort bereits vorhanden, du brauchst sie also nur noch "anzuzapfen". Gruß, JohannesOriginal Message: Hallo, <br /><br />etwas länger gedauert als geplant hat die Testschreiberei, dafür läuft <br />jetzt aber alles automatisch. Probiert bitte alle aus, ob bei euch die <br />Tests auch durchlaufen. Ich hoffe es ist kein Problem, dass das <br />Testskript in Perl geschrieben ist; falls doch, kann ich versuchen es <br />als Batch-Skript umzuschreiben.<br /> <br />Kurzform: <br />1. Per "perl runtests.pl" Tests durchlaufen lassen<br />2. Per "perl runtests.pl clean" können alle Testergebnisdateien wieder <br />entfernt werden.<br /> <br /> <br />Langform: <br />"perl runtests.pl" sollte zu folgender Ausgabe bei euch führen:<br />> Test name | Result | Comment <br />> ---------------------+------------+--------------------- <br />> tests/01-lw-add-sw | Success | <br />> tests/02-lw-sub-sw | Success | <br />> tests/03-bltz | Success | <br />> tests/04-logic | Success | <br /> <br />Es passiert folgendes: Für jede *.hex-Datei, die im tests/-Ordner ist, <br />werden das Programm selbst (*.hex) sowie das Soll-Speicherbild nach <br />Programmlauf (*.res für result) ins Stammverzeichnis kopiert und die <br />Simulation ausgeführt. Danach wird das tatsächliche Speicherabbild <br />(*.dump) per diff mit der *.res verglichen. Bei Gleichheit wird <br />"Success" ausgegeben, andernfalls wird das diff-Ergebnis als *.diff <br />abgespeichert. Damit man im Fehlerfall auch einen Anhaltspunkt hat, wird <br />das *.trace ebenfalls gesichert. Anschließend werden alle Dateien in den <br />tests-Ordner kopiert und tragen den Testnamen. Damit ihr vor dem <br />Herumschicken wieder Ordnung bekommt, könnt ihr mit<br /> <br /> "perl runtest.pl clean" <br /><br />alle vom Testlauf erzeugten Dateien entfernen lassen, sodass wieder der <br />"Auslieferungszustand" hergestellt ist.<br /> <br />Welche Funktionen momentan getestet werden: <br />01: lw, add, sw, jr <br />02: lw, sub, sw, jr <br />03: lw, bltz, jr <br />04: and, or, xor, nor (lw, sw natürlich auch) <br /><br />Könnt ihr mir ein wenig unter die Arme greifen und mir sagen, wo ich <br />anpacken muss, um mit dem Testsystem die strukturelle Beschreibung zu <br />testen?<br /> <br />Viele Grüße, <br />Johannes <br /> <br /> <br />