Innholdsfortegnelse:

Cordisk algoritme ved bruk av VHDL: 4 trinn
Cordisk algoritme ved bruk av VHDL: 4 trinn

Video: Cordisk algoritme ved bruk av VHDL: 4 trinn

Video: Cordisk algoritme ved bruk av VHDL: 4 trinn
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Juli
Anonim

Av AmCoderhttps://www.linkedin.com/in/mituFollow More av forfatteren:

Design av en synkron FIFO, LIFO/stabel i Verilog
Design av en synkron FIFO, LIFO/stabel i Verilog
Design av en synkron FIFO, LIFO/stabel i Verilog
Design av en synkron FIFO, LIFO/stabel i Verilog
Videogrensesnitt med FPGA ved bruk av VGA
Videogrensesnitt med FPGA ved bruk av VGA
Videogrensesnitt med FPGA ved bruk av VGA
Videogrensesnitt med FPGA ved bruk av VGA
Synkronisere, Clock Domain Crossing, Clock Generators, Edge Detectors, mye mer - Viktige tweak -kretser
Synkronisere, Clock Domain Crossing, Clock Generators, Edge Detectors, mye mer - Viktige tweak -kretser
Synkronisere, Clock Domain Crossing, Clock Generators, Edge Detectors, mye mer - Viktige tweak -kretser
Synkronisere, Clock Domain Crossing, Clock Generators, Edge Detectors, mye mer - Viktige tweak -kretser

Om: Mitu Raj - Bare en hobby og elev - Chip Designer - Programvareutvikler - Fysikk og matematikkentusiast Mer om AmCoder »

## Dette er den mest klikkede, populære lenken i Google for VHDL -implementering av CORDIC ALGORITHM for å generere sinus- og cosinusbølge ## For tiden eksisterer det mange maskinvareeffektive algoritmer, men disse er ikke godt kjent på grunn av dominansen til programvaresystemer over de mange årene. CORDIC er en slik algoritme som ikke er annet enn et sett med skift og legge til logikker som brukes til å beregne et bredt spekter av funksjoner, inkludert visse trigonometriske, hyperboliske, lineære og logaritmiske funksjoner. Dette er algoritmen som brukes i kalkulatorer osv. Dermed kan vi ved å bruke enkle shifters og adders designe en maskinvare med mindre kompleksitet, men kraften til DSP ved hjelp av cordic algoritme. Derfor kan den utformes som bare RTL -design i VHDL eller Verilog uten å bruke noen dedikerte flytende punktenheter eller komplekse matematiske IP -er.

Trinn 1: VHDL og Modelsim

Her implementeres den cordiske algoritmen ved bruk av VHDL for å generere en sinusbølge og en cose -bølge. Den kan sende sinus og cosinus for inngangsvinkel med stor presisjon. Koden er syntetiserbar på FPGA. Modelsim brukes til å simulere designet og testbenken.

Trinn 2: VHDL -kode for design og testbenk

VHDL -kode for design og testbenk
VHDL -kode for design og testbenk

Binær skaleringsteknikk brukes til å representere flytende tall.

Gå gjennom vedlagte dokumenter før du koder.

Gå gjennomSimulere cordic_v4.vhd - Designet -Inngangen er vinkel i 32 bits + tegnbit; den kan behandle alle vinkler fra 0 til +/- 360 grader med inngangspresisjon på 0.000000000233 grader. Når du gir input -> MSB er tegnbiten og resten 32 biter representerer størrelsen. -Utgangen til designet er dens sinus og cos -verdi i 16 bits + tegnbit.ie; med presisjon 0,00001526. Vær oppmerksom på at utgangen vises i 2s komplimentform hvis den respektive sinus- eller cos -verdien er negativ. Simulering av testb.vhd - Testbenk for designet (1) Inngangsvinkler og pull reset = '0'. Etter to trinn med simulering, trekk tilbakestillingen til '1' og "kjør alt". (2) I simuleringsvinduet angir radixen til sin og cos signaler som desimal og format> Analog (automatisk). (3) Zoom ut for å se kurven riktig.

Trinn 3: Filer vedlagt

(1) cordic_v4.vhd - Design. (2) testb.vhd - Testbenk for designet.

(3) Dokumentere hvordan du tvinger vinkelinnganger og konverterer de binære resultatene.

Oppdatering: Disse filene er merket og tilbys ikke lenger. VENNLIGST BRUK FILER FRA NESTE TRINN

Trinn 4: Mini -Cordic IP -kjerne - 16 bit

Begrensningen av implementeringen ovenfor er langsom, lavere klokkefrekvens for drift på grunn av beregninger i en enkelt klokkesyklus. Mini-Cordic IP Core- 16 Bit

- Kritiske baner fordelt på flere sykluser for å forbedre ytelsen.- Raskere- FPGA-utprøvd design syntetisert opptil 100 Mhz klokke.- Mer område optimalisert i HDL, Mindre maskinvare.- Last og ferdig status signaler lagt til.- Bare ulempen er mindre oppløsning sammenlignet med forrige. Testbenk:

helt automatisert fra 0 til 360 graders vinkelinnganger

Vedlagte filer: 1) mini cordic main vhdl file2) mini cordic testbenk3) Mini Cordic IP Core manual4) Doc om hvordan du tvinger vinkler og konverterer resultater

For spørsmål, kontakt meg gjerne:

Mitu Raj

følg meg:

e -post: [email protected]

### Totalt antall nedlastinger: 325 fra og med 01-05-2021 ###

### Kode sist redigert: 07-07-2020 ###

Anbefalt: