浅析Xilinx Virtex-7 2000T & Vivado设计套件

2013.03.11 | Ashok Kulkarni | AE Director, North America

2012年, S2C成功发布了基于Xilinx Virtex-7 2000T的Single, Dual和Quad TAI Logic Module(LM) 原型验证平台,因为Virtex-7(V7)采用了业内最新的技术,很多客户对其认识和了解不多,纷纷来电询问有关V7平台的最新硬件以及软件支持信息。今天我们就和大家一起来认识一下目前世界上容量最大的FPGA – Xilinx Virtex-7 2000T及全新的Vivado设计套件。                                

Xilinx Virtex-7 2000T:

Xilinx Virtex-7 2000T由四个硅片封装组成一颗芯片并被Xilinx冠之以“3D IC”,当然对于用户来说,您可以把它当作一个超大容量的FPGA,保持传统FPGA的使用模式。设计流程和方法与以前的FPGA编程几乎一致。

既然是由4颗28nm的硅片组成的目前世界上容量最大的FPGA,那么它究竟包含多少的逻辑单元,RAM,I/O等资源呢?在此我们将Xilinx Virtex-6 760、Xilinx Virtex-7 2000T、目前Altera系列最大容量的Stratix-4 820的资源情况进行对比。 该表还列出来使用2颗Virtex-7 2000T 的S2C Dual V7 TAI LM以及使用4颗Virtex-7 2000T 的S2C Quad V7 TAI LM的资源情况:

Note: Xilinx Logic Cell is based on 6-input Look-up-Table (LUT) and Altera uses 4-input LUT.                                                        

通过上图我们可以了解,Virtex-7 2000T容量非常大,在单个FPGA上实现的逻辑资源是前一代产品的2.5倍。 对于大多数应用来说,Virtex-7 2000T甚至可以映射远高于2.5倍的逻辑设计,因为之前如果要映射接近2000万门的设计到FPGA, 您需要将设计分割到3颗FPGA内,在此过程中会浪费掉大量的FPGA内部布线资源,从而降低了FPGA内部资源的使用效率。

如果您计划将Virtex-7 2000T作为FPGA原型开发平台,那么您的下一个问题可能就是我到底能放多少ASIC门到这样的FPGA器件? FPGA逻辑单元与等效ASIC门之间的换算公式常常会有不同,大多数人用1 Logic Cell = 10 ASIC门, 因此他们认为每颗Virtex-7 2000T FPGA包含2000万ASIC门;也有一些人用1 Logic Cell = 6 ASIC门, 因此他们认为每颗Virtex-7 2000T FPGA包含1200万ASIC门;我认为真正的答案应该是逻辑单元等效ASIC门跟逻辑设计的转化率有关。您应该使用后面一种转换公式即(1 Logic Cell = 6)来做初步设计资源估计。因为由于布局布线的限制,有可能会浪费掉一些逻辑单元。此外,如果你尝试将FPGA塞得太满,这会导致布局布线的时间非常长,同时设计的性能也可能会受严重影响,甚至于设计的布局布线无法成功。

即使使用保守的估计,在较低的等效ASIC转化率的情况下,S2C的Quad V7 TAI LM依然可以实现等效的4800万ASIC门,这应该可以满足目前95%的SoC/ASIC设计容量需求。对于较小的SoC/ASIC设计,S2C则提供了Dual V7和Single V7 TAI LM, 可以很好的适应2400万到1200万门的ASIC设计。

当然超大容量的FPGA器件,意味着需要足够强大的设计套件的支撑,接着我们就一起来了解Vivado设计套件。

Vivado设计套件:

说起Xilinx设计套件,大家的第一反应往往是ISE。确实,工程师都熟悉15年前推出的ISE开发套件,那时,开发者面对的设计规模一般较小,逻辑单元是造成延迟的主要原因,单维的基于时序布局布线引擎的ISE就能满足用户需求。随着设计的日趋复杂化和芯片工艺的不断进步,设计互联线和设计拥塞成为了大规模数据运算中延迟的主因。从Xilinx的角度来看,由于技术本身的不完善,ISE即使通过补丁不断升级,也,也已经不能满足要求今天基于IP的以系统为中心的设计需求。因此,Xilinx通过借鉴 ISE 设计套件的所有经验、注意事项和关键技术,并充分利用最新 EDA 算法、工具和技术,打造出了具有颠覆性的全新 Vivado 设计套件。   

集成的设计环境 -- Vivado设计套件包括高度集成的设计环境和新一代系统到 IC 级别的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。同时它还支持广泛的业内标准,如AMBA AXI4 互联规范、IP-XACT IP 封装元数据、工具命令语言 (Tcl)、Synopsys 设计约束 (SDC) 等。

专注于集成的组件 --  Vivado 设计套件采用了用于快速综合和验证 C 语言算法 IP 的 ESL 设计流程,实现重用的标准算法和 RTL IP 封装技术,标准 IP 封装和各类系统构建模块的系统集成。

专注于实现的组件 --  Vivado工具采用层次化器件编辑器和布局规划器、设计编译速度显著提升,并且布线的确定性更高,结果更优。此外增量式流程能对ECO部分进行快速处理,同时确保性能不受影响。

因为关注的要点有所不同,所以可能会存在不同的看法,以下我将列出使用Vivado软件的3大优点:

1. 增加了对SDC约束文件的支持 Vivado使用Synopsys Design Compiler约束格式而不是ISE使用的UCF文件格式,这给ASIC原型用户提供了极大的便利性,因为ASIC设计者在开发过程中往往已经有了SDC文件,只需少量的修改即可为FPGA实现所用。 利用SDC文件,Vivado可以实现设计的综合,布局布线,而不像之前的ISE需要为不同的步骤指定不同的约束文件,提高了效率。

2. 新型多维分析布局引擎 能够最小化设计三维(时序、拥塞和布线长度)的解决方案,大大缩短了类似V7 2000T这样的3D芯片布局布线的耗时,下图例举了120万逻辑单元设计在老的ISE和新的Vivado中编译的的布局布线对比。

3. ECO功能增强 因为Vivado卓越的ECO功能,在设计周期的后期如果只修改小部分设计,用户往往无需整个设计重新综合和实现。 通过Vivado设备编辑器,用户可以移动子模块或走线, 可以在主输出端连接寄存器以供示波器调试用, 亦能够修改MMCM(时钟模块)的参数等, 这些功能确保了ECO之后可以保留原有的性能,但是显著减少了设计迭代的次数, 并且大大节省了调试的时间。

总之, Xilinx投入了大量的精力在新的Virtex-7 2000T FPGA和Vivado软件以支持FPGA。 基于我在过去的六个月里对Virtex-7 2000T的使用经验和众多S2C客户的反馈,我觉得Xilinx在这段时间内做了很棒的工作。希望这篇博客能够让您了解Virtex-7 2000T和Vivado的新功能,并增强您在下一个ASIC/SoC原型验证项目中使用Virtex-7 2000T的信心。