This week something peculiar happened at my house. It started innocently enough with the purchase of a clean, dressed, frozen turkey at our local butcher shop. The turkey came pre-packaged in an attractively decorated plastic bag, which we placed in the refrigerator out in the garage of the house we have rented here in Oxford.
Two days later I retrieved the turkey, roasted it brilliantly for four hours at low heat on our Weber, and enjoyed the taste of the beautifully smoked, barbequed bird.
What I didn't notice at the time was that the turkey was noticeably lighter upon removal from the refrigerator than it had been going in. The difference in weight was accounted for by approximately one cup of reddish fluid that had leaked out of the turkey when it thawed, escaped the plastic bag, run down to the bottom of the refrigerator, and from there flowed out the drain hole in the bottom of the icebox.
The drain is normally designed to catch the few drops of condensation periodically expelled from the unit during its frost-free heating cycle. The drain discharges into a plastic pan mounted on top of the compressor motor at the bottom of the unit. The heat of the motor is supposed to quickly evaporate the water.
In my case, with a pan full of turkey blood sitting on top of the motor, the heat merely incubated the bacteria in the fluid creating an unbelievable stench in the garage. You would have thought we had a dead moose lying in the corner. Our neighbors, stoically British, refused to complain, but you could see their upper lips quivering.
I learned from this experience that a seemingly innocuous source, coupled through unusual channels into a sensitive area, sometimes causes a big stink. This reminds me of some crosstalk problems I've encountered, which is the subject of the technical message below.
M. Manivassakam writes:
I have a cross talk problem in my board. My board is a 12 layer board with 4 BGA Devices (1000 Pins) . Four Layers are used for signal routing. I've followed orthogonal routing in the layer stackup. In two routing layers in some sections of the BGA I am not able to maintain orthogonal routing. This has resulted in traces running in parallel in these two layers.
I have performed a crosstalk analysis of this board. My tool says that the crosstalk is on the order of 500mv. The BGA Devices have I/Os that operate at 3.3v, 1.8v and 1.5v.
Is this level of crosstalk acceptable?
What is the... limit of crosstalk that can be ignored?
Thanks for your interest in High-Speed Digital Design.
The limit of acceptable crosstalk depends on your application.
In a synchronous system the crosstalk must be specified during the setup and hold window at the receiver. During this interval the crosstalk must never drive any valid signal across the receive threshold to the opposite logic state.
A mathematically sufficient condition for ensuring that crosstalk never causes errors is to limit the crosstalk to an amplitude X equal to the smallest difference between (a) the intentional signal observed at the receiver, and (b) the receiver threshold, measured over the setup and hold window. As long as |X| remains less than |(a)-(b)|, then X+(a) can never cross (b).
The datasheet numbers V(IH) and V(IL), defined at the entrance to the receiver package, are usually accepted as safe values for (b) when switching in the high or low direction, respectively.
The value of the intentional signal (a) defined at the entrance to the receiver package is best determined by simulation. The simulation must be run several times assuming both wimpy and strong drivers, and also assuming all worst-case corner conditions for the line impedance, termination resistances, and clock skew. When switching high, compute the smallest observed value of Xhigh over the complete setup and hold window, where
When switching low, compute the value of:
Negative crosstalk happening while switching high must be no larger in magnitude than Xhigh (i.e., no more negative than -Xhigh), and positive crosstalk happening while switching low must be no larger than +Xlow.
Generally, to simplify the noise budgeting process, one just picks one value of X defined as the smaller of Xhigh or Xlow, and then works to ensure that the magnitude of the crosstalk at any time (switching high or low) never exceeds X. In logic families with asymmetrical switching thresholds this simplification sometimes penalizes your noise budget with an overly-stringent crosstalk requirement. (For example, while switching high a positive pulse of crosstalk wouldn't hurt, but would still be prohibited under this simplification).
Keep in mind that the above-listed requirements apply for synchronous logic only during the setup and hold window at the receiver. At other times arbitrarily large crosstalk pulses are permitted provided that they don't damage your logic or cause latchup.
When the aggressor and victim nets are asynchronous with respect to each other there is no safe region outside the setup-and-hold window where large pulses of crosstalk can be permitted. In this case you must limit the peak crosstalk at all times to a value less than X. This requirement applies to all asynchronous signals like clocks, read strobes, and write strobes.
A synchronous bus wired so that all the lines proceed in the same direction benefits from an extraordinary immunity to crosstalk. In this case any crosstalk that occurs between the lines of the bus tends to happen only when the bus is being switched. Provided that the receiver waits sufficiently long for the crosstalk to settle before sampling the bus, the crosstalk has no effect on the accuracy of the received signal. (Of course, in some cases one cannot afford to wait so long.)
DC specifications for the minimum size of the received signal used to be given by the static datasheet parameters V(OH) and V(OL), but these parameters by themselves are no longer sufficient to determine the received signal level, especially in CMOS architectures where the receivers draw very little DC current and where the received signal may be clocked long before the line stabilizes to a final static condition.
Keep in mind that the total noise budget on each victim trace must accommodate the trace-to-trace crosstalk from each of several nearest neighbors, all of which must sum to a magnitude less than X.
I'm not going to say Mani's circuit stinks, but my guess is that he has way too much crosstalk.
Dr. Howard Johnson