Hardware Reference
In-Depth Information
Schritt 3: Ein Festkommaformat für die Wertedarstellung
Für die Synthese muss der reellwertige Zahlentyp, mit dem im bisherigen
Simulationsmodell die Daten dargestellt werden, durch einen geeigneten Bit-
vektortyp ersetzt werden. Alle Operanden und Zwischenergebnisse liegen bei
dem gewählten Algorithmus im Bereich zwischen 1;7. Es bietet sich ein
Format für vorzeichenbehaftete ganze Zahlen mit einem gedachten Komma
hinter den führenden zwei Bits an. Der damit darstellbare Wertebereich von
10,0...0
2
= 2 bis 01,1...1
2
= 22
14
ist ausreichend. Der Datentyp wird um-
definiert in
subtype
tDaten
is
tSigned(
15
downto
0
);
type
tDatenArray
is array
(natural
range
<>)
of
tDaten;
Für den Typ »tDaten« sind als Nächstes die erforderlichen Hilfsfunktionen
und Prozeduren zu programmieren. Die Zahlenwerte sollen wie in dem ersten
Modell als dezimale Festkommawerte auf dem Bildschirm angezeigt werden.
Nach der Konvertierung in eine ganze und weiter in eine Gleitkommazahl ist
der Wert vor der Str-Konvertierung mit 2
14
zu multiplizieren. Für vierzehn
binäre Nachkommastellen genügen vier dezimale Nachkommastellen:
function
str_real(x: tDaten)
return
string
is
begin
return
str(real(int(x))/(
2.0
**
14
),
4
);
end function
;
)
WEB-Projekt:P3.4/cordic2_pack.vhdl
Für die Konvertierung der reellwertigen Konstanten in die Festkommadar-
stellung ist der Wert zuerst mit 2
14
zu multiplizieren, in eine ganze Zahl und
dann weiter in einen 16-Bit-Vektor vom Typ »tSigned« zu konvertieren. Die
Assert-Anweisung kontrolliert, dass die Eingabewerte im darstellbaren Bereich
liegen:
function
to_tDat(w:real)
return
tDaten
is
begin
assert
w>
=-2.0
and
w<=
1.9999
report
"Wertebereichsverletzung"
severity
failure;
return
to_tSigned(integer(w*
2.0
**
14
),
1
6
);
end function
;
)
WEB-Projekt:P3.4/cordic2_pack.vhdl
Mit Hilfe dieser Konvertierungsfunktion werden unter anderem auch die Kon-
stanten in den Funktionen »fATanTab(...)« und »fSCS(...)« in ihre Fest-
kommadarstellung konvertiert. Bei einer Multiplikation der Festkommazahlen
vom Typ »tDaten« verdoppelt sich die Anzahl der Vorkommastellen auf vier
und die der Nachkommastellen auf 28. Zur Konvertierung des Ergebnisses
in das Darstellungsformat von »tDaten« werden die zusätzlichen Vorkomma-
und Nachkommastellen wieder abgeschnitten: