2 / 63 · Konzept
Zahlensysteme und Darstellung mit fester Breite
Über die Basisumrechnung hinaus Wertebereiche, erforderliche Bitzahlen und Abschneidefehler berechnen.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Ausgangspunkt dieses Kurses
Empfohlen werden Schulalgebra und erste Programmiererfahrung. Binärzahlen und boolesche AlgebraBoolesche Algebra Algebra mit 0,1, AND, OR und NOT. Das Pluszeichen bedeutet meist OR und folgt anderen Regeln als Ganzzahladdition. Mehr erfahren werden im Kurs eingeführt; danach geht es zügig auf einführendem Hochschulniveau weiter. Konzentrieren Sie sich darauf, Eingangsbedingungen, Bitbreiten und Beobachtungszeitpunkte festzulegen und an Beispielen zu prüfen, statt Formeln auswendig zu lernen.
Bitfolge und Wert sind zu unterscheiden
Eine Schaltung speichert eine endliche Bitfolge. Ob sie als Ganzzahl, vorzeichenbehafteter Wert oder FestkommazahlFestkomma Zahlendarstellung mit festgelegtem Binärpunkt und Skalierung einer Ganzzahlbitfolge. Breite, Vorzeichen und Nachkommabitanzahl sind gemeinsam festzulegen. Mehr erfahren interpretiert wird, legt der Entwurfsvertrag fest. Diese Lektion setzt Ganzzahlarithmetik und Potenzen voraus und geht direkt zur Bereichsberechnung für reales RTL über.
Ein vorzeichenloserUnsigned Interpretation einer Bitfolge als nichtnegative Ganzzahl. Der n-Bit-Bereich ist 0 bis 2^n−1 und kann sich von der signed-Interpretation derselben Bits unterscheiden. Wert aus Bit wird so interpretiert:
10110110 entspricht . In Vierergruppen ergibt sich B6; 8'hB6 und 8'b10110110 sind daher dieselbe Bitfolge. Eine Hexadezimalziffer steht stets für vier Bit, was die Umrechnung beim Lesen von Adressen, Masken und Zeitdiagrammen erleichtert.
Dieselbe Bitfolge, andere Interpretation
Schalten Sie unten b7 um. Bei vorzeichenloser Interpretation kommt das Gewicht 128 hinzu; im ZweierkomplementZweierkomplement Darstellung vorzeichenbehafteter Ganzzahlen mit fester Bitbreite. n Bit reichen von −2^(n−1) bis 2^(n−1)−1. Mehr erfahren hat das höchstwertige Bit dagegen das Gewicht −128. Stellen Sie zunächst 0x7F und 0x80 ein und vergleichen Sie die Grenze beider Interpretationen.
10110110 → unsigned 182 · signed -74 · hex 0xB6
Eine Bitfolge zu ändern und sie als signed zu interpretieren sind unterschiedliche Operationen. Obwohl die Schaltungsbreite unverändert acht Bit beträgt, kann ein Vergleich je nach Vorzeicheninformation der Operanden anders ausfallen.
Zuerst den Bereich, dann die Bitbreite festlegen
Die Mindestanzahl von Bits zur Unterscheidung von Zuständen ist:
Für 0 bis 999 sind 1000 Werte und damit zehn Bit nötig. Für 0 bis 1024 sind es 1025 Werte und elf Bit. Wer Höchstwert und Zustandsanzahl verwechselt, verliert genau an der Grenze ein nötiges Bit. Wird das RTL bis zu parametrisiert, muss die Breite auf mindestens eins begrenzt werden, damit kein Vektor mit null Bit entsteht.
Was beim Speichern in einem schmaleren Signal geschieht
Beim vorzeichenlosen Speichern mit verworfenen oberen Bits und nur verbleibenden Bits wird modular gerechnet:
Wird etwa das 9-Bit-Ergebnis 300 in acht Bit gespeichert, bleibt 44 übrig. Das ist weder Rundung noch Sättigung. Für Sättigungsarithmetik braucht es zusätzliche Logik, die eine Bereichsüberschreitung erkennt und den Höchstwert auswählt.
logic [7:0] a, b, low;
logic [8:0] full_sum;
assign full_sum = {1'b0, a} + {1'b0, b};
assign low = full_sum[7:0];Die Erweiterung beider Operanden vor der Addition macht deutlich, dass auch der Übertrag erhalten bleiben soll. Aus der Zahlenschreibweise allein folgen weder Vorzeicheninterpretation noch Ergebnisbreite. Zum Lesen eines Zeitdiagramms sind Breite, Vorzeichen und Basis erforderlich.
Selbst ausprobieren
Wie viele Bits sind für Zählwerte von 0 bis 4095 beziehungsweise bis 4096 nötig? Welcher Wert bleibt beim Speichern von 511 als 8-Bit-unsigned übrig?
Erklärung lesen
Der erste Bereich hat Werte und benötigt zwölf Bit; der zweite 4097 Werte und dreizehn Bit. Wegen wird 8'hFF gespeichert. Daraus allein lässt sich nicht schließen, dass kein Überlauf auftrat.