sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
rohitksingh_work has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
sb0 has quit [Quit: Leaving]
fengling has joined #m-labs
FabM has joined #m-labs
rohitksingh_work has quit [Ping timeout: 276 seconds]
fengling has quit [Ping timeout: 240 seconds]
rjo has quit [Ping timeout: 255 seconds]
fengling has joined #m-labs
sandeepkr_ has quit [Read error: Connection reset by peer]
sandeepkr has joined #m-labs
sandeepkr has quit [Max SendQ exceeded]
rohitksingh_work has joined #m-labs
rohitksingh has joined #m-labs
stigo has quit [Ping timeout: 258 seconds]
stigo has joined #m-labs
sb0 has joined #m-labs
rohitksingh_work has quit [Read error: Connection reset by peer]
rohitksingh has quit [Ping timeout: 240 seconds]
rjo has joined #m-labs
rohitksingh has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
<larsc> hm, even for the same process corner a IBUFDS_GTE2 has a min-max-delay difference of 1ns
fengling has joined #m-labs
<larsc> that's pretty bad
<sb0> over PV?
<larsc> no, same PV
<sb0> er
<sb0> so what causes that variation?
<larsc> I have no idea
<sb0> temperature?
<larsc> it's what the timing tools report
<sb0> what is the "process corner"?
<sb0> yes, so when you say "for the same process corner", then it's VT?
<sb0> that cause the 1ns variation
<larsc> no VT is part of the process corner
kyak has quit [Ping timeout: 240 seconds]
<sb0> hmm... White Rabbit would be impacted by that delay
<larsc> the way it works is that the tools have 'process' corners which include temperature, voltage, production process
<larsc> the assumtion is that a single device in a specific moment of time has just one set of those values
<larsc> of course there are still small uncertainties, but those are a lot smaller than the differences between the process corners
<larsc> so the differences between process corners need to be met for the bitstream to work on all devices in all conditions
<larsc> but when checking a single process corner the tools assume different paths lengths for the source clock + data path and the dest clock path
<sb0> for what FPGA is that?
<larsc> ZC706
<larsc> so kintex7 speedgrade 2
<sb0> this delay variation is pretty annoying. i guess it's a pessimistic estimate too.
<sb0> on a white rabbit receiver, they take the GTX recovered clock, de-jitter it, and use it to transmit with the GTX
<larsc> e.g. for just a IBUFDS the varation is a few ps for the same corner
<sb0> the transmitter measures the RTT of this (including the fiber)
<sb0> if the IBUFDS adds some unknown large delay in the middle, there's a problem
<sb0> (the de-jittering is done with a complex off-chip contraption)
<larsc> I wonder if the GTX is one the same substrate than the other farbic or whether there is some internal bonding
<larsc> the later could explain the high uncertainty
<sb0> wouldn't that just cause a process-induced variation?
<sb0> I suppose they don't care for delay variations there because the CDR would easily compensate for them
<sb0> but it sucks for somewhat advanced timing applications with the GTX
<larsc> the GTX also has its own voltage source hasn't it?
<sb0> yes
<larsc> power
<larsc> that could also cause it I guess
<larsc> going from one power domain to another
<larsc> but it's all just guesswork anyway
<sb0> has anyone decapped a xilinx transceiver-capable fpga?
<larsc> just for reference
<larsc> if you clock internal logic it does not matter since the delay will be the same starting at the BUFG
<larsc> but if you try to sample an external signal it does
<sb0> hm, yes
<sb0> that's pretty annoying
<sb0> it would be interesting to get a more precise characterization of this. it impacts white rabbit too, but last time I asked another similar picky question, the answer was pretty much "we don't know/we live with it"
<larsc> one thing that can be done to slightly improve things, at least for sysref, sampling is to use an BUFH instead of a BUFG, and if the sysref input is not in the same clocking region use a MMCM
<larsc> while it does not remove the uncertainty from the IBUFDS_GTE2 it removes the uncertainty from the BUFG and the clock net to and from the BUFG
fengling has quit [Ping timeout: 240 seconds]
kyak has joined #m-labs
kyak has joined #m-labs
sb0 has quit [Quit: Leaving]
digshadow has quit [Quit: Leaving.]
sb0 has joined #m-labs
<sb0> if the IBUFDS_GTE2 does give you 1ns, it's already over
<larsc> for you maybe
<larsc> I mean for your usecase
<larsc> for jesd204 sysref sampling it is ok
<larsc> but if you factor in the slow and fast corners plus the net delays you end up with almost 3ns variance
<larsc> I guess the question really is what causes this large delay uncertainty and can it be controlled
<larsc> but good luck finding that info
<sb0> larsc, where do you see 1ns in that timing report?
<sb0> why wouk
<sb0> sorry
<sb0> why would y
<larsc> between the two highlighted numbers
<sb0> why would you use the GTE clock pins if you're just sampling sysref at ~300MHz?
<sb0> what is "incr"?
<larsc> increment, I guess
<larsc> yes
<larsc> that is the increment of that element
<larsc> path is total length up to that point
<larsc> the GTE clock pins are used for both as the PLL reference and the sysref sampling clock
<larsc> to be honest I don't want to use it for sysref sampling
<larsc> I want to use a normal IBUFDS
<larsc> but I have systems which dont have a separate clock input on a IBUFDS
<sb0> yes. so why exactly does it give two different values there for the IBUFDS_GTE2 delay?
<larsc> one is for the destination clock, the other for the source clock
<sb0> ok but why?
<larsc> source uses maximum delay, destination uses minumum
<sb0> ah
<larsc> for internal signals this gets removed again
<sb0> this is quite some guesswork...
<larsc> this is accounted for in the pessimisem column
<larsc> what is guesswork?
<sb0> how to get the xilinx tools to tell you the min/max delay of some element
<sb0> what is the ISE command again to dump the timing model parameters?
<sb0> there was some partgen or xdl command
<larsc> that gives you min/max delay for all components?
<sb0> it gives you delays for many components, yes
<larsc> the more I talk to people about jesd204b the more I feel nobody actually fully understands it
<sb0> sigh, cant find it
<sb0> ah, speedprint!
<sb0> IBUFDS_GTE2
<sb0> Tibibo (441/732) (1285/2135)
<sb0> Tibiod (441/732) (1285/2135)
<sb0> Tibio (441/732) (1285/2135)
<sb0> Tibibod (441/732) (1285/2135)
<sb0> Fast Corner Slow Corner
<sb0> Min/Max, Min/Max(when applicable) Min/Max, Min/Max(when applicable)
<larsc> yeah, those are the numbers I'm seeing as well
<larsc> or at least similar
<larsc> which device is this?
<larsc> ah, different speedgrade
<larsc> if I run speedprint with the correct speedgrade I get the same numbers as in the timing report
<larsc> Tibibo (441/732) (1418/2355)
<larsc> would it help if we assume that this is the difference between the fastest and the slowest IBUFDS_GTE2 that you can find on device at a specific process corner?
<larsc> like a single IBUFDS_GTE2 would no vary that much, but if you tried to compare two of them there could be that much delay between them
<larsc> doesn't help of course if you try to sample external signals
<larsc> the delay could be anywere between 441 and 2355
bentley` has quit [Ping timeout: 250 seconds]
rohitksingh has quit [Quit: Leaving.]
cr1901_modern has left #m-labs [#m-labs]
cr1901_modern has joined #m-labs
mumptai has quit [Remote host closed the connection]