可用于嵌入式软硬件开发和系统架构的虚拟系统原型
扫描二维码
随时随地手机看文章
复杂嵌入式系统已日益普及并成为我们日常生活的一部分。一辆汽车平均包含80个每秒能执行上亿条指令的嵌入式处理器。以一个单独的dsp上以软件方式实现移动调制解调器的配置为例,现在的手机包含2到4个处理器。 然而随着嵌入式系统日益普及,设计危机也逐渐凸现。统计数据显示,近40%的嵌入式系统开发延迟,还有超过9%的开发最终被取消。 这些统计数据的矛头都指向基本工程方法的失败。在传统的开发步骤中,硬件设计要超前软件开发,而嵌入式系统中软件正日益占据关键地位。因而,传统开发步骤在嵌入式系统开发中遭遇失败并不让人意外。何况一个产品的上市时间也越来越短(后文举出的手机开发的例子总开发时间还不到一年),这又给嵌入式系统的开发雪上加霜。很明显,嵌入式设计的方法和工具需要进行一次革命。 也就是说,系统架构、硬件实现和软件实现各阶段之间的关系需要调整,而这种需求恰好正是目前的电子系统级设计(esl)中最受关注的问题。然而,现有的大多数基于esl的方法都只能提供部分解决方案。我们需要的是一套全新的设计模式,一套能够对全系统建模的方法,以促进系统架构研究并实现软硬件协同设计,以允许设计人员从原始设计不断改进,直到最终实现系统。 至今为止,大多数将soc系统级设计自动化为rtl实现的尝试都存在设计精确度和设计生产力不足的缺陷。早期那些力图将c、c++和systemc自动化为硬件建模语言(能将顺序软件语义翻译为基于状态机的并行硬件语言) 的工具,不但要求开发人员创建并维护功能事务级模型的多个“视角”,而且要添加定时还需要更多的“视角”。维护这些“多视角”本身就有问题,而这些视角之间在时序和功能方面的不一致还会导致验证错误。此外,最终将其转为rtl的过程主要仍是一个手工操作的过程。 要使soc设计走出困境,很重要的一点就是让设计师们能够采用一种在系统架构阶段设计的定时精确的高性能系统级模型,然后随着开发人员从架构阶段进入软硬件协同开发和验证阶段,改进而不是丢弃这个模型。尽管暂时还没有一种全自动化的工具链能够实现从系统架构到rtl实现这一系列完整的设计任务,但一些嵌入式设计方案供应商已经开始了成功的尝试,其中一种很有前途的技术就是虚拟系统原型技术。
图1:每个公司一年里启动的项目提前完成,推迟完成,按时完成和取消所占的百分比(平均每个公司启动项目所占百分比)。 虚拟系统原型(vsp)是一种基于软件仿真的电子系统模型,其中可以包含一个或多个处理器、总线、硬件外设,甚至可以包含作为整个系统一部分的机械或模拟子系统模型。但最重要的是,vsp运行的是与真实硬件相同的经过编译和链接的目标代码,因而能够准确预测系统在实际情况下的表现。此外,vsp还是一种周期精确(cycle-accurate)的模型,因此,被设计的系统可以根据对实时性的要求建模。 一旦模型建立,硬件和软件开发就可以同时启动,这样一来,既减少了开发所用的总资源,也缩短了开发周期。 传统的“丢弃式”系统级模型在硬件和软件实现阶段就过时了,而vsp仍可继续用于硬件验证。由于这一优秀的模型是周期精确(cycle-accurate)的,因而rtl实现可以在任何时候换入 (swap in) 。而且,在rtl模型换入后, 为了进行性能分析或者更快地运行更大的软件实体,还可以用原来的高级vsp模型将rtl模型换出。系统级测试范例是作为可执行系统规范的一部分生成的,然后,随着软硬件开发过程的进展,再由上至下地生成结构、模块和单元测试。 最后一点,vsp的升级和分发也很容易。对那些在地域上分布较零散的开发团队而言,通过网络发送软件模型也比运送电路板更简单。这样一来,工程师只有在最后的集成阶段才需要真实的硬件和芯片。而且,由于软硬件开发采用的是同一个虚拟系统原型,因此集成起来也更快和更容易。 虚拟系统原型在无线设计中的应用举例 在单芯片系统的开发中,无线系统设计是最复杂也是竞争最激烈的领域。越来越多领先的无线设计公司开始利用虚拟系统原型技术提高设计生产力、缩短上市时间,并降低风险。以下介绍的无线设计在一块芯片中容纳了两个处理器内核、一个dsp、多级存储器、6种复杂的多层总线结构、一个实时操作系统、超过30个外设,外加超过两百万行代码。这款手机的soc具备gsm控制功能、多媒体功能、二维和三维图形处理功能、相机接口,以及一系列诸如wifi和usb之类的其他接口。
图3:传统的手机设计流程和利用虚拟系统原型的手机设计流程的比较