简短的答案是,我认为差分信号的起点或终点附近的间距变化并不那么糟糕。我也认为6层并不多。但是在高速下,绝对要使所有噪声源远离时钟。
对于更长的答案,让我们看一下给出的原因。您引用的Toradex来源提到了阻抗不连续性和EMC兼容性。
阻抗不连续性来自以下事实:如果在走线之间存在通孔,则走线首先彼此之间具有电容性耦合,然后移除耦合并用通孔代替,然后将它们再次耦合在一起。任何阻抗变化都会引起反射(请参阅阻抗不匹配)。反射率是:
Γ=Z1−Z2Z1+Z2
其中Z是阻抗变化。注意,对于不同的频率,实际阻抗是不同的。因此,我们得到的信号会反射回驱动器,可能会因过压或过压而损坏驱动器(不太可能,尤其是对于FPGA的LVDS而言,这在我使用时相对坚固,但可靠性很重要),然后它可以从驱动器处的阻抗变化中再次反射回来,并撞击接收器。最坏的情况是,它破坏性地干扰了边缘,并使它不单调。
在这种最坏的情况下需要做什么?我相信经验法则是,如果反射距离超过基本波长的1/6,您会遇到麻烦。因此,如果您的边沿速率(不是开关频率,而是边沿的上升时间)为1 ns,则我们知道铜中的电传输速度为每ns 6 ns / ns,因此,如果反射距离超过1英寸,则说明您处于冰薄状态,并应查看阻抗变化了多少。同样,如果过孔位于信号的接收端附近,我会认为阻抗失配将因到达接收器所固有的阻抗失配而丢失。
Toradex指出的第二个问题是EMC合规性,这有点模糊。他们可能担心耦合或走线长度不匹配。我认为耦合不一定是问题。这些是差分线,因此净耦合应该抵消,除非您真正推动电压裕量。如果您的走线中有障碍物,走线长度不匹配可能更常见,但这不是必需的结果。
为了更好地进行耦合,在理想情况下,如果将同一信号耦合到差分对中,则希望同时耦合到两者中。这样做会使它们都碰撞数mV,并且差分信号(Vp-Vn)将不受影响。只要每个信号的绝对电压都在规格范围内,就可以了。在极高的速度下,您可能会遇到一个问题,即信号在耦合到另一条线之前会先耦合到一条线。这将是一个问题,但即使在这里,我也认为将噪声耦合到两条线路中比将其耦合到一条线上要好,因为噪声会因微分特性而减少,或者您有两个问题而不是一个。
如果您正在处理边缘速率低于1 ns的极高速度的东西,那么您应该向我解释答案,您可能应该使用超过4层的电路板。如果您只是想驱动80 MSPS ADC,则此建议应该是可靠的。请记住,边缘敏感线(如时钟)是迄今为止正确处理的最重要信号。
最后一条提示:如果操作变得困难,请查看可能位于BGA焊盘中的微孔。