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.

Handling signal rate error in FPGA

Igloo2

Newbie
Newbie level 2
Joined
Aug 19, 2024
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
21
Hi,

In my implementation, I have to sample input data bits and store it to process.
The data comes bit by bit on a single input pin.
The data rate is 10Mbps with 0.01% tolerance.
The sampling frequency is 160 MHz. This is generated inside the FPGA using clock conditioning.
The crystal oscillator used is 50Mhz +/-50 PPM.

What are the techniques to sample this data so the error caused by the signal rate tolerance can be handled ?
What is the effect of the crystal oscillator PPM on the sampling ?

Please guide.
Thanks
 
The problem is known as CDR (clock and data recovery). Data encoding must have certain properties to allow it, e.g. minimal number of signal edges and synchronization characters to detect frame boundary. Tolerable rate error depends on this parameters.
 
The problem is known as CDR (clock and data recovery). Data encoding must have certain properties to allow it, e.g. minimal number of signal edges and synchronization characters to detect frame boundary. Tolerable rate error depends on this parameters.
The data is a 10Base2 Ethernet packet with a preamble.
I can sample every bit, but there is a possibility that in the long run, due to signal rate error, I might receive 1 extra or less bit.
The max. number of bits in a packet will be 12208 bits (as per IEEE 802.3)
 
@Igloo2
Ethernet packets have a CRC field. If a TCP structure is used, there is always a possibility of retransmission in case of errors. The PHY and MAC takes care of stuff.....you need to trust those designs.
I can sample every bit, but there is a possibility that in the long run, due to signal rate error, I might receive 1 extra or less bit.
That seldom happens, also depends how long is long run.
 
Hi,

This is an asynchronous interface, thus you need some clock alignment.

Did you read about Manchester encoding? --> you need to.

When you look at the timing diagram you see to have an edge at every center of the transmitted bit.
--> use this as the alignment.

***

At the borders of every bit you may or you may not have an edge, thus you can´t use it as alignment.

***
I personally would not take the effort to code the whole ethernet interface. I´d rather use an external ETH chip. There are mana manufacturers with many different chips with different features, speed, interfaces...

Klaus
 

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top