Every successful serial-link project begins with a link budget. The first line in your link budget is the transmitted signal amplitude. The budget then reduces this amplitude to account for the attenuation of the channel, which you usually evaluate at a frequency equal to half the baud frequency, plus an additional reduction representing intersymbol interference. The result shows the minimum signal level present at the receiver's input terminals.
You should do all calculations in a general, automated way so that you can easily recompute the results of any changes. You'll be recomputing a lot.
The next section of the budget accounts for receive-side impairments, such as the limited bandwidth of the receiver and nonoptimal setting of the receiver slicing thresholds. The result of this section shows the minimum signal level at the slicer.
The third section of a good link budget accounts for the expected noise at the slicer. This noise includes crosstalk, echoes, externally induced noise, noise from the power system, and noise intrinsic to the receiver itself.
The last section contemplates jitter. The jitter budget estimates the degree to which your clock-recovery unit will sample data at a nonoptimal point within the received eye and computes the resulting loss of eye amplitude.
The "bottom line" of a link budget expresses the final SNR (signal-to-noise ratio) that you see at the slicer. The budget then compares that ratio with the minimum SNR necessary to attain your desired bit-error rate. The excess SNR, beyond the minimum requirement, is your system margin.
Your budget calculations should show a system margin of at least 3 dB (preferably more). This margin is essential, as I have never known a project in which the system margin goes up over the course of the design. System margin always deteriorates as you learn more about how your system really behaves. When the system margin hits zero, you have to change the link length, or something equally dramatic, to bring the budget back above the water line. Believe me, announcing a reduction in the operating channel length late in a development cycle is extremely painful.
If the initial budget doesn't show a system margin of at least 3 dB, then back off the length of the channel until you obtain that crucial 3 dB of margin.
Now, my most vital advice: Never show anyone your real link budget. Once you disclose a positive system margin, you fall under excruciating pressure to increase the link length until you absorb what others will call the "excess system margin." To avoid this treatment, you must prepare two sets of books. In the budget for public consumption, you should make tiny artificial adjustments to every line in the budget until you drive the system margin to zero. Only you know where these adjustments are hidden. This step places the system margin in your back pocket, where you can draw on it later as needed.
As the project progresses, each time you uncover some new effect that worsens the budget, you can simultaneously "discover" one of your artificial adjustments somewhere else to make up the difference.
At the end of the project, after you have concluded system-validation testing, if any real system margin remains, you can use it to extend the permitted operating distance. Your marketing department will probably throw a party in your honor.
Now, tear out this article and burn it.