Hier mein erstes etwas komplexeres VHDL-Programm. Eine Zustandsmaschine die power(basis, exponent) mod m berechnet. Getestet für power(3,4) mod 256 = 81, power(13,3) mod 256 = 149 und power(255,2) mod 256 = 1 und einige andere Fälle. Verwendet ISE Webpack 10.1 und ISE Simulator. VHDL und Testbench im Anhang. Bitte mal in einen FPGA laden (Habe noch kein Board). Verbesserungsvorschläge sind willkommen.
Hallo Hans-Werner, auch ohne Board kannst Du doch selbst die Synthese machen. Meckert die ISE nicht wegen dem math_real Package? Mir ist aufgefallen, dass Du im letzten State valid auf '1' setzt, danach in zero gehst und dort valid gleich wieder auf 0 setzt. Warum das? Ready ist m.E. auch falsch implementiert, es müsste ja weggehen sobald die Berechnung startet und dann wieder auf 1 sobald das Ergebnis da ist. OK, kommt drauf an was man mit den Signalen nachher noch anstellen will. Du verschenkst außerdem <size> flip-flops im state forth. Result würde ich aus dem Prozess rausnehmen. Ansonsten schöner generischer Code, nicht schlecht. Anfänger würden nie subtypes vom Typ natural anlegen, also das find ich schon echt fortgeschritten ;-)
nochwas zur Testbench: Du kannst Dir eine procedure schreiben, damit ist ein Testcase dann genau 1 Zeile VHDL. Um die Testabdeckung zu verbessern würde ich auf jeden Fall folgende Corner-Tests machen: power(0,0) power(0,255) power(255,0) power(255,255) das mit dem assert ist gut gelöst
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.