微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AMBA架构的SoC系统事务级建模

基于AMBA架构的SoC系统事务级建模

时间:11-21 来源:互联网 点击:

  1.引言

随着集成电路制造技术的发展,VLSI 已经进入了SoC(System-on-Chip )片上系统时代。对于复杂的片上系统而言,系统验证占整个设计时间的60%-70%,其中涉及到软件与硬件的协同工作等等。传统的系统验证在RTL 级进行,RTL 提供更精确接近实现的同时,也加长了验证时间以及此时发现问题再修改带来的成本增加,所以非常有必要地在尽可能早地进行有效的系统验证。

SystemC 作为一种系统描述语言应运而生,它支持从系统级到门级的描述,解决了传统片上系统设计方法中不同级别使用不同描述语言带来的过渡问题,而其事务级(TransacTIon-Level,TL)建模仿真方法可以在早期有效地进行系统验证,同时速度较RTL 级仿真更快。

目前,事务级建模得到广泛的使用和认同,Synopsys 公司现已提供关于AMBA 架构的事务级模型,以供进行由AMBA 架构组成的SoC 系统的事务级建模仿真所用。

  2.SystemC 事务级建模

SystemC 由C++衍生而来,在C++基础上添加硬件扩展库和仿真库构成,从而使SystemC 可以建模不同抽象级别的包括软件和硬件的复杂电子系统,既可以描述纯功能模型和系统体系结构,也可以描述软硬件的具体实现。

在使用SystemC 进行高层次建模时,引出一个新的概念——TLM(Transaction-Level Model )事务级模型,该建模方法创建一可执行平台模型,对系统进行仿真,但其不仅仅是功能级描述,仿真也具有一定时序。

事务级模型建模因不考虑很多底层细节,所以进行建模时间短,并且可以将重点放在如何通信,而不是通信在更底层如何实现;事务级建模可以使用事件驱动,由一事件可以驱动一系列行为,因此建模可以在早期进行。所以,SystemC 事务级模型具有建模效率高和仿真速度快的优点。另外,SystemC 事务级建模作为高层次建模方法,还具有如下特点:

–模型之间依靠时钟和(动态)事件同步;

–模型内部是周期精确的;

–模块pin 没有明确进行建模实现,但可通过适配器外部实现;

–模块之间通过端口(port)和层次化通道(hierarchy channel )进行通信。

上述特点描述中,端口(port)和层次化通道(hierarchy channel )概念为SystemC 事务级建模引入的新概念:

. 接口(inteRFace):定义一组方法来实现设计目标,但不实现这些方法;

. 通道(channel): 实现接口定义的方法;根据通道内部所实现方法的情况,又分为基本 通道和层次化通道;基本通道中没有可见的结构,不包括进程,也不能直接访问其他的基本通道;层次化通道则包括模块、进程等,可以直接访问其他的通道;

. 端口(port):总是与一定的接口类型相关联,端口也只能连接到实现了该类接口的通道上,通过端口模块和进程来访问通道内定义的接口方法; 通过接口又引出接口方法调用(interface-method-call,IMC) 的概念,是指一个进程通过端口调用通道内实现的接口方法。方法在接口中定义,在通道内实现,但在进程内执行。基于以上概念,提出一种事务级建模思想:

①设备若仅作为被访问者,如存储器、FIFO 等,那么只需要定义接口,以备被访问,实现接口方法,此设备作为基本通道存在;

②设备若仅作为访问者,如CPU,那么只需要定义端口,来访问其他设备;

③设备若既可作为访问者和被访问者,如总线,那么它就需要同时定义端口和接口,同时也要实现接口,这也就是层次化通道,接口用来被访问,端口用来发起访问。

对于SoC 设计而言,事务级建模属于架构型设计。在架构的事务级建模中,模块在共享的通信通道(如总线)彼此进行交易。同时在进行系统的SystemC 事务级建模中,可以有效地对软件部分进行描述,结合其进行协同仿真。所以,对所设计的系统使用事务级模型进行仿真时,不仅系统架构可以找到系统级的瓶颈并能有效解决,而且软件开发者也可以评估软件的运行吞吐量,同时也可以研究在系统背景下软件和硬件模型之间的交互。

3.CoCentric System Studio(CCSS)内事务级建模仿真

CCSS 是Synopsys 公司提供的一SystemC 仿真平台,支持使用完全事务级模型进行设计、分析、调试验证SoC 架构。

事务级仿真中,对于源代码的调试,CCSS 内嵌调试软件DDD。使用事务级模型组建系统,在编译之后的系统仿真中,当系统工作运行到将要调试的特定模块部分,则可以将该模块部分调入DDD,进行普通设置断点的调试,显示该模块的执行情况以及对系统的影响。对于系统中整体特定模块而言,可以在实例上设置断点、在连线上设置数据监控点(data watch point)、在端口和参数上设置层次监控点(level watch point)。仿真进行时,仿真控制面板上的Leve

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top