Hvordan lage en sinusbølge med Verilog?

F

feel_on_on

Guest
Alle kan fortelle meg hvordan å lage en sinusbølge med Verilog? thanx!
 
Vil du gjøre sinusbølge for testen benk eller vil du lage en krets som genererer sinus bølge? For testen benken kan du lage en look up table. Hvis du ønsker å lage en digital krets deretter prøve å lage en PWM generator.
 
[Quote = feel_on_on] Alle kan fortelle meg hvordan å lage en sinusbølge med Verilog? thanx! [/quote] Ikke mulig .. Du kan bruke CORDIC algoritmen hvis u bare vil sinus / cosinus verdier tilsvarende en vinkel ..
 
Hvis du bruker sinusbølge å gjøre simulering, kan du bruke PLI å oppnå det
 
Her er koden Ur jakt etter jeg legger det ut her en gang til! Håper dette hjelper!
Code:
 modul sine_cos (clk, reset, no, sinus, cos), inngang clk, reset, no; utgang [07:00] sinus, cos, reg [07:00] sine_r, cos_r; Tilordne sinus = sine_r + { cos_r [7], cos_r [7], cos_r [7], cos_r [07:03]}; tildeler cos = cos_r - {sinus [7], sinus [7], sinus [7], sinus [07:03] }; alltid @ (posedge clk eller negedge reset) begynne hvis begynne sine_r (reset!)
 
Hei, Kan nand_gates du lime din bølgeform? Jeg tror ikke at det kan bringe sinusbølge. Takk
 
Hei, nand_gates hva simulering verktøy skal brukes til å lage sinusbølge med ur-koden?
 
Hvis du ønsker å generere synd stimulans i en testbench, kan du opprette synd bølge i andre verktøy som Matlab eller SPW deretter skrive ut dataene til en fil, endelig lese filen i testbench skrevet i Verilog.
 
Enhver simuleringsverktøy vil gjøre! Trikset her er den genererte sinus utgang er i komplementet for to heltall format eller signert heltall. Slik konverterings det inn usignerte må du invertere MSB. Hvis du bruker modelsim bølge skjema Viewer kan du endre formatet på bølgen til signert heltall analog du vil se sinuskurve ....
 
du kan opprette en sinusbølge med DDS-teknologi, for detaljer, kan du gå og søke DDS. [Quote = feel_on_on] Alle kan fortelle meg hvordan å lage en sinusbølge med Verilog? thanx! [/quote]
 
nand_gates! vennligst fortelle meg koden teori? jeg aldri hadde understanded det!
 
En annen måte: ved hjelp av Taylor-ekspansjon koeffisientene synd og cosinus, for DDS som er utgangspunktet samme idé som bruker Matlab, trenger du flere verktøy og dermed ekstra kompleksitet. Spørsmål: Kan vi bruke Verilog-AMS for denne typen oppgaver? eller System-C?
 
Her er mitt resultat for enkel redskap sinusbølge, herunder kontroll [1] Frekvens (fase Step) [2] Fase offset
 
du prøver å lage en look up table vurderer verdiene for en sinusbølge og lagre den i sin interne RAM .. Jeg håper u fikk ..
 
Jeg fant den fine koden ved nand_gates her. Så takk! Koden fungerer fint, men dessverre jeg er for dum til å oppdage hva som skjer inni den. Kan noen forklare denne koden i detaljer? Vær så snill! Hva er den viktigste ideen i algoritmen? Hva hvis jeg ønsker å endre litt bredde for eksempel? Hjertelig takk for noen forklaring!
 
Hva skjer i koden er "signert magnitude forlengelse. Dette gjøres ved å legge sifre til den mest betydningsfulle siden av nummeret. Hvis du ønsker å øke bredden så du bør utvide MSB istedenfor 7 (som er MSB i dette tilfellet).
 
Det er en annen ordens forskjell ligningen fungerer som en oscillator med null demping.
Code:
 sin (n) = sin (n-1) + a * cos (n-1) cos (n) = cos (n-1) - en * sin (n-1)
I den foreliggende sak, er en 1/8. Det kan i utgangspunktet endres til høyere magnitude oppløsning og lavere frekvens (= høyere fase oppløsning), men avhengig avkortingsverktøyet effekter, det muligens ikke vil gi en nøyaktig periodisk utgang for alle a verdier. Frykter jeg, får du et forfallent svingning for noen en kodinger. En korreksjon sikt (selvfølgelig forstyrre den geniale enkle opprinnelige design utseende) kunne hjelpe. Bare prøv. Som design er effektivt roterer en kompleks vektor, er det også knyttet til CORDIC.
 
/ / Sinusbølge generasjon bibliotek IEEE, bruke ieee.std_logic_1164.all, bruk ieee.numeric_std.all, bruk work.sine_package.all; enhet sine_wave er port (klokke, tilbakestille aktiver: i std_logic; wave_out: ut sine_vector_type); slutt ; arkitektur arch1 av sine_wave er typen state_type er (counting_up, change_down, counting_down, change_up); signal tilstand, next_state: state_type; signal table_index: table_index_type; signal positive_cycle: boolean; begynne prosessen (klokke, nullstille) begynne hvis reset = '1 ' da staten
 

Welcome to EDABoard.com

Sponsor

Back
Top