基于SystemC的虚拟模型生成方法、系统、介质及设备技术方案

技术编号:34048374 阅读:10 留言:0更新日期:2022-07-06 15:12
本发明专利技术提供了一种基于SystemC的虚拟模型生成方法、系统、介质及设备,方法包括:接收用户输入的硬件模块的名称,并基于硬件模块执行第一脚本,以生成模型目录结构;接收用户输入的寄存器描述文件,通过第二脚本解析寄存器描述文件,以在模型目录结构中生成基于SystemC的寄存器模型;执行第三脚本,以基于寄存器模型在模型目录结构中生成硬件模块的虚拟模型的源码文件;接收用户在源码文件上添加的针对硬件模块的自定义功能信息,以得到实现自定义功能的虚拟模型。本发明专利技术极大缩短了硬件模块虚拟模型的开发时间。拟模型的开发时间。拟模型的开发时间。

Virtual model generation method, system, media and equipment based on SystemC

【技术实现步骤摘要】
基于SystemC的虚拟模型生成方法、系统、介质及设备


[0001]本专利技术涉及建模
,尤其涉及一种基于SystemC的虚拟模型生成方法、系统、介质及设备。

技术介绍

[0002]随着集成电路设计技术的迅速发展,集成电路的集成规模越来越大,片上系统的设计复杂度不断提高,设计复杂度的提高需要设计工具、设计方法的强有力支持,而之前的设计工具和设计方法显得有些力不从心。软硬件协同设计是目前片上系统设计的新型方法,其方法依据系统目标要求,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协同设计软硬件体系结构,使得系统能工作在最佳状态。因此,建立系统级模型对系统功能进行抽象描述是实现软硬件协同设计的关键。目前存在多种建模方法,但是都有其局限性,如采用UML语言建模,可以方便地进行需求分析、系统功能描述,但UML不能对系统硬件进行描述,无法精确和严格地描述模型的行为;采用C/C++等描述语言时,在设计细化阶段,原始的C/C++描述必须手工转换为VHDL或Verilog语言,容易产生不一致性,使系统综合变得复杂。研究表明,具有较高的抽象能力,同时能体现出硬件设计中的信号同步、时间延迟、状态转换等物理信息的语言,才能给工程师提供一个系统级设计的公共基础平台。在常用的设计语言中,C、C++和Java等高级编程语言有较高的抽象能力,但由于不能体现硬件设计的物理特性,硬件模块部分需重新用硬件描述语言设计,使得后续设计缺乏连贯性;而VHDL、Verilog最初目的并不是进行电路设计,前者是用来描述电路的,而后者起源于板级系统仿真,因此它们并不适合进行系统级的软件和算法设计,特别是现在系统中的功能越来越多的由软件来完成。
[0003]SystemC是在C++的基础上扩展了硬件类和仿真核形成的,由于结合了面向对象编程和硬件建模机制原理两方面的优点,这可以使SystemC在不同的层次进行系统设计。对一个片上系统在不同的层次进行描述,按照其抽象程度由高到低,可分为功能级(function level,也称为系统级)、事务级(transaction level,也称为行为级或算法级)、寄存器传输级(RTL,register transfer level)、门级(gate level)和开关级(switch level)。其中功能级主要完成对整个系统功能的定义和结构的探索;事务级确保一些核心算法和系统行为的正确;寄存器传输级利用组合逻辑和时序逻辑来描述电路;而门级主要偏重利用工艺库的原件进行描述。在片上系统设计建模中,事务(transaction)是一个十分重要的概念。一般来说,事务可以理解为系统模型中两个组件之间的一次数据交换。一个数据交易可能是在系统组件之间传输的单个字、一列字或者整个数据结构。例如,一个DMA(Direct Memory Access,直接存储器访问)主设备能够发出请求,从存储器中读入一个数据。它首先要发出一个读交易,指定目标存储器的地址。另外一种情况是,当嵌入式的软件要向DMA控制器中写入控制字时,就会发出一个写交易。为保证片上系统的模块之间的同步所做的操作可以被看作是一个事件交易;而组件之间的中断也可以被视为一个交易。事务级模型(TLM,Transaction Level Model)中的各个模块代表了最终要实现的硬件设备(如存储器、ASIC、
系统总线等等),或者是将要运行在处理器上的软件。有关事务级建模的研究乃是当今学术界和产业界的一个热点。
[0004]现代的片上系统芯片包含硬件和软件,软件部分可以是固件或者驱动;芯片市场是一个充满竞争的市场,几乎所有的芯片公司对产品都有严格时间规划;如何让产品尽快面市,如何减少产品缺陷几乎是所有芯片公司都需要面对的难题,SystemC可以让软硬件并行开发,加快产品面市时间。
[0005]传统的设计流程中在FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型出来之前,硬件和软件开发之间几乎没有交流;只有在经过漫长的“设计

验证

综合”流程后(一般几个月),软件才能在FPGA平台上测试自己的代码,由于软件设计时没有平台测试,此时测试必然有很多错误,这种错误需要修改硬件或软件,并重新迭代,这将浪费大量的时间。显然,传统的设计流程与此目标不符。因此,在软硬件设计之前,先开发抽象的基于SystemC的虚拟原型,然后硬件部门将此模型转化为RTL(Register Transfer Level,寄存器转换级电路),软件部门在此模型上开发软件,如此一来,软硬件的任何错误都能尽早被发现并修改,大大节省了开发时间。
[0006]一个片上系统可以看作是由一个或多个主模块(如CPU)、一个或多个NOC(片上网络)、多个从模块(硬件设备)组成的系统,每个主模块可以通过特定的路径访问其中一个或多个从模块。对于主模块,主流CPU(中央处理器)厂商如ARM提供对于其ARM CPU的SystemC模型;对于NOC,厂商也有其NOC的SystemC模型;而对于硬件设备,由于其在形态、功能、复杂度、应用等各方面多种多样,目前没有一个标准的虚拟模型开发流程。

技术实现思路

[0007]有鉴于此,本专利技术的目的在于提出一种基于SystemC的虚拟模型生成方法、系统、介质及设备,用以解决目前对于硬件设备缺乏标准的虚拟模型开发的问题。
[0008]基于上述目的,本专利技术提供了一种基于SystemC的虚拟模型生成方法,包括以下步骤:
[0009]接收用户输入的硬件模块的名称,并基于硬件模块执行第一脚本,以生成模型目录结构;
[0010]接收用户输入的寄存器描述文件,通过第二脚本解析寄存器描述文件,以在模型目录结构中生成基于SystemC的寄存器模型;
[0011]执行第三脚本,以基于寄存器模型在模型目录结构中生成硬件模块的虚拟模型的源码文件;
[0012]接收用户在源码文件上添加的针对硬件模块的自定义功能信息,以得到实现自定义功能的虚拟模型。
[0013]在一些实施例中,方法还包括:
[0014]搭建用于测试自定义功能的测试平台,并将测试平台的代码填入模型目录结构中相应的目录文件内。
[0015]在一些实施例中,寄存器模型对应的生成文件包括定义型文件和操作型文件,定义型文件包括寄存器模型类及相关常量参数,操作型文件包括针对寄存器的域的读操作函数及写操作函数。
[0016]在一些实施例中,操作型文件还包括值获取函数,值获取函数用于获取寄存器的所有位的原始值。
[0017]在一些实施例中,读操作函数用于对原始值中属于指定域所在位的值进行读操作;写操作函数用于对原始值中属于指定域所在位的值进行写操作。
[0018]在一些实施例中,源码文件中具有读回调函数和写回调函数。
[0019]在一些实施例中,方法还包括:
[0020]响应于应用软件通过接口发出读寄存器指令,基于读寄存器指令调用读回调函数;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SystemC的虚拟模型生成方法,其特征在于,包括以下步骤:接收用户输入的硬件模块的名称,并基于所述硬件模块执行第一脚本,以生成模型目录结构;接收用户输入的寄存器描述文件,通过第二脚本解析所述寄存器描述文件,以在所述模型目录结构中生成基于SystemC的寄存器模型;执行第三脚本,以基于所述寄存器模型在所述模型目录结构中生成所述硬件模块的虚拟模型的源码文件;接收用户在所述源码文件上添加的针对所述硬件模块的自定义功能信息,以得到实现所述自定义功能的所述虚拟模型。2.根据权利要求1所述的方法,其特征在于,还包括:搭建用于测试所述自定义功能的测试平台,并将所述测试平台的代码填入所述模型目录结构中相应的目录文件内。3.根据权利要求1所述的方法,其特征在于,所述寄存器模型对应的生成文件包括定义型文件和操作型文件,所述定义型文件包括寄存器模型类及相关常量参数,所述操作型文件包括针对寄存器的域的读操作函数及写操作函数。4.根据权利要求3所述的方法,其特征在于,所述操作型文件还包括值获取函数,所述值获取函数用于获取所述寄存器的所有位的原始值。5.根据权利要求4所述的方法,其特征在于,所述读操作函数用于对所述原始值中属于指定域所在位的值进行读操作;所述写操作函数用于对所述原始值中属于所述指定域所在位的值进行写操作。6.根据权利要求1所述的方法,其特征在于,所述源码文件中具有读回调...

【专利技术属性】
技术研发人员:贾晓龙李靖蕙邵海波
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1