Creating a cosine wave of 140 MHz out of 80 MHz clock

I'm working with Virtex 5 ML507 board. I'm trying to create a cosine wave of 140 MHz out of 80 MHz clock. I'm receiving the data with a clock of 80 MHz and transmitting it with this clock (through the GTX). I want to create a cosine wave so that I can multiply the data and move the signal on the frequency level.

The thing is, I'm not sure I can create this cosine wave with this clock. I tried to create for example 40 MHz cosine wave and got only 2 points on it, for 20 MHz I got 4 points and so on, accordingly to nyquist theorem. I though of maybe of upsampling but I didn't get a chance to work with this block. I'm creating the cosine wave using CORDIC.

Any ideas?

• Are you saying (for my benefit) you have synchronous data clocked at 80MHz and you want to re-clock this at 140MHz? Or, are you just asking how you can create a steady 140MHz synchronous to the 80MHz source? Both are possible but the solutions are different. – Andy aka Jun 2 '13 at 15:08
• We don't all know what circuits are on an ML507 board. It would help us answer your question if you can post the relevant portions of the schematic (the DAC circuits particularly). If you upload an image to a site like imgur.com, we can edit the images into your question. – The Photon Jun 2 '13 at 15:13
• If nothing else, a link to the schematics of the ML507 would help. – The Photon Jun 2 '13 at 15:13
• Well, I'm not sure it will help but you can find it here due xilinx.com/support/documentation/boards_and_kits/… – Assaf Malki Jun 2 '13 at 15:20
• I don't see any DAC in that schematic. Can you explain more how will you "create" a cosine wave with this board? – The Photon Jun 2 '13 at 15:47

2 Answers

It's not entirely clear what you're asking, but you probably want to consider the Nyquist-Shannon sampling theorem.

As explained by Wikipedia, this says, "a bandlimited function can be perfectly reconstructed from a countable sequence of samples if the bandlimit, B, is no greater than ½ the sampling rate (samples per second)".

More explicitly, for a single-frequency signal like a cosine, if the only analog filtering you do is low-pass filtering, you can in theory perfectly reconstruct the signal from samples only if the sample rate is at least 2x the cosine frequency.

To get very specific, if you want an output frequency of 140 MHz, you want to generate your samples at at more than 280 MSa/s. Higher oversampling would make the analog filtering problem easier.

There are alternative approaches, but you'd need to add a well-chosen bandpass filter to your circuit.

I'll assume you have a 80Mhz square wave and that you want to generate a 140 Mhz sinusoid.

use a counter to get a 20Mhz wave (every four counts, change state). Then, as your wave is square you have higher order harmonics, including a 140Mhz one you can filter out.