您当前的位置:五五电子网电子知识单片机-工控设备EDA/PLD技术基于ESL并采用System C和System Verilog的SoC设计流程 正文
基于ESL并采用System C和System Verilog的SoC设计流程

基于ESL并采用System C和System Verilog的SoC设计流程

点击数:7981 次   录入时间:03-04 11:57:07   整理:http://www.55dianzi.com   EDA/PLD技术

     ESL解决方案的目标在于提供让设计人员能够在一种抽象层次上对芯片进行描述和分析的工具和方法,在这种抽象层次上,设计人员可以对芯片特性进行功能性的描述,而没有必要求助于硬件(RTL)实现的具体细节。

        当今,芯片设计需要进行深入的系统级仿真,以确保设计的体系架构合适均衡。在绝大多数情况下,所进行的这些仿真还要求在芯片的仿真模型上运行大量的软件, 以覆盖所需的功能。为了让这些仿真具有合适的执行性能,架构设计正在向电子系统级(ESL)解决方案发展。本文探讨了一种基于SystEMC和 SystemVerilog的设计流程如何满足极为复杂的硬/软件系统级芯片(SoC)的设计周期和降低风险的目标。

      复杂性催生ESL方法学

为了探讨ESL在设计流程中的作用,我们首先看一下当今的主要设计原则。下面的图1所示是一个十分典型的芯片。目前,这类SoC的一大部分是采用IP 模块进行组装的。这些模块部分来源于以前的设计,其它是从内部IP库获取的,或者是由外部IP提供商所许可使用的。当然,SoC中还包含了需要重新创建以 加入关键性功能的模块。

典型Soc的关键部分和结构

   
据普遍预计,对于下一代90纳米和65纳米

    新兴的SoC设计流程

    设计而言, IP的使用将进一步增加。SoC还将包含多个可编程部件,例如中央处理器(CPU)和数字信号处理器(DSP)。有了这些部件和众多的(甚至更大的)IP 模块,为了SoC设计的成功,在性能、功耗和芯片制造成本之间通过快速组装、仿真和分析各项体系结构方案寻求最佳平衡的能力正在变得越来越关键。

    除了硬件设计任务以外,软件设计任务也正在成为SoC设计流程中一个不可或缺的组成部分。传统上,软件设计任务标准情况下只在芯片的硬件原型已经提供 后才执行。例如,在无线领域,这种方式经常导致产品推出时间计划的延迟,原因是“软件尚未完成”。为了解决这个问题,一种“虚拟原型”的概念出现了。虚拟 原型是目标芯片的一种高速(20MHz以上)事务处理级模型,这个模型让软件开发工作在硬件原型完成前数个月前就可以开始了。

    图2所描述的设计流程有利于引导SoC开发人员尽力解决这些难题。这一设计流程以ESL流程为起点,包含三项紧密相关的行动——产品规格确定、体系架 构设计以及软件执行平台的开发。这个ESL流程的一项关键要求是它催生了一种硬件和软件并行开发的流程,为需要设计的新逻辑模块提供了详尽的规格,并提供 事务处理级的虚拟原型,而软件开发任务就可以在这一原型上执行。

典型Soc的新兴设计流程

   
ESL阶段之后是RTL设计/验证和软件开发任务的并行执行,这样在创建了硬件原型(要求提供RTL)的同时,也能够提供必需的软件。

与此类似,在芯片物理设计完成,代工厂即将交货之时,绝大多数或全部的所需软件均已经准备好并经过验证,从而确保大幅缩短最后的硬件/软件集成阶段。

      事务处理级建模——ESL的关键

    事务处理级建模提供了用于构建上述虚拟原型的关键技术。系统的事务处理级模型描述了系统各个功能单元之间的抽象操作(事务处理)。典型情况下,这些事务处理是各个功能单元之间交换的整个的数据结构(或对象)上读取/写入或发送/接收操作。

    事务处理级模型的仿真速度比RTL模型快出若干个数量级。首先,它不对每一个硬件信号的功能进行建模,而是在抽象数据类型(可能代表了许多单个信号) 上操作的模型,从而实质性地加快了仿真的速度。第二,通过使用抽象数据类型来代表RTL内多时钟周期的数据传输,甚至可以让仿真的速度增加更快。因此,将 这些因素结合起来,TLM模型比同等的RTL模型的运行速度快出100倍至1000倍以上都是常见的,这个速度已经快到足以运行相当大的软件。

    当今,在RT上的抽象层次已经十分明确,但TLM尚未达到这样的程度。实际上,适当的TL抽象层次经常取决于应用领域和运行仿真的首要目的。某些应用 要求周期上的精确性,例如对具体的高速缓存器特性的分析。而某些应用甚至可能要求在开发流程中与RTL模型建立部分关联,而其它应用(典型为软件开发任 务)只需要功能上的精确度。

    目前,SystEMC和SystemVerilog均得到了广泛应用,并由IEEE和其它工业组织进行了标准化,得到了由各家EDA供应商提供的工具的广泛支持。而将SystemC和SystemVerilog组合起来,能够最大范围地解决可能出现的对事务处理级的建模问题以及满足工程师的偏好,并提供一套从ESL至RTL验证的完整解决方案。

      SystemC

    SystemC是一种灵活的基于对象的结构化建模语言,设计用于对包括TLM在内的多种抽象层级进行建模。SystemC以C++库来实现,其中将并发性结合进传统C++语言框架中。

    虽然SystemC语言相对较新,但SystemC的采用具有重要的意义。原因之一是,在SystemC成为标准以前, 许多公司和大学已经在采用以前的各自专有C/C++库在事务处理级上对系统进行建模。这样,SystemC就向这些设计人员提供了一种实现他们的事务处理 级方法学的工作标准方式,并提供了一种更为便捷的途径交换系统级IP和知识。第二个原因是,SystemC使各种(基于C语言的)工具和仿真器相对较为容 易的集成,例如,集成微处理器核心用的指令集仿真器(ISS),并具备借助C++大量的专家,采用这一语言方便地来加快工作。

    关于SystemC的典型使用情况,根据最近有关SystemC的出版物以及各项调查中得知,例如SystemC用户中的绝大多数正使用这种语言来执行建模(68%)、体系架构开发(68%)、事务处理级建模(56%)和硬件/软件协同仿真(56%)。

    SystemC最初在OSCI(开放SystemC发起组织)中发展而来,它的语言参考手册(LRM)最近已经获批成为IEEE 1666标准(见参考文献[1])。

    SystemVerilog

    SystemVerilog是一种相当新的语言,它建立在Verilog语言的基础上,并新近成为下一代硬件设计和验证的语言。SystemVerilog结合了来自

    Verilog、VHDL、C++的概念,还有验证平台语言和断言语言,也就是说,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起 来。由于拥有这样的概念以及它与Verilog的向上兼容性,使其对于进行当今高度复杂的设计验证的验证工程师具有相当大的吸引力。能够采用 SystemVerilog进行验证的另一项成功因素是方法学手册和架构的更早可用性,例如在SystemVerilog的验证方法手册(VMM)(见参 考文献[2])中所描述的验证平台方法(这一方法是由ARM和Synopsys合作开发的)。

    上述这些特点,以及SystemVerilog是一项得到了所有主要EDA供应商支持的IEEE标准的事实,使得SystemVerilog实质上成为了硬件设计和验证的首选语言。

    SystemC与SystemVerilog特点比较

    就SystemC和SystemVerilog这两种语言而言, SystemC扩展了C++在硬件方面的适用范围,而SystemVerilog扩展了Verilog在基于对象和验证平台方面的适用范围。而这两种语言 均支持诸如信号、事件、接口和面向对象的概念,但每一种语言又均拥有自己明确的应用重点:

    ● SystemC对于体系架构开发编写抽象事务处理级(TL)模型、或执行建模来说最为有效,特别是对于具有很强C++实力的团队和有基于C/C++ IP 集成要求(如处理器仿真器),以及为早期软件开发设计的虚拟原型来说,更是如此。

    ● SystemVerilog对于RTL、抽象模型和先进的验证平台的开发来说最有效率,因为它具备了执行这方面任务所需的基础架构,例如受限制随机激励生成、功能覆盖或断言。

    ● SystemVerilog显然是描述最终的RTL设计本身的首选语言,不仅在于其描述真实硬件和断言的能力,还在于对工具支持方面的考虑。

    这并不意味着每种语言不可以用在不同的应用中。 实际上,SystemC可以用于验证平台和描述RTL结构,而SystemVerilog也可以用于编写高层事务处理级模型。但是,每一种语言都用于自己 的重点应用时,它们可以达到最佳的效率。这点对于复杂的项目特别适用,在这种项目中,不同的任务分属于不同的组,通常有不同的技能要求。注重实效的解决方 案以及符合设计团队的多种技术要求的方法是同时使用SystemC和SystemVerilog来开发和验证当今设计流程需要的虚拟原型的事务处理级模 型。

    集成的仿真环境

    将SystemC和SystemVerilog集成在同一个解决方案中,归根结底是需要提供混合SystemC和SystemVerilog的仿真和 调试环境。这项集成的核心在于能够直接从SystemVerilog任务中调用SystemC成员的能力,反之亦然,可以从SystemC成员中直接调用 SystemVerilog任务。很明显,这样就要求在SystemC和SystemVerilog的时间概念之间达到同步。

[1] [2]  下一页


本文关键字:暂无联系方式EDA/PLD技术单片机-工控设备 - EDA/PLD技术