Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to generate a pi/4 phase delay?

Status
Not open for further replies.

hbsustc

Junior Member level 1
Joined
Sep 26, 2007
Messages
19
Helped
2
Reputation
4
Reaction score
1
Trophy points
1,283
Location
The Netherlands
Activity points
1,438
phase delay clock

Hello, everyone. I have an old Atera FPGA, there isn't any PLL on it. Now I have a reference clock about 10MHz, the problem is how to generate another reference clock whose phase leads the former by 45 degrees, or lags the former by 45 degrees? It seems I have to use code to realize it. Thank you in advance!
 

I see two options, assuming you have no additional clocks.
1. Generate an about 12.5 ns delay by a logic-cell delay line.
2. Design a ring oscillator clocking a digital delay circuit.

In both cases, synthesis attributes are required to prevent the HDL tool from removing delaying logic cells. The respective tool manuals tell, how to.
 

    hbsustc

    Points: 2
    Helpful Answer Positive Rating
Thank you for your suggestions, FvM, I'm afraid its performance will be deteriorated by the following points:
1. For the Logic-cell delay line, its delay is not accurate, it will be influenced by power-supply and temperature.
2. The 3-stages ring oscillator realized in FPGA seems not feasible, it's a little unstable for a long term utilization.

This afternoon, I tried to use the following way to realize pi/4 lead or lag phase delay:

1. Use a 10MHz*8=80MHz clock to trigger one Gray Code counter (I tried to use Binary counter firstly, but the glitch sucks)
2. The output of Gray Code counter will be 1, 3, 2, 6, 7, 5, 4, 0 periodically, so write something to make the module generate a pulse when the output=1 or output=7. (Generates other 2 pulses when the output=3 or 5 and output=2 or 4)
3. Use the pulses to trigger a frequency devider.

So it generates three clock signals whose phase are pi/4 lead, 0, pi/4 lag.
 

Yes, an additional clock would allow a more precise solution. But it has a delay variation/uncertainty of one period of the high frequency clock, if both clocks are unrelated. It would need a much higher frequency multiply to reduce the uncertainty to an acceptable amount. A delay line may achieve a higher phase accuray than an unrelated auxilary clock, which less effort.
 

Yes, you are right. Real time delay of LE buffers can't be got from timing simulation, normally it is smaller than the simulated value. So I need to program the chip and measure it. Thank you!
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top