Ich benutze Altera De0 Nano Soc FPGA und Quartus 16,1 Lite Edition. Nach einer Suche im Internet fand ich, dass sin
, cos
und atan
Alteras CORDIC IP-Core kann direkt verwendet werden. Und auch gefunden Nachschlagetabelle (LUT) kann für sin oder cos verwendet werden (meist in Google verfügbar), aber wie man sin
inverse (ARCSIN
) in VHDL
bekommen? Ich habe eine sin
und cos
Nachschlagetabelle gefunden, gibt es eine Möglichkeit, sin
inverse zu generieren?Wie berechnet man sin inverse (arcsin) in VHDL?
Antwort
Ja, es ist möglich, eine Lookup-Tabelle für arcsin
zu erzeugen.
1) Ermitteln Sie die Eingabegenauigkeit, dh wie viele Werte Sie in Ihrer Nachschlagetabelle behalten möchten. Zum Beispiel müssen Sie 11 Werte speichern, wenn Ihre Genauigkeit 0,1 ist.
arcsin(0), arcsin(0.1), arcsin(0.2), ..., arcsin(1).
2) die Ergebnisse der arcsin Funktionen finden. Here ist eine Quelle, die ich durch googlen gefunden habe.
arcsin(0) = 0
arcsin(0.1) = 5.7
arcsin(0.2) = 11.5
...
arcsin(1) = 90
3) Bestimme die Ausgangsgenauigkeit.
Wenn die Genauigkeit 1 ist, werden alle Werte auf ganze Zahlen gerundet.
arcsin(0.1) = 6
arcsin(0.2) = 12
Wenn die Genauigkeit 0,5 ist, sind die Ergebnisse wie folgt. Die Ausgabe benötigt 9-Bit-Größe für diese Genauigkeit. 8 Bits sind für den ganzzahligen Teil und 1 Bit ist für den Bruchteil.
arcsin(0.1) = 5.5
arcsin(0.2) = 11.5
4) Karte Eingangswerte an Adressen der Nachschlagtabelle. Zum Beispiel sollte es für 0,1 Genauigkeit wie folgt sein. Dieses Beispiel erfordert keine zusätzliche Nachschlagetabelle oder große Logik für die Adresszuordnung.
0 -> 0
0.1 -> 1
0.2 -> 2
...
1 -> 10
5) diese Lookup-Tabelle wie die, die in VHDL Implementieren Sie für sin
oder cos
gefunden haben.
Vielen Dank, es funktioniert in der Weise, die Sie erwähnt haben. – komto909
Ja, gibt es.
Zum Beispiel mit CORDIC ... Eine meiner ersten Treffer bei Google: A survey of CORDIC algorithms for FPGA based computer
CORDIC scheint hart, wissen Sie, wo eine bessere Lookup-Tabelle, eine VHDL-Datei zu finden? – komto909
@ komto909 Was Sie erreichen wollen, ist sehr schwierig.Sie sollten entweder den ganzen Weg gehen (lernen über Cordic, evaluieren verschiedene Implementierungen, etc) oder gar nicht gehen (wählen Sie einen anderen Ansatz, z. B. CPU) ... – JHBonarius
- 1. Wie berechnet man die Inverse einer Matrix genau?
- 2. Wie berechnet man die Gesamtzahl der FOP- und Gleitkomma-Performance von Sonderoperationen (exp sin sqrt)?
- 3. Wie man einen Std_logic_vector in VHDL "schneidet"?
- 4. Wie berechnet man die Flugbahn eines Geschosses in Unity2D?
- 5. Wie berechnet man die Inverse der normalen kumulativen Verteilungsfunktion (cdf) mit Scala Breeze?
- 6. Wie berechnet man "Ansichten"?
- 7. Wie berechnet man Partituren?
- 8. Wie berechnet man die Umkehrung einer RowMatrix in Apache Spark?
- 9. Wie berechnet man Laufzeit
- 10. Inverse Bildrotation
- 11. Wie berechnet man Zylinder "top" Kreismitte, angesichts der Drehwinkel?
- 12. Wie berechnet man die normale Matrix?
- 13. schnelle trigonometrische Funktionen (cos, tan, arcsin, arcos, arctan)
- 14. Wie berechnet man den Ausdruck
- 15. wie man deskriptive Statistiken berechnet
- 16. Wie implementiert man Datenstrukturen wie Stack/Queue in VHDL?
- 17. Wie berechnet man den Netzwerkdurchmesser
- 18. Wie berechnet man mit String?
- 19. Wie berechnet man die Zeit?
- 20. Wie berechnet man den Durchschnitt?
- 21. Wie berechnet man die inverse orthogonale Projektion eines Punktes in der Betrachtungsebene auf eine Ebene in der Szene?
- 22. Pyephem: Wie berechnet man Transite?
- 23. Wie berechnet man freien Speicherplatz?
- 24. Wie berechnet man die Schriftbreite?
- 25. Wie konvertiert man 8 Bit in 16 Bit in VHDL?
- 26. Fehler in Wahrheitstabelle in vhdl
- 27. Wie berechnet man Rekursionsbeziehungen in Mathematica effizient?
- 28. Wie berechnet man CVaR in SAS?
- 29. Wie berechnet man Durchschnitt in Python gleichzeitig?
- 30. JavaFX Wie berechnet man Zeilen in TableView
kann mir jemand wenigstens einen Hinweis geben? gib mir einfach keine negativen punkte? weil ich hier feststecke, wenn jemand, der dies liest und mir einen anweis gibt, hilfreich sein wird, meine projektaufgabe fortzusetzen, ich bin neu bei fpga vhdl funktionen, die arcsin, cosine in berechnungen verwendet. – komto909
Ist das eine Hausaufgabe oder so? Jemand fragte vor 2 Tagen über die gleiche Frage [hier] (https://stackoverflow.com/questions/44762660/how-to-use-sin-arcsin-functions-in-vhdl-quatus-2-16-1-lite) – JHBonarius