DDR Why not

N

nfirtaps

I am in the unfortunate situation of not having access to a PLL on my
Altera and need to deserialize a DDR signal. It would be most
advantageous to double the clock rate and sample on every rising edge
to deserialze my DDR signal. I have read on this forum there are some
circuits that do not require a PLL to double the clock (using some
xors, nots and ff's), and I have implemented these circuits. They
seem to be junk, and are very frequency dependant.

I have also read that you cannot take the clock, the inverted clock
and deserialize using rising egde flip flops to sample the signal?
Why is this?

Thanks,
Lloyd
 
K

KJ

I am in the unfortunate situation of not having access to a PLL on my
Altera and need to deserialize a DDR signal. It would be most
advantageous to double the clock rate and sample on every rising edge
to deserialze my DDR signal. I have read on this forum there are some
circuits that do not require a PLL to double the clock (using some
xors, nots and ff's), and I have implemented these circuits. They
seem to be junk, and are very frequency dependant.
Just curious, in what way are they 'junk'?
I have also read that you cannot take the clock, the inverted clock
and deserialize using rising egde flip flops to sample the signal?
Why is this?
Usually it's because the duty cycle is not very well controlled by the
time it gets to the point where you need it so your 'falling' edge
doesn't occur anywhere near the midpoint of the clock cycle. Then
about all you can do is play games with resistors and capacitors to
try to tweak the edges to be just right....it's not a robust solution.

Even without a PLL you can easily make a divider though to generate a
clock enable. If you can, change the oscillator to 2x of what you
have now and use that as your clock instead throughout the design.
Use the output of the divider as the clock enable for anything that
needs to run at the 1x speed.

Kevin Jennings
 
N

nfirtaps

Just curious, in what way are they 'junk'?

When you look on the output on the scope it looks horrible. The
waveform is very distored, and it is very dependant on frequency.
Usually it's because the duty cycle is not very well controlled by the
time it gets to the point where you need it so your 'falling' edge
doesn't occur anywhere near the midpoint of the clock cycle. Then
about all you can do is play games with resistors and capacitors to
try to tweak the edges to be just right....it's not a robust solution.

Looks like I am going to be playing games then. I am out of luck, and
unfortunately I cannot change the clock to double the rate. Thanks
for your reply.
 
H

Homuncilus

Just curious, in what way are they 'junk'?




Usually it's because the duty cycle is not very well controlled by the
time it gets to the point where you need it so your 'falling' edge
doesn't occur anywhere near the midpoint of the clock cycle. Then
about all you can do is play games with resistors and capacitors to
try to tweak the edges to be just right....it's not a robust solution.

Even without a PLL you can easily make a divider though to generate a
clock enable. If you can, change the oscillator to 2x of what you
have now and use that as your clock instead throughout the design.
Use the output of the divider as the clock enable for anything that
needs to run at the 1x speed.

Kevin Jennings

I have an idea about it which is delineated by verilog.
 
A

Andy

I have also read that you cannot take the clock, the inverted clock
and deserialize using rising egde flip flops to sample the signal?
Why is this?

Depending on timing margins, and the particular FPGA architecture, you
may be able to use inverted clock or not. On older xilinx
architectures (V2 and older) there was a small skew between inverted
clock input and "true" falling edge. Depending on your timing
requirements, this may or may not work for you. IIRC, it was on the
order of 40 ps. Newer xilinx parts distribute global clocks
differentially, and there is no (signicifcant) skew, so they just
work.

Andy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top