Inhaltsverzeichnis:

Cordic-Algorithmus mit VHDL - Gunook
Cordic-Algorithmus mit VHDL - Gunook

Video: Cordic-Algorithmus mit VHDL - Gunook

Video: Cordic-Algorithmus mit VHDL - Gunook
Video: FPGA 19 - AMD Xilinx VHDL CORDIC Sine/Cosine generator 2024, Juli
Anonim

Von AmCoderhttps://www.linkedin.com/in/mituFollow Mehr vom Autor:

Entwerfen eines synchronen FIFO, LIFO/Stack in Verilog
Entwerfen eines synchronen FIFO, LIFO/Stack in Verilog
Entwerfen eines synchronen FIFO, LIFO/Stack in Verilog
Entwerfen eines synchronen FIFO, LIFO/Stack in Verilog
Videoschnittstelle mit FPGA über VGA
Videoschnittstelle mit FPGA über VGA
Videoschnittstelle mit FPGA über VGA
Videoschnittstelle mit FPGA über VGA
Synchronisatoren, Clock Domain Crossing, Taktgeneratoren, Flankendetektoren, vieles mehr - Essential Tweak Circuits
Synchronisatoren, Clock Domain Crossing, Taktgeneratoren, Flankendetektoren, vieles mehr - Essential Tweak Circuits
Synchronisatoren, Clock Domain Crossing, Taktgeneratoren, Flankendetektoren, vieles mehr - Essential Tweak Circuits
Synchronisatoren, Clock Domain Crossing, Taktgeneratoren, Flankendetektoren, vieles mehr - Essential Tweak Circuits

Über: Mitu Raj -- Nur ein Hobby- und Lerner -- Chip-Designer -- Software-Entwickler -- Physik- und Mathematik-Enthusiast Mehr über AmCoder »

##Dies ist der am häufigsten angeklickte und beliebteste Link in Google für die VHDL-Implementierung des CORDIC-ALGORITHMUS zur Generierung von Sinus- und Cosinuswellen## Gegenwärtig existieren viele hardwareeffiziente Algorithmen, diese sind jedoch aufgrund der Dominanz von Softwaresystemen über die vielen Jahre. CORDIC ist ein solcher Algorithmus, der nichts anderes ist als ein Satz von Shift- und Add-Logiken, die zum Berechnen einer breiten Palette von Funktionen verwendet werden, einschließlich bestimmter trigonometrischer, hyperbolischer, linearer und logarithmischer Funktionen. Dies ist der Algorithmus, der in Taschenrechnern usw. verwendet wird. Somit können wir durch die Verwendung einfacher Shifter und Addierer eine Hardware mit weniger Komplexität, aber DSP-Leistung mit Cordic-Algorithmus entwerfen. Daher kann es als reines RTL-Design in VHDL oder Verilog entworfen werden, ohne dedizierte Gleitkommaeinheiten oder komplexe mathematische IPs zu verwenden.

Schritt 1: VHDL und Modelsim

Hier wird der Cordic-Algorithmus unter Verwendung von VHDL implementiert, um eine Sinuswelle und eine Kosewelle zu erzeugen. Es kann Sinus und Cosinus des Eingangswinkels mit hoher Präzision ausgeben. Der Code ist auf FPGA synthetisierbar. Modelsim wird verwendet, um das Design und den Prüfstand zu simulieren.

Schritt 2: VHDL-Code für das Design und den Prüfstand

VHDL-Code für das Design und den Prüfstand
VHDL-Code für das Design und den Prüfstand

Die binäre Skalierungstechnik wird verwendet, um Gleitkommazahlen darzustellen.

Bitte gehen Sie die angehängten Dokumente durch, bevor Sie codieren.

Gehen Sie durchSimulieren von cordic_v4.vhd - Das Design - Die Eingabe ist Winkel in 32 Bit + Vorzeichenbit; es kann jeden Winkel von 0 bis +/-360 Grad mit einer Eingabegenauigkeit von 0,0000000000233 Grad verarbeiten. Bei Eingabe -> MSB ist das Vorzeichenbit und die restlichen 32 Bits stellen die Größe dar.-Die Ausgabe des Designs ist der Sinus- und Cos-Wert in 16 Bit + Vorzeichenbit.ie; mit Genauigkeit 0.00001526. Bitte beachten Sie, dass die Ausgabe im 2er-Komplement dargestellt wird, wenn der jeweilige Sinus- oder Cos-Wert negativ ist. Simulieren von testb.vhd - Prüfstand für das Design (1) Eingabewinkel und Pull-Reset ='0'. Nach zwei Simulationsschritten ziehen Sie den Reset auf '1' und "run all".(2) Im Simulationsfenster stellen Sie die Wurzel der Sinus- und Cos-Signale als Dezimal und Format > Analog (automatisch) ein.(3) Verkleinern Sie die Wellenform richtig.

Schritt 3: Angehängte Dateien

(1) cordic_v4.vhd - Design.(2) testb.vhd - Prüfstand für das Design.

(3) Dokumentieren Sie, wie Sie Winkeleingaben erzwingen und die binären Ergebnisse konvertieren.

Update: DIESE DATEIEN SIND VERALTET UND NICHT MEHR ZUR VERFÜGUNG GESTELLT. BITTE VERWENDEN SIE DATEIEN AUS DEM NÄCHSTEN SCHRITT

Schritt 4: Mini-Cordic IP Core - 16 Bit

Einschränkung der obigen Implementierung ist langsame, niedrigere Taktfrequenz des Betriebs, da Berechnungen in einem einzigen Taktzyklus durchgeführt werden. Mini-Cordic IP Core - 16 Bit

- Kritische Pfade werden auf mehrere Zyklen verteilt, um die Leistung zu verbessern. - Schneller - FPGA-bewährtes Design synthetisiert bis zu 100 MHz Takt vorherige. Testbench:

komplett automatisiert von 0 bis 360 Grad Winkeleingaben

Angehängte Dateien:1) Mini Cordic Haupt-VHDL-Datei2) Mini Cordic Prüfstand3) Mini Cordic IP Core Handbuch4) Dokumentation zum Erzwingen von Winkeln und zum Umrechnen von Ergebnissen

Bei Fragen können Sie mich gerne kontaktieren:

Mitu Raja

Folgen Sie mir:

Mail: [email protected]

###Downloads insgesamt: 325 bis zum 01.05.2021###

### Code zuletzt bearbeitet: Juli-07-2020 ###

Empfohlen: