[hpsdr] Digital Down Converter design
Darrell Harmon
dlharmon at dlharmon.com
Wed Sep 6 20:54:11 PDT 2006
I have been working on a DDC core for my spectrum analyzer project.
The verilog source will be released under the GPL. I though it might
be usable for the HPSDR project as well. If anyone is interested, I
can make minor changes to the core to fit your needs. I have written
the Verilog, done simple tests, and synthesized the core in Xilinx
ISE successfully. It still needs some minor tweaking and more testing.
The core consists of a CORDIC NCO/mixer, a CIC filter and a decimating
programmable FIR filter. The datapath grows from 16 bits at the input
to 18 bits at the output for increased dynamic range. The current
CIC filter has a fixed decimation rate of 25, but I plan to redo it
with a variable decimation rate of 8 to 1024. The FIR can do any
decimation rate with some limitations. The coefficients are 18 bits
and the filter performs 1 MAC/clock cycle. The impulse response can
be up to 512 points.
Resource utilization (Current version)
1042 Xilinx slices
2 block rams (18 kbit)
2 18x18 multipliers
This all fits in an XC3S200 ($15, TQFP144) with plenty of room to
spare. I will be using an XC3S1000 as I will probably use multiple
channels.
The maximum clock rate is 150 MHz. I am clocking at 125 MHz.
The dynamic range should be around 95 to 100 dB. This could be
improved by using more resources.
It will be a while until I get hardware since I want to get the
FPGA done first. I still need to implement a FFT and a DUC.
My board transmits too.
The verilog is in a Subversion repository at
svn://dlharmon.com/analyzer/trunk/verilog
The code is a mess right now, and needs some documentation.
This DDC may not be very appropriate for Mercury, but I thought I
would offer.
--
Darrell Harmon
http://dlharmon.com
More information about the Hpsdr
mailing list