Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
19655 Discussions

Calculate skew timing with Cyclone V and ksz9031

qwitza
Beginner
247 Views

hello,

i have troubles with the ethernet bandwith and retransmissions (ack). after some diagnostic i think it is an timing issue.

the wire length  from the fpga -> knz9031 is:

  mil mm m delay delay
RX_DV 1692,83 42,997882 4,30E-02 227,5E-12 228ps
RX_CLK 1649,35 41,89349 4,19E-02 221,7E-12 222ps
RXD0 1684,72 42,791888 4,28E-02 226,4E-12 226ps
RXD1 1648,24 41,865296 4,19E-02 221,5E-12 222ps
RXD2 1681 42,6974 4,27E-02 225,9E-12 226ps
RXD3 1677,12 42,598848 4,26E-02 225,4E-12 225ps
           
TX_EN 1625,87 41,297098 4,13E-02 218,5E-12 219ps
GTX_CLK 1629,75 41,39565 4,14E-02 219,0E-12 219ps
TXD0 1633,94 41,502076 4,15E-02 219,6E-12 220ps
TXD1 1657,65 42,10431 4,21E-02 222,8E-12 223ps
TXD2 1657,33 42,096182 4,21E-02 222,7E-12 223ps
TXD3 1655,12 42,040048 4,20E-02 222,4E-12 222ps

 

all wires are the same length, in every wire is an 22r resistor. the design is bought and not designed by us.

i found the following knowledge base entry:

https://www.intel.com/content/www/us/en/support/programmable/articles/000079123.html

=> TX_CLK to TXD/TX_CTL output data delay is specified as -0.85 to 0.15 ns

Datasheet 9031:
For the receive path (KSZ9031RNX to MAC), the KSZ9031RNX adds 1.2 ns typical delay to the RX_CLK output pin,
with respect to RX_DV and RXD[3:0] output pins.

 

We use kernel v4 with u-boot and devicetree, after a lot of measuring and test,

i got the best result with this skew timing:

&gmac1 {
	status = "okay";
	phy-mode = "rgmii";
  /* 0 bis 900*/
	rxd0-skew-ps = <420>;
	rxd1-skew-ps = <420>;
	rxd2-skew-ps = <420>;
	rxd3-skew-ps = <420>;
	rxdv-skew-ps = <420>;

	txd0-skew-ps = <360>;
	txd1-skew-ps = <360>;
	txd2-skew-ps = <360>;
	txd3-skew-ps = <360>;
	txen-skew-ps = <360>;
/* 0 bis 1860*/
	rxc-skew-ps = <1680>;
	txc-skew-ps = <1740>;

	max-frame-size = <3800>;
};

 

But how could i calculate the skew timing?

Which timing should be the best, with mathematics

 

Thanks

0 Kudos
6 Replies
Nurina
Employee
206 Views

Hello,


Thank you for using Intel Communities.

Please allow some time while I investigate your case.


Thanks,

Nurina


Nurina
Employee
78 Views

Hi,


As far as I know, connecting it to an oscilloscope would be easiest. The calculation could be quite difficult.

Let me get back to you on the calculation method.


Regards,

Nurina



qwitza
Beginner
52 Views

 

hi,

but it have to be possible to calculate the best timing,

or have i use really an oscilloscope for the timing?

our oscilloscope is too slow, for that speed

Nurina
Employee
78 Views

Also, may I know where are you adding these skew timing code? Is this directly applied to the KSZ9031 to adjust the skew?


qwitza
Beginner
52 Views

Hello,

we change the skew time in the device tree.

i think that it is applied, because the transfer speed and the retransmission error change with.

 

thanks a lot

Nurina
Employee
16 Views

Hi,


I'm still waiting for a response from our internal team regarding the calculation. I'll let you know once I receive updates.


Regards,

Nurina


Reply