基于混合建模的SoC软硬件协同验证平台研究

时间:2009-06-30来源:网络

验证平台软件部分中最重要的模型是CPU的ISS(Instlruction Set Simulator,指令集仿真器),用来模拟SoC系统中的CPU,可以提供软件代码执行时周期准确的仿真结果。平台中使用的是ARM系列CPU的ISS,称为ARMulator。ARMulator也是ARM CPU软件集成开发环境的直接载体,SoC的软件开发人员可以在基于AR-Mulator’的集成开发环境中运行、调试源代码,与其在真实的CPU上的运行调试完全相同。其他的总线模型,如图中所示的IP3、IP4,用来描述SoC硬件系统中除CPU之外的一些模块,最好都是SystemC语言描述的事务级模型。事务级模型是RTL级硬件模型的抽象,省略了RTL级的实现细节,但是仍然以周期数精确等方式反映了RTL级模型的特点,是设计初期系统建模的常用选择。不过考虑到验证环境的通用性,再加上ARMulator本身也并不是SystemC语言的模型,而是基于C的功能性模型,验证环境自然需要同时支持事务级模型与功能性模型,因此,验证平台也支持其他总线模块以C/C++等语言描述的功能级模型。这些模型与ARMulator都连接到AHB总线的模型上,如图1中IP3、IP4所示,AHB总线模型负责完成ARMulator。与软件方各总线模型间,以及与硬件方之间的连接。
验证平台硬件部分的物理载体是以FPGA为主的PCB板卡,以PCI总线为物理通道连接到PC机。SoC硬件系统中RTL模型形式的总线模块全部下载到FPGA内部,如图1中的IPl、IP2。由于FPGA内模块的RTL模型与CPU之间的总线通信数据可以在软件方得到良好的可观测性,对于以验证总线模块间通信正确性为目的的系统级验证来说,模块间通信数据的可观测性是足够的,这也就部分避免了硬件建模方法观测性不足的缺点。
因为软件方的模型抽象层次比硬件方RTL模型的抽象层次高,所以要想把软件方模型和硬件方模型组合起来形成可用的SoC硬件系统,就必须完成这两种抽象层次之间的数据同步和交换,这个任务是BFM完成的。BFM的具体实现将在后面详细阐述。总体的效果是,在软件方模型看来,BFM代表了硬件上的RTL模型,对软件方隐藏了RTL模型的实现细节,软件方只需要访问BFM,就得到了相应模块的数据;而在硬件方模型看来,BFM代表了软件方的所有总线模块,BFM驱动的RTL级总线信号就是由软件方中各总线模块的总线访问转化而来的。
硬件方与软件方接口的实现,以PCI总线为基础,遵守SCE-MI(Standard C-Emulation Modeling Interface)协议。SCE-MI是.Accellera组织提出的用于规范协同仿效平台中软件方与硬件方之间的接口的协议,是业界实际的标准,目前已被多个商业化验证平台支持。本验证平台的BFM遵守SCE-MI协议接口,也是为了验证平台以及BFM本身的通用性。
如上所述,通过BFM的层次转接作用,软件方模型和硬件方模型得以完成连接,不同抽象层次的模型共同构成了SoC的硬件系统;而SoC的软件则可以以此硬件系统为基础,得到实际的运行和调试,最终建立起了混合建模的软硬件协同验证环境。
2.2 以平台为基础的验证流程
基于上述验证平台,混合建模方法的流程如图2所示。在系统级仿真和软硬件划分之后,开始软件和硬件的并行设计,同时开始软硬件协同验证。协同验证过程可以分为三个阶段。在最初的验证阶段中,SoC硬件系统全部由软件方的模型建模。随后的阶段,开始完成硬件系统中高层模型中IP模块的逐个细化,此时,完成了RTL模块开发的IP可从软件建模部分移到硬件建模部分的FPGA中,还未开发出的模块,或是未完成配置的IP仍然由软件方的模型建模。这样,设计人员完成一个模块的细化,验证人员就可以开始系统级验证工作,而不必等到系统的全部模块全部完成细化后才开始验证。这样,一方面避免了验证等待设计的情况;另一方面,模块的逐个细化,可以使新出现的仿真错误的bug被定位到最后细化的模块中,有效降低了验证的难度。最后的阶段,除CPU之外,SoC硬件的所有模块都被逐步移到了验证平台的硬件方FPGA中,即基本完成了RTL级模型的SoC软硬件协同验证,之后向快速原型验证的迁移是也非常方便的,大部分的验证环境都可以复用。

总的来说,混合建模方法的好处就在于:建立支持不同抽象层次模型的验证环境,从而在不同层次的验证中实现验证环境的复用,也使得在不同层次的设计过程中始终都可以进行系统级验证;同时糅合了软件和硬件建模方法的特点来解决RTL模型仿真速度慢的问题,并且避免了硬件建模的低可观测性增加系统验证难度的问题。


3 总线功能模型BFM
在上述的验证平台中,BFM模块起着混合建模方法中高层次模型与RTL模型间的转接作用,是验证平台中最为关键的组成部分。下面详细阐述BFM模块的概念和具体实现。
3.1 BFM及事务级的概念
BFM是与TL(Transaction Level,事务级)的概念分不开的。TL模型是高于RTL模型的一个抽象层次,忽略了RTL模型中具体的信号和时序信息,但是保持RTL模型中模块的框架和模块间数据通信的信息和周期数。TL模型最典型的例子就是符合总线接口协议的模块,例如符合AHB总线接口的一个模块A,模块A的TL模型保持与其RTL模型相同的模块接口、模块边界以及内部功能,但是其内部功能只是功能性描述,不涉及硬件具体实现;模块的接口则是忽略了AHB总线接口协议的具体信号和相关时序,只关心其总线访问的关键信息,如访问的地址、数据、完成访问所花的周期数等。模型的优点是忽略了硬件具体实现细节,使得模型大大简化,模型的建立和仿真都不复杂,同时又保留了部分RTL模型的特征,使得仿真结果的精确度有一定保证,满足了系统级仿真的需求。

1 2 3

关键词: SoC 建模 软硬件协同

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版