×
嵌入式开发 > 详情

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

发布时间:2020-06-30 发布时间:
|

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 事务级建模中,可以有效地对软件部分进行描述,结合其进行协同仿真。所以,对所设计的系统使用事务级模型进行仿真时,不仅系统架构可以找到系统级的瓶颈并能有效解决,而且软件开发者也可以评估软件的运行吞吐量,同时也可以研究在系统背景下软件和硬件模型之间的交互。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RIOS实验室联手Imagination.共同助力RISC-V生态发展