赛灵思All Programmable抽象化: All Programmable的实现之路
2013-05-27
自计算机计算诞生以来,抽象化与自动化已成为设计团队提高生产力的有力工具。我们细想一下世界上第一台数字计算机ENIAC,这是1946年受美国军方委托开发的项目,被预示为“超级大脑”。它能通过编程执行复杂的运算序列。然而,处理编程问题并将其映射至机器的这个过程十分复杂,通常需要数周才能完成。在纸上完成编程后,需要通过操控计算机的开关和线缆将程序输入ENIAC中,这又需要数天甚至数周时间。然后辅以机器的“单步执行”功能进行验证和调试。
编程抽象化
像1972年Dennis Richie在贝尔实验室开发的C编程语言之类的创新,使实现一种独立于机器但仍允许程序员对各个信息位行为进行控制的高级编程技术成为可能。由于C语言具有强大的功能和高度的灵活性,最初采用汇编代码编写的UNIX操作系统几乎可以直接用C语言进行重写。鉴于与UNIX密切相关,加上C自动编译器的推出,C语言迅速得到推广,1983年美国国家标准协会(ANSI) 对其进行了标准化。
Bjarne Stroustrup 在1978年研究博士论文时就开始研究“C with Classes”,顾名思义就是一种C语言的父集。他的目标是在C语言中加入面向对象的程序设计,同时在不牺牲性能或低级可控性的前提下保持可移植性。1983年,这种语言更名为C++,并新增了一些功能以及更多编译器支持。
硬件抽象化
差不多在相同的时期内,抽象化也正被引入硬件设计方法中。1981年,美国国防部正在开发VHSIC硬件描述语言(VHDL),用以“解决硬件设计生命周期危机”。所提出的要求是:这种语言要具有广泛的描述功能,在任何仿真器上得出的结果应该是相同的,而且要独立于技术和设计方法。
与此同时,Gateway Design Automation公司开发了一种名为Verilog-XL的逻辑仿真器,后来被Cadence Design Systems公司收购。该语言随后向公众推广,使其他从事电子设计自动化(EDA)公司都能够用它构建自动化功能。随着VHDL和Verilog标准化,设计自动化接踵而至。
抽象化推动设计自动化发展
基于标准的自动化
为了满足市场要求,设计团队正在借助软/硬件设计方法,并利用具有不同抽象化层次的异构并行架构来开发“更智能”系统。行业标准与开源社区的推广使抽象化自动化成为可能。就硬件加速而言,IP标准正在孕育着真正的即插即用型IP,并促进IP集成自动化发展,从而有助于提高设计人员的设计生产力。
对于针对赛灵思All Programmable FPGA和SOC设计的开发团队而言,这些抽象化成为了提高设计团队设计生产力的有力工具。Vivado™设计套件配合使用广泛的第三方操作系统、工具和IP核,可加速All Programmable器件的集成与实现。
Vivado设计套件:IP集成器
最新发布的Vivado设计套件提供一种新型IP集成器(IPI),用于实现IP智能集成。IPI提供图形化、脚本编写(Tcl)、生成即保证正确(correct-by-construction)、及以IP和系统为中心的设计开发流程。IPI 建立在Vivado集成设计环境的基础之上,同时具备器件感知与平台感知功能。这种互动环境支持关键IP接口的智能自动连接、IP子系统一键式生成、实时DRC以及接口变更传播功能,而且具备强大的调试功能。
IPI使设计可以通过“生成即保证正确”的方式完成。设计人员能够进行接口级抽象化(interface level of abstraction),并可利用广泛的IP系列。这些IP通过AMBA® AXI4接口提供,存储在一个开放的行业标准IP-XACT库中。
设计团队现在可以使用IPI快速组装复杂的系统。将该工具与其他Vivado功能配合使用,能够确保设计和IP得到正确配置,因此利用VHDL或Verilog语言提高以上抽象化,从而改善生产力。此外,IPI的内置自动化器件驱动程序以及地址映射生成功能可以消除软件开发流程中的手动操作步骤。
ALL PROGRAMMABLE 抽象化与自动化
Vivado设计套件:高层次综合
传统的标准软件抽象化现在也被用于硬件开发。很多开发团队将C和C的派生语言作为硬件开发的建模语言。主要原因有两点:这种方法的验证优势是RTL仿真的100倍;或者,开发团队需要对运行在处理器上的算法进行加速。Vivado高层次综合能使赛灵思All Programmable器件充分满足C、C++和System C规范要求,从而加速IP的创建。Vivado HLS无需手动创建RTL,同时还能提供快速的设计空间探索。由于能够提高生产力和设计重用性,这种工具正在得到广泛应用。
赛灵思通过推出最新的Vivado,为具有行业标准的OpenCV库增添了有效支持。OpenCV可帮助优化运行在处理器(例如Zynq™-7000 All Programmable SoC上的处理)上的智能视频算法移植到基于硬件的加速器上(该加速器可通过IPI快速集成到异构系统中)。凭借Vivado IPI与HLS系统,设计架构师就可以更加快速地实现复杂的异构系统。
VIVADO设计套件自动化
自动化而非指令性的设计流程
根据解决问题的要求不同,开发团队也会采用基于模型的抽象化。基于模型的流程可提供一系列面向智能视觉、智能网络应用及其它应用的丰富模型库。设计团队可以开发并改善算法,在更高的抽象化级别上充分满足系统要求,且无需担心具体的实现细节。然后,基于模型的流程会自动从算法模型中生成用于处理器的C代码以及RTL代码。赛灵思与MathWorks®和National Instruments®展开紧密合作,以确保为Zynq-7000 AP SoC设计的实现提供高度自动化和无缝的流程。
要想充分发挥All Programmable设计的优势,主要取决于自动化水平和高层次的抽象化。今天,赛灵思率先推出各种设计方法,能充分应对上述挑战。赛灵思与其生态系统的联盟成员共同开发并推出直观的智能标准化设计流程,可支持开发工作实现自动化(而非指令化),从而在确保性能、功耗或成本优势的前提下灵活地满足开发团队的需求。
未来的自动化:助力软件和系统设计师
赛灵思致力于提供一款系统级异构并行的编程环境,可灵活地利用C/C++等熟悉的当前抽象化技术,并不断扩展到包括开放计算语言(OpenCL)(基于Eclipse的综合软件开发环境)在内的最新抽象化技术。这种环境可提供特定市场的库,能够通过采用赛灵思All Programmable器件显著提高异构系统的验证效率,并且理想适用于助力采用并行架构的系统架构师、软件应用开发人员以及嵌入式设计人员,从而提高系统性能,降低材料成本和总体功耗,并在开发时间上与ASSP、DSP和GPU保持一致。
系统级抽象化与自动化