NCO im FPGA realisieren

#1354490
Lesenswert?

Hallo zusammen,

habe folgendes Problem:

Möchte einen NCO (Numeric Controled Oscillator) wie den AD9832 im 
Spartan 3A nachbilden.
D.h. Durch Laden eines Datenwortes ändert sich die Ausgangsfrequenz des 
Oszillators.

Ideal wäre ein DCM mit variabler Ausgangsfrequenz!
Finde im Core Generator nix dass diese Funktion abbilden könnte.

Ein Zähler würde prinzipiell auch gehen, aber die Auflösung (Delta f) 
ist nicht zufriedenstellend (auch wenn der FPGA intern mit 300 MHz 
läuft)!
Moderator (Firma: Titel) Persönliche Seite #1354549
Lesenswert?

1
The AD9832 is a numerically controlled oscillator employing a phase 
2
accumulator, a sine look-up table and a 10-bit D/A converter integrated 
3
on a single CMOS chip.
Such mal nach DDS, DDFS und/oder schau dort nach:
http://www.lothar-miller.de/s9y/categories/31-DDFS

> Ideal wäre ein DCM mit variabler Ausgangsfrequenz!
Damit geht das nicht...
#1354595
Lesenswert?

@  Stanko T. (newie)

>Möchte einen NCO (Numeric Controled Oscillator) wie den AD9832 im
>Spartan 3A nachbilden.

Dann tu das doch einfach.

>Ideal wäre ein DCM mit variabler Ausgangsfrequenz!

Geht nicht.

>Ein Zähler würde prinzipiell auch gehen, aber die Auflösung (Delta f)
>ist nicht zufriedenstellend (auch wenn der FPGA intern mit 300 MHz
>läuft)!

Kaum. Eine DDS mit 300 MHz und 24 Bit Phasenakku hat 17,8 Hz 
Auflösung. Mit 32 Bit Phasenakku sind es 0,07 Hz Auflösung, allerdings 
muss man dann schon etwas tricksen, um den bei 300 MHz laufen lassen zu 
können.

MFg
Falk
Gast #1355850
Lesenswert?

http://groups.google.com/group/antti-brain/files?hl=en

bitte ISSUE JUNE und JULY lesen!

da ist ein project das NCO/DDS auf dem Spartan-3A platine benutzt
es lauft mit nur 210MHz, ich hatte es for die
DDS frequenz auf 640MHz hoch zu pumpen, habe aber noch nicht gemacht
aber moglich ist es, muss man 4 sample pro clock rechnen, dann
upconvert to 320mhz, und dann mit DDR I/O raus mit "virtuellen"
DDS update rate von 640MHz

viel spass fur alle, FPGA's sind es:)

Antti
Gast #1442727
Lesenswert?

Hallo Antti,


>300MHz geht schon, trick ist:
>man benutzt 150mhz, kalkuliert 2 worte pro clock
>und DDR I/O flop :)

könntest du das bitte näher erläutern? Wenn du beim Kalkulieren 
(Addition im Phasenakku) durch die 150Mhz begrenzt bist, dann kannst du 
doch nicht durch DDR I/O schneller werden. Man kan doch nur das 
ausführen, was man zuvor gerechnet hat, oder? Wegen zwei Flanken wird 
der Addierer nicht schneller rechnen können.

Danke,

Max
Gast #1443548
Lesenswert?

>hhmm hab da was gefunden siehe anhang
>seite 163

Besten Dank commtel! Genau das habe ich gebraucht!

>@Max: parallel x+1 und x+2 berechnen?

Ja, gerechnet. Meiner ansicht nach, X+1 und X+2 das ist das maximum, was 
man dabei rausholen kann(?). X+1 brauch seine Zeit, und die kann man 
doch nicht verkürzen (?).

Danke, Commtel
Danke Gast.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren