问:当用户开始一个新的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布局。这可以在设计过程的较早阶段完成,从而实现早期板级设计。