kangaroo

VIVADO的技术革命

0
阅读(3365)
今天,随着半导体工艺技术的发展,FPGA已经变得日益强大,同时也变得更加复杂,这让设计工程师在享受其高性能的同时也承受着开发上的痛苦:大规模的设计协同、子系统的规划、时序收敛的处理、不同IP的调用等等都给工程师带来了更多的挑战,有没有更有效的方法或者工具来开发FPGA? 有!现在,赛灵思推出了革命性的Vivado 设计套件,它不再着眼于单一器件的开发,而是以 IP及系统为中心,从系统级层面实现FPGA,它也带来了生产效率的大提升,原来需要23分钟仿真的设计现在只需要3秒钟就可以完成!而且真正实现了支持C语言开发FPGA,可以预计,随着Vivado 设计套件的推出,FPGA开发将步入一个新的时代!

“Vivado取自意大利语,意为新的生活新的生命,它代表了赛灵思一种新的开发工具系列,这个系列和赛灵思传统的ISE一样,将不断推出新版本,帮助工程师实现高效的FPGA开发。”在Vivado设计套件新闻发布会上,赛灵思公司全球高级副总裁,亚太区执行总裁
汤立人 (Vincent Tong) 指出,“Vivado 设计套件是赛灵思公司500人团队用4年时间开发而成,它继承了ISE 中经成功验证的主要组件,在我们正式发布前,beta版本已经被客户使用了一年多,很多客户对它给予了积极的评价。”

Oki Information Systems 公司IP 平台业务部负责人Yasuo Yamamoto指出:“作为 Vivado 设计套件早期使用计划的参与者,我们用 Vivado 工具编译我们的 PCIe DMA 控制器 (iDMAC) IP。我们将 IP 从 ISE 设计套件移植到 Vivado 套件上,没出现任何问题。由于 Vivado 采用了基于 PlanAhead 的 GUI,使我们的工程师能够快捷方便地掌握 Vivado IDE 的使用方法。由于采用 ASIC 友好型 Tcl 脚本,之前具备 ASIC 设计经验的 IP 设计工程师使用该套件会更加轻松。放眼未来,我们计划在大规模设计中采用Vivado 工具,并期待着通过高性能综合、布局布线分析功能和低存储器使用率等众多突破性技术推动生产力的大幅提升。”

从以器件为中心的开发上升到以IP和系统为中心的开发

“从FPGA的发展历程来看,从最初实现胶合逻辑到现在集成大量接口、集成DSP、集成ARM处理器内核、集成模拟器件…..我们认为,FPGA正成为一个‘All Programmable’器件。”汤立人指出,“‘All Programmable’器件是可编程的系统集成,设计团队不仅能够为他们的设计编程定制逻辑,而且也可以为基于ARM®和赛灵思处理子系统、算法和I / O进行编程。这是一个全面的系统级器件,集成的系统功能越来越多。”
FPGA正成为一个‘All Programmable’器件
从实际设计看,目前设计者在进行开发的时候也面临不少难题,例如在系统集成方面面临的难题是如何实现IP的复用?如何集成算法和RTL级的IP、如何混合DSP、连接功能、逻辑等等,在实现方面面临如芯片规划和分层、多领域和大量的物理优化、多元的“设计”与“时序”收敛以及和后期的工程变更单(ECO)和设计变更的连锁效应等等,尤其是后期的ECO,往往改动某个局部电路,形成“牵一发而动全身”的效应,造成全部设计时序改变要需要重新进行时序收敛等。正是为了解决这些集成和实现方面的瓶颈,让使用户充分利用这些“All Programmable”器件的系统集成能力,赛灵思才打造了全新Vivado设计套件。”


汤立人指出,Vivado 设计套件可以用“加速集成和加速实现”来概括,首先,以IP和系统为中心的理念大大缩短了系统的验证时间,Vivado 设计套件采用了用于快速综合和验证 C 语言算法 IP 的 ESL 设计,实现重用的标准算法和 RTL IP 封装技术,标准IP 封装和各类系统构建模块的系统集成,模块和系统验证的仿真速度提高了 倍,与此同时,硬件协仿真将性能提升了100倍。
Vivado 设计套件可以用“加速集成和加速实现”来概括
为了解决实现的瓶颈,Vivado工具采用层次化器件编辑器和布局规划器、速度提升 了3 至 15 倍,且为 SystemVerilog 提供了业界最好支持的逻辑综合工具、速度提升 4 倍且确定性更高的布局布线引擎,以及通过分析技术可最小化时序、线长、路由拥堵等多个变量的“成本”函数。此外,增量式流程能让工程变更通知单 (ECO) 的任何修改只需对设计的一小部分进行重新实现就能快速处理,同时确保性能不受影响。这个可以用“牵一发而不动全身”来形容。另外,Vivado 设计套件通过利用最新共享的可扩展数据模型,能够估算设计流程各个阶段的功耗、时序和占用面积,从而达到预先分析,进而优化自动化时钟门等集成功能。


一种类似ASIC设计环境的全新可扩展数据模型架构

为减少迭代次数和总体设计时间,并提高整体生产力,赛灵采用了用一个单一的、共享的、可扩展的数据模型建立其设计实现流程,这种框架也常见于当今最先进的 ASIC 设计环境。这种共享、可扩展的数据模型可让流程中的综合、仿真、布局规划、布局布线等所有步骤在内存数据模型上运行,故在流程中的每一步都可以进行调试和分析,这样用户就可在设计流程中尽早掌握关键设计指标的情况,比如时序、功耗、资源利用和布线拥塞等。而且这些指标的估测将在实现过程中随着设计流程的推进而更趋于精确。

具体来说,这种统一的数据模型使赛灵思能够将其新型多维分析布局布线引擎与套件的 RTL 综合引擎、新型多语言仿真引擎以及 IP 集成器 (IP Integrator)、引脚编辑器 (Pin Editor)、布局规划器 (Floor Planner)、芯片编辑器 (Chip Editor) 等功能紧密集成在一起。此外,该数据模型使赛灵思能够为该工具套件配备全面的交叉探测功能,以便用户跟踪并交叉探测原理图、时序报告、逻辑单元或其它视图,直至 HDL 代码中的给定问题。

Vivado还包括一个全新的综合引擎
Vivado还包括一个全新的综合引擎
Vivado还包括一个全新的综合引擎,旨在处理数以百万计的逻辑单元。新的综合引擎的关键是对System Verilog的强大支持。“Vivado的综合引擎对System Veriog语言可综合子集的支持, 比市场上任何其他工具都更好” Feist 说。 它的综合速度是赛灵思ISE Design Suite综合工具XST的三倍,并支持“快速”模式,使得设计师迅速把握设计的面积和规模。 另外,也让他们调试问题的速度比之前采用RTL或门级原理图快15倍。随着越来越多的ASIC设计者转向可编程平台,赛灵思还在整个Vivado设计流程中提升了了Synopsys 设计约束 (SDC)。标准的使用开启了一个新的自动化水平, 客户现在可以访问先进的EDA工具产生约束、检查跨时钟域、形式验证, 甚至是利用像Synopsys PrimeTime那样的工具进行静态时序的分析。


如何让时序牵一发而不动全身?---因为有一个全新的多维度分析布局器
上一代 FPGA 设计套件往往采用单维基于时序的布局布线引擎,通过模拟退火算法随机确定工具应在什么地方布置逻辑单元。使用这类工具时,用户先输入时序,模拟退火算法根据时序先从随机初始布局种子开始,然后在本地移动单元,“尽量”与时序要求吻合。在当时这种方法是可行的,因为设计规模非常小,逻辑单元是造成延迟的主要原因。但今天随着设计的日趋复杂化和芯片工艺的进步,互联和设计拥塞一跃成为延迟的主因。采用模拟退火算法的布局布线引擎对低于 100 万门的 FPGA 来说是完全可以胜任的,但对超过这个水平的设计,引擎便不堪重负。不仅仅有拥塞的原因,随着设计的规模超过100万门,设计的结果也开始变得更加不可预测。

汤立人指出赛灵思为 Vivado 设计套件开发了新型多维分析布局引擎,其可与当代价值百万美元的 ASIC布局布线工具中所采用的引擎相媲美。该新型引擎通过分析可以找到从根本上能够最小化设计三维(时序、拥塞和走线长度)的解决方案。赛灵思公司设计方法市场营销高级总监 Tom Feist 指出Vivado设计套件的算法从全局进行优化,同时实现了最佳时序、拥塞和走线长度,它对整个设计进行通盘考虑,不像模拟退火算法只着眼于局部调整。这样该工具能够迅速、决定性地完成上千万门的布局布线,同时保持始终如一的高结果质量(见图 1)。由于它能够同时处理三大要素,也意味着可以减少重复运行流程的次数。”

与其它 FPGA 工具相比,Vivado 设计套件能够以更快的速度、更优异的质量完成各种规模的设计
图1:与其它 FPGA 工具相比,Vivado 设计套件能够以更快的速度、更优异的质量完成各种规模的设计


一种真正的FPGA高层次综合(HLS)工具

提起FPGA,大家会立即联想到IC设计,应用FPGA的开发需要用硬件描述语言,这让很多嵌入式系统工程师望而却步,因为传统上嵌入式系统工程师很少去了解硬件电路的实现,更注重系统层面的功能实现,现在,Vivado 设计套件彻底削平了FPGA的开发门槛,“很多嵌入式系统工程师未来可以方便地开发FPGA了。”汤立人这样评价vivado带来的好处。

在赛灵思4年前可以Vivado设计套件规划的时候,其目标就是要用用标准的设计环境代替专有格式。致力于打造一个开放的环境,让客户能够用 EDA 工具和第三方 IP 进行扩展。例如,Vivado 设计套件可支持 SDC(Synopsys 设计约束)、ARM AMBA AXI 4 IP互联标准、IP-XACT IP封装和交付标准,并且在新环境中提供了强大的互动 TCL 脚本功能。。

不管用户用 C语言、C++、SystemC、VHDL、Verilog、System Verilog、MATLAB 还是 Simulink 开始编程,也不管他们用的是我们的 IP 还是第三方的 IP,赛灵思都提供了一种实现所有流程自动化,帮助客户提高生产力的方法。此外,还考虑到用户的各种技能水平和偏好,既能满足需要全按键式流程的客户的要求,也能满足在设计流程的每一步都进行分析的客户的要求,甚至还能满足那些认为用 GUI 的是低手,喜欢用 TCL 以命令行或批处理模式完成全部设计流程的客户的要求。用户能够根据自己的特定需求,选用套件功能。

目前很多设计都需要采用IP,Synopsysy公司预计未来5年,每个设计中采用的IP数量会到20个以上,因此,无论何种工具,都需要考虑如何方便快捷地集成各类IP。在赛灵思Vivado设计套件中,赛灵思开发了IP 封装器、IP 集成器和可扩展 IP 目录三种全新的 IP 功能。

采用 IP 封装器,赛灵思的客户、赛灵思公司自己的 IP 开发人员和赛灵思生态环境合作伙伴可以在设计流程的任何阶段将自己的部分设计或整个设计转换为可重用的内核,这里的设计可以是 RTL、网表、布局后的网表甚至是布局布线后的网表。IP 封装器可以创建 IP 的 IP-XACT 描述,这样用户使用新型 IP 集成器就能方便地将 IP 集成到未来设计中。IP 封装器在 XML 文件中设定了每个 IP 的数据。Feist 说一旦 IP 封装完成,用 IP 集成器功能就可以将 IP 集成到设计的其余部分。

IP 集成器可以让客户在互联层面而非引脚层面将 IP 集成到自己的设计中。可以将 IP 逐个拖放到自己的设计图(canvas)上,IP 集成器会自动提前检查对应的接口是否兼容。如果兼容,就可以在内核间划一条线,然后集成器会自动编写连接所有引脚的具体 RTL。

在现场演示中,我们看到,在一个设计中,设计师可以取出已用IP 集成器集成的四五个模块的输出,然后通过封装器再封装。这样就成了一个其他人可以重新使用的IP。这种 IP 不一定必须是 RTL,可以是布局后的网表,甚至可以是布局布线后的网表模块。这样可以进一步节省集成和验证时间。

可扩展 IP 目录使用户能够用他们自己创建的 IP 以及赛灵思和第三方厂商许可的 IP 创建自己的标准 IP 库。赛灵思按照 IP-XACT 标准要求创建的该目录能够让设计团队乃至企业更好的组织自己的 IP,供整个机构共享使用。

Vivado 产品营销总监 Ramine Roane指出:“以前第三方 IP 厂商用 Zip 文件交付的IP格式各异,而现在他们交付的 IP,不仅格式统一,可立即使用,而且还与 Vivado 套件兼容。”

在Vivado设计套件中,最让人震惊的是其强大的综合能力。
Vivado HLS 示意图
Vivado HLS 示意图


设计人员使用 Vivado HLS 工具可以通过各种方式执行各种功能。例如,用户可以先创建一个设计 C、C++ 或 SystemC 表达式,以及一个用于描述期望的设计行为的 C 测试平台。随后用 GCC/G++或 Visual C++ 仿真器验证设计的系统行为。一旦行为设计运行良好,对应的测试台的问题全部解决,就可以通过 Vivado HLS Synthesis 运行设计,生成 RTL 设计,代码可以是 Verilog,也可以是 VHDL。(这个功能很强大,让工程师可以从不同语言层面检查设计,类似Dreamwaver网页设计工具那样方便),有了 RTL 后,随即可以执行设计的 Verilog 或 VHDL 仿真,或使用工具的 C封装器技术创建 SystemC 版本。然后可以进行System C架构级仿真,进一步根据之前创建的 C 测试平台,验证设计的架构行为和功能。
Vivado HLS 工具可以通过各种方式执行各种功能
设计固化后,就可以通过 Vivado 设计套件的物理实现流程来运行设计,将设计编程到器件上,在硬件中运行和/或使用 IP 封装器将设计转为可重用的 IP。随后使用 IP 集成器将 IP 集成到设计中,或在系统生成器 (System Generator) 中运行 IP。


在实际演示中,我们注意到,Vivado 设计套件自动讲C语言中串行执行的操作变为并行执行,这大大提升了C to FPGA的执行效率,这是赛灵思收购的AutoESL公司的核心技术。

除了 Vivado HLS,公司还为该套件新开发了一种同时支持 Verilog 和 VHDL 的混合语言仿真器。只需要单击鼠标,用户就可以启动行为仿真,然后从集成波形查看器中查看结果。通过采用最新性能优化的仿真内核,可加速行为级仿真速度,执行速度比赛灵思 ISE 设计套件仿真器快三倍。采用硬件协仿真,门级仿真速度则可加快 100 倍。

供货情况

汤立人指出,目前Vivado 设计套件只支持赛灵思7系列FPGA,另外ISE 项目浏览器和 PlanAhead 项目能移植到 Vivado IDE,但 Vivado 项目无法移植到 PlanAhead。“华为公司已经在使用我们的工具,并且给予了非常积极正面的评价。”他强调。

据介绍,与之前赛灵思ISE 设计套件针对不同类型设计者(逻辑,嵌入式, DSP和系统)所发行的四个版本, 赛灵思将推出Vivado 设计套件的两个版本。其中, Vivado 基础设计版本包括新型IP 工具和Vivado的综合-比特流流程。而 Vivado 系统版本则包括设计版本的所有工具、系统生成器和赛灵思的最新 Vivado HLS 工具。
Vivado 设计套件版本信息
Vivado 设计套件版本信息
预计在2012年5月,将推出免费的webpack版本,工程师可以登录赛灵思网站 www.xilinx.com/design-tools 免费下载。


从28nm FPGA到嵌入ARM Cortex-A9双核的Zynq7000器件到采用2.5D封装的virtex-7 2000T器件,再到如见的Vivado设计套件,赛灵思一直在扮演引领者的角色,随着Vivado设计套件的推出,赛灵思的口号也随之更新为“All Programmable”,一个新的时代来临了,设计工程师们,你们准备好了吗?