论文网
首页 理科毕业电气毕业正文

FPGA/CPLD的管脚设置对信号完整性的影响分析研究

  • 投稿王启
  • 更新时间2015-09-28
  • 阅读量536次
  • 评分4
  • 34
  • 0

郭利文1,邓月明2,莫晓山3

(1.富士康科技集团鸿富锦精密工业(深圳)有限公司,广东深圳518109;2.湖南师范大学物理与信息科学学院,湖南长沙410081;3.湖南省计量检测研究院,湖南长沙410014)摘要:随着FPGA以及CPLD在现代电子线路中的出现和使用越来越多,同时电子器件的集成度越来越高、速度越来越快,对电路的稳定性有着越来越严苛的要求,在硬件上表现为对系统电源完整性和信号完整性的严苛要求。从信号完整性的角度出发,通过分析硬件工程师和FPGA/CPLD软件设计工程师容易疏忽的问题,以Altera Cyclone IV系列FPGA进行重点研究,从硬件的角度确保FPGA/CPLD系统的稳定性和鲁棒性。

教育期刊网 http://www.jyqkw.com
关键词 :FPGA;CPLD;时序;信号完整性

中图分类号:TN911.6?34 文献标识码:A 文章编号:1004?373X(2015)17?0061?04

0 引言

在以FPGA/CPLD 为中心的系统设计中,往往需要系统工程师联合硬件工程师以及FPGA/CPLD开发工程师一起,先制定相关的系统规格,FPGA/CPLD 工程师根据系统规格确定并设置相关的管脚属性,并形成文档交付硬件工程师,硬件工程师根据相应管脚属性实现FPGA/CPLD外围线路的设计实现以及布局布线。由于PCB,FPGA/CPLD或者外围ASIC等出线限制,此管脚设置可能需要在硬件工程师和FPGA/CPLD工程师之间进行往返修改,最终实现最佳平衡。

FPGA/CPLD 开发工程师在进行管脚属性设置中,通常需要考虑的是管脚类型、功能、封装、电源属性、时钟属性、ESD、内部上拉、下拉、输出斜率、电流驱动等。稍有差池,就会导致严重的信号完整性问题。

1 信号完整性

从广义上来说,信号完整性指的是在高速产品中由于互连线引起的所有问题[1]。它主要研究的是互连线与数字信号的电压、电流波形相互作用时,其电气特性参数如何影响产品的性能。因此,对于电子工程师来说,信号完整性问题几乎无处不在。

通常,信号完整性问题[1?3]按照影响和后果来分主要有电磁干扰(EMI)、噪声、时序三个方面。其中,按照噪声源划分,信号完整性问题又可以细分为如下几类:(1)单一网络的信号完整性问题。这类噪声主要是因为在信号路径或者返回路径上由于阻抗不连续而引起的反射和失真。它只与信号所经过的网络有关,当信号从驱动源输出时,构成信号的电流和电压将互连线看成一个阻抗网络,当信号沿网络进行传播时,就会时刻感受到互连线所引起的瞬态阻抗变化。如果阻抗保持不变,则信号就不会失真;一旦阻抗发生变化,如PCB走线线宽发生变化,信号换层,返回路径不连续、接插件的加入、信号分支、T型线或者增加过孔以及在网络末端没有阻抗匹配等,信号就会在阻抗变化处发生反射,从而导致信号的失真。严重的失真可能会导致错误的触发。这类信号完整性问题主要表现在信号的非单调、过冲、振铃等,一般可以通过设计可控阻抗并进行阻抗匹配解决。

(2)多个网络间互相干扰所导致的信号完整性问题。这类噪声主要是因为在理想回路和非理想回路之间耦合的互电容和互电感所导致。当网络传播信号时,即使第一个网络(动态网路)上的信号质量非常好,一些信号也会透过耦合的互容和互感耦合到第二个静态网络上。因此会有感性耦合噪声和容性耦合噪声之分。在互连线为均匀传输线的情况下,容性耦合和感性耦合大小相当。在非均匀传输线中,感性耦合噪声和容性耦合的大小会不一样。通常这类噪声主要表现为串扰。只有了解这些噪声的本质,才能通过使用介电常数较小的材料,或缩短互连线的长度,或使用芯片最小封装或者高密度互连线,或减小信号的上升速度等方式减低此类信号完整性的问题。

(3)电源和地分配间的轨道坍塌所导致的信号完整性问题。这类噪声主要是由电源和地平面的阻抗压降所导致,特别是在目前电子线路发展的趋势下,高性能处理器和ASIC由于芯片上集成的门的开关转换速度越来越快,而每个周期都需要消耗一定的能量,所以当芯片切换更快时,尽管每个周期消耗相同的能量,但由于更快的切换速度,所以平均功率就会更高,因而表现为低电压供电,高功率消耗。表现在硬件系统上就会出现在更短的时间内需要消耗更大的开关电流。一旦电压越来越低,而电流越来越大时,任何与轨道坍塌有关的压降对于硬件系统来说都是致命的。目前此类课题也是电源设计的重点之一,因此这类完整性问题也被归类为电源完整性问题。

(4)来自整个系统的电磁辐射和干扰。通常在电子线路中,会有两类常见的电磁辐射和干扰。一是由于部分差分信号转换成共模信号,最终累积并输出;二是电路板上的地弹在外部单端屏蔽线上产生的共模电流,附加的噪声便可以从屏蔽罩中泄露。

2 FPGA/CPLD 发展趋势与信号完整性的关联随着科技的发展,电子系统的更新速度日新月异。FPGA/CPLD 也不例外,衡量芯片性能的一个重要指标是芯片的时钟频率。相对于过去来说,FPGA/CPLD的时钟频率也是两年左右提高一倍。时钟频率在提高,同时生产工艺的水平也在不断提高,从过去180 nm 到后来130 nm,到目前的20 nm,甚至即将问世的14 nm [2],这意味着晶体管的沟道长度越来越短,开关时间也就越来越短,同时由于特征尺寸的缩小,上升时间必然减小,这样信号完整性的问题将会变得日益突出。对于芯片生产商来说,生产工艺的提高,特征尺寸的持续缩小,单位面积硅圆片上生产的芯片越来越多,因此单个芯片的成本必然会降低。因此芯片厂商必然会不厌其烦地推荐采用最新工艺的芯片,而对于PCA设计厂商来说,最新工艺的芯片如果超过了其原有设计的信号完整性的考量,可能会带来设计灾难。

同时,由于FPGA/CPLD本身的特性,其内部完全为可编程,包括管脚设置,这样也就意味着时序也是FPGA/CPLD 设计时必然需要考量的项目之一。对于FPGA/CPLD开发工程师来说,通常会着重考量芯片内程序要实现功能的时序要求,却往往忽视芯片与外围接口的时序要求,而这些往往会导致显性信号完整性问题,比如输出的非单调,漏电等。

在FPGA/CPLD中,主要有三类管脚,分别是电源管脚、地管脚以及用户使用管脚[4]。其中用户使用管脚又分为三类,分别是时钟专用管脚、通用输入输出管脚、复用管脚。在这些管脚类型中,电源和地管脚是固定的,需要严格按照FPGA/CPLD 的数据手册进行连接,特别是与PLL相关的电源管脚,需要使用FUSE进行隔离,确保其所使用的电源干净。而用户使用管脚几乎都可以根据用户的意愿进行输入、输出或者双向配置。一般来说,芯片厂商会对时钟专用管脚进行特殊设置,以确保该管脚上的信号进入芯片后的抖动和偏移最小,因此,对于FPGA/CPLD 设计者来说,此类管脚通常用来接全局时钟信号,以确保时钟抖动最小。复用管脚是一类非常特殊的管脚,比如JTAG管脚、休眠管脚等,通常情况下,这些管脚也是专属管脚,但是在FPGA/CPLD的管脚数量有限的情况下,这些管脚也可以用作通用输入输出管脚,但必须严格遵照数据手册进行,并且确保该类操作满足系统功能要求。

一般来说,用户最常用的还是通用输入输出管脚。这类管脚的特性主要是可以根据用户的使用要求进行编程,包括I/O的类型设置(输入、输出、双向、高阻等)、上拉、下拉、斜率控制等。当然,在某些FPGA/CPLD中,由于IP 的特定使用,有些通用输入输出管脚会有特殊要求,比如某些管脚取消了输出结果,所以只能作输入,某些管脚只能用于低速场合。设计者需要特别注意。在FPGA/CPLD中,由于其本身结构的原因,当系统掉电后,FPGA/CPLD内部的程序将会自动消失,并保存在内部的Flash 或者外部的SROM 里面,此时FPGA/CPLD相当于一个空白芯片。当系统再次上电时,一旦给FPGA/CPLD 的电压达到相应要求,FPGA/CPLD 则开始从Flash 或者SROM 里面重新加载,这段时间将持续几微秒到几毫秒不等。只有加载成功后,FPGA/CPLD才能根据芯片设计者的程序进行工作。

从而在上电开始到加载完成这段时间内,FPGA/CPLD将完全不受芯片编程工程师控制。通常来说,FPGA/CPLD芯片的管脚在此时的默认属性有两种,一种是弱上拉,另外一种是三态,而不是程序中设定的特定属性。而有些FPGA/CPLD则会有数个bank,不同bank上的管脚默认属性也不一样,以Altera Cyclone IV为例[3?4],共计有8 个bank,其中bank1,bank6,bank7,bank8 的默认管脚属性为弱上拉,而bank2,bank3,bank4,bank5为三态。因此在此过程中,硬件工程师和FPGA/CPLD 工程师必须对FPGA/CPLD 的连线进行特别设置,否则将会出现严重的信号完整性问题。

3 Altera Cyclone IV 设计考量以及违例分析在Altera Cyclone IV 设计中,考虑到上文所提到的不同bank 上的管脚属性问题,因此通过一个电源切换电路实现不同bank 电源的设计[5?7],如图1 所示。由于FPGA ROM 接口位于bank1 上,因此首先给FPGA 的bank1,bank6,bank7,bank8 进行供电,以确保FPGA 进行正常的加载,加载完毕后,FPGA 通过加载完成信号通知切换电路,从而使得3.3 V 电源通过切换电路给bank2,bank3,bank4,bank5进行供电[8]。

因此,在硬件系统设计中,对于要接入Cyclone IV的信号来说,需要进行严格的甄别,才能进行相应的连接。在此设计中,有以下属性的信号禁止连接到bank1,bank6,bank7,bank8 上,只能连接到bank2,bank3,bank4,bank5上的通用输入输出管脚。

(1)如果有任何信号上拉到与P3V3_STBY不同的电源时,不能接入bank1,bank6,bank7,bank8。

(2)FPGA 驱动其他非P3V3_STBY 所供电源的IC时,这些驱动信号不能接入bank1,bank6,bank7,bank8。如果万一违例将会出现怎样的后果?在分析违例之前,还需要简单了解一下FPGA 内部的ESD 防护结构[3?5]。如图2所示,在FPGA的I/O端口上,通常会有如下的I/O 口结构,确保信号保持在VSS - VD2 ~ VDD + VD1 之间,而不至于I/O承受过高电压而被击穿。

下面结合图1分析如下的时序图,当P3V3_STBY稳定后,LDO 将会自动生成FPGA_PVCCIO 电压,一旦FPGA_PVCCIO 稳定,FPGA 将自动加载,加载成功后,FPGA 自动生成FPGA_READY 信号,然后外部线路导通,从而生成PVCCIO_PFGA_INIT_DONE 电压给FPGA剩余I/O进行供电。

下面分析两类情形,观察其对信号完整性的影响。(1)信号在FPGA/CPLD bank电压稳定之前就为高电平。当信号在FPGA bank电压稳定之前就为高电平,那么根据上述结构,高电平信号必将通过ESD D1 流入VDD,从而会导致系统整体漏电。因此针对这类信号,硬件设计工程师必须在线路设计时就需要避免。通常会采用一个MOSFET管实现电平转换和电压隔离,避免漏电。以上时序图没有着重指出,但是在FPGA/CPLD 系统设计时,必须严格遵守。

(2)本应该接入bank1,bank6,bank7,bank8的信号接入到bank2,bank3,bank4,bank5 上。由于bank2,bank3,bank4,bank5 的电压会后开启,而bank1,bank6,bank7,bank8的电压会先启动。这样就有可能出现信号在FPGA bank电源还没有稳定之前就为高的情形,当然也就会出现漏电的情况,在FPGA bank上电过程中,由于电压是连续上升的,同时由于ESD防护二极管单向导通的性质,那么bank电压会先达到一个使能整个ESD防护二极管的幅值,在这里假定FPGA ESD使能电平值为Vesd,那么当外部信号的幅值大于或者等于Vesd + 0.7 V时,ESD防护二极管D1将会导通,这样就会使本来为高电平的输入信号会被突然拉低至Vesd + 0.7 V,接着随着bank电压继续爬升并最终达到其稳定值,D1会关闭,从而就会使得信号在波形上出现一个向下拉的脉冲,这样就出现了一个信号完整性的问题;如果该脉冲刚好处于高、低电平阈值边沿,FPGA或者外围ASIC可能进行误判,从而导致系统出现意外的动作,甚至崩溃。图3为相关示意图,图4为在实际系统上测得的相应波形。

要解决此类违例所导致的信号完整性问题,可以通过修改线路实现。当然,如果在工程设计中,出于成本和交期的考虑,也可以通过在FPGA/CPLD 中屏蔽ESD使能设置解决此问题,但如果在比较恶劣的环境中,比如接插件较多,热插拔比较频繁的系统,可能会导致FPGA/CPLD由于没有ESD防护而损坏。

4 结语

在以FPGA/CPLD 为中心的系统设计中,人们不仅仅需要理解FPGA/CPLD 具体的设计理念和功能要求,同时也需要认真领悟FPGA/CPLD器件本身对电源完整性和信号完整性的具体要求。信号完整性无处不在,在管脚分配和设计中,需要系统工程师联合FPGA/CPLD设计工程师以及硬件工程师,甚至包括布局布线工程师一起,紧密合作,确保系统的稳定度性鲁棒性,从而提高开发效率和质量,并大大缩短产品开发时间和成本。

教育期刊网 http://www.jyqkw.com
参考文献

[1] BOGATIN E.信号完整性分析[M].李玉山,李丽平,译.北京:电子工业出版社,2009.

[2] 王明虎,林大俊,杨依忠,等.基于超深亚微米IC设计的信号完整性研究[J].现代电子技术,2004,27(12):22?24.

[3] 吴伯春,龚清萍.信号完整性分析技术[J].航空电子技术,2004,35(2):20?21.

[4] 郭利文,邓月明.CPLD/FPGA设计与应用高级教程[M].北京:北京航空航天大学出版社,2011.

[5] Altera. Cyclone IV device datasheet [EB/OL]. [2014 ? 04 ? 12].http://www.altera.com/literature/hb/cyclone?iv/cyiv?53001.pdf.

[6] Altera. AN 592:Cyclone IV design guidelines ver. 1.3 [EB/OL]. [2013 ? 08 ? 17]. http://www.altera.com/literature/an/an592.pdf.

[7] Altera. Cyclone IV device family pin connection guidelines ver.1.6 [EB/OL]. [2013?10?23]. http://www.altera.com/literature/dp/cyclone?iv/PCG?01008.pdf.

[8] Altera. AN 447:Interfacing Altera Devices with 3.3/3.0/2.5 VLVTTL/LVCMOS I/O systems [EB/OL]. [2014?12?05]. http://www.altera.com/literature/an/an447.pdf.