Hoch irgendwas und float wie in VHDL

Gast #3112828
Lesenswert?

Lothar Miller schrieb:
> Welche Datentypen willst du denn da haben (Ergebnis und TMP)?
> Soll das synthetisiert werden?
> Was willst du machen?

TMP und Ergebnis sind "signed(31 downto 0)"!
Ja wäre nicht schlecht, wenn's auch zu synthetisieren ginge!

-0.011546875 stellt eine Dämpfung dar, die in Abhängigkeit zu TMP größer 
oder kleiner sein soll (logarithmisch) TMP kann dabei Werte von 0 bis 
(2^11)-1 annehmen!
Ich möchte also den log-Wert in einen Faktor umrechnen!
Gast #3112958
Lesenswert?

Stefan H. schrieb:
> TMP und Ergebnis sind "signed(31 downto 0)"!
> Ja wäre nicht schlecht, wenn's auch zu synthetisieren ginge!
>
> -0.011546875 stellt eine Dämpfung dar, die in Abhängigkeit zu TMP größer
> oder kleiner sein soll (logarithmisch) TMP kann dabei Werte von 0 bis
> (2^11)-1 annehmen!
> Ich möchte also den log-Wert in einen Faktor umrechnen!

Hmmh ok mir ist da die Idee gekommen... warum das nicht einfach
so lösen, wie es in VHDL als auf ner Hardware oftmals am einfachsten 
ist:

Vorberechnete Werte verwenden!

also
eine Liste mit 2^11 Werten
die Wertnr. (der Index) entspricht dann "TMP"
und die zugehörigen Werte werden vorher berechnet entweder von 
Synthese-Tool,
MatLab, SciLab oder Octave etc.

also eine LUT mit 2^11 Werten (hier jeder Wert mit 32 Bit aufgelöst!)
Wäre das ne gescheite Vorgehensweise?
Gast #3113245
Lesenswert?

Lothar Miller schrieb:
> Du kannst auch weniger Stützpunkte verwenden und dazwischen linear
> interpolieren. Das geht recht einfach: zwei Tabellenzugriffe, zwei
> Mutliplikationen und fertig...

Stimmt klingt gut, dann habe ich nur halb so viele Werte in der Tabelle 
und
nutze eh schon dafür "dedizierte" Hardware für die Multiplikation!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren