SoC设计之虚拟原型技术详解
扫描二维码
随时随地手机看文章
摘要
近期SoC的开发使虚拟原型对于软件和模型开发人员都更易于使用。本文阐述了虚拟原型验证技术将如何帮助数量不断增长的开发团队将更高质量的软件解决方案快速推向市场。
开发复杂的嵌入式系统是一门越来越昂贵的生意。根据研究公司IBS调查结果:系统级芯片(SoC)的开发成本从90纳米的两千万美元飙升到32纳米的接近一亿美元,同时软件开发成为开销增长最快的部分。通常,56%的嵌入式项目会被拖延,因为开发人员要花费将近四分之一的时间来进行测试和除错。此外,软件纠错在许多项目中成为了开发人员面对的一个关键问题,并且被看作是一个项目能否取得成功的最重要的部分。
另一方面,那些较早进入市场的公司则拥可有更高的产量,并且一直保持着大幅度的增长。在一个两年半的开发周期中将软件开发提速缩减7个月的时间,则在产品生命周期中可以额外增加5千万美元的收益(如图2)。
于是,顺理成章的是越来越多的软件团队会欣然接受一些可以帮助他们加速开发周期和编写更高质量代码的技术和流程。然后,当需要抉择时他们可以继续使用这些技术,如董事会会因为对更好的开发人员产品开发工作的赏识而给开发人员一种优势。
在虚拟原型验证解决方案出现在市场上的几年间,软件复杂度的增加以及开发成本的暴增正在驱动着主流用户对其的需求。
什么是虚拟原型?
虚拟原型是被开发系统的快速且具有完整功能的软件模型。因为虚拟原型可以执行未修改的产品代码,工程师不需要等到硬件(芯片或开发板)完成就可以开发软件。相对于传统的方法,这能够为软件开发团队在开发嵌入式系统时带来9~12个月的优势,并且在硬件真正完成时更易于配置系统。一旦硬件得以实现,虚拟原型可被用来调试发现难以查找的问题,为开发过程提供了更多的系统级可见度。
虚拟原型通过结合软件行为与硬件来提供一种平台级视图来加速软件纠错。这种视图使开发人员能够在数小时之内就能够辨识出缺陷的根本原因,而不是数天或数周。开发人员可以设置和重设硬件寄存器的值,停止和启动调试周期,或者在一个特定的、有问题的区域内放大观察,而无需对软件进行大的改变。
因为它们将硬件和软件相连,虚拟原型使设计团队能够更高效地沟通。使用者可以识别和纠正潜在的规格或阐释错误,并在整个硬件上使用各种软件驱动的脚本来验证系统。
虚拟原型还可以通过提升测试覆盖率来提高质量。开发人员可以进行更多的边界测试,更好地理解问题的潜在根本原因,以及通过生成和自动地对软件和硬件进行基于脚本的测试。
易于使用,易于导入
尽管虚拟原型技术被越来越多地采用,一些开发人员仍然坚持他们的观点,即虚拟原型技术很难使用和部署到他们的流程中。但是,业界一直以来都在努力克服这些曾经存在的导入障碍。
快速而准确的事务级模型的出现是成功的虚拟原型的关键。现在许多处理器供应商都发布虚拟模型以实现与其最新的内核的匹配。例如,Synopsys自有的DesignWare 知识产权(IP)库包含了完整的接口IP解决方案,由控制器、物理层(PHY)和验证IP组成,可适应于各种广为使用的协议、模拟IP、嵌入式存储器、逻辑库、处理器内核和子系统。
另一项已落实到位的重要资源是行业性的事务级模型(TLM)列表网站,它被称为TLMCentral。TLMCentral是事务级模型的一个行业性网络门户,可为全行业提供多达970种模型。它为模型开发人员、架构师和软件工程师提供了一条在模型与建模方法上进行合作以及虚拟原型推广方面的途径。TLMCentral为与系统级和软件开发社群相关的新闻、论坛和博客提供了一个集中的基础平台。
最终,通过引入其Virtualizer Development Kit(VDK),Synopsys为软件开发人员将虚拟原型演化成一套现成可用的参考开发工具包。这样可将工具及开发人员熟知的SoC的参考虚拟原型交到软件开发人员的手中,用以测试驱动、扩展和进行定制。
这些资源为开发人员建立模型带来了一个良好的开端,使他们能够为他们的设计填充许多需要使用的已存在的模型,而不必从头开始去创造他们。
改善工具和流程
除了更多样化的可用模型外,更成熟的工具和开发人员环境使专家和新手都可用虚拟原型来实现更高产能。
Synopsys推出的用于生成虚拟原型的工具包Virtualizer的最新版本具备许多增强功能,它们专注于提高生产率和使用方便性。例如,一个新的图形化仿真分析器可使仿真团队更方便地发现并解决仿真瓶颈。
新的模型建立界面简化并自动进行带有新功能的模型的生成,如自动设计规则校验和设计灵敏的设计,可使虚拟原型专家以及那些缺乏经验的新手都提高生产效率。
Virtualizer还可以使用户导入现已有的、采用流行格式IP规范,如IP-XACT、Excel和Word,并通过生成SystemC模型和TLM-2.0总线接口而进一步加速了模型开发。
与软件工具更紧密地集成
各种Virtualizer开发工具包(VDK) 就像一个真实的器件那样运行,并确保了对多核平台的完全控制,也是更早得到器件、增强的除错及易于部署的关键。
与流行的除错程序和安装程序相结合,各种VDK 确保了有效地进行除错和分析。Virtualizer为流行软件除错程序中的各种最新应用程序接口(API)提供了开箱即用的支持,例如Lauterbach的TRACE32系统和ARM的Development Studio 5 (DS-5),这就使得软件开发团队能使用VDK为非侵入性的多核软件调试创建一个强大的集成化环境。
这种集成使工程师在虚拟原型的设计流程中能早早开始软件的开发,而当他们过渡到真实的硬件时无需切换到其它调试工具。
用户关注重点
设计师和开发人员现正在多样化的开发任务中使用虚拟原型。它们包括软件集成、驱动开发、软件移植、操作系统启动、软件测试、硬件验证、SoC 集成和完整的系统验证和测试。
虽然半导体公司一直最早采用虚拟原型技术,主流应用则已经扩展到那些专注于移动、消费电子和汽车的原始设备制造商(OEM)和芯片开发商,以及开发各种工业应用的客户。
成功案例
理光使用了包括Virtualizer在内的多种Synopsys的产品,以加速其专用集成电路(ASIC)和系统级芯片(SoC)的开发。理光的设计规模及复杂度都在不断地增加,同时软件内容也在不断升级,因此自然的契合是采用一种系统级的方法来准确高效地实现他们的设计。采用这种方法的好处包括:
● 通过使用虚拟原型解决方案可加速其嵌入式软件的开发,节省数月时间;
● 除去Synopsys的工具易于与互补性的合作伙伴解决方案实现集成外,还能够在一个仿真器上实现其主处理器与一个图形处理器(GPU)的虚拟原型进行联合仿真;
● Synopsys方案的应用案例多样性,例如建筑勘探、软件开发和硬件性能验证,可提高测试覆盖范围并缩短其设计的上市时间。
“通过使用Virtualizer,我们能在极短的时间段内将整个SoC的设计概述到一个虚拟原型中,以便于很早开始软件开发和硬/软件的集成,”理光公司嵌入式平台开发部的Satoshi Aoki说道,“我们相信Virtualizer是SoC开发中必备的一种工具。”
参考文献:
[1]SoC FPGA Virtual Target: A Virtual Prototyping Application[R/OL]. https://event.on24.com/eventRegistration/prereg/register.jsp?eventid=411154&sessionid=1&key=BA9FA4905D668317AC63A0B1F6DC6277
[2]Synopsys Unveils Virtualizer Development Kits to Accelerate Software Development for ARM big.LITTLE Processing[R/OL]. http://news.synopsys.com/index.php?s=43&item=1011
[3]Virtual prototyping demo:VDK for ARM Cortex-A15 MPCore: Try it Today[R/OL].http://www.synopsys.com/Systems/VirtualPrototyping/Pages/VP-Learn-Experience.aspx
[4]Step On It: How to drive fast on the Autobahn and still arrive safely at your destination.(2012-12-18)[R/OL]. http://blogs.synopsys.com/viewfromtop/
[5] Tools to Build, Distribute and Use Virtual Prototypes and VDKs[R/OL]. http://www.synopsys.com/Systems/VirtualPrototyping/Pages/Virtualizer.aspx