Testfälle erzeugen

davidda
Windoof-User
Windoof-User
Beiträge: 31
Registriert: 19. Okt 2009 17:27

Testfälle erzeugen

Beitrag von davidda »

Da mir das Aufstellen von Testzahlen für die FPU per Hand zu mühsam war, habe ich den Vorgang mithilfe einer Exceldatei und einem passenden Assemblerprogramm etwas beschleunigt. Dies möchte ich euch natürlich nicht vorenthalten.

Die angehängte .zip-Datei enthält folgendes:

Das Excelsheet: Es ermöglicht im wesentlichen die Eingabe von Zahlenpaaren, für die dann automatisch Testfälle für +, - und * generiert werden. Außerdem kann man in der zweiten Sektion auch eigene Testwerte z.B. mit Infinity etc. eintragen. Das Excelsheet generiert dann automatisch den entsprechenden Inhalt für eure memfiledata.dat. Wichtig: Makros müssen zugelassen werden.

memfile1.dat: Enthält den Assembler-Code für den Tester. Mit Datei im Projektverzeichnis ersetzten.

mipsmem.v: Mit Datei im Projektverzeichnis ersetzten. Vergrößert den Speicher des MIPS, da ansonsten nur max. 5 Testfälle auf einmal laufen können.

Tester.s: Den MARS-Sourcecode, falls es wen interessiert oder Fehler auftreten


Hinweis: Wenn alles glatt geht, bleibt der PC auf 104 (0x00..64) stehen, wenn ein Ergebnis nicht übereinstimmt auf 24 (0x00..18)

Hinweis: Wenn Ergebnisse mit vielen Nachkommastellen aus der Excel-Datei und der FPU in den letzten Nachkommastellen nicht übereinstimmen muss es sich dabei nicht unbedingt um einen Fehler handeln. Es könnte auch mit der (nichtvorhandenen) Rundung zu tun haben, das weis ich selber noch nicht genau.

Hinweis zur Synthese: Wenn man das ganze auf dem FPGA laufen lassen will, ist es wichtig, wirklich alle 512 generierten Zeilen aus dem Excelsheet in die memfiledata.dat zu übernehmen, auch wenn die hinteren nur noch Nullen enthalten. Sonst wird das RAM nicht korrekt initialisiert. Wenn man mehrere Testfälle laufen lässt und nur am Endergebnis (geht/geht nicht) interessiert ist, sollte man vieleicht die Taktzeile in divider.v nicht auskommentieren, sonst kann man ein paar Minuten warten.

Für die Richtigkeit der ausgegebenen Werte kann ich natürlich nicht garantieren, auch wenn es bei mir funktioniert.
Vieleicht hilft es ja noch Jemandem etwas Tipparbeit und IEEE-Umformung zu sparen :)

David
Dateianhänge
TestfallKit.zip
(79.58 KiB) 61-mal heruntergeladen

jack_90
Mausschubser
Mausschubser
Beiträge: 75
Registriert: 29. Sep 2009 22:38
Wohnort: Darmstadt
Kontaktdaten:

Re: Testfälle erzeugen

Beitrag von jack_90 »

Hey super! Vielen Dank!
Damit erspare ich mir endlich dieses nervige Umrechnen! :wink:
EiSE Tutor WS 12/13

davidda
Windoof-User
Windoof-User
Beiträge: 31
Registriert: 19. Okt 2009 17:27

Re: Testfälle erzeugen

Beitrag von davidda »

Was ich noch vergessen hatte zu sagen: Man muss in Zeile 33/34 der Exceldatei seinen eigenen Wert für NaN eintragen, sonst kann es natürlich nicht funktionieren. Ist aber auch rot hervorgehoben^^

Benutzeravatar
Dennis
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 29. Sep 2008 21:15

Re: Testfälle erzeugen

Beitrag von Dennis »

Vielen Dank!
...fragt stellvertretend für alle Freunde...

davidda
Windoof-User
Windoof-User
Beiträge: 31
Registriert: 19. Okt 2009 17:27

Re: Testfälle erzeugen

Beitrag von davidda »

Noch etwas, das ich heute herausgefunden habe: Excel unterstüzt nur Zahlen bis um die 10^307. Unser fpu-Format natürlich mehr. Wenn man also Overflows testen will muss man sich entsprechende Werte selbst ausdenken und in die Sonderwert-Sektion eintragen.

Antworten

Zurück zu „Archiv“