1 信号完整性问题及其产生机理
信号完整性SI(Signal Integrity)涉及传输线上的信号质量及信号定时的准确性。在数字系统中对于逻辑1和0,总有其对应的参考电压,正如图1(a)中所示:高于ViH的电平是逻辑1,而低于ViL的电平视为逻辑0,图中阴景域则可视为不确定状态。而由图1(b)可知,实际信号总是存在上冲、下冲和振铃,其振荡电平将很有可能落入阴影部分的不确定区。信号的传输延迟会直接导致不准确的定时,如果定时不够恰当,则很有可能得到不准确的逻辑。例如信号传输延迟太大,则很有可能在时钟的上升沿或下降沿处采不到准确的逻辑。一般的数字芯片都要求数据必须在时钟触发沿的tsetup前即要稳定,才能保证逻辑的定时准确(见图1(c))。对于一个实际的高速数字系统,信号由于受到电磁干扰等因素的影响,波形可能会比我们想象中的更加糟糕,因而对于tsetup的要求也更加苛刻,这时,信号完整性是硬件系统设计的一个至关重要的环节,必须加以认真对待。
一个数字系统能否正确工作其关键在于信号定时是否准确,信号定时与信号在传输线上的传输延迟和信号波形的损坏程序有关。信号传输延迟和波形破损的原因复杂多样,但主要是以下三种原因破坏了信号完整性:
(1)反射噪声 其产生的原因是由于信号的传输线、过孔以及其它互连所造成的阻抗不连续。
(2)信号间的串扰 随着印刷板上电路的密度度不断增加,信号线间的几何距离越来越小,这使得信号间的电磁耦合已经不能忽略,这将急剧增加信号间的串扰。
(3)电源、地线噪声 由于芯片封装与电源平台间的寄生电感和电阻的存在,当大量芯片内的电路输出级同时动作时,会产生较大的瞬态电流,导致电源线上和地线上电压波动和变化,这也就是我们通常所说的地跳。
一个数字系统的结构可能非常复杂,它可能包括子板、母板和底板,板间连接是通过一些连接子或者电缆来实现的,而高速印制板上的信号则是通过传输线、过孔以及芯片的输入输出引脚来进行互连的。这些物理连接(包括地平台和电源平面)由于存在着传输特性的差异,从而使信号完整性到了破坏。因此,为保证一个高速数字系统正常工作,必须消除因为物理连接不当而产生的负面影响。
2 保证信号完整性的方法
当信号线的长度大于传输信号的波长时,这条信号线就应该被看作是传输线(长线),并且需要考虑印制板上的线间互连和板层特性对电气性能的影响。在高速系统中,信号线通常被建模为一个R-L-C梯形电路的级连。由于信号线上各处的分布参数存在差异,尤其是在芯片的输入、输出引脚处,这种差异更加明显。由于阻抗的不匹配,会导致信号在信号线上产生很大的反射。消除反射的习惯做法是尽量减小高速传输线的长度,以减小信号线的传输线效应。实际上我们还可以在输出、输入端处端接匹配电阻来达到阻抗匹配的目的,并以此来消除信号的反射。
当几条高速信号并行走线且这些信号线之间的距离很近时,就不能忽略串扰对系统的影响。两条并行的信号线之间的串扰可以用图2来建模,图中“非门”输出线上的信号会在“与非门”的输出线上产生干扰。反过来,“与非门”输出线上的信号也会在非门输出线上产生干扰。从图中可以看到:如果两条并行线之间的距离越小,并行线并行的长度越长,则并行线间的感性耦合、容性耦合就越大,串扰也就越大。从减小感性耦合和容性耦合的角度来看,消除串扰的最有效的方法是增大并行线间的间距,同时尽量减小并行线的并行长度。当然也可以改变印制板上的绝缘介质特性参数来减小这种耦合,以达到减小串扰的目的,但这可能会增加制板的费用。
有时候在PCB板尺寸要求很苛刻的情况下,未必能够保证并行线间的足够空间,因此要适当改变布线策略,尽可能地保护比较重要的信号线,并依靠端接来大幅度地消除串扰。基于不同的布线拓扑结构,端接的策略也可能不同,主要有以下三种方式:单赠载网络一般采用串行端接;菊花链结构一般采用AC并行端接;星形布线一般也采用AC并行端接(如图3所示)。
电源噪声一直就是让设计人员头痛的问题,尤其在高速设计中,消除电源噪声就不再像在每一个芯片的供电引脚上并联电容进行电源滤波那么简单了。采用π型等效电路以及磁珠等,会给清除电磁干扰带来一定好处。但是在高速系统中,由于高频信号在传导的过程中,其信号回流通过电源系统(尤其是多层板中的平面层)所造成的高频串扰,才是高速系统中电源噪声的最大来源。
有效地旁路地和电源上的反弹噪声,即在合适的地方增加去耦电容,例如一个高速信号的过孔也可能会对电源产生很大的噪声,因此在高速过孔附近加上去耦电容是非常必要的。同时还要注意消除系统中的不同电源间的互相干扰,一般的做法是在一点处连接,中间采用EMI滤波器。
3 DSP系统中信号完整性的实例
在正交频分复用OFDM调制解调系统中,时钟率高达167MHz,时钟沿时间为0.6ns,系统构成中有TMS320C6701 DSP以及SBSRAM、SDRAM、FIFO、FLASH和FPGA(如图4所示)。其中FIFO采用异步FIFO,主要用作与前端接口的数据缓存;DSP的DMA高速地将数据搬移到SBSRAM或者SDRAM中;DSP处理完数据由多通道缓冲串口(MCBSP)将BIT流输出到FPGA中进行解码处理。由于系统工作在很高的时钟频率上,所以系统的信号完整性问题就显得十分重要。
首先对系统进行分割,系统中不仅有高速部分,也有异步的低速部分,分割的目的是要重点保护高速部分。DSP与SBSRAM、SDRAM接口是同步高速接口,对它的处理是保证信号完整性的关键;与FIFO、FLASH、FPGA接口采用异步接口,速率可以通过寄存器进行设置,信号完整性要求容易达到。高速设计部分要求信号线尽量短,尽量靠近DSP。如果将DSP的信号线直接接到所有的外设上,一方面DSP的驱动能力可能达不到要求,另一方面由于信号布线长度的急剧增加,必然会带来严重的信号完整性问题。所以,在该系统中体体的处理办法是将高速器件与异步低速器件进行隔离(如图4所示),在这里采用TI的SN74LVTH162245实现数据隔离,利用准确的选通逻辑将不同类型数据分开;用SN74ALB16244构成地址隔离,同时还增强了DSP的地址驱动能力。这种解决方案可以缩短高速信号线的传输距离,以达到信号完整性的要求。
其次是对系统中高速时钟信号与关键信号进行完整性设计。与SBSRAM接口的时钟高达16MHz,与SDRAM接口的时钟高达80MHz,时钟信号传输处迟大小和信号质量的优劣将直接关系到系统的定时是滞准确。在设计布局布线时,总是优考虑这些重要的时钟线,即通过规划时钟线,使得时钟线的连线远离其它的信号线;连线尽量短,并且加上地线保护。本系统中由于要求大量存储器(使用了4片SDRAM),对于要求较高的同步时钟来说,如果采用星型布线,就很难保证时钟的扇出能力,而且还将导致PCB布线尺寸的增大,从而直接影响信号完整性。因此很有必要采用时钟缓冲器来产生4个同相的、延迟极小且一致的时钟,分别接到4片SDRAM上,这样不但增加了时钟信号的驱动能力,同时秀好地保证了信号完整性(如图5的所示)。对于其它的关键信号诸如FIFO的读写信号等,也应尽心设计。
第三点是解决信号的反射、串扰噪声问题。这一点在一高速系统中显得尤其重要,解决的办法是通过采用先进的EDA工具,选择正确的布线策略和端接方式,从而得到的理想的信号波形。在设计本系统时,基于IBIS模型,使用Hyperlynx进行设计前仿真。根据仿真结果,选择出最优的布线策略。图6为端接和未加端接的信号波形及串扰波形图,从图中可以看到端接对消除反射、振荡和串扰到了明显的作用。
最后是解决系统中的电源和EMI问题。首先一定要尽量减小系统中的各种电源之间的互相影响,如数字电源和模拟电源通常只在点处连接,且中间加磁珠滤波;还要选择合适的位置放置去耦电容,做到有效地旁路电源和地线上的反弹噪声;最后是在印制板的顶(TOP)层和底(BOTTOM)层大面积铺铜,用较多的过孔将这些地平面连接在一起,这些措施对解决EMI和电源噪声都能起到积极的作用。
该系统采用自顶向下的设计方案,首先进行系统级设计,将兼容的器件放置在相对集中的区域;然后进行重要信号的设计,保证在重要信号的设计规则下顺利布线;接下来用EDA软件辅助消除反射、串扰等噪声;最后进行电源和EMI软件。该系统现已调试通过,实践证明以上保证信号完整性的措施是必要而且正确的。
随着新工艺、新器件的迅猛发展,高速器件的应用变得越来越普遍,高速电路设计也就成了普遍需要的技术。信号完整性的分析在高速设计的作用举足轻重,只有解决好高速设计中的信号完整性,高速系统才能准确、稳定地工作。本文提出了若干保证信号完整性的方法和措施,并通过具体高速数字系统的设计和实现,验证了这些方法的可行性,仅供硬件工程师借鉴和参考。