掌桥专利:专业的专利平台
掌桥专利
首页

一种时钟驱动的软硬件联合仿真方法、系统及存储介质

文献发布时间:2024-04-18 19:59:31


一种时钟驱动的软硬件联合仿真方法、系统及存储介质

技术领域

本发明涉及芯片技术领域,特别涉及一种时钟驱动的软硬件联合仿真方法、系统及存储介质。

背景技术

随着芯片制造工艺的提升,芯片的规模越来越大,设计难度也越来越高,因此芯片的仿真验证也越来越复杂。通常芯片的仿真验证需要硬件设计人员和软件建模人员相互配合进行。一般硬件的设计调试环境使用VCS等仿真器,而软件建模人员则通常在C语言等高级语言环境下工作。同时硬件的设计一般是基于时钟驱动的,而软件建模则习惯使用事件驱动的设计思维。

上述软硬件开发人员由于开发环境不同和设计思维不同,一方面降低了硬件设计迭代的效率,增加了调试难度;另一方面,也增加了软件设计人员的学习成本和集成难度。因此,当芯片规模越来越大,功能越来越复杂已成为趋势时,开发一套软硬件相结合的开发和调试环境是提升芯片开发效率的关键手段。

在专利“集成电路验证方法、代码生成方法、系统、设备和介质”(CN 113343629 A)中公开了一种在system Verilog(SV)语言环境中调试C语言的方法和系统。在C语言中的生成存储被存储在哈希数组中的通用数据包的通用类;在C语言中生成对哈希数组的控制函数;在C语言中生成定义C语言仿真验证模型计算的回调队列,以便调用控制函数,通用类中还包括回调队列接口,被生成为自动运行用于集成电路验证的回调队列;在C语言中生成C语言DPI和在SV语言中生成SV语言DPI,使得两个DPI交换数据。该专利提高它们之间交互的效率能够降低芯片验证成本,加速验证的收敛;但该专利并没有对软件模型进行统一的开发组件规范说明,缺乏时钟驱动的软硬件接口,难以高效的对软硬件进行整合。

在专利“一种用Python建立参考模型提高自动化验证平台效率的方法”(CN108829382A)中公开了一种用Python建立参考模型提高自动化验证平台效率的方法。该专利通过C程序作为中间层,通过C/Python API使得C程序可以调用Python参考模型,再通过SystemVerilog DPI调用中间层的C接口程序,从而实现SystemVerilog验证平台调用Python的目的。该发明使得可以用Python语言编写参考模型,并在验证平台中实时动态地调用Python参考模型。使得Python程序可以作为验证平台中的参考模型,大大提升了验证的效率和质量,减少了验证成本;但是该发明使用的python语言在大规模复杂模型中存在执行效率不如C语言的问题,同时也缺少一种时钟驱动的软件模型开发标准,难以高效的将软硬件整合。

在专利“一种快速定位芯片验证中bug的方法”(CN 114330223 A)中公开了一种利用DPI接口进行快速debug的方法。该发明根据设计内部数据包格式编写数据采集逻辑,将节点监测组件编写的数据采集通过DPI-C接口形式,将算法封装成一个接口函数送到验证平台里,以把算法编译成执行文件,平台编译的时候把库文件装载进去,把整个设计进行分段比对。该发明可以帮助设计人员快速准确的确定缺陷的位置,极大地提高了验证效率,加快验证收敛速度;但是该发明缺乏软件模型,同时软硬件开发环境不统一,尽管可以提升定位bug的效率,但是难以解决软硬件协同开发效率低下的问题。

综上,现有软硬件仿真方案通常采用作为独立开展的两部分工作的技术路线,这样的技术路线一方面会影响硬件设计人员对硬件设计的迭代速度,降低硬件调试效率;另一方面也会要求软件设计人员需要较为清晰的了解硬件工作原理,提高了软件设计人员的学习和开发难度。

为此,需要一种将软件设计的仿真模型与硬件设计联合仿真,统一仿真环境,提升硬件调试效率,降低软件开发人员开发难度的时钟驱动的软硬件联合仿真方法、系统及存储介质。

发明内容

本发明的目的之一在于,提供了一种时钟驱动的软硬件联合仿真系统,能够将软件设计的仿真模型与硬件设计联合仿真,统一仿真环境,提升硬件调试效率,降低软件开发人员开发难度。

为了解决上述技术问题,本申请提供如下技术方案:

一种时钟驱动的软硬件联合仿真系统,包括时钟驱动软件模型,连接控制模块,软硬件交互模块和硬件设计模块;

连接控制模块用于控制时钟驱动软件模型,硬件设计模块和软硬件交互模块的启动和连接;

软硬件交互模块包括软件到硬件方向的N个接口模块SW2HW_INF,以及M个硬件到软件方向的接口模块HW2SW_INF,接口模块SW2HW_INF和接口模块HW2SW_INF用于在时钟驱动软件模型和硬件设计模块之间传输数据。

进一步,所述连接控制模块用于编译硬件设计模块,等待硬件设计模块与各个接口模块HW2SW_INF和接口模块SW2HW_INF连接;

还用于编译软硬件交互模块中的N个接口模块SW2HW_INF,等待与时钟驱动软件模型和硬件设计模块连接;

还用于编译启动时钟驱动软件模型,将时钟驱动软件模型与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

还用于编译启动硬件设计模块,将硬件设计模块与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;启动仿真。

进一步,所述时钟驱动软件模型包括时钟触发模块,F个子功能模块和一个模型调度队列;

F个子功能模块按照队列的结构存储在模型调度队列中;

时钟驱动软件模型通过时钟触发模块接收来自硬件设计模块的时钟驱动,在每个时钟周期内,轮询一遍模型调度队列中的子功能模块,并为每个子功能模块提供时钟驱动,供子功能模块执行相应的功能。

进一步,所述每个子功能模块包括数据读取模块,任务执行模块和数据输出模块;

每个子功能模块还包括r个信道channel_rx和t个信道channel_tx;

每个信道channel_rx用于存储其他子功能模块发送来的数据分组PKT_in;

每个信道channel_tx用于存储子功能模块将要发送给其他子功能模块的数据分组PKT_out;

每个数据分组PKT_in和数据分组PKT_out包括控制字段Hdr,载荷字段Pld和时间戳字段Stp;

Hdr字段用于控制数据分组PKT_in和数据分组PKT_out的目的子功能模块,记录源头子功能模块;

Pld字段用于记录数据;

Stp字段用于记录数据分组PKT_in和数据分组PKT_out生成的时钟周期Birth_t,以及上一级子功能模块调度的时钟周期Sche_t。

进一步,所述软硬件交互模块中,接口模块SW2HW_INF中按照队列的格式存储数据分组PKT_SW,数据分组PKT_SW由时钟驱动软件模型生成,通过接口模块SW2HW_INF解析为硬件设计模块可用的硬件信号值,传递给硬件设计模块DUT执行;

接口模块HW2SW_INF中按照队列的格式存储数据分组PKT_HW,数据分组PKT_HW由硬件设计模块生成,通过接口模块HW2SW_INF组合成时钟驱动软件模型可用的数据结构,传递给时钟驱动软件模型;

其中,数据分组PKT_SW、数据分组PKT_HW的格式与数据分组PKT_in及数据分组PKT_out的格式相同,包括Hdr字段,Pld字段和Stp字段。

本发明的目的之二在于,提供一种时钟驱动的软硬件联合仿真方法,使用上述系统,包括如下内容:

S1,连接控制模块控制时钟驱动软件模型,硬件设计模块和软硬件交互模块各模块的启动和连接,

S2,时钟驱动软件模型通过时钟触发模块接收来自硬件设计模块的时钟驱动,在每个时钟周期内,轮询一遍模型调度队列中的子功能模块,并为每个子功能模块提供时钟驱动,供子功能模块执行相应的功能;

S3,接口模块SW2HW_INF将按照队列的格式存储的数据分组PKT_SW解析为硬件设计模块可用的硬件信号值,传递给硬件设计模块执行;其中数据分组PKT_SW由时钟驱动软件模型生成;

接口模块HW2SW_INF将按照队列的格式存储的数据分组PKT_HW组合成时钟驱动软件模型可用的数据结构,传递给时钟驱动软件模型,其中数据分组PKT_HW由硬件设计模块生成。

进一步,所述步骤S1中,连接控制模块具体控制步骤包括:

S101,编译软硬件交互模块中的M个接口模块HW2SW_INF,等待与时钟驱动软件模型和硬件设计模块连接;

S102,编译硬件设计模块,等待硬件设计模块与各个接口模块HW2SW_INF和接口模块SW2HW_INF连接;

S103,编译软硬件交互模块中的N个接口模块SW2HW_INF,等待与时钟驱动软件模型和硬件设计模块连接;

S104,编译启动时钟驱动软件模型,将时钟驱动软件模型与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

S105,编译启动硬件设计模块,将硬件设计模块与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

S106,启动仿真。

进一步,所述步骤S2中,子功能模块在每个时钟周期t执行步骤包括:

S201,子功能模块接收时钟触发模块的当前时钟周期为t的时钟驱动;

S202,数据读取模块读取每个信道channel_rx中时钟周期Sche_t=t-1的数据分组PKT_in,如果存在,则将数据分组PKT_in传递给任务执行模块执行步骤S203;否侧执行步骤S201;

S203,任务执行模块解析数据分组PKT_in,根据Hdr字段和Pld字段执行相应的功能;

S204,任务执行模块执行完相应的功能之后,如果生成需要传递给其他子功能模块的数据分组PKT_out,则执行步骤S205;否则执行步骤S201;

S205,任务执行模块生成数据分组PKT_out,更新数据分组PKT_out的Hdr字段和Pld字段,并传递给数据输出模块;

S206,数据输出模块收到数据分组PKT_out之后更新数据分组PKT_out中的Stp字段,将Sche_t更新为当前时钟周期t,根据其Hdr字段中的信息将数据分组PKT_out传输到正确的信道channel_tx中;

S207,信道channel_tx根据Hdr字段中的信息将数据分组PKT_out传递给相应子功能模块的信道channel_rx;

S209,执行完毕。

进一步,所述步骤S3中,接口模块SW2HW_INF在每个时钟周期t执行步骤包括:

S311,时钟触发模块时钟驱动,执行步骤S312;

S312,时钟驱动软件模型生成s个数据分组PKT_SW,如果s等于0,则等待下一个时钟周期,执行步骤S311;如果s大于0,则执行步骤S313;

S313,时钟驱动软件模型将s个数据分组PKT_SW传递给接口模块SW2HW_INF,执行步骤S314;

S314,接口模块SW2HW_INF将每个数据分组PKT_SW的Pld字段转换成硬件信号值,根据Hdr的信息将硬件信号值传递给硬件设计模块相应的模块,执行步骤S315;

S315,清空接口模块SW2HW_INF队列,等待下一个时钟周期,结束执行;

接口模块HW2SW_INF在每个时钟周期t执行步骤包括:

S321,时钟触发模块时钟驱动,执行步骤S322;

S322,硬件设计模块生成h个数据分组PKT_HW,如果h等于0,则等待下一个时钟周期,执行步骤S321;如果h大于0,则执行步骤S323;

S323,硬件设计模块将h个数据分组PKT_HW传递给接口模块HW2SW_INF,执行步骤S324;

S324,接口模块HW2SW_INF将每个数据分组PKT_HW将Pld字段转换成数据结构,根据Hdr字段的信息将数据结构传递给时钟驱动软件模型,执行步骤S325;

S325,清空接口模块HW2SW_INF队列,等待下一个时钟周期,结束执行。

本发明的目的之三在于,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

本发明的有益效果包括:

本方案的时钟驱动软件模型,是软件仿真部分的主体。时钟驱动软件模型可以根据设计人员的需要,作为硬件设计的参考模型或者与硬件交互的驱动模型等模型。硬件设计模块是硬件设计的主体,实现硬件设计的功能。连接控制模块用于控制时钟驱动软件模型和硬件设计模块之间的交互。软硬件交互模块作为时钟驱动软件模型和硬件设计模块之间交互的管道,可以传输相应格式的数据。

本方案将软件设计的仿真模型与硬件设计联合仿真,通过连接控制模块统一控制软件模型和硬件设计,统一了仿真环境;同时软件模型可以按照统一的时钟驱动步骤进行开发,为软件模型开发人员提供了统一的开发标准和软硬件交互数据格式,提升了硬件调试效率,降低了软件开发人员的开发难度。

附图说明

图1为实施例一种时钟驱动的软硬件联合仿真系统的逻辑框图;

图2为实施例一种时钟驱动的软硬件联合仿真系统中子功能模块的逻辑框图;

图3为实施例一种时钟驱动的软硬件联合仿真方法中步骤S2的流程图;

图4为实施例一种时钟驱动的软硬件联合仿真方法中接口模块SW2HW_INF执行步骤的流程图;

图5为实施例一种时钟驱动的软硬件联合仿真方法中接口模块HW2SW_INF执行步骤的流程图。

具体实施方式

下面通过具体实施方式进一步详细说明:

实施例

本实施例的一种时钟驱动的软硬件联合仿真系统,如图1所示,包括时钟驱动软件模型CLK_SW_MD,连接控制模块CNCT_CTRL,软硬件交互模块INF_MD和硬件设计模块DUT。

时钟驱动软件模型CLK_SW_MD,是软件仿真部分的主体。时钟驱动软件模型CLK_SW_MD可以根据设计人员的需要,作为硬件设计的参考模型或者与硬件交互的驱动模型等模型。

硬件设计模块DUT,是硬件设计的主体,实现硬件设计的功能。

连接控制模块CNCT_CTRL,用于控制时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT之间的交互。

软硬件交互模块INF_MD包括软件到硬件方向的N个接口模块SW2HW_INF,以及M个硬件到软件方向的接口模块HW2SW_INF,N和M为正整数,分别作为时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT之间交互的管道,传输相应格式的数据。

连接控制模块CNCT_CTRL用于控制时钟驱动软件模型CLK_SW_MD,硬件设计模块DUT和软硬件交互模块INF_MD各模块的启动和连接。连接控制模块CNCT_CTRL控制内容包括:

连接控制模块CNCT_CTRL用于编译软硬件交互模块INF_MD中的M个接口模块HW2SW_INF,等待与时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT连接;

还用于编译硬件设计模块DUT,等待硬件设计模块DUT与各个接口模块HW2SW_INF和接口模块SW2HW_INF连接;

还用于编译软硬件交互模块INF_MD中的N个接口模块SW2HW_INF,等待与时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT连接;

还用于编译启动时钟驱动软件模型CLK_SW_MD,将时钟驱动软件模型CLK_SW_MD与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

还用于编译启动硬件设计模块DUT,将硬件设计模块DUT与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;启动仿真。

时钟驱动软件模型CLK_SW_MD包括时钟触发模块CLK_MD,F个子功能模块SUB_MD和一个模型调度队列MD_QUEUE,F为正整数。

子功能模块SUB_MD为设计人员用于实现具体功能的模块。F个子功能模块SUB_MD按照队列的结构存储在模型调度队列MD_QUEUE中。时钟驱动软件模型CLK_SW_MD通过时钟触发模块CLK_MD接收来自硬件设计模块DUT的时钟驱动,在每个时钟周期内,都会轮询一遍模型调度队列MD_QUEUE中的子功能模块SUB_MD,并为每个子功能模块SUB_MD提供时钟驱动,供子功能模块SUB_MD执行相应的功能。

如图2所示,每个子功能模块SUB_MD包括一个数据读取模块RD_IN_MD,一个任务执行模块EXC_MD,和一个数据输出模块WR_OUT_MD。

每个子功能模块SUB_MD有r个信道channel_rx和t个信道channel_tx,r和t都为整数。每个channel_rx用于存储其他子功能模块SUB_MD发送来的数据分组PKT_in;每个channel_tx用于存储子功能模块SUB_MD将要发送给其他子功能模块SUB_MD的数据分组PKT_out。

每个数据分组PKT_in和PKT_out包括控制字段Hdr,载荷字段Pld和时间戳字段Stp。Hdr字段作用是控制PKT_in和PKT_out的目的子功能模块SUB_MD和记录源头子功能模块SUB_MD;Pld字段用于记录数据;Stp字段用于记录PKT_in/PKT_out生成的时钟周期Birth_t以及上一级子功能模块SUB_MD调度的时钟周期Sche_t。

子功能模块SUB_MD在每个时钟周期t(t为正整数)执行内容包括:

子功能模块SUB_MD用于接收时钟触发模块CLK_MD的当前时钟周期为t的时钟驱动;

数据读取模块RD_IN_MD用于读取每个信道channel_rx中时钟周期Sche_t=t-1的数据分组PKT_in,如果存在,则将数据分组PKT_in传递给任务执行模块EXC_MD;否侧继续接收时钟触发模块CLK_MD的当前时钟周期为t的时钟驱动;

任务执行模块EXC_MD用于解析数据分组PKT_in,根据Hdr字段和Pld字段执行相应的功能;

任务执行模块EXC_MD还用于执行完相应的功能之后,判断是否需要生成传递给其他子功能模块SUB_MD的数据分组PKT_out,如果不需要,继续接收时钟触发模块CLK_MD的当前时钟周期为t的时钟驱动;如果需要,任务执行模块EXC_MD用于生成数据分组PKT_out,更新数据分组PKT_out的Hdr和Pld字段,并传递给数据输出模块WR_OUT_MD;

数据输出模块WR_OUT_MD用于收到数据分组PKT_out之后更新数据分组PKT_out中的Stp字段,将Sche_t更新为当前时钟周期t,根据其Hdr中的信息将数据分组PKT_out传输到正确的信道channel_tx中;

信道channel_tx根据Hdr中的信息将数据分组PKT_out传递给相应子功能模块SUB_MD的信道channel_rx;完成执行。

软硬件交互模块INF_MD中,接口模块SW2HW_INF中按照队列的格式存储数据分组PKT_SW,数据分组PKT_SW由时钟驱动软件模型CLK_SW_MD生成,通过接口模块SW2HW_INF解析为硬件设计模块DUT可用的硬件信号值,传递给硬件设计模块DUT执行;

接口模块HW2SW_INF中按照队列的格式存储数据分组PKT_HW,数据分组PKT_HW由硬件设计模块DUT生成,通过接口模块HW2SW_INF组合成时钟驱动软件模型CLK_SW_MD可用的数据结构,传递给时钟驱动软件模型CLK_SW_MD。

数据分组PKT_SW和数据分组PKT_HW格式与数据分组PKT_in及PKT_out相同,包括Hdr字段,Pld字段和Stp字段。硬件中可以使用基于DPI-C等方法与接口模块HW2SW_INF和接口模块SW2HW_INF交互。接口模块SW2HW_INF和接口模块HW2SW_INF在每个时钟周期内并行执行。

接口模块SW2HW_INF在每个时钟周期t(t为正整数)执行内容包括:

时钟触发模块CLK_MD时钟驱动,时钟驱动软件模型CLK_SW_MD用于生成s个数据分组PKT_SW,如果s等于0,则等待下一个时钟周期,继续时钟触发模块CLK_MD时钟驱动;如果s大于0,时钟驱动软件模型CLK_SW_MD用于将s个数据分组PKT_SW传递给接口模块SW2HW_INF;

接口模块SW2HW_INF用于将每个数据分组PKT_SW的Pld字段转换成硬件信号值,根据Hdr的信息将硬件信号值传递给硬件设计模块DUT相应的模块;

接口模块还用于SW2HW_INF清空队列,等待下一个时钟周期,结束执行。

接口模块HW2SW_INF在每个时钟周期t(t为正整数)执行内容包括:

时钟触发模块CLK_MD时钟驱动,硬件设计模块DUT生成h个数据分组PKT_HW,如果h等于0,则等待下一个时钟周期,继续时钟触发模块CLK_MD时钟驱动;如果h大于0,硬件设计模块DUT用于将h个数据分组PKT_HW传递给接口模块HW2SW_INF;接口模块HW2SW_INF用于将每个数据分组PKT_HW将Pld字段转换成数据结构,根据Hdr的信息将数据结构传递给时钟驱动软件模型CLK_SW_MD,接口模块还用于清空HW2SW_INF队列,等待下一个时钟周期,结束执行。

基于上述时钟驱动的软硬件联合仿真系统,本实施例还提供一种时钟驱动的软硬件联合仿真方法,包括如下内容:

S1,连接控制模块CNCT_CTRL控制时钟驱动软件模型CLK_SW_MD,硬件设计模块DUT和软硬件交互模块INF_MD各模块的启动和连接,连接控制模块CNCT_CTRL具体控制步骤包括:

S101,编译软硬件交互模块INF_MD中的M个接口模块HW2SW_INF,等待与时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT连接;

S102,编译硬件设计模块DUT,等待硬件设计模块DUT与各个接口模块HW2SW_INF和接口模块SW2HW_INF连接;

S103,编译软硬件交互模块INF_MD中的N个接口模块SW2HW_INF,等待与时钟驱动软件模型CLK_SW_MD和硬件设计模块DUT连接;

S104,编译启动时钟驱动软件模型CLK_SW_MD,将时钟驱动软件模型CLK_SW_MD与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

S105,编译启动硬件设计模块DUT,将硬件设计模块DUT与M个接口模块HW2SW_INF和N个接口模块SW2HW_INF分别相连;

S106,启动仿真。

S2,时钟驱动软件模型CLK_SW_MD通过时钟触发模块CLK_MD接收来自硬件设计模块DUT的时钟驱动,在每个时钟周期内,轮询一遍模型调度队列MD_QUEUE中的子功能模块SUB_MD,并为每个子功能模块SUB_MD提供时钟驱动,供子功能模块SUB_MD执行相应的功能;

如图3所示,子功能模块SUB_MD在每个时钟周期t(t为正整数)执行步骤包括:

S201,子功能模块SUB_MD接收时钟触发模块CLK_MD的当前时钟周期为t的时钟驱动;

S202,数据读取模块RD_IN_MD读取每个信道channel_rx中时钟周期Sche_t=t-1的数据分组PKT_in,如果存在,则将数据分组PKT_in传递给任务执行模块EXC_MD执行步骤S203;否侧执行步骤S201;

S203,任务执行模块EXC_MD解析数据分组PKT_in,根据Hdr字段和Pld字段执行相应的功能;

S204,任务执行模块EXC_MD执行完相应的功能之后,如果生成需要传递给其他子功能模块SUB_MD的数据分组PKT_out,则执行步骤S205;否则执行步骤S201;

S205,任务执行模块EXC_MD生成数据分组PKT_out,更新数据分组PKT_out的Hdr和Pld字段,并传递给数据输出模块WR_OUT_MD;

S206,数据输出模块WR_OUT_MD收到数据分组PKT_out之后更新数据分组PKT_out中的Stp字段,将Sche_t更新为当前时钟周期t,根据其Hdr中的信息将数据分组PKT_out传输到正确的信道channel_tx中;

S207,信道channel_tx根据Hdr中的信息将数据分组PKT_out传递给相应子功能模块SUB_MD的信道channel_rx;

S209,执行完毕。

S3,接口模块SW2HW_INF将按照队列的格式存储的数据分组PKT_SW解析为硬件设计模块DUT可用的硬件信号值,传递给硬件设计模块DUT执行;其中数据分组PKT_SW由时钟驱动软件模型CLK_SW_MD生成;

接口模块HW2SW_INF将按照队列的格式存储的数据分组PKT_HW组合成时钟驱动软件模型CLK_SW_MD可用的数据结构,传递给时钟驱动软件模型CLK_SW_MD,其中数据分组PKT_HW由硬件设计模块DUT生成;

如图4所示,接口模块SW2HW_INF在每个时钟周期t(t为正整数)执行步骤包括:

S311,时钟触发模块CLK_MD时钟驱动,执行步骤S312;

S312,时钟驱动软件模型CLK_SW_MD生成s个数据分组PKT_SW,如果s等于0,则等待下一个时钟周期,执行步骤S311;如果s大于0,则执行步骤S313;

S313,时钟驱动软件模型CLK_SW_MD将s个数据分组PKT_SW传递给接口模块SW2HW_INF,执行步骤S314;

S314,接口模块SW2HW_INF将每个数据分组PKT_SW的Pld字段转换成硬件信号值,根据Hdr的信息将硬件信号值传递给硬件设计模块DUT相应的模块,执行步骤S315;

S315,清空接口模块SW2HW_INF队列,等待下一个时钟周期,结束执行。

如图5所示,接口模块HW2SW_INF在每个时钟周期t(t为正整数)执行步骤包括:

S321,时钟触发模块CLK_MD时钟驱动,执行步骤S322;

S322,硬件设计模块DUT生成h个数据分组PKT_HW,如果h等于0,则等待下一个时钟周期,执行步骤S321;如果h大于0,则执行步骤S323;

S323,硬件设计模块DUT将h个数据分组PKT_HW传递给接口模块HW2SW_INF,执行步骤S324;

S324,接口模块HW2SW_INF将每个数据分组PKT_HW将Pld字段转换成数据结构,根据Hdr的信息将数据结构传递给时钟驱动软件模型CLK_SW_MD,执行步骤S325;

S325,清空接口模块HW2SW_INF队列,等待下一个时钟周期,结束执行。

本实施例的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。

以上的仅是本发明的实施例,该发明不限于此实施案例涉及的领域,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。

相关技术
  • 工件搬送装置、工件搬送法、电子零件的制造装置及制法
  • 机器人、搬送装置及附导线的连接器的搬送方法
  • 电子元件搬送方法及电子元件搬送装置与搬送设备
  • 搬送设备、搬送方法和搬送系统
技术分类

06120116524530