Ich mache gerade einige Tutorials und lese einige Bücher darüber, wie man VHDL schreibt. Da ich neugierig bin und mit praktischen Tutorials besser lerne, werde ich mit der Umsetzung meiner Projekte beginnen, die mir in Zukunft gute Dienste leisten werden.
Für mein erstes echtes Projekt versuche ich, eine arctg
Funktion gefolgt von einer Aggregationsoperatorfunktion zu implementieren.
Ich will das Rad nicht neu erfinden und nicht weiter verwirren lassen und stelle hier folgende Fragen:
Ich habe irgendwo gesehen, dass das Paket math_real
bereits eine ARCTAN
Funktion hat, die ein akzeptiert, REAL
von dem ich denke, dass es ein Float ist. So:
2.1. Ist das synthetisierbar? Wenn nicht, warum ist es überhaupt codiert?
2.2. Wenn alles von Float in Integer konvertiert werden muss, um zwischen Funktionen übergeben zu werden, warum ARCTAN
akzeptiert REAL
und nicht eine ganze Zahl?
VHDL-2008 verfügt über synthetisierbare Festkomma- und Gleitkommabibliotheken, ieee.math_real
die außerdem ausschließlich für die Simulation bestimmt sind. Sie können das Float-Paket mit einer beliebigen Breite von Mantisse und Exponent instanziieren oder die vordefinierten Float-Typen (ungefähr IEEE P754) verwenden. Das Festkommapaket ist eine bessere Wahl für DSP und erzeugt normalerweise kleinere Hardware.
Diese Bibliotheken sollten Frage (1) für Sie erledigen.
Zu Frage 2)
math_real
ARCTAN wird zur Simulation verwendet, nicht zur Synthese.
Eugen Sch.
João Pereira
Eugen Sch.
pjc50
João Pereira
Eugen Sch.
Neil_DE
pjc50
João Pereira
arctg
ich zum Erstellen der Funktion anscheinend CORDIC benötige, werde ich prüfen, ob das mit fixed_point möglich istJoão Pereira
double floats
was mein ultimatives Ziel im VHDL-Projekt istEugen Sch.
João Pereira
Eugen Sch.