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ß, Johannes Original 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 /> --