Die Schaltung von MultAcc

Jetzt müssen wir noch das IP in unser VHDL-Gerüst einbinden. Dieses Modul ist als Wrapper gedacht. Der ist von Vorteil, wenn wir auf der einen Seite portierbaren Code wollen, auf der anderen Seite aber auch die Spezialitäten der einzelnen FPGAs nutzen wollen.

Wir haben den MAC so konfiguriert, dass er nur das kann, was wir brauchen, also 16 Bit Eingänge und einen 40 Bit Ausgang. Wenn wir einen Code schreiben, der über diesen Wrapper auf das IP zugreift und später einmal die FPGA-Technologie wechseln wollen, müssen wir nur einen neuen Wrapper um die neue MAC-Einheit erstellen und mit der gleichen Testbench zum Laufen bringen. Dadurch kann dann die Portierung erleichtert werden. Die Reduktion auf das Essentielle erleichtert in Zukunf, dass man einen anderen MAC-IP findet, der genau das kann was man braucht. Notfalls erzeugt man ihn über die Logik.

Spezifikation

Nr Name Spezifikation
1 Reset Nach dem Reset ist der Akkumulator 0 und der Overflow inaktiv
2 Shift Die Ausgabe beginnt ab dem Bit Shift
3 Width Es werden Width Bit vom Akkumulator für die Ausgabe verwendet
4 Overflow Falls die Ausgabe signifikante Bits abschneidet, wird ein Overflow gesetzt (mit einem Takt Verzögerung)
5 CE Es werden die einzelnen Produkte von A * B bei aktivem CE akkumuliert. Die Ausgabe erfolgt drei Takte nach dem CE.