Altifigence Academy

5 / 24 · Konzept

Festkommabits und Einheiten

Multiplizieren Sie 0.5 und −1.25 bei F=4 und addieren Sie dann Bias 0.25 bei F=8. Welche Akkumulatorkodierung und welchen reellen Wert erhalten Sie?

Der Ganzzahl eine Einheit zuordnen

Festkommadarstellung repräsentiert einen reellen Wert durch einen Ganzzahlcode und eine feste Skalierung. Wir spezifizieren insgesamt acht Bits, vorzeichenbehaftete Speicherung im Zweierkomplement und vier Nachkommabits, F=4. Ein Code q stellt q×2⁻⁴ dar. Q-Format-Benennungen können sich darin unterscheiden, ob das Vorzeichen als Ganzzahlbit zählt; schreiben Sie daher Gesamtbreite, Vorzeicheninterpretation und F ausdrücklich auf. Die Codes −128 bis 127 stellen −8 bis 7.9375 dar.

Dasselbe Bitmuster verändert seine Bedeutung mit der Skalierung. Code 24 stellt bei F=4 den Wert 1.5 dar, bei F=3 aber drei. Codes unterschiedlicher Einheiten zu addieren ist auch mit einem breiten Addierer falsch. Gleichen Sie zunächst Skalierungen an und definieren Sie dabei eingeführte Rundung und Überlauf.

Durchgerechnetes Beispiel

Kodieren Sie 1.5 als 24 und −0.75 als −12. Das Ganzzahlprodukt beträgt −288. Nachkommabreiten addieren sich, also hat das Produkt F=8 und stellt −288/256=−1.125 dar. Zwei vorzeichenbehaftete Acht-Bit-Operanden benötigen für ihr vollständiges Produkt sechzehn Bits, eine Summe vieler Produkte aber eine separate Akkumulatorbreitenberechnung. Jedes Produkt zurück auf F=4 zu runden erzeugt einen Fehler pro Term. Unsere Regeln erhalten die Produktskalierung während der Akkumulation und runden einmal am Ausgang.

Ein reeller Bias von 0.5 wird bei F=8 zu Code 128. Seine Addition ergibt −160, entsprechend −0.625. Die Addition von Code acht, dem Bias bei F=4, würde die falsche Einheit verwenden. Dokumentieren Sie die Bias-Skalierung neben seinem gespeicherten Code.

Wiederholen Sie bei der Erweiterung eines negativen Zweierkomplementcodes das Vorzeichenbit. Die Acht-Bit-Darstellung von −12 ist 11110100; die Sechzehn-Bit-Erweiterung 1111111111110100. Nullerweiterung macht daraus positive 244. Deklarieren Sie RTL-Operanden und Zwischenwerte vorzeichenbehaftet und ihre Breiten ausdrücklich, statt anzunehmen, dass ein schmales Ziel die Ausdrucksgröße korrigiert.

Skalierungen mit Zweierpotenzen machen den Verschiebungszusammenhang leicht überprüfbar. Allgemeine affine Quantisierung verwendet andere positive Skalierungen und einen Nullpunkt. Halten Sie Code, Skalierung und dargestellten Wert in Ihren Entwurfsnotizen zusammen, damit Multiplikation, Akkumulation und abschließende Umwandlung verständlich bleiben.

Selbst ausprobieren

Multiplizieren Sie 0.5 und −1.25 bei F=4 und addieren Sie dann Bias 0.25 bei F=8. Welche Akkumulatorkodierung und welchen reellen Wert erhalten Sie?

Erklärung lesen

Die Codes sind acht und −20 und ergeben Produkt −160. Der Biascode ist 64. Akkumulator −96 bei F=8 stellt −0.375 dar.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.