
电子系统级设计论.doc
11页电子系统级(ESL)设计摘要:电子系统级设计(ESL,Electronic System Level)设计是能够让SOC 设计工程师以紧密耦合方式开发、优化和验证复杂系统架构和嵌入式软件的一套方法学,并提供下游寄存器传输级(RTL)实现的验证基础ESL牵涉到比RTL级别更高层次的电路设计,其基本的关注点在于系统架构的优化、软硬件划分、系统架构原型建模、以及软硬件协同仿真验证SystemC是一种很好的软硬件联合设计语言,它不仅可以帮助设计人员完成一个复杂的系统设计,还可以避免传统设计中的各种弊端,并提高设计效率关键词:电子系统级设计;SOC;SystemC1 引言目前,高质量的电子系统设计变得越来越复杂和困难功能更繁杂的设计需求,更短的上市时间,不断增加的成本压力使这种趋势看起来还在加速从应用概念到硅片实现的过程已经不能仅仅靠工程师聪明的大脑来完成,而更需要依赖于严格完善的设计方法学随着片上系统(SoC,System on Chip)设计复杂度的不断提高,设计前期在系统级别进行软硬件划分对SoC各方面性能的影响日趋增加,迫切需要高效快速性能分析和验证方法学传统的RTL仿真平台不能提供较快的仿真速度与较大的仿真规模,FPGA平台则不能提供详细的性能分析指标,而电子系统级设计(Electronic System Level,ESL)方法,不仅提供高速的仿真验证手段还提供详细的性能分析指标,已经成为当今SoC设计领域最前沿的设计方法,它是能够让SoC设计工程师以紧密耦合方式开发、优化和验证复杂系统架构和嵌入式软件的一套方法学。
电子系统级设计(ESL,Electronic System Level)牵涉到比RTL级别更高层次的电路设计,其基本的关注点在于系统架构的优化、软硬件划分、系统架构原型建模、以及软硬件协同仿真验证全新的ESL工具为电路系统级建模提供了虚拟原型的基本仿真平台电子系统级设计正在从学术研究的课题变成业界广为接受的建模手段,它完成从理想应用优化到目标体系结构建立而后依据预期产量规模的不同,用SoC 芯片或可编程平台实现2 .传统SOC设计方法的局限目前的设计方法不能充分利用设计能力来快速构建满足市场需求的SoC而只有快速适应消费电子市场的变化,商业系统设计公司才能在竞争中胜出这使SoC设计方法的研究具有重要的现实意义目前在技术上,SoC设计面临的主要挑战是在系统建模和硬件设计之间的不连续性通常系统是使用C语言或其他系统描述语言定义的而系统的集成电路实现却使用硬件描述语言,因此导致转换和重写系统的负担这样的流程使得设计过程中容易出错而且耗时验证流程中需要仿真大规模系统,仿真速度难以需满足设计需求HDL模型仿真效率低,需要提高抽象层次SoC系统中的组件具有多样性异质性,包括各个专业的设计,模拟和数字设计等等,需要提供异质的仿真环境以及对系统级设计空间的探索复杂性的管理。
千万门级的规模使得设计本身的管理成为问题深亚微米集成电路中,沿线延迟的增加使时序收敛问题显得更加突出,需要消除前端逻辑设计和后端物理设计的反复返工问题传统的设计重用方法需要适应规模的增长系统设计需要具有竞争力,从基于芯片的设计方法,过渡到基于IP核的设计也是必然趋势虽然可以使用标准接口,但是更理想的办法是分离出通讯部分,使用接口综合技术因此需要设计工具重点面向模块间的通讯和互连,门级和寄存器传输级(RTL)仿真速度太慢,不适合系统设计需要提高设计的抽象层次SoC设计的趋势是向高层抽象移动,更强调芯片级的规划和验证强调早期芯片级规划,以及软硬件系统验证软硬件协同设计方法是SoC设计方法学研究的重要领域主要目的是开发适应设计需求的设计方法和相应的电子设计自动化软件在设计中通常一种技术是不能满足设计要求的,因此要结合研发成本和开发周期等等因素,综合考虑各种技术3. ESL设计的基本概念ESL设计指系统级的设计方法,从算法建模演变而来ESL设计已经演变为嵌入式系统软硬件设计、验证、调试的一种补充方法学在ESL设计中能够实现软硬件的交互和较高层次上的设计抽象ESL设计能够让SoC设计工程师以紧密耦合方式开发、优化和验证复杂系统架构和嵌入式软件,并能够为下游的寄存器传输级(RTL)实现提供验证基础。
ESL设计以抽象方式来描述系统单芯片(SoC)设计在ESL设计中,系统的描述和仿真的速度快,让设计工程师有充裕的时间分析设计内容并且能提供足够精度的虚拟原型,以配合软件的设计ESL设计不仅能应用在设计初期与系统架构规划阶段,亦能支持整个硬件与软件互动设计的流程ESL设计技术与IP模块能将流程融入现有的硬件与软件设计与工具流程,在SoC开发流程中扮演协调统合的角色它们让工程师能开发含有数百万逻辑门与数十万行程序代码的设计,并提供一套理想平台,用来进行验证,满足客户持续成长的需求4. ESL设计的特点ESL设计之所以会受欢迎,主要源于以下五方面功能:功能正确和时钟精确型的执行环境使提前开发软件成为可能,缩短了软硬件集成的时间系统设计更早地和验证流程相结合,能确定工程开发产品的正确性在抽象层设置的约束和参数可以被传递到各种用于设计实现的工具中1)更早地进行软件开发有了虚拟的原型平台意味着可以更早地开始软件开发对于目前基于SystemC语言的ESL设计方法学来说,ESL设计工程师可用SystemC生成一个用来仿真SoC行为的事务级模型由于事务级模型的开发速度比RTL模型要快得多在RTL实现以前,完成TLM建模后的系统就可以开始软件的开发。
这样软件的开发可以和RTL实现同时展开,而不是传统上的在RTL实现完成以后才开始软件的开发虽然部分和硬件实现细节有关的软件要在RTL完成以后才能开始,但还是可以节省大量的开发时间2)更高层次上的硬件设计为了适应不断变化的市场要求,需要不断推出新产品或经过改进的产品在SoC设计中可以通过改进一些模块的性能、增加功能模块或存储器、甚至在体系结构上做出重大的调整因此设计工程师必须拥有可实现的快速硬件设计方法为了实现快速的硬件设计,在ESL设计须建立在较高层次上的抽象如事务级建模(TLM)事务级模型应用于函数调用和数据包传输层传输级模型可以分为事件触发型和时钟精确型,这些模型能够提供比RTL级模型快好几个数量级的仿真速度ESL工具的挑战就是既要保持足够精度的时序信息来帮助设计决策,又要提供足够的仿真速度以满足大型的系统软件(如OS启动)在可接受的时间内的完整运行只要掌握了这种平衡,就可以在高级设计中验证时序和设置约束条件,再将这些优化的设计分割、分配到各个不同的软、硬件设计工作组去加以实现RTL仿真通常只能提供10MIPS到数百MIPS左右的性能;然而,时钟精确型的ESL仿真却能达到100KMIPS到1MMIPS的仿真速度。
3)设计的可配置性和自动生成越来越多的系统强调自己的可配置性,诸如:不同的处理器、不同的总线带宽、不同的存储器容量、无数的外设配置和生成出来的设计必须和验证环境得到的结果完全一致,并延续到整个设计流程中通过ESL模型,结构设计师能够找到最好的配置方案但是,这样产生出来的结果需要和一套骨架的验证环境同步到设计实现中去如ARM已经实现了从RealView SoC Designer ESL环境中自动导入SynopsysDesignWare coreAssembler SoC的集成和综合流程,并且可以从coreAssembler或Mentor Graphics公司的Platform Express中启动ARM PL300 AXI可配置互联生成器,来生成AXI总线系统4)方便的架构设计ESL架构设计能完成功能到运算引擎的映射这里的引擎指的是那些可编程的目标——如处理器、可配置的DSP协处理器,或者是特殊的硬件模块如UART外设、互连系统和存储器结构这是系统设计的开始环节,从行为上划分系统,验证各种配置选择的可行性及优化程度ESL工具对于开发可配置结构体系是非常关键的它使系统结构从抽象的行为级很容易地映射到具体的硬件设计,从而方便决定哪些模块可以被复用,哪些新模块需要设计。
还能提供必要信息指导最优化的通讯、调度和仲裁机制5)快速测试和验证由于ESL设计中的抽象级别明显高于RTL设计抽象级别,ESL设计中可以做到描述模块内的电路状态、精确到纳秒的转换以及精确到位的总线行为相比使用RTL,使用周期精确的事务级模型将使硬件验证和硬件/软件协同验证速度快1000倍或者更多这种方法不仅可产生用于验证系统行为,它还支持与较低抽象级别的RTL模型的协同仿真如果ESL设计抽象级别被当作一个测试台的话,当下游的RTL实现模块可用时,它们便可在这个测试台上进行验证系统级的HW/SW协同验证要优于C/RTL实现级的HW/SW协同验证因为在系统级的验证可以在较早的展开,而不必等到底层的实现完成后才开始在底层实现没有开始前的协同验证可以及时修改体系结构或软硬件划分中的不合理因素越高层次上的验证,可以越大程度上减少修改设计带来的损失5.ESL设计方法ESL作为一种先进的设计方法学,能够用于硬件的功能建模与体系结构的探察,给硬件架构设计人员提供准确可靠的设计依据,因此在本章的内容里将将详细介绍ESL设计的基本流程与ESL的核心方法—利用SystemC实现事务级建模的基本理念首先要指出的是在设计的哪个阶段使用ESL设计方法和ESL设计工具。
每一个电子产品的设计过程以某一种形式的顶层定义开始这个定义过程可以以文本的形式描述,也可以用图表、状态图、算法描述,或者利用工具如MATLAB等描述ESL设计并不是定位在这个层次上的设计而是通过描述系统怎样工作,并为进一步的实现提供一个解决方案ESL设计成为系统和更加底层设计之间的桥梁ESL设计包括功能设计和体系结构设计两大领域系统的行为由功能模块实现,功能模块设计必须关注系统的应用功能设计不考虑硬件和软件,物理和工艺功能设计包括实现功能模块结构、模块之间的通信和它们的基本行为在ESL中一个硬件功能模块的设计包括定义正确的功能,确定输入和输出,划分子模块,确定子模块的结构、数据流和控制逻辑,还要为其模块建立测试环境这个设计过程和RTL的设计流程相似,但他们在不同的抽象层次上,使用不同的设计语言,例如,在ESL的功能模块建模过程中使用SystemC或SystemVerilog,而RTL级建模则使用Verilog或者VHDL体系结构设计首先要建立平台的描述接着将应用的功能部件影射到平台验证体系结构模型,并根据成本和性能优化这个结构在体系结构设计中需要考虑处理器的类型、处理器的数量、存储器的大小、Cache性能、总线互联和占用率、软件和硬件的功能划分和评估、功耗的评估和优化等。
首先ESL接受一个设计定义的输入,这个定义可以是文本、图表、算法或者是某种描述语言如UML,SLD,MATLAB等的描述对于这个输入的定义,在ESL设计完成算法的开发,接口定义,用ESL语言或其他语言来描述来完成体系结构的设计并在此基础上完成软硬件的划分完成软硬件划分后,可以开始软件和硬件的设计在硬件设计中,对于功能单元需要在较高层次上的建模,完成功能设计比如说用SystemC进行事务级的建模用C/C++或其他高级语言完成应用软件的设计在这个阶段开始软硬件的协同验证,根据协同验证的结果反馈给体系结构和软硬件划分后者根据性能、成本等因素重新做出调整软硬件的设计和验证,包括软硬件的协同验证是一个重复的过程,在整个设计过程中都要根据验证的结果对体统和设计做出调整完成验证的硬件和软件设计就可以组成一个完整地系统级设计传递给下一级的设计作为输入比如说是ESL设计为软件应用提供C或C++语言描述的程序为定制电路提供Verilog或。












