Hardware Reference
In-Depth Information
Das Produkt der Kosinus-Konstanten für diese Winkelkonstanten beträgt:
n Y
cos arctan 2 i 0;617
SCS =
i=0
Der resultierende Algorithmus ist genial einfach. In einer Wiederholschleife
für jeden Tabellenindex i wird, wenn der Zielwinkel größer als der aktuelle
Winkel ist,
• zum x-Wert der um i Stellen vorzeichenerweitert nach rechts verschobene
y-Wert addiert,
• vom y-Wert der um i Stellen vorzeichenerweitert nach rechts verschobene
x-Wert subtrahiert und
• zum Winkel der Tabellenwert addiert.
Sonst, wenn der Zielwinkel nicht größer als der aktuelle Winkel ist, werden aus
den beiden Additionen Subtraktionen und aus der Subtraktion eine Addition.
Abschließend werden die so berechneten Zwischenergebnisse für den Sinus-
und den Kosinuswert mit der Konstanten SCS multipliziert (Abb. 3.37).
signalφ,φ z ,x,y:tDaten;
Wiederholeimmer
Eingabeφ z ;φ<=0;x<=1;y<=0;
wiederholef¨urivon0bisn−1
φ z >φ?
ja
nein
x<=x+(ysrai)
y<=y−(xsrai)
x<=x−(ysrai)
y<=y+(xsrai)
φ<=φ+AtanTab(i) φ<=φ-AtanTab(i)
x<=SCS·x;y<=SCS·y;
AusgabederErgebnisse
WarteeineTaktperiodeoderaufeineEin-oderAusgabe
xsraiarithmetischeRechtsverschiebung,identischmitx·2 i
Abb. 3.37. Optimierter Algorithmus für die Berechnung von Sinus und Kosinus
Das Struktogramm in der Abbildung berechnet die Zwischenergebnisse in
Signalen. Zwischen der Zuweisung an ein Signal und der Auswertung des zuge-
wiesenen Wertes muss eine Warteanweisung liegen. Denn der Simulator aktua-
lisiert Signalwerte nur, wenn der Prozess schläft. Der skizzierte Algorithmus
benötigt deshalb nach der Eingabe, nach jedem CORDIC-Schritt und nach
den Multiplikationen je einen Warteschritt. Zusätzlich wartet ein Rechenwerk
im Allgemeinen auch auf die Bereitstellung neuer Eingabewerte und auf das
Abholen der Ergebnisse. Die Warteanweisungen legen den Zeitablauf fest.
Search WWH ::




Custom Search