一种芯片仿真模型构建方法及系统与流程

文档序号:37468056发布日期:2024-03-28 18:50阅读:22来源:国知局
一种芯片仿真模型构建方法及系统与流程

本发明涉及计算机,具体涉及一种多rootcomplex引擎的芯片仿真模型构建方法及系统。


背景技术:

1、在ic设计及芯片设计的早期,由于设计周期长,一次流片成本高,在设计早期,通常会根据芯片设计的需求对系统进行软件建模来进行评估和仿真,实现软件的事务级建模时,业界通常会使用systemc为基础按照芯片的业务模型搭建芯片仿真环境。systemc本质上是c++的软件库,提供了对硬件电子系统的仿真抽象建模的基础部件的软件模拟封装。

2、现有的外设芯片仿真设计框图如图1所示,现有技术提供的一种芯片仿真模型设计时,设计芯片仿真系统框架的pcie总线互联框架如图1所示,其中虚线框图内的部分为芯片仿真系统功能框图,芯片仿真系统内部有模拟cpu单元,模拟cpu单元可以运行芯片固件程序。芯片仿真系统还存在模拟root complex单元连接模拟cpu单元与外部其他仿真物理设备pcie endpoint。

3、现有技术方案的缺点是在扩展外设总线时,配置复杂,与芯片仿真系统耦合过于紧密,不方便进行模块化拆分。同时现有技术方案只提供了支持一个root complex的芯片仿真模型,芯片仿真模型无法提供多个root complex的供芯片固件程序调试使用。


技术实现思路

1、有鉴于此,本发明提出了一种多rootcomplex(根复合体)引擎的芯片仿真模型构建方法及系统,以systemc为基础框架,在原有仿真系统的基础上,建立芯片仿真系统外设扩展单元,外设扩展单元中实现多个模拟root complex引擎,以这种结合方式搭建一个支持多root complex引擎的芯片的事务级仿真模型,解决在包含多root complex控制器芯片研发过程中芯片固件程序的仿真调测的需求。

2、基于上述目的,第一方面,本发明提供了一种多rootcomplex引擎的芯片仿真模型构建系统,包括芯片仿真系统和外设扩展单元,其中,所述芯片仿真系统内部有模拟cpu单元,模拟cpu单元可以运行芯片固件程序,芯片仿真系统还存在模拟root complex单元连接模拟cpu单元与外部其他仿真物理设备pcie endpoint;

3、所述外设扩展单元包括多个模拟的root complex控制器,每个模拟的rootcomplex控制器可以通过模拟的外设pcie总线连接到一个或多个仿真物理设备pcieendpoint。

4、固件程序在原有的芯片仿真系统的模拟cpu部分运行,可以通过预先配置的模拟cpu总线地址访问外设扩展单元的多个模拟root complex控制器。

5、作为本发明的进一步方案,所述外设扩展单元还包括顶层配置模块、cpu总线接口模块、root complex memory地址分配模块、root complex配置空间映射模块以及pcieendpoint设备注册模块。

6、作为本发明的进一步方案,所述cpu总线接口模块负责对接芯片仿真系统,完成事务级访问的交互。cpu总线接口模块还负责根据请求地址查找目标模块,并完成相对应的请求消息及响应消息的转发;

7、顶层配置模块负责所有外设扩展单元root complex设备到芯片仿真系统的总线注册,包括各个root complex配置空间映射模块的发起端口的注册,root complex配置空间映射模块的访问地址到目标端口的注册,root complex memory地址分配模块的发起端口的注册,root complex memory地址分配模块的访问地址到目标端口的注册,pcieendpoint设备到root complex设备的绑定;

8、root complex配置空间映射模块负责接收来自总线的事务级配置请求,根据请求的地址,查找对应的配置空间注册的pcie endpoint设备,并将请求转发给注册到rootcomplex配置空间的pcie endpoint设备;

9、root complex memory地址空间映射模块负责接收来自总线的事务级memory请求,根据请求的地址,查找对应的memory地址空间上注册的pcie endpoint设备,并将请求转发给注册到root complex的memory地址空间的该pcie endpoint设备;

10、pcie endpoint设备注册模块负责实现pcie endpoint设备与root complex的绑定。包括注册pcie endpoint设备的配置空间到root complex配置空间映射模块,注册pcieendpoint设备的memory地址空间到root complex memory地址空间映射模块。

11、基于上述目的,第二方面,本发明提供了一种多rootcomplex引擎的芯片仿真模型构建方法,该方法基于上述芯片仿真模型构建系统执行,该芯片仿真模型构建方法包括以下步骤:

12、初始化芯片仿真系统,创建master(主)接口和slave(从)接口,并将一端绑定到芯片仿真系统;

13、初始化外设扩展单元,包括创建发起端口和目标端口;

14、将外设扩展单元的发起端口与芯片仿真系统的slave接口绑定,将外设扩展单元的目标端口与芯片仿真系统的master接口绑定。

15、作为本发明的进一步方案,所述外设扩展单元是用于模拟多个rootcomplex引擎和pcie endpoint设备之间通信的模型。

16、作为本发明的进一步方案,初始化芯片仿真系统包括以下步骤:

17、芯片仿真系统初始化,调用systemc事务级访问的基础库创建master接口和slave接口,将master接口和slave接口的一端绑定到芯片仿真系统;其中,绑定方法使用master接口和slave接口对象提供的方法;

18、外设扩展单元的初始化,外设扩展单元初始化完成后,创建发起端口和目标端口;

19、将外设扩展单元的目标端口与芯片仿真系统的master端口绑定,将外设扩展单元的发起端口与芯片仿真系统的slave端口绑定;绑定后实现外设扩展单元与芯片仿真系统的事务级请求的互相通信;其中,绑定方法使用外设扩展单元顶层模块提供的方法;

20、仿真系统运行。

21、作为本发明的进一步方案,外设扩展单元顶层初始化包括:顶层模块初始化,cpu总线接口模块初始化,root complex配置空间映射模块初始化,root complex memory地址空间映射模块初始化,pcie endpoint设备配置信息的初始化;其中:

22、顶层模块在初始化时,根据对芯片仿真系统的仿真需求,创建指定数量的rootcomplex配置空间映射对象,创建指定数量的root complex memory地址空间映射对象,创建指定数量的pcie endpoint设备对象;

23、顶层模块在初始化时,将root complex配置空间映射对象的发起端口注册到cpu总线,将root complex memory地址空间映射对象的发起端口注册到cpu总线,将pcieendpoint设备对象的发起端口注册到cpu总线;

24、顶层模块在初始化时,将root complex配置空间映射对象的目标端口和分配给root complex对象的配置空间地址和地址范围大小注册到cpu总线,将root complexmemory地址空间映射对象的目标端口和分配给root complex memory地址空间映射对象的地址和地址范围大小注册到cpu总线;

25、顶层模块在初始化时,将pcie endpoint设备对象信息和pcie endpoint设备对象的总线号、设备号、功能号,注册到root complex配置空间映射对象,将pcie endpoint设备对象信息和pcie endpoint设备对象的总线号、设备号、功能号信息,以及pcie endpoint设备对象的memory地址空间的起始地址和地址范围大小信息注册到root complex memory地址空间映射对象。

26、作为本发明的进一步方案,cpu总线接口模块中,外设扩展单元接口模块与芯片仿真系统对接时,将外设扩展单元的目标端口与芯片仿真系统的master端口绑定,将外设扩展单元的发起端口与芯片仿真系统的slave端口绑定,绑定后实现外设扩展单元与芯片仿真系统的事务级请求的互相通信。

27、作为本发明的进一步方案,cpu总线接口初始化包括以下步骤:

28、通过端口绑定,当芯片仿真系统访问外设时,芯片仿真系统内部模块发起请求,请求通过绑定的slave接口到达外设扩展单元的外部目标端口上,cpu总线接口经过总线查找请求的地址所对应的设备接口,将请求转发给外设扩展单元的仿真设备,经过仿真设备处理后,将响应结果传输回芯片仿真系统;

29、通过端口绑定,当外设扩展单元向芯片仿真系统发起请求时,请求通过外设扩展单元的外部发起端口发送给芯片仿真系统的master接口,由芯片仿真系统传递给芯片仿真系统内部处理单元,芯片仿真系统内部处理单元处理完成后,将响应结果传输回外设扩展单元。

30、作为本发明的进一步方案,root complex配置空间映射模块工作机制为:rootcomplex配置空间映射模块初始化时,创建fifo,核心处理线程,创建触发事件。核心处理线程在初始化即开始运行,等待事件触发。该fifo空间的仿真由systemc基础库提供的sc_fifo数据结构实现,fifo的单个条目内容包括请求的地址,读写标识,写请求的数据/读请求的回传的地址,数据宽度等信息。该核心处理线程的仿真由systemc基础库提供的sc_thread方法实现。该触发事件的仿真由systemc基础库提供的sc_event方法实现。

31、root complex配置空间映射模块初始化时会挂载在cpu总线上,当收到总线请求时,由目标端口进行请求的处理,将请求内容解析成内部格式,写入内部的fifo空间,然后发送事件触发的通知给核心处理线程。核心处理线程在收到触发事件后开始处理。

32、作为本发明的进一步方案,pcie endpoint设备注册模块的工作流程包括:

33、pcie endpoint设备注册模块初始化时,根据配置的pcie endpoint设备的个数,pcie endpoint设备与root complex的关系,创建pcie endpoint设备配置信息,根据配置信息创建pcie endpoint设备对象,将设备对象保存在pcie endpoint设备对象列表;

34、根据pcie endpoint设备对象列表中的设备信息,按照不同的root complex为每个root complex的pcie endpoint设备分配总线号、设备号、功能号,配置pcie endpoint设备的默认bar地址和地址范围大小信息;

35、根据pcie endpoint设备对象列表中的设备对象信息,获取对应的root complex配置空间映射对象,获取pcie endpoint设备的总线号、设备号、功能号,调用root complex配置空间映射对象提供的绑定方法,将pcie endpoint设备的总线号、设备号、功能号,pcieendpoint设备的对象信息注册到root complex配置空间映射对象;

36、根据pcie endpoint设备对象列表中的设备对象信息,获取对应的root complexmemory地址空间映射对象,获取pcie endpoint设备的总线号、设备号、功能号,起始地址,地址范围大小等信息,调用root complex memory地址空间映射对象提供的绑定方法,将pcie endpoint设备的总线号、设备号、功能号,起始地址,地址范围大小,pcie endpoint设备的对象信息注册到root complex memory地址空间映射对象。

37、本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的多rootcomplex引擎的芯片仿真模型构建方法。

38、本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的多rootcomplex引擎的芯片仿真模型构建方法。

39、与现有技术相比较而言,本发明提出的一种多rootcomplex引擎的芯片仿真模型构建方法及系统,采用“基于systemc的事务级模型,扩展外设单元”的设计,在芯片仿真系统的基础上支持外部扩展多个root complex的仿真实现,具有以下有益效果:

40、1.采用本发明的方案后,可以为芯片仿真系统提供多个root complex的引擎仿真实现,从而支持固件驱动程序的对多个root complex的访问。

41、2.可以让固件驱动程序在芯片流片完成前基于仿真模型进行固件的多个rootcomplex的访问的程序开发和调测。可以使芯片设计和固件开发同时进行,缩短项目开发周期。

42、3.基于该仿真模型构建的系统平台,可以代替部分硬件平台多个root complex的功能,供开发和测试使用,节约项目的搭建新的硬件测试平台的成本。

43、本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1