100 Mbit manchester coded signal in FPGA

Hi all,

we are trying to implement a 100 MBit communication link witch uses manchester coding. The signal is generated by a CPLD (xc2c64a) and we hope we can receive it with an FPGA (Virtex4 for example). Because the CPLD design will work at 2.5V and should use minimal power (sensor node) my question is if it is possible to use a crystal with a NOT-gate in the CPLD for generating the oszillator frequency instead of an external oszillator. The second question concerns the reception of the datastream within the FPGA. My thought was to use a digital pll as mentioned here

formatting link
to generate a sample clock for the incomming bitstream. With the help of a DCM module I would generate two 300 MHz clocks, one shifted by 180 degree. Then I should be able to sample the incomming stream with 600 MHz and I hope this is enough to stay phase locked with the datastream. But I haven't done such a fast communication before, so I've no idea if this will work. Any comments from you would be nice.

Thanks, Michael

Reply to
Michael Dreschmann
Loading thread data ...

Michael,

The use of a CPLD or FPGA inversion is not recommended for a crystal oscillator.

The problem is not that it won't work (it often does), it is that it sometimes will not start. The inversion also comes with a delay that is not something that you can easily model and prove that the oscillator will always start up.

Once started, it will oscillate, it is the starting that is sometimes difficult,

Aust> Hi all,

Reply to
Austin Lesea

No, I don't think this will work. You need an unbuffered inverter, don't think the CPLD will have this.

Yep, that works. I've recovered RZ data with a 4 times clock, same thing applies to Manchester coding, so you'd be able to do it with a 200MHz clock on the DDR IOB input registers. Check out XAPP224. HTH, Syms.

Reply to
Symon

Michael Dreschmann schrieb:

you can look at the USB DPLL get the sub phy from opencores as example it uses 4x clock to deliver mid-bit clock enable to latch the data. something similar should work for manchester as well.

cpld oscillator shure work, but you still need a resistor across not gate in-out it want oscillate otherwise. I have spent some time trying to get an crystal to swing on FPGA pins without external resistor but have not yet succeeded.

Antti

Reply to
Antti

"Austin Lesea" schrieb im Newsbeitrag news: snipped-for-privacy@xilinx.com...

hm you mean that an CPLD/FPGA NOT gate with 1 (or 2 resistors) and 2 caps and crystal will not oscillate under some conditions?

It should be 100% a-stable as it can not stay in non-oscillating state.

Antti

Reply to
Antti Lukats

Reply to
Peter Alfke

Costs are no problem, it's a university project and not a design for production. I thought a crystal in combination with the cpld would need less power than a dedicated oscillator. Could you give me a hint where to find a

100 MHz low power oscialltor working at 2.5V? An external oscillator of course would be easier. An other question concerning power: If I have a design that fits exactly in a xc2c64a cpld and I use the next bigger one (xc2c128) with the same design how much more would be the power consumption (roughly)?

Thanks, Michael

Reply to
Michael Dreschmann

Antti,

That is exactly what I meant (and also echoed by other posters).

When is a not gate not a not? When it has too much delay.

Austin

Antti Lukats wrote:

Reply to
Austin Lesea

Reply to
Peter Alfke

Of course, I'm looking for an oscillator for the transmitting cpld. He also needs 100 MHz to generate the data stream but as far as I know there is now DCM or PLL in a CoolRunner 2. Or am I wrong? On the receiver side power and oscillator is no problem.

Michael

Reply to
Michael Dreschmann

Reply to
Peter Alfke

Interesting target - why is the resistor such a problem ? There are bigger headaches in FPGA osc than the resistor..

-jg

Reply to
Jim Granville

100Mhz is tricky space for crystals, as you are also into overtone.

Look at Maxim and Linear - they have a number of SOT23 Oscillators that are designed to give quite good precisions (for manchester), in

10-200Mhz ranges.

If you are brave, a LC osc can be built with a CPLD Inverter ( no resistor needed )

- tho at 100Mhz the Tpd is a size-able chunk of half-period. Start at 10-20Mhz, and lower L/C, to see if 100Mhz is practical.

You can also make a ring-oscillator, using just the PLD delay elements: this has the lowest precision, but manchester can auto-baud

for low power CPLD clocking notes, take a look at this

formatting link

As often happens with benchmarks, the really usefull info is other-other. Here it is the Xilinx/Lattice relative infos - any Altera-others info will be carefully filtered :)

-jg

Reply to
Jim Granville

A more important question is WHICH frequency it oscillates at ! :) At lower slew rates (not this case), you can get multiple oscillation effects : At the thresholds, the extreme (excess) gain can give parasitic oscillations, or edge-fur, and that's NOT nice on a clock source !

-jg

Reply to
Jim Granville

Reply to
Peter Alfke

Back in the 1970's, an engineer I was working for decided to save a part on a design and use a spare 7414 inverter rather than a 7404 inverter as an oscillator.

A TTL inverter, like the 7404, properly connected, makes a good oscillator. A 7414, which is a schmitt-trigger inverter, doesn't.

Yes, it would always oscillate. But only sometimes at the correct frequency. More often at the third or fifth harmonic of the crystal. And sometimes higher harmonics.

This left me with the idea that a good engineer should make sure that an oscillator design is a good design before building boards. Not afterward.

--
Phil Hays
Reply to
Phil Hays

When I simply xor the NRZ data with the clock signal I get spikes which isn't surprising. So I create two 50 MHz clocks from the 100 MHz clock that are phase-shifted by 90 degree (by using rising and falling edge of the 100 MHz clock). Then I invert one of the two clocks depending of the NRZ data bit. Finally the two 50 MHz clocks (one of them modulated by the data to send) are xored and I have my manchester signal. Because now the outputs of two flipflops are xored there is nearly no time difference between them and the output is fine (my theory, don't laugh Peter ;) ). Of course the incomming clock must have a 50% duty cycle. I haven't tested it in silicon but a Post-Fit simulation with modelsim shows a very good signal and I hope this is a good sign.

Right, but in our application bandwidth is not a problem at the moment (optical link). We need to save power and so I try to use the smallest cpld possible.

Thanks also for the infos of oscillator manufacturers. I'll look tomorrow, it's time for bed now in germany.. ;)

Michael

Reply to
Michael Dreschmann

Hi,

Thank you all for your help. I think everything is clear to me now.

Michael

Reply to
Michael Dreschmann

gosh the 7404 and 7414 are totally different chips (in the context of making oscillators). it wasnt much of an engineer who tried crystal osc with 7414.

7414 is good for making RC oscillator with 1 R and 1C (7404 is not)

formatting link

and CPLD osc about the same as from above should work. sure it has to tested to work properly on the correct freq and not harmonics

Antti

Reply to
Antti Lukats

I'm sure you meant this, but I'll post it anyway. I'd rather say it has to be _designed_ to work properly. Trial and error is, as I've found through trial and error, a terribly inefficient way to do projects. Cheers, Syms.

Reply to
Symon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.