四大FPGA供应商专家谈FPGA设计诀窍 | | 四大FPGA供应商专家谈FPGA设计诀窍 Actel、Altera、Lattice Semiconductor和Xilinx是目前业界最主要的四大FPGA供应商,为了帮助中国的应用开发工程师更深入地了解FPGA的具体设计诀窍,我们特别邀请到了Altera系统应用工程部总监Greg Steinke、Xilinx综合方法经理Frederic Rivoallon、Xilinx高级技术市场工程师Philippe Garrault、Xilinx产品应用工程部高级经理Chris Stinson、Xilinx IP解决方案工程部总监Mike Frasier、Lattice Semiconductor应用工程部总监Bertrand Leigh和软件产品规划经理Mike Kendrick、Actel公司硅产品市场总监Martin Mason和应用高级经理Jonathan Alexander为大家传经授道。
他们将就一系列大家非常关心的关键设计问题发表他们的独到见解,包括:什么是目前FPGA应用工程师面对的最主要设计问题?如何解决?当开始一个新的FPGA设计时,你们会推荐客户采用什么样的流程?对于I/O信号分布的处理,你们有什么建议可以提供给客户?如果你的客户准备移植到另外一个FPGA、ASIC和结构化ASIC之间进行抉择?结构化ASIC或ASIC,你会建议你的客户如何做? 问:目前FPGA应用工程师面对的最主要设计问题是什么?如何解决?Actel:当用户通过TAP接口进行JTAG测试或者编程时我们发现了许多问题。与目前最先进应用的逻辑复杂度和速度相比,TAP接口和指令集是非常简单和慢速的。这导致用户想当然地认为TAP接口处的信号完整性没有问题,甚至设计中其他位置的其他信号也适当地进行了端接。虽然数据和时钟速率很慢,但是其边沿速率和其他任何信号一样快,因此必须进行适当的端接匹配。此外,我们发现很多用户在规划减小SSO/SSN问题。
Altera:功耗、性能优化、调试、接口复杂性、信号完整性和系统复杂度是FPGA开发工程师目前面临的最主要设计问题。
1. 功耗:Quartus II软件的PowerPlay功率分析和优化技术与Stratix III可编程功率技术可以帮助用户在设计过程中显著减小功耗。
2. 性能优化:关注点集中在如何实现FMAX,以及系统级性能(如通过PCI Express接口实现足够的吞吐量)。Quartus II软件提供精确时序预报的TimeQuest时序分析器允许用户定制系统需求的时序约束。
3. 调试:传统上,工程师会使用一台逻辑分析仪分析待测器件的引脚。不过,由于今天FPGA的高容量,很多元件可以集成到一个器件中,但逻辑分析仪不能检测到设计内部的信号。SignalTap II逻辑分析仪是一个系统级调试工具,它可在一个系统级可编程芯片(SoPC)上捕获和显示实时的信号行为,从而为设计师提供了观察系统设计中硬件和软件之间交互的功能。
4. 接口复杂性:为了实现更高的性能,系统使用的接口正变得更加复杂(如DDRII SDRAM接口比以前的SRAM接口要复杂)。Altera提供多种IP核,它们可帮助设计师很轻松实现所需的接口。
5. 信号完整性:Altera提供了多种模型(包括HSPICE和IBIS)以及内置片内端接,这些有助于确保信号正确地从A传输到B。
6. 系统复杂度:设计者今天面临的挑战是,尽管开发的系统复杂度越来越大,但分配的开发时间不会比先前开发较低复杂度项目的少。Altera提供简化系统通用部分设计开发的IP核、系统验证和板级布局工具,从而允许用户集中全力开发差异化性能。
Lattice:1. 满足硬件时序要求。对规格的高级别评估,并判断它是否能满足系统的要求。例如,如果系统要求是1.2Gbps I/O,但是FPGA I/O只能支持到800Mbps,那么这种FPGA将不能满足系统速度的要求。
2. FPGA设计时序收敛。进行足够的静态时序分析和时序仿真以确保HDL设计满足硬件的时序要求。拥有已经过实践验证的硬件模块,例如DDR存储器I/O接口和串行/解串器(SERDES)/PCS模块,将有助于FPGA设计师更轻松地满足时序要求和减轻对软件工具的依赖。我们低成本的 LatticeECP2/M FPGA系列和高端的LatticeSC FPGA系列可以提供这些硬件模块。
3. SERDES在系统中的实现:虽然概念上比较简单,但是硬件实现要求很多细节正确无误,如信号端接、参考时钟的生成、锁相环(PLL)的使用、背板信号完整性和位错误率的评估。Lattice提供预定义的针对不同SERDES应用的SERDES示范平台,如PCI Express和通用8/10位SERDES完整收发硬件演示平台。
4. 功率管理:对所有FPGA电源规划功率预算。通常,2到3个FPGA电源(VCC、VCCAUX和VCCIO)是关键的。需要对器件初始上电和运行期间的不同温度进行精确估计。
5. 配置需求:这个关键步骤保证上电后FPGA将从外部引导闪存进行正确配置。
问:当用户开始一个新的FPGA设计时,你们会推荐用户采用什么样的设计流程?
Actel:逻辑设计传统上是利用硬件描述语言(如HDL)或图形化的原理图来实现的。对逻辑设计的描述越抽象,就需要更智能化的工具来自动进行推断、编译和实现这个设计。通过融合内部开发工具和业内领先的OEM和第三方工具,Actel支持所有这些不同的设计风格和工具流程。
另一个设计考虑是应该从头开始创建你的设计,还是利用现有的私有或者商业化IP。高质量IP内核可使得产品能够更快地推向市场。Actel在开发和支持内部开发的及第三方IP内核方面进行了很大的投资,我们的Libero IDE(集成设计环境)具有很多可帮助设计师高效查找和使用IP的功能。Actel也开发了已经过实践验证的系统级参考设计、HDL代码、软件驱动器、应用程序、有时甚至还包括PCB设计文件,以为设计师开展其定制工作提供一个起点。
Xilinx:客户可以使用第三方工具,如用XST、Precision或Synplify进行综合,然后使用Xilinx ISE 9.1i进行布局和布线。对于仿真,客户可以使用ModelSim、NC Sim或VCS。他们始终应该输入用于综合的时序约束。
问:关于I/O信号分配的处理,你们有什么建议可以提供给客户?应采用什么样的顺序对各种信号类型进行分配?(即从VREF开始,然后高速I/O等)
Actel:为了回答这个问题,让我们假设用户正在使用Actel基于闪存的ProASIC3E FPGA。它含有8个专用I/O块,每个块能够被分成5个微型块。这些专用I/O块共享电源电压(输入VMV、输出VCCI、GNDQ)。微型块是在一个专用I/O块内使用一个共同电压参考VREF的I/O用户定义组。只用共享电源电压和电压参考的I/O可以置于同一个专用块内。
首先,安排专用I/O块。Actel的I/O Bank Assigner工具将为该设计自动配置I/O块。如果用户想定制该I/O块的配置,他可以很容易地利用PinEditor GUI或PDC约束脚本完成这一配置。
在安排I/O块时,牢记SSO问题是很重要的。切换总线应该尽可能多地分布在整个裸片上,并且远离PLL的电源管脚及异步输入/输出管脚。在安排好I/O块之后,用户可以开始分配I/O信号。利用GUI拖拉I/O并将它放置到合适的块,或者在PDC约束文件中进行分配。差分I/O需要相邻的N/P对,因此建议先分配差分I/O。然后,分配电压参考I/O和相关的VREF管脚,它们可以从任何绑定的I/O中进行配置。最后,对所有其它单端I/O进行分配。
Altera:虽然灵活的管脚分配对FPGA很重要,但某种程度的专用化也可通过减少管脚电容改善信号的完整性和系统的性能。例如,用于高速收发(如PCI Express)的管脚不能用作通用I/O。Altera不要求按照某一顺序对管脚进行分配,但管脚分配要求匹配管脚的功能。客户可以在开始设计前使用 Quartus II软件进行一次管脚检查,从而允许同时进行板和芯片的设计。
Lattice:FPGA I/O结构比具有固定I/O管脚的标准产品复杂。FPGA需要正确的I/O布局来确保:分配的多个I/O在块内能够共存,没有冲突;它们能够以要求的I/O速度运行而没有噪声或信号完整性问题。
I/O分配应从专用I/O最先开始,如DDR2存储器接口、SERDES接口和PCI接口等。这将决定关键的管脚分配,然后再在剩余管脚上分配通用I/O管脚,如LVCMOS33、LVCMOS25和LVTTL等。
此外,要特别注意特殊的引脚,如VREF、高速CLK输入和PLL/DLL输入。用户可以指定使用哪个器件引脚,也可以让工具选择需要的引脚。在后一种情况下,用户需要对这些引脚的分配进行备注,从而使得以后的PAR运行时继续使用相同的配置。ispLEVER提供两个基本特性以支持该功能。
Design Planner工具支持用户生成符合复杂I/O块规则的I/O布局约束。从封装的角度来看,用户可以直观地过滤具有某一特定性能的管脚(如主时钟输入引脚和差分信号引脚对),然后将设计信号分配到过滤后的引脚上。I/O Assistant Flow允许实际的PAR引擎和用户提供的I/O布局约束仅用在该设计的I/O环上,以生成一个合理的I/O布局。这可以在设计过程的较早阶段完成,从而实现早期板级设计。
|
|
|