
1.7 FPGA系统设计技术
作为一个FPGA应用工程师,不仅要懂得逻辑设计,还要学会把实现逻辑功能的FPGA器件集成到应用系统中。这就涉及系统设计,本节主要介绍FPGA系统设计技术。
1.7.1 信号完整性设计
1.信号完整性
信号完整性(Signal Integrity)反映了信号的质量。对于数字电路来说,信号的高电平状态、低电平状态及状态跳变的过程越明显越好,这样才能保证信号被正确采样。理想的情况是,接收端接收到的信号跟发送端发送的信号一样,或者只有细微的变化。实际应用中,信号在各种环境中传输,不可避免地受到各种干扰,造成信号畸变,信号畸变到一定程度,接收端就不能正确采样,这是系统设计中要想办法避免的。
1)传输线效应
信号传输的过程,就是传输线与参考平面之间建立和释放电场的过程,如图1-74所示。
如果传输线与参考平面之间的电场建立或者释放参数不变化,信号从源端到目的端的传输就比较稳定。如果这个电场在传输线的不同位置建立或者释放不一致,就会出现信号反射,即信号不能完全传输到目的端,有一部分会被反射回源端,与源端信号重叠,导致出现错误信号。这就是传输线效应。

图1-74 信号传输
传输线效应一般是走线的交流阻抗变化引起的。这种阻抗变化会出现在下面6种情况下。
(1)线宽改变。
(2)走线与参考平面之间的距离改变。
(3)信号过孔换层。
(4)使用连接器。
(5)走线分叉或者转向。
(6)走线末端。
避免这种效应的方法是阻抗匹配,使信号传输过程中的阻抗保持不变。
2)信号串扰
信号串扰(Cross Talk)是指相邻信号线之间的相互干扰,如图1-75所示。

图1-75 信号串扰
信号串扰会带来严重的信号质量问题。减少信号串扰的方法是尽量避免信号线过近或者平行,在信号线之间布一根地线也可以有效减少信号串扰。
3)电源地线干扰
电源地线理论上是固定不变的,但是外界的电磁辐射或者系统本身的开关效应会造成电源地线干扰,如图1-76所示。

图1-76 电源地线干扰
造成这种干扰的原因是电源的交流阻抗发生变化,应对方法是在芯片的电源引脚上接一个去耦电容。
4)电磁干扰
电磁干扰(EMI)包括外界引入的电磁信号和电路本身的高频信号带来的电磁干扰。电磁干扰无处不在,只能通过屏蔽的方式来减小这种干扰。
2.单端I/O电气标准及阻抗匹配
常用的单端I/O电气标准有LVTTL和LVCMOS。
LVCMOS输出结构如图1-77所示。

图1-77 LVCMOS输出结构
图1-77中,NMOS管和PMOS管交替导通,从而输出高、低电平。LVCMOS的特点是高、低电平分别对应电源VCC和地GND的值,噪声容限大。
LVTTL输出结构如图1-78所示。
图1-78中,两个NMOS管交替导通,从而输出高、低电平。LVTTL的特点是输出的高、低电平接近电源VCC和地GND的值,但是翻转速度快。

图1-78 LVTTL输出结构
在这两种单端输出结构中,芯片自身的静态功耗低,但是在状态翻转时会产生大电流,因此它们只适合用作低频的信号接口。
单端接口的阻抗匹配方式有以下三种。
1)并行直流匹配(图1-79)

图1-79 并行直流匹配
在图1-79中,信号从源端发出,在末端被地或者电源端完全吸收,接收引脚在信号进入地或者电源端之前正确采样信号。这种结构简单有效,但是对地或者电源端的电阻太小,静态功耗太大,容易烧坏芯片引脚。
2)并行交流匹配(图1-80)

图1-80 并行交流匹配
与并行直流匹配相比,并行交流匹配增加了一个电容,阻容等效交流阻抗和传输线的阻抗一样,这样可以隔离直流和交流信号,不过增加电容会影响信号跳变的速度和幅度。这种方式只适合周期变化的时钟信号。
3)串行匹配(图1-81)

图1-81 串行匹配
在源端串接一个电阻,使得源端输出电阻加串接电阻与传输线阻抗相等。因为接收端的输入电阻很大,所以信号在接收端被完全反射,在输出端被完全吸收,不影响信号质量。这种方式应用最广、最有效。
3.差分I/O电气标准及阻抗匹配
差分I/O即用两根信号线传输信号,两根信号线上的电平相反,电流方向相反,与参考平面建立的电场方向也相反,所以两者建立的电场可以相互抵消,对外的电磁干扰也小。差分I/O结构如图1-82所示。
常见的差分I/O电气标准有LVDS、LVPECL、CML等。它们的驱动结构如图1-83~图1-85所示。

图1-82 差分l/O结构

图1-83 LVDS驱动结构

图1-84 LVPECL驱动结构

图1-85 CML驱动结构
差分接口输出的是电流信号,而单端接口输出的是电压信号,恒定的电流信号在传输线上传输是不存在衰减和反射的,而且对于外界引入的串扰和电磁干扰具有共模抑制效应。如图1-86所示,共模干扰被滤除。

图1-86 滤除共模干扰
差分接口通常在接收端并联一个100Ω左右的采样电阻来实现信号的变换与采样。
4.片上可编程终端电阻
为了方便设计,减少电路板上的分离电阻,FPGA器件一般有一个片上可编程终端电阻,如图1-87所示。

图1-87 片上可编程终端电阻
1.7.2 电源完整性设计
稳定的电源对数字系统的正常高效工作非常重要,因此有必要进行电源完整性设计。
1.电源完整性
电源完整性反映了电源的质量,电源完整性设计的目标是保证电源电压稳定,参考平面无波动。数字系统中有很多噪声会影响电源的状态,主要是一些高频噪声,这些噪声达到一定程度就会影响信号的正确采样。要做好电源完整性设计,就要先分析噪声来源。
2.同步翻转噪声
多个I/O同时进行状态翻转,从而产生大电流变化,电源系统来不及提供足够的电流支持,导致电源平面产生瞬间的电场变化,这就是同步翻转噪声(SSN)。
同步翻转噪声包括芯片内部的SSN和电路板上的SSN。
芯片内部的SSN如图1-88所示。
电路板上的SSN就是各种芯片引脚同步翻转产生的噪声。
减小SSN的方法是尽量避免同步翻转的能量过大,具体措施如下。
(1)在需要高速翻转的引脚附近布置足够的电源平面。
(2)把同步翻转的I/O分配到不同地方。
(3)减小引脚翻转的电流。
(4)在同步翻转引脚附近的电源平面加去耦电容。
3.非理想回路
这里的回路指的是信号回路,即信号从源端发出去再回到源端的通路。信号回到源端时是通过电流回路传输的,如图1-89所示。

图1-88 芯片内部的SSN

图1-89 信号传输
在低速信号电路中,信号沿着电阻最小的路径回流。在高速信号电路中,信号沿着电抗最小的路径回流,高速信号电路中的电抗大多是感抗,所以回流的路径就是感抗最小的路径。
在高速信号电路中,找到最小感抗路径就能很好地传输信号,该路径一般在信号线下面的参考平面上,如图1-90所示。

图1-90 最小感抗路径
因此,要尽量保证信号线下面的参考平面连续,以免信号绕行,造成信号衰减。
如果不连续的参考平面是不可避免的,就要通过过孔来连接相同的参考平面,或者通过去耦电容来连接不同的参考平面。
总之,电源完整性设计要保证电源在任何时候都能提供充足的能量来驱动信号。
1.7.3 高速I/O设计
高速I/O就是前面介绍的高速差分接口。现在很多厂家把高速差分接口和串并转换模块、时钟和数据调制模块集成在一起,做成一个高速收发模块,即SERDES。
SERDES原理图如图1-91所示。

图1-91 SERDES原理图
它实际传输的信号波形如图1-92所示。

图1-92 实际传输的信号波形
这个波形中间的六边形越大,边界越清晰,表示传输的信号质量越高。
英特尔FPGA SERDES结构图如图1-93所示。

图1-93 英特尔FPGA SERDES结构图
(1)输入缓冲电路(图1-94)。

图1-94 输入缓冲电路
该电路主要由可编程终端匹配电阻、接收端信号均衡器、信号检查器组成,用于完成信号的恢复与检测。
(2)接收端环回电路。
该电路的功能主要是把接收的信号环回发射出去,为远端调试提供方便。
(3)时钟检测恢复模块。
该模块的功能是通过本地参考时钟来恢复随路传送时钟,并将其作为信号采样时钟。
(4)接收端PLL。
接收端PLL主要用来实现参考时钟倍频并产生恢复时钟。
(5)串并转换单元。
该单元把串行接收的数据转换为并行数据和时钟一起发送给后端逻辑处理模块。
(6)码型检测器、字节对齐模块和数据对齐模块(图1-95)。
字节对齐模块根据各种协议来检测数据码流中的字节对齐标志。
(7)接收端到逻辑模块的接口(图1-96)。
这主要是数据FIFO和控制I/O接口。
(8)发送端电路。
发送端与接收端类似,可认为是接收端的反向数据流。

图1-95 码型检测器、字节对齐模块和数据对齐模块

图1-96 接收端到逻辑模块的接口
1.7.4 高速I/O的PCB设计
1.信号线布局
信号线通常有两种,一种是微带线,布置在参考平面一侧,如图1-97所示。

图1-97 微带线
另一种是带状线,布置在参考平面中间,如图1-98所示。

图1-98 带状线
差分信号对的布线,可以采用微带边缘耦合布线,如图1-99所示;也可以采用带状边缘耦合布线,如图1-100所示;还可以采用宽边耦合带状布线,如图1-101所示。

图1-99 微带边缘耦合布线

图1-100 带状边缘耦合布线

图1-101 宽边耦合带状布线
一般建议采用边缘耦合布线方式,以避免过耦合和欠耦合。
2.高频旁路电容
为了滤除高频干扰,需要在信号线与地平面之间加一个容量很小的电容,把高频干扰旁路掉。
3.耦合电容布线
耦合电容布线(图1-102)的主要特点如下。
(1)使用大尺寸过孔连接电容焊盘,减少容抗。
(2)使用低串联阻抗电容。
(3)电容GND引脚连到地平面。

图1-102 耦合电容布线
4.高速时钟布线
(1)避免使用锯齿绕线,尽量使用直线。
(2)尽量在单层布线。
(3)尽量不使用过孔。
(4)尽量在顶层用微带布线。
(5)正确匹配阻抗。
5.电源布线
(1)在电源入口处加电容高低频滤波器。
(2)将VCC和GND平面平行布置。