Digital Down synthetizer

  • Thread starter Juan Carlos Allica
  • Start date
J

Juan Carlos Allica

Guest
hello all

i am tring to create a DDS in fpga but i am wondering if a can because:

the precision i need is too big so my look up table it is 20 address bits
and 15 bits wide ?
And in the case i could, how should be my code to make this huge memory
synthesizable now iam using files to simulate but that are not synthe .. ?

thanks in advance jcallica@eresmas.com
 
Sorry a DDS is a digital down synthesizer by mean this you can create any
freq sin or cosine wave, it uses the phase in the digital domain and convert
it to analog domain by mean a look up table which I don't know how to create
this mem in a fpga .

Cheers

"Juan Carlos Allica" <jc.allica.santamaria@cern.ch> wrote in message
news:dajgto$qfc$1@sunnews.cern.ch...
hello all

i am tring to create a DDS in fpga but i am wondering if a can because:

the precision i need is too big so my look up table it is 20 address bits
and 15 bits wide ?
And in the case i could, how should be my code to make this huge memory
synthesizable now iam using files to simulate but that are not synthe .. ?

thanks in advance jcallica@eresmas.com
 
On Thu, 7 Jul 2005 17:15:05 +0200, "Juan Carlos Allica"
<jc.allica.santamaria@cern.ch> wrote:


i am tring to create a DDS in fpga but i am wondering if a can because:
the precision i need is too big so my look up table it is 20 address bits
and 15 bits wide ?
From your later response I see that you're trying to create a
sinusoid rather than an arbitrary waveform, so you have many
options.

First, if the required precision is only 15 bits, you surely don't
need all 20 bits of address into the table!

Second, you can reduce the size of the table by a factor of 4
easily by dividing the 20-bit phase range into four quadrants.
You need a 2s complement negate operation on both address and
data, but otherwise it's easy.

Finally, you can use something a bit more clever than a
simple lookup table. There are two obvious possibilities:
CORDIC and interpolation.

CORDIC is so well covered by material on Ray Andraka's website
www.andraka.com that I won't even try to describe it here.

Interpolation is a useful idea. You know, of course, that
the first derivative of (sin) is (cos), which is simply (sin)
displaced by a quarter of a cycle. So, given a phase value
P, rewrite P = P0 + dP by the cunning trick of splitting the
address binary word into two equal pieces. Now you can make
the approximation

sin(P) = sin(P0) + cos(P0).dP

cos(P0) is only a second lookup in the table. You need a
multiplier and an adder, of course. And there's some scaling
to be done.

Other possibilities include creating a very approximate sine
wave and then passing it through a digital lowpass filter
whose sample rate is also controlled by the DDS.
--
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL, Verilog, SystemC, Perl, Tcl/Tk, Verification, Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, BH24 1AW, UK
Tel: +44 (0)1425 471223 mail:jonathan.bromley@doulos.com
Fax: +44 (0)1425 471573 Web: http://www.doulos.com

The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.
 
On Fri, 8 Jul 2005 09:27:51 +0200, "Juan Carlos Allica"
<jc.allica.santamaria@cern.ch> wrote:

+<Sorry a DDS is a digital down synthesizer by mean this you can create any
+<freq sin or cosine wave, it uses the phase in the digital domain and convert
+<it to analog domain by mean a look up table which I don't know how to create
+<this mem in a fpga .
+
+<Cheers
+
*****

I thought "DDS" stood for Direct Digital Synthesis?

james


+<"Juan Carlos Allica" <jc.allica.santamaria@cern.ch> wrote in message
+<news:dajgto$qfc$1@sunnews.cern.ch...
+<> hello all
+
+<> i am tring to create a DDS in fpga but i am wondering if a can because:
+
+<> the precision i need is too big so my look up table it is 20 address bits
+<> and 15 bits wide ?
+<> And in the case i could, how should be my code to make this huge memory
+<> synthesizable now iam using files to simulate but that are not synthe .. ?
+
+<> thanks in advance jcallica@eresmas.com
+
+
 
u r right sorry.

"james" <george@washington.edu> wrote in message
news:gk70d1hat2ebq02g5si0uvfck0hlv19sec@4ax.com...
On Fri, 8 Jul 2005 09:27:51 +0200, "Juan Carlos Allica"
jc.allica.santamaria@cern.ch> wrote:

+<Sorry a DDS is a digital down synthesizer by mean this you can create
any
+<freq sin or cosine wave, it uses the phase in the digital domain and
convert
+<it to analog domain by mean a look up table which I don't know how to
create
+<this mem in a fpga .
+
+<Cheers
+
*****

I thought "DDS" stood for Direct Digital Synthesis?

james


+<"Juan Carlos Allica" <jc.allica.santamaria@cern.ch> wrote in message
+<news:dajgto$qfc$1@sunnews.cern.ch...
+<> hello all
+
+<> i am tring to create a DDS in fpga but i am wondering if a can
because:
+
+<> the precision i need is too big so my look up table it is 20 address
bits
+<> and 15 bits wide ?
+<> And in the case i could, how should be my code to make this huge
memory
+<> synthesizable now iam using files to simulate but that are not synthe
.. ?
+
+<> thanks in advance jcallica@eresmas.com
+
+
 
Hello,

What is DDS?

Regards
john
Juan Carlos Allica wrote:
hello all

i am tring to create a DDS in fpga but i am wondering if a can because:

the precision i need is too big so my look up table it is 20 address bits
and 15 bits wide ?
And in the case i could, how should be my code to make this huge memory
synthesizable now iam using files to simulate but that are not synthe .. ?

thanks in advance jcallica@eresmas.com
 

Welcome to EDABoard.com

Sponsor

Back
Top