利用先进的FPGA I/O功能降低总体PCB制造成本

time : 2019-09-03 09:01       作者:凡亿pcb

本文介绍了利用现代FPGA架构的先进性能管理PCB复杂性的新方法,即可以减少PCB布线的拥塞,减少设计反覆、重新设计次数以及降低层和元件的数量。同时也概述了利用FPGA的灵活I/O特性降低PCB制造成本的方法。
 
内建嵌入式处理器、DSP和记忆体模组的高阶FPGA有替代整个ASIC的趋势。最新的FPGA元件能够专门利用多个通用I/O接脚来制作更宽的配置汇流排,因而加速编程时间,而这些接脚在配置完成后仍可作为正常的I/O接脚使用。元件复杂度的增加意味着接脚数量的增加,这会提高在PCB上整合这些元件的难度和成本。设计小组必须认真应对这一挑战,以确保使用这些新的可程式元件时不会影响到产品的成本和上市时间。
 
接脚数量超过1,000的FPGA会给电路板设计带来很大的麻烦。采用人工方式对这么多数量的接脚进行布局和布线是非常低效的,特别是当FPGA设计有稍许修改时会造成费时的电路板设计反覆。儘管接脚数量提高了,封装上的接脚间距仍保持不变,但PCB上的接脚密度却有显著的增加。随之产生的布线拥塞意味着大多数PCB设计师必须具备高密度互连(HDI)制造制程方面的丰富经验。包含高数量接脚FPGA元件的PCB需要更多层的电路板,底线是每增加一层,制造成本增加10%到20%。
 
理想的I/O标淮选择和配置必须考虑PCB的电气特性。最新FPGA元件的高速串列I/O使得FPGA和系统板之间的介面成为特别棘手的问题。例如数Gb收发器(MGT)技术旨在显著缩短数据路径,同时戏剧性地提高吞吐量。然而这些高速I/O会带来新的挑战。设计师现在不是担心系统时序、上冲/下冲、串扰和正确端接,而是关心介电损耗、趋肤效应和确定性/随机性抖动问题及其对码间干扰的影响。
 
数Gb差分讯号的讯号劣化和衰减主要有三大原因:介电损耗(是长度和板材的函数)、过孔损耗和连接器损耗。根据具体实体位置的不同,每个过孔的损耗将在0.5dB到1dB之间,而总的损耗裕量只不是10dB到15dB之间。因此,大多数FPGA制造商推荐将数Gb收发器放置在FPGA的四周,以避免打孔到内部讯号层。根据FPGA制造商的规格要求,仔细的堆迭规划对这些讯号而言至关重要,以便达到仔细校淮过的差分阻抗。
 
为了进一步解决好问题,FPGA I/0设计是灵活的。其它任何硅片技术都无法提供像FPGA元件这样灵活的介面特性。过去由于电路板设计和FPGA设计小组没有取得I/O设计同步致使许多PCB需要重新设计情况时有产生。具有I/O新功能的高接脚数量元件会显著地增加PCB制造成本和整体上市时间,在这种情况下,本文推荐的解决方案就能够跨越FPGA和PCB设计流程之间的日渐变宽的鸿沟。
 
传统的突破
FPGA设计流程采用的方法基于硬体描述语言,而PCB仍采用原理图输入方法。对复杂度不高的元件来说,传统流程是可以接受的,FPGA和PCB可以在不同的设计环境中分别进行设计。然而,这种传统的FPGA和PCB设计小组独立工作模式带来的是以下这种连续步骤:
1. FPGA设计师定义设计顶层模组,并设立逻辑讯号;
2. FPGA设计师在FPGA合成步骤中锁定一些特殊讯号(时脉讯号、专门的高速讯号);
3. FPGA供应商的布局布线软体自动将其它的FPGA顶层讯号分配到实体元件接脚,并制作FPGA接脚映射文件;
4. FPGA小组将接脚映射资讯发送给PCB设计小组,同时库管理员制作FPGA元件的定义;
5. PCB设计师制作FPGA的符号并将它导入PCB原理图设计;
6. 根据PCB的原理图进行PCB的布局布线。
 
将FPGA I/O设计数据传送到PCB流程通常需要人工进行数据的重新输入(介于步骤3和4之间)。每个接脚有很多属性,包括逻辑讯号名、实体接脚号、接脚方向、接脚组(接脚交换组)、FPGA元件普通接脚名称和差分讯号接脚对等。这样,有一千个接脚的元件意味着PCB库管理员需要无任何差错地输入6,000个数据。为了适合原理图纸张的大小,高接脚数量的符号通常需要被分割成若干部份。这些部份的符号制作和管理工作需要花数天到数周的时间。每次FPGA到讯号接脚映射关系的修改所导致的原理图连接更新同样也是一个漫长又容易出错的过程。如果逻辑讯号名和实体接脚号在FPGA流程和PCB流程之间没有得到同步,那么放置在PCB上的FPGA就可能无法正常工作。
 
在典型的FPGA布局布线流程中,I/O设计肯定是要修改的,因为布局布线需要‘I/O自由分配’以满足FPGA的时序约束条件。FPGA设计师必须采取额外的步骤锁定I/O设计,以便设计进展时能保持不变。由于在PCB设计时整合高数量接脚FPGA元件的代价非常高,设计小组经常在设计过程的早期就锁定FPGA的I/O设计。I/O设计锁定在降低FPGA-PCB的整合维护成本的同时,也失去了降低PCB制造成本的机会。许多设计小组很早就锁定了I/O分配,随后却发现为了满足PCB布线或性能要求必须改变FPGA I/O的设计。由于没有充分淮备好有效地应对FPGA I/O的变化,这些设计小组通常都造成设计延迟。
 
两方面的约束条件
约束条件可以分成两个部份,即FPGA约束和PCB版图约束。FPGA约束条件包括设计时序要求(时序约束)、元件的规模和架构(布线约束)以及应用于I/O缓冲记忆体的I/O标淮(I/O约束)。导入可配置的I/O ASIC巨集单元意味着每个元件具有更大的灵活性,可以支援更广泛的信号传输标淮,但这也会造成紧密相邻的元件应采用哪个标淮的约束情况。为了最大化这样的灵活性,可以将元件讯号分成若干I/O组,因而使分配规则进一步复杂。每一种约束都会影响I/O的分配。
 
在电路板设计这边,最佳的I/O分配取决于可用布线层的数量和PCB上元件的方位(布线约束)。除了布线约束外,PCB版图必须满足讯号完整性(SI)和整个系统设计时序约束条件(SI和时序约束)。由于这些SI和时序约束会限制电路板上走线的长度、空隙和其它实体参数,因此也会影响I/O埠的接脚位置。下面列出了可能会影响I/O设计一些约束条件:
* FPGA时序
* FPGA可布线性
* FPGA I/O
* PCB可布线性
* PCB SI和时序
 
因为这些约束条件是由不同的设计师管理的(例如FPGA、PCB和SI设计师),又会影响到相同的I/O分配过程,因此很难协调。
 
桥接FPGA-PCB设计流程
FPGA设计师必须满足合成和布局布线约束以符合时序规定要求,而PCB设计师必须在后端约束设计以便满足系统级的时序和SI要求。随著设计复杂性的提高,这些约束在两个设计流程之间可能产生冲突。
 
第一个需要解决的问题是加强两个设计小组之间的沟通。另外一个关键的课题是确保HDL、FPGA和PCB环境中所使用的工具套件的一致性。基于语言的FPGA HDL描述必须被正确地描述成包含接脚分配数据的原理图符号,并保持与PCB版图工具的正确链接。最后,这两个设计领域必须透过PCB上正确的FPGA接脚分配来保持同步,并以原理图符号和PCB外形资料库来进行表示,即使是不同的设计小组使用完全不同的工具套件也应如此。
 
例如,为了满足严苛的上市时间目标,一块PCB可能包含多个平行设计高接脚数FPGA。每个FPGA封装内接脚输出的变化必须连续反馈给PCB原理图和版图设计资料库。PCB的高速SI分析工具必须能够存取I/O收发器的验证模型。为了完整或满足高速时序要求的PCB布线也可能要求FPGA接脚输出的调整。在这双重追踪过程中,FPGA设计师可以使用来自EDA供应商和FPGA供应商的工具。PCB设计师可以使用另外一家EDA供应商的工具,而这一工具不必与FPGA工具供应商提供的工具相同。
 
最大的障碍在于将FPGA布局布线工具结果传送给原理图和PCB版图工具。如前所述,对于1,000个接脚以上的单个FPGA元件来说,这一过程可能要花一周的时间。随著平行的FPGA-PCB设计过程的进行,接脚输出变化(典型情况是4到6次)以及缺少完全自动的FPGA工具到PCB原理图符号和几何传送过程,将导致设计进度被打乱。如果PCB设计系统能够理解FPGA的接脚交换和驱动器规则,那么就能在PCB环境中实现这些接脚的变化,并自动反馈给FPGA工具。
 
为了确保获得正确的性能,需要执行包括PCB上实际布线在内的高速验证。随著数Gb高速讯号的普及,FPGA供应商提供的设计套件必须包含精确的IBIS、Spice或VHDL-AMS模型。有了这些模型以及能够在GHz范围内进行讯号分析的PCB验证工具,整个设计SI和性能就能得到充分验证。
 
设计小组可能分布在世界上不同的地区,这在大型组织机构中经常见到。这时需要采用内建数据管理方法学使设计师们合作进行FPGA的板上整合,并追踪任何一个设计师做出的每个修改。因此让这两个工具套件一起工作的关键在于这两个流程所采用的工具之间的紧密介面。
 
如果设计小组能在FPGA I/O设计阶段就开始前端的合作,那么他们势必就能消除设计反覆。对于适合FPGA和PCB实现的独特平行、互动式设计方法来说这是一种非常迫切的需求,它能最大可能地制作可布线的设计,并一次性地满足SI和时序要求。新的整合化系统设计工具,如明导资讯公司的I/O Designer,就提供了这样一种能够满足这些特殊需求的合作环境。
 
一致性、自动化和可扩充性
大多数FPGA I/O设计产生在设计过程中的逻辑抽象级。而实际上为了便于完成PCB设计过程,I/O设计必须在实体级进行。在设计过程中给每套约束指定优先级后形势将变得更复杂。
 
如果目标只是尽快完成电路板原型,那么接脚输出必须在设计过程早期固定下来。理想情况是,为了满足PCB约束条件并得到最最佳化的PCB,PCB版图设计师应该在PCB版图设计过程中决定接脚的分配方案,同时自动完成所有的FPGA约束。过去,I/O分配是由FPGA供应商提供的布局布线工具自动完成的,很少考虑到PCB的要求。然而,随著PCB复杂度的提高,这一过程需要得到设计小组的认真管理。因此目前典型的设计过程是在合成和布局布线过程之前就定义好这些前端约束。一般这些约束先被定义在特殊工具约束文件中,再直接传递给合成工具,然后转送给布局布线工具。透过ASCII约束文件定义约束条件时要求设计师在分配I/O埠之前很好地理解FPGA I/O接脚详细内容和分配规则(FPGA I/O约束)。而这一工作一般是由FPGA设计师完成的,但他们可能不太明白PCB版图细节,因此不会最最佳化这一部份设计。
 
I/O设计过程是将所选FPGA连接到电路板上所有周边元件时最佳化接脚分配的第一个步骤。I/O Designer能够解决这一问题。为了最终决定电路板最佳化过程,I/O Designer将管理和控制PCB版图设计过程中的接脚交换,同时确保这些交换不会破坏任何的FPGA技术规则。I/O Designer能使用户以特殊的方式贯穿整个设计流程,从顶层HDL描述到PCB级符号,甚至到FPGA布局布线工具所需的实体接脚资讯。它能背注布局布线、PCB原理图和版图工具中产生的任何FPGA修改。因此这样的工具能为设计HDL和FPGA实体实现的数位工程师以及采用元件符号的电路板设计师提供一个集中统一的环境。这样做具有下面三大优点:
 
一致性。每当设计师修改接脚输出时,这种变化应该自动传递给FPGA设计用到的其它设计工具。如果PCB设计师决定交换两个接脚,而这种交换又会影响到FPGA的内部布线。I/O Designer能够确保FPGA和PCB流程是一致的。作为一种数据管理工具,它监视每个流程并管理所有产生的变化。它能追踪PCB的接脚交换,并即时修改相关的文件。I/O Designer会根据HDL设计和接脚I/O分配过程产生FPGA布局布线约束,并根据‘后布线’接脚数据制作必要的符号、原理图和分层关系。
 
自动化。FPGA布局布线过程的自动化以及时序和I/O约束的管理相对比较容易实现。但PCB版图设计过程的全自动化比较困难,因为有许多可变因素需要考虑。在PCB版图设计过程中,设计师要考虑整个电路板的布线,同时又要避免破坏任何时序、SI和可布线性约束条件。因此任何设计用于在电路板上整合FPGA的工具需要重点实现FPGA约束管理的自动化,同时允许设计师在PCB版图设计中能集中精力执行‘难以自动完成’的任务。这样的工具还必须有内建的包含了Altera、Actel和Xilinix等供应商提供的必要元件资讯的库,以便使约束得到顺利实施以及使FPGA和PCB设计流程中所有工具能够得到良好地整合。I/O Designer可以利用I/O设计资讯自动产生必要的符号和原理图,并在I/O分配修改时维护好这些原理图。如果变化来自于FPGA一侧,那么原理图经过简单更新后就可将变化传递给PCB版图工具。
 
可扩充性。在设计阶段重新选用规模更大或更小的元件比较常见。由于FPGA元件的每个接脚具有特殊的属性(如前所述可定义为FPGA I/O约束),设计师在分配I/O接脚时需要考虑向更大或更小规模元件转移的可能性。有了I/O Designer后,设计小组在决定切换至更大或更小FPGA时就无需重新分配I/O。由于改变I/O设计经常会造成额外的电路板重新设计工作,因此,如果没有十分的必要应避免这样的作业。
 
利用FPGA的灵活性
现代FPGA架构包含可程式的I/O,可支援50种以上不同的I/O标淮。一般用得比较多的是单端和低电压差分讯号(LVDS)I/O标淮。虽然FPGA I/O设计是可变的,但它们的灵活性也有一定的限制。现代的FPGA元件架构将接脚集合分组成‘接脚组(pin-bank)’。在同一个接脚组中接脚共享参考电压等某些共同的特性,因此通常是可交换的。但在不同接脚组中的接脚可能被指定不相容的I/O标淮,因此会导致不同的情况。
 
一种情况是为了满足PCB互连性能要求或PCB的可布线性,PCB设计师可能要求修改FPGA I/O接脚。另外一种情况是最初的接脚改变造成了不同I/O标淮同时存在的问题,迫使已有讯号转移到新的接脚组。最后一种情况是前一种情况下重新定位的讯号又造成了不同I/O标淮同时存在的问题,迫使现有讯号被转移到新的接脚组。
 
LVDS讯号线对主要用于高速讯号传输,此时SI问题比较突出。当FPGA元件中的一个讯号被赋于LVDS I/O标淮时,这个FPGA讯号就需要用到FPGA封装中的2个接脚。LVDS讯号会改善PCB的性能,但也会产生附加的约束条件。LVDS线对必须:1)长度差在±10%之内;2)在整个走线长度内差分线对保持固定的间距。
 
FPGA逻辑讯号使用太多的LVDS I/O标淮会导致使用更大且具有更多接脚的FPGA封装。而不采用LVDS I/O标淮意味着产品性能会受到限制,甚至达到许多产品设计小组无法接受的程度。从单个接脚到双接脚I/O标淮(或反过来)的轻易改变能力能使整个设计小组使用最少的LVDS I/O讯号满足系统性能约束条件。总之,尽量减少LVDS的使用可以降低PCB制造的复杂性和成本。
 
在I/O Designer等工具中置入I/O接脚组规则(PCB设计师很容易透过直观易用的GUI学会)可以释放PCB设计师的精力,开拓他们的视野,因而让他们更有效地参与FPGA I/O设计过程。在掌握了FPGA I/O的平行FPGA和PCB小组设计、实现了FPGA和PCB设计流程中实体整合的自动化后,设计小组就能充分利用FPGA I/O的灵活性减少PCB布线的拥塞。认真检查现代FPGA架构和它们的用途可以发现很多有趣的事实:
* 在同一接脚组中的接脚很容易实现交换;
* 设计中同一汇流排内的讯号一般都分配到同一接脚组(充分利用接脚的易交换性);
* 对设计中的汇流排讯号来说接脚组并不代表最佳的实体设计。(从图3可以看出,使用相同的接脚组会迫使汇流排讯号在PCB上相互交叉)
 
通常学会高效地使用多个接脚组可以实体最佳化FPGA的I/O,并消除汇流排中的交叉讯号,同时也可能减少制造PCB所需的讯号层数量,因而达到降低成本的目的。
 
随著目前高速、高闸数、高接脚数FPGA的出现,FPGA设计唯一永?的主题是不断产生的变化,包括为了满足时序和损耗要求的互连级变化和FPGA本身内部接脚分配阶段的变化。FPGA设计具有的高度灵活性对电路板设计师来说也许是一个最大的梦魇。FPGA公司应该明智地认真检查现有技术,确保今天的FPGA所提供的巨大灵活性和强大功能不会太过而成为PCB实现的潜在障碍。像I/O Designer这样的工具能够实现PCB布局和验证所需的原理图连接自动化,而且它还能记住哪个讯号连接连到了哪个元件接脚,并指示这些接脚如何映射到原始的电路板级汇流排结构。依靠正确的软体工具以及FPGA和PCB设计平行路径之间的紧密合作,FPGA设计和实现进度就可能节省‘周’数量级的时间,因而显著地降低总体成本。