0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SystemC的系统级建模和验证流程

牵手一起梦 来源:计算机辅助设计与图形学 作者:童琨,边计年 2020-10-04 14:36 次阅读

1 系统级设计与验证简介

片上电子系统的速度和复杂度的不断提高不仅使得底层的设计实现易于出问题,而且顶层的系统架构、通讯机制、软硬件划分等都可能使系统的功能、性能或成本、开发周期等指标不满足要求。一旦在底层的实现阶段发现了这种顶层的设计问题,会有大量的设计工作重新进行;此外,工程师对设计规格的理解偏差,或设计规格本身的不完整及二义性也是造成设计错误的原因之一;底层硬件的设计在验证时需要大量的输入激励和检验响应,在信号级完成这样的工作不但速度很慢而且容易遗漏。

由于电子系统中相当部分的工作是由软件完成,所以必须确保在应用环境下软硬件能够正确地协同工作。以前软件中依赖于硬件的部分通常要等到样机加工好后才能调试,使得嵌入式软件的完整验证只能在系统设计周期的后端进行,此时发现的设计错误通常要花费较高的修改代价,特别是那些牵涉到软硬件划分等系统层次的问题。

所有这些都要求我们用跟以往大不相同的方式看待电子系统的设计流程:设计规格必须用形式化的、语法严格且语义明确的高级语言描述;从系统的顶层到底层的每一适当的抽象层次都采用合适的高级语言建立相应的模型;每一层次的模型都要进行验证,并可作为下一层次系统模型的参考模型和子模块的测试平台。如此,便可形成一系列可执行的设计规格( Executable Specification ),并将验证工作左移到系统设计的早期阶段,从而达到消除设计规格的歧义性和及早发现较高层次的设计错误的目的。

目前国际上已普遍做到用高级语言来进行系统的规格描述和底层实现,从而形成从系统顶层到底层的一系列可验证的模型;软件与硬件的相互验证不必等到实物样机加工好再进行,而是与硬件的RTL模型联合仿真。其存在的主要问题有:顶层设计如算法等用的是传统的软件高级语言C++、Fortran等,而底层的硬件设计用的是硬件描述语言VHDL、Verilog,这样造成整个设计和验证流程不够顺畅,各层次之间难以做到无缝连接;对于更复杂或运算量非常大的系统,验证的速度尤其是软硬件联合仿真的速度太慢,难以进行有效的验证。上述问题的解决方法是:规定软硬件设计和验证统一的高级描述语言;规范抽象方式和级别,特别是在RTL之上规范硬件平台的建模方法。

国际上EDA界经过几年的发展与讨论,公认最有前途成为电子系统设计与验证统一语言的就是SystemC,它是在C++的基础上加上一套适合于硬件描述的模板库和仿真内核构成,并不断地扩充进有望成为标准的附加库,如验证库SCV、事务级建模库TLM API等。

在基于SystemC的系统级建模和验证流程中,首先在顶层建立较高抽象级的模型,主要用于完成系统控制与算法的设计分析,进行物理架构的功能性能的设计分析。通过建立系统级的抽象模型,执行仿真分析和评估给出量化的指标,从而对系统级的功能性能作出正确的设计,并在此基础上进行软硬件模块划分。

2 模型层次

为便于后面叙述的方便,这里先简要介绍一下系统建模的几种抽象方式和应用类型。

抽象方式可分为:

非定时功能UTF(UnTimed Functional):可用于模型的接口和内部功能,进程的执行和数据传输都不耗费时间, 时间只可能作为定序机制而使用。

定时功能TF(Timed Functional):可用于模型的接口和内部功能,进程的执行和数据传输都都分配了有限的时间。

总线周期精确BCA(Bus Cycle Accurate):仅用于模型的接口,而非内部功能,定时精确到时钟周期,通常与系统时钟相关,不引入管脚级的细节,信息传输通常以事务的方式建模。

管脚周期精确PCA(Pin Cycle Accurate):仅用于模型的接口,而非内部功能,定时精确到时钟周期,通常与系统时钟相关,描述精确到管脚级。

寄存器传输精确RT(Register Transfer accurate):同时用于模型的接口和内部功能,所有的事情都被安排了时间,时钟用于同步,需要做完整的详细的功能说明,每个寄存器、每条总线、每一位在每个周期的行为都有描述,能够直接被逻辑综合器综合成硬件实现,等同于RTL模型。

应用类型可分为:

系统架构模型SAM(System Architectural Model):是系统的一份不含时间信息的可执行规格,描述系统的硬件和软件成分。模型接口用不含管脚细节的UTF方式,通常描述通讯协议;模型功能也用UTF方式,行为用算法来建模,且主要以顺序方式描述。此种模型主要用于架构探索和算法验证。

系统性能模型SPM(System Performance Model):是系统的一份含时间信息的可执行规格,描述系统的硬件和软件成分。模型接口用不含管脚细节的UTF或TF方式,通常描述通讯协议,通讯行为可以是定时的但不一定达到周期精确;模型功能可用TF或UTF方式,行为用算法来建模,顺序或并发方式都可以采用,定时不是周期精确的。此种模型主要用于高层次性能建模和时间预算。

事务级模型TLM(Transaction Level Model):用于建模可执行的平台,通常只描述硬件。模型接口用不含管脚细节的TF方式,可以是也可以不是周期精确的,数据传输用事务方式建模;模型功能用TF方式,但不必是周期精确的。

功能模型(Functional Model):指抽象级别在TLM之上的模型,包括SAM和SPM。

系统级模型(System Level Model):指抽象级别在RTL之上的模型,包括SAM、SPM和TLM。

3 事务级建模方法TLM

事务级建模方法TLM(Transaction Level Modeling)是为了解决以下问题而发展起来的,这些问题包括提供软件开发的早期平台;系统架构探索与验证;系统级模型在模块级验证中的应用。它用于建模可执行的平台,通常只描述硬件。

所谓事务,一方面指把低层次的信息传输组合成的较高级别的传输,比如把读写一大块数据作为一个事务,它包含总线上的若干次突发传输,每个突发传输又会包含地址连续的多个数据传输;另一方面指不牵涉具体的信号,而是把传输中涉及到的信息分类作为整体表示。事务级建模方法把模块的功能和模块间的通讯分开建模,模块间通讯用事务来表示,接口用不含管脚细节的TF方式,功能也用TF方式,是否周期精确根据需要而定。通过提高抽象级别,并把分散在各模块中的通讯协议处理功能集成在专门的通讯模块中完成,极大地加快了系统仿真的速度。

软件工程师可以使用处理器指令集仿真器ISS(Instruction Set Simulator)来测试程序,ISS使用总线事务访问外部设备,总线事务通过总线功能模型连接到硬件模型,从而使软硬件测试过程无缝连接。以前的总线功能模型是PCA,相应的硬件模型是RTL,导致仿真速度很慢, 现在通过使用事务作为内部模块间通信的方式,总线功能模型是BCA,相应的硬件模型是TLM,软件模型、硬件模型和测试平台可以在较高的抽象级连接成整体,仿真速度快100倍以上,并可在设计周期中更早的阶段与ISS一起作为软件运行的平台。具体可见示意图1。

在TLM级实现可执行的规格有助于进行系统架构的性能分析,探索不同的架构方案;为RTL设计提供参考模型和验证平台;可以作为软件开发的平台,优化软硬件划分方案。所以事务级的系统硬件可执行规格又称为可执行平台EP( Executable Platform )。它是架构精确的,为软件开发和模块级的验证提供一个快速全功能的环境。当EP作为底层RTL模块的测试平台时,需要将相应的TLM模块替换为目标RTL模块与transactor的组合,transactor是SystemC的术语,作用是将一种抽象级的接口转换为另一种抽象级的接口。

基于SystemC的系统级建模和验证流程

图1 由TLM构成的可执行平台

由于高层模型(如算法模型)的仿真速度通常要比低一层的模型快10倍或更多,同时高层模型可重用为低层次设计的参考模型,高层的可执行规格可作为低层设计模块的验证平台,因此经常需要将不同层次的模型混合仿真。把高层模型的对外接口用transactor形式转换成低层模型的接口,就可以连接到整个系统上。

4 总结

系统级设计和验证包括从系统规格开始的设计输入、架构评估、功能验证、多层次多语言混合验证、软硬件协同开发及验证等高抽象度的描述方法和验证技术。

SystemC作为一种适用于多层次建模和仿真的高级语言,已被广泛应用于系统级设计和验证的多个领域,为研究不同的系统结构、进行算法评估、软硬件任务划分和软件开发提供了有效的方法。它能使整个团队使用一种语言来灵活地组合不同的抽象层次,使设计者优化系统的设计和验证流程。

事务级模型(TLM)与寄存器传输级(RTL)模型相比较,是在更高抽象级别上对系统硬件建模,在结构级的组件上交换数据或执行事件。事务级描述抽象度较高,比RTL容易开发,这样在设计早期就可得到系统的硬件模型;TLM比相应的RTL模型仿真速度快100倍以上,在TLM级的平台上可以很快地运行软件,非常适合于架构和性能分析、早期的软硬件协同验证。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8496

    浏览量

    150826
  • eda
    eda
    +关注

    关注

    71

    文章

    2708

    浏览量

    172864
收藏 人收藏

    评论

    相关推荐

    SystemC的随机验证过程是怎样的?

    SystemC是基于C++的系统设计语言,兼具描述硬件电路模型和面向对象的抽象能力。
    的头像 发表于 08-07 09:43 896次阅读
    <b class='flag-5'>SystemC</b>的随机<b class='flag-5'>验证</b>过程是怎样的?

    关于功能验证、时序验证、形式验证、时序建模的论文

    随着集成电路的规模和复杂度不断增大,验证的作用越来越重要。要在较短的时间内保证芯片最终能正常工作,需要将各种验证方法相结合,全面充分地验证整个系统。FF-DX是一款高性能定点DSP,为
    发表于 12-07 17:40

    如何在ModelSim下用SystemC的做验证

    如何在ModelSim下编译和仿真SystemC的设计?如何在ModelSim下用SystemC的做验证SystemC作为一种系统
    发表于 03-01 11:30

    请问数字电路的系统设计验证工具及流程

    群主好,我想请教数字电路的系统设计验证工具及流程?即系统工程师常用的硬件描述语言,系统验证工具
    发表于 09-05 15:11

    如何基于uvm方法学采用systemc进行IC验证?

    请教各位大佬,UVM是基于sv的验证方法学,如果采用systemc语言编程,如何实现?
    发表于 11-07 15:30

    硬件验证语言——简介

    建模语言。 SystemC 应用于系统建模、架构探索、性能
    发表于 02-16 13:36

    SystemC进行SoC的系统设计与仿真

    IC 技术已发展到SoC 阶段,系统设计、仿真和验证已成为IC 设计面临的巨大挑战。SystemC 是新兴的系统
    发表于 05-18 13:44 28次下载

    基于SystemC事务建模仿真研究

    事务(Transaction-Level,TL)建模SystemC 中提出的一种新型高层次建模方法,以CoCentric System Studio(CCSS)作为
    发表于 07-30 15:27 24次下载

    基于SystemC系统验证研究和应用

    视频编解码芯片中运动估计与补偿单元(MECU)的算法复杂,使用传统硬件描述语言建立模型和模型验证的过程繁琐耗时,为了缩短芯片验证时间,本文针对MECU模块提出了基于SystemC语言
    发表于 02-24 12:07 16次下载

    数字专用集成电路设计中的SystemC建模验证方法

    数字专用集成电路设计中的SystemC建模验证方法
    发表于 07-17 16:36 31次下载

    利用基于SystemC/TLM的方法学进行IP开发和FPGA

    利用基于SystemC/TLM的方法学进行IP开发和FPGA建模 随着系统芯片技术的出现,设计规模正变得越来越大,因而变得非常复杂,同时上市时间也变得更加苛刻。通常RTL已
    发表于 01-04 13:11 5376次阅读
    利用基于<b class='flag-5'>SystemC</b>/TLM的方法学进行IP开发和FPGA

    片上网络的SystemC建模研究

    为了实现软硬件协同设计和提高仿真速度的需求,采用SystemC语言的建模方法,通过对片上网络体系结构的研究,提出了一种片上网络的建模方案,并对一个mesh结构完成了SystemC
    发表于 07-30 11:46 42次下载
    片上网络的<b class='flag-5'>SystemC</b><b class='flag-5'>建模</b>研究

    SystemC验证方法和流程介绍

    SystemC 是由C++衍生而来,本质是在C++的基础上添加了硬件扩展库和仿真核,这使SystemC 可以在不同抽象对复杂电子系统建模
    发表于 07-19 11:55 5021次阅读
    <b class='flag-5'>SystemC</b> 的<b class='flag-5'>验证</b>方法和<b class='flag-5'>流程</b>介绍

    采用SystemC ESL设计的九个理由

    支持SystemC的电子系统(ESL)设计和验证环境旨在设计,分析,优化和验证片上系统(SoC
    的头像 发表于 10-03 17:05 5093次阅读

    ESL设计的核心——事务建模介绍

    关于ESL的描述更多侧重于它在方法学上的抽象描述,实现ESL设计的核心是事务建模(TLM,Transaction Level Modeling)。 要实现ESL的设计流程,包括系统
    的头像 发表于 11-02 14:38 1301次阅读