Innholdsfortegnelse:
- Trinn 1: VHDL og Modelsim
- Trinn 2: VHDL -kode for design og testbenk
- Trinn 3: Filer vedlagt
- Trinn 4: Mini -Cordic IP -kjerne - 16 bit
Video: Cordisk algoritme ved bruk av VHDL: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Av AmCoderhttps://www.linkedin.com/in/mituFollow More av forfatteren:
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
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:
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Grunnleggende stoppeklokke ved bruk av VHDL og Basys3 Board: 9 trinn
Grunnleggende stoppeklokke ved bruk av VHDL og Basys3 -kort: Velkommen til instruksjonene om hvordan du bygger en stoppeklokke ved hjelp av grunnleggende VHDL- og Basys 3 -kort. Vi gleder oss til å dele prosjektet vårt med deg! Dette var et avsluttende prosjekt for kurs CPE 133 (Digital Design) på Cal Poly, SLO høsten 2016. Prosjektet vi bygde
Selvbalanserende robot ved bruk av PID -algoritme (STM MC): 9 trinn
Self Balancing Robot Using PID Algorithm (STM MC): Nylig har det blitt gjort mye arbeid med selvbalansering av objekter. Konseptet med selvbalansering startet med balansering av omvendt pendel. Dette konseptet utvidet seg også til design av fly. I dette prosjektet har vi designet en liten mod
Hastighetskontroll av likestrømsmotor ved bruk av PID -algoritme (STM32F4): 8 trinn (med bilder)
Hastighetskontroll av likestrømsmotor ved bruk av PID -algoritme (STM32F4): hei alle sammen. Dette er tahir ul haq med et annet prosjekt. Denne gangen er det STM32F407 som MC. Dette er et prosjekt på slutten av midten av semesteret. Håper du liker det. Det krever mange begreper og teori, så vi går inn på det først. Med bruk av datamaskiner og