如果你在采用 FPGA 的电路板设计方面的经验很有限或根本没有,那么在新的项目中使用 FPGA 的前景就十分堪忧——特别是如果 FPGA 是一个有 1000 个引脚的大块头。继续阅读本文将有助于你的 FPGA 选型和设计过程,并且有助于你规避许多难题。

 

选取一家供应商

你面临的第一个问题当然是供应商和器件的选择。通常供应商决策倾向于你以前接触最多的那家——如果你是一位 FPGA 初学者当然另当别论了。或许这个决策早已由设计内部逻辑的工程师(也许就是你)依据熟悉的供应商或第三方 IP 及其成本完成了。

 

供应商的软件工具也会影响到上述决策。下载并使用这些软件工具,不需要硬件就能将设计带入仿真阶段。这也是判断需要多大规模的 FPGA 的一种方式,前提是你的内部逻辑设计基本做完了。

 

要想知道 FPGA 的水有多深,需要多逛逛各家供应商的网站。如果你想从这些网站提供的海量(而且并不总是想象中那么清晰的)信息中有所收获,必须确保你有一整天空闲的时间。Altera 和赛灵思公司是在市场份额和前沿技术方面都遥遥领先的两家公司。它们的器件使用内部配置 RAM,因此要求使用存放配置数据的外部 ROM 来“启动”器件(两家公司也都有些小的非易失性 CPLD 类产品)。值得考虑的其它供应商还有 Microsemi/Actel、莱迪思和赛普拉斯。它们的器件功能包括非常低的静态功耗、用于“即时开机”启动的基于 ROM 的配置和模拟外设。

 

好了,至此供应商问题解决了。接下来是选取 FPGA 的系列和规模。供应商都会将它们的产品细分成多个系列,通常以低端、中端和高端性能(和规模)这样的模糊概念加以区分。片上 RAM 需要多大?要多少 DSP/ 乘法模块,或千兆位收发器?你可能需要通读一遍数据手册,找出诸如最大时钟频率和 I/O 时延等参数来帮助你选择正确的系列。需要重申的是,拥有 HDL 代码是有很大帮助的,因为设计软件可以让你知道适合哪种器件,它们是否能够满足你的性能要求。

 

 

你的应用还可以从不改变 PCB 就能更新器件中受益。一些 FPGA 系列包含众多引脚兼容的器件,可以在需要时让你切换到更大(或更便宜和更小)的器件。只是要确保针对最少数量的引脚输出进行设计。

 

不要忘了考虑其它一些细节,比如如何为不同的供电电压和 I/O 标准划分 I/O 组、PLL 要求以及 DDR 接口要求。

 

我们需要更多的功率!

通常很难计算一块电路板要求的最大电流。但 FPGA 电源设计相当有技巧。FPGA 所需电流很大程度上取决于逻辑设计和时钟频率。同样一个器件在一个设计中可能只需 0.5W,而在另一个设计中可能高达 5W。

 

开发工具(或一个独立的程序或电子数据表)应该可以为给定设计提供功率预估值,但它们需要从你那儿得到许多附加信息,其中一些可能只是有根据的推测。如果有 FPGA 开发板,就应该有方法测量各种情况下的供电电流。一些开发板甚至内嵌电流计显示器!只是要确保增加足够多的余量来应对设计更改以及特殊工艺 / 温度要求。

 

下面是“难题”可能会出现的时候:

● 做热分析,并在必要时增加散热器。

● FPGA 要求按顺序加电吗?(你的设计很容易出现 5 个或 6 个电源)

● 至少可能需要一个“安静的”电源,通常用于片上 PLL。可以使用 LDO 加上一些无源滤波器件。千兆位收发器电源也能从低噪声中受益。

● 确保你理解 FPGA 在上电和初始化时在做什么事。许多器件在这个时候需要抽取很大的电流。

 

关于引脚及其它

接下来可以认真考虑引脚分配这件大事了。同样,如果你的逻辑设计已经达到可以被编译的阶段,就让设计软件来提供帮助吧,或至少在做电路板之前验证你分配的引脚是可行的。你当然已经处理过明显的资源,比如根据供电电压划分 I/O 组,确保诸如 LVDS、SSTL 或内部 50Ω终端等“特殊”引脚设置兼容它们所在的组和供电电压。

 

但在许多器件中存在更深层次的微妙关系:在“不要在单端信号的 2 个 IC 绑定焊盘内放置差分对”,或“类似于参考电压的输入必须距离时钟信号至少 3 个焊盘远”等字里行间隐含着复杂的规则。这些规则很容易让人发疯。如果让人不堪忍受,就让设计软件为你指出违例吧。如果你不这样做,那么这些问题肯定会让你疲惫不堪。

 

接地反弹或并发开关噪声(SSN)是另外一个考虑因素。由于 FPGA 的应用方式太多,所以供应商经常为最好的场景设计电源分配方案。如果你的设计要充分发挥 I/O 功能,比方使用数量很多的快速同时开关输出,那么你可能需要“减少”实际可以使用的引脚数量。尽量减小驱动和压摆率设置通常是一个好主意。设计软件也可能帮助进行 SSN 分析。我认为减小 SSN 的一个技巧是将未用引脚连接到地,然后在设计文件中将它们设置为输出,驱动‘0’。这些引脚将被用作伪地引脚,虽然质量没有真实地好。

 

交付

现在是将凝聚了你心血的产品交付给 PCB 版图设计的时候了。这里我不想深入讨论 PCB 设计(可以参考下面给出的一些文章),但会指出针对 FPGA 设计需要考虑的一些事项。

 

堆叠设计对任何复杂的电路板来说都很重要,而在最复杂的电路板中通常都能找到 FPGA 的身影。随着 500 引脚芯片被认为是“中等规模”以及不断缩小的引脚间距,你可能需要十分留意走线逃逸图案、焊盘中的过孔、引脚区域内的去耦电容以及电源与地平面。一定要有创造性。必要时可以分割电源平面(当然要避免高速走线)。如果足够小心,一些电源连接(通常是局部的电源,如 PLL 电源)可以放在信号层上。将一些关键平面和信号放在最靠近 FPGA 的层。留意一些专门的版图建议,比如针对 DRAM 的一些建议。