CN115934386A - 一种基于自带通信管道的验证组件的通信仿真方法及平台 - Google Patents
一种基于自带通信管道的验证组件的通信仿真方法及平台 Download PDFInfo
- Publication number
- CN115934386A CN115934386A CN202310159576.1A CN202310159576A CN115934386A CN 115934386 A CN115934386 A CN 115934386A CN 202310159576 A CN202310159576 A CN 202310159576A CN 115934386 A CN115934386 A CN 115934386A
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- sending
- communication
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于自带通信管道的验证组件的通信仿真方法及平台,涉及芯片仿真验证技术领域。包括:根据仿真验证平台的需求,将芯片仿真验证平台划分为多种验证组件;每种验证组件单独运行在不同线程上;各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;每种验证组件自带一个通信管道,每个通信管道具有唯一管道编号;主从激励组件自带一个双向多功能通信管道,通过双向多功能通信管道内的队列进行发送数据包的发送和反馈数据包的接收。本发明对组件间的通信通过管道进行实现,组件运行在线程上;且设计了一种双向多功能通信管道来实现组件间的多种通信需求,减小线程间通信编程难度,提高芯片仿真速度和仿真效率。
Description
技术领域
本发明涉及芯片仿真验证技术领域,具体涉及一种基于自带通信管道的验证组件的通信仿真方法及平台。
背景技术
随着半导体工艺的不断发展,芯片的集成规模越来越大,为仿真验证带来了不小的挑战:一是仿真验证平台规模增大,复杂度增加;二是仿真速度越来越慢。
芯片规模增大,同时导致仿真验证平台规模增大,这是客观存在的业务需求。为了提升仿真验证效率,一个可行的方法是使用多核并行仿真。要实现多核并行仿真,必然要使用到线程、进程或协程编程,并实现线程间、进程间、协程间的数据同步,如果数据同步设计不合理,可能导致死锁等无法预测的问题,导致仿真验证平台设计复杂度上升一个甚至两个数量级。验证人员不是专业的软件开发人员,进行多线程、多进程、多协程编程难度较大。传统的语言一般会提供fork-join并行模式等启动线程的语法供用户使用,至于线程间的同步、访问公共资源等,都需要用户来实现。
现有方案的主要缺点是实现线程间的通信编程难度大,对于非专业的软件开发人员,即验证人员而言难度很大,工程上不具备操作性。并且线程间通信如果设计不合理,通信效率差,反而会影响仿真效率的提升。
发明内容
本发明所要解决的技术问题是在芯片仿真验证中的软件仿真技术方案中实现线程间的通信编程难度大,对于验证人员难度很大,工程上不具备操作性;同时,线程间的通信效率差、难以满足线程间多种通信需求,进而影响芯片仿真速度和仿真效率。
本发明目的在于提供一种基于自带通信管道的验证组件的通信仿真方法及平台,本发明对组件间的通信通过管道进行实现,组件运行在线程上;且设计了一种双向多功能通信管道来实现组件间的多种通信需求,提高芯片仿真速度和仿真效率。
本发明通过下述技术方案实现:
第一方面,本发明提供了一种基于自带通信管道的验证组件的通信仿真方法,该方法包括:
根据仿真验证平台的需求,将芯片仿真验证平台划分为多种验证组件VC(Verification Component);每种验证组件单独运行在不同线程上;
各种验证组件之间、验证组件和待验证芯片DUV(Design Under Verification)之间均通过管道编号进行通信访问;每种验证组件自带一个通信管道tube,每个通信管道具有唯一的管道编号;
主从激励组件自带一个双向多功能通信管道,通过双向多功能通信管道内的队列进行发送数据包的发送和反馈数据包的接收。
进一步地,双向多功能通信管道内的队列包括广播数据队列bmq(BroadcastMulti-size queue)、激励发送数据队列t1q(Tx 1-sizequeue)、返回数据队列r1q(Return1-size queue)、状态数据队列s1q(Status 1-size queue)和完成消息队列d1q(Done 1-size queue)。
通过广播数据队列或激励发送数据队列进行发送数据包的发送;
结合返回数据队列、状态数据队列和完成消息队列进行反馈数据包的接收。
进一步地,双向多功能通信管道两侧通过不同线程进行数据交换,不同线程包括广播线程brdThd、激励发送线程txThd和接收线程rxThd;
广播线程brdThd只能往广播数据队列bmq中发送数据;
激励发送线程txThd既能往激励发送数据队列t1q中发送数据,还能往广播数据队列bmq中发送数据;
接收线程rxThd既能接收广播线程brdThd发送过来的数据,还能接收激励发送线程txThd发送过来的数据。
进一步地,广播线程brdThd发送数据只支持单向传递,不能接收反馈数据;
激励发送线程txThd发送数据支持双向传递,能够和接收线程rxThd进行数据交换;
激励发送线程txThd和广播线程brdThd均包括一个或多个,接收线程rxThd只有一个。
进一步地,激励发送线程txThd和接收线程rxThd之间的通信方式采用激励发送线程txThd为主,接收线程rxThd为从,包括:
不等待发送完成模式:
激励发送线程txThd主动发送数据到激励发送数据队列t1q,如果该队列t1q中有数据,则等待;如果该队列t1q为空,则将发送数据保存到该队列t1q,并从返回数据队列r1q中取出数据返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该队列t1q中有数据,则读取数据并返回;如果该队列t1q为空,则不等待并及时返回,获取的数据为空数据;
等待发送完成模式:
激励发送线程txThd主动发送数据到激励发送数据队列t1q,如果该队列t1q中有数据,则等待;如果该队列t1q为空,则将发送数据并保存到该队列t1q中,等待接收线程rxThd反馈完成消息,从完成消息队列d1q中得到完成消息后返回;
接收线程rxThd从激励发送数据队列t1q中读取数据,如果该队列t1q中有数据,则读取数据返回;数据处理完成后,再向完成消息队列d1q标记完成消息后返回;如果该队列t1q没有数据,则不等待及时返回。
进一步地,激励发送线程txThd和接收线程rxThd之间的通信方式采用接收线程rxThd为主,激励发送线程txThd为从,包括:
不等待发送完成模式:
当接收线程rxThd已准备好接收数据时,向状态数据队列s1q发送准备好状态;
根据状态数据队列s1q的状态,激励发送线程txThd发送数据到激励发送数据队列t1q,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,并从返回数据队列r1q中取出数据返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该队列中有数据,则读取数据并返回;如果该队列中没有数据,则不等待及时返回;
等待发送完成模式:
当接收线程rxThd已准备好接收数据时,向状态数据队列s1q发送准备好状态;
根据状态数据队列s1q的状态,激励发送线程txThd发送数据到激励发送数据队列t1q,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,等待激励发送线程txThd接收线程反馈完成消息,从完成消息队列d1q中得到完成消息后返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该对列有数据,则读取数据并返回;完成数据处理后,再向完成消息队列d1q标记完成消息后返回;如果该对列没有数据,则不等待及时返回。
进一步地,广播线程brdThd和接收线程rxThd之间的通信方式为:
广播线程brdThd将数据在广播数据队列bmq中按先进先出模式或者优先级抢占模式进行排队,并依次发送数据给接收线程rxThd;其中,按优先级抢占模式进行排队时,数据包会排在队列的最前端。
进一步地,根据每种验证组件的不同通信需求,每种验证组件自带的通信管道不同。
进一步地,发送数据包包括第一数据包头,第一数据包头包括发送端口号、子端口号、虚端口号、发送端口状态、发送延时和发送数据包长度;其中,发送端口号、发送延时和发送数据包长度为默认必须项;子端口号、虚端口号和发送端口状态为可扩展选项;
反馈数据包包括第二数据包头,第二数据包头包括发送端口号、子端口号、虚端口号、仿真时间和BFM状态数据长度;其中,发送端口号、仿真时间和BFM状态数据长度为默认必须项,子端口号和虚端口号为可扩展选项。其中,BFM状态数据长度中的BFM是总线功能模型Bus Function Model。
第二方面,本发明又提供了使用所述的一种基于自带通信管道的验证组件的通信仿真方法实现的芯片仿真验证平台,该平台包括多种验证组件,每种验证组件单独运行在不同线程上;每种验证组件自带一个通信管道,每个通信管道具有唯一的管道编号;各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;
验证组件包括主从激励组件、主从接收组件、监控组件、驱动组件、设备组件、行为级参考模型组件、寄存器组件和记分牌组件;主从激励组件自带一个双向多功能通信管道,双向多功能通信管道通过管道内的队列进行发送数据包的发送和反馈数据包的接收。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明对组件间的通信通过管道进行实现,不同组件运行在不同线程上;且设计了一种双向多功能通信管道来实现组件间的多种通信需求,双向多功能通信管道包括5种队列,通过队列间的配合关系、操作模式实现多种通信需求,减小线程间通信编程难度,提高芯片仿真速度和仿真效率。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明一种基于自带通信管道的验证组件的通信仿真方法流程图。
图2为本发明设计的双向多功能通信管道及管道两侧线程的通信示意图。
图3为本发明一种基于自带通信管道的验证组件的通信仿真方法实现的芯片仿真验证平台框架图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
基于在芯片仿真验证中的软件仿真技术方案中实现线程间的通信编程难度大,对于验证人员难度很大,工程上不具备操作性;同时,线程间的通信效率差、难以满足线程间多种通信需求,进而影响芯片仿真速度和仿真效率。
本发明根据仿真验证平台的需求,将芯片仿真验证平台划分为多种验证组件VC(Verification Component),每种验证组件单独运行在不同线程上;每种验证组件自带一个通信管道tube,每个通信管道具有唯一的管道编号;各种验证组件之间、验证组件和待验证芯片DUV(Design Under Verification)之间均通过管道编号进行通信访问;每种类型的验证组件,根据其通信需求的不同,其通信管道tube可以不相同。本发明将验证平台细化成8种类型的验证组件,大幅降低验证平台的复杂度;验证组件执行在单独的线程中,实现并行仿真,提升了仿真速度。验证组件通过自带的各种类型的通信管道tube,实现线程间的安全、可靠、高效通信,适应各种应用场景,功能全面,大幅降低了验证平台的实现难度。
在芯片仿真验证中,为芯片施加激励,激励的来源、激励的方式各种各样,为仿真验证平台的设计带来不小的挑战。有如下需求需要满足:(1)主从方式:发送方和接收方哪方来主导数据交换过程。(2)数据传递方向:是单向数据传递,还是双向数据传递。(3)握手方式:一次数据传递如何响应,或者无需响应。是否支持反压。是否等待,等待方式问题。因为等待可能造成通信效率问题。(4)多激励来源:多个线程往同一个管道发送数据。是否支持广播和组播。(5)优先级、流量调度问题:激励优先级抢占,高优先级的数据优先传递。(6)通信失败问题:收发到无效数据时如何处理。(7)功能扩展问题:通信协议支持灵活扩展。
基于以上需求,本发明重点设计了一种双向多功能通信管道来实现组件间的多种通信需求,减小线程间通信编程难度,提高芯片仿真速度和仿真效率。
如图1所示,图1为本发明一种基于自带通信管道的验证组件的通信仿真方法流程图。本发明一种基于自带通信管道的验证组件的通信仿真方法,该方法包括:
根据仿真验证平台的需求,将芯片仿真验证平台划分为多种验证组件,每种验证组件单独运行在不同线程上;
各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;每种验证组件自带一个通信管道,每个通信管道具有唯一的管道编号;
主从激励组件自带一个双向多功能通信管道,通过双向多功能通信管道内的队列进行发送数据包的发送和反馈数据包的接收。
其中,发送数据包和反馈数据包均为多种数据的集合,可以降低通信管道交换数据的频率,有效保证仿真效率。
作为进一步地实施,双向多功能通信管道内的队列包括:
广播数据队列bmq(Broadcast Multi-size queue),该队列可以存放多个数据;
激励发送数据队列t1q(Tx 1-sizequeue),该队列只能存放一个数据;
返回数据队列r1q(Return 1-size queue),该队列只能存放一个数据,返回数据队列和激励发送数据队列一一对应;
状态数据队列s1q(Status 1-size queue),该队列只能存放一个数据;
完成消息队列d1q(Done 1-size queue),该队列只能存放一个数据。
其中,通过广播数据队列或激励发送数据队列进行发送数据包的发送;
结合返回数据队列、状态数据队列和完成消息队列进行反馈数据包的接收。
作为进一步地实施,如图2所示,图2为本发明设计的双向多功能通信管道及管道两侧线程的通信示意图。双向多功能通信管道两侧通过不同线程进行数据交换,不同线程包括广播线程brdThd、激励发送线程txThd和接收线程rxThd;
图2中,图2中t表示激励发送数据包,b表示广播数据包,h高优先级的广播数据包或激励发送数据包;bm为多个容量的广播数据队列;t1为一个容量的发送数据队列;s1为一个容量的状态数据队列;r1为一个容量的返回数据队列;d1为一个容量的完成数据队列。激励发送线程txThd和广播线程brdThd均包括一个或多个,当为多个时,表示为txThdn、brdThdn,其中n表示多个;接收线程rxThd只有一个。广播线程brdThd只能往广播数据队列bmq中发送数据;激励发送线程txThd既能往激励发送数据队列t1q中发送数据,还能往广播数据队列bmq中发送数据;接收线程rxThd既能接收广播线程brdThd发送过来的数据,还能接收激励发送线程txThd发送过来的数据。广播线程brdThd发送数据只支持单向传递,不能接收反馈数据;激励发送线程txThd发送数据支持双向传递,能够和接收线程rxThd进行数据交换。
图2中激励发送数据队列t1q中存放的数据,在广播队列bmq中和其他广播数据按先进先出的方式进行统一排队。
作为进一步地实施,在通常情况下,激励发送线程txThd和接收线程rxThd进行通信。两者通信时可以选择主从模式:
第一种情况:采用激励发送线程txThd为主,接收线程rxThd为从。这种情况包括两种子模式:
不等待发送完成模式:
激励发送线程txThd主动发送数据到激励发送数据队列t1q,如果该队列t1q中有数据,则等待;如果该队列t1q为空,则将发送数据保存到该队列t1q,并从返回数据队列r1q中取出数据返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该队列t1q中有数据,则读取数据并返回;如果该队列t1q为空,则不等待并及时返回,获取的数据为空数据;
等待发送完成模式:
激励发送线程txThd主动发送数据到激励发送数据队列t1q,如果该队列t1q中有数据,则等待;如果该队列t1q为空,则将发送数据并保存到该队列t1q中,等待接收线程rxThd反馈完成消息,从完成消息队列d1q中得到完成消息后返回;
接收线程rxThd从激励发送数据队列t1q中读取数据,如果该队列t1q中有数据,则读取数据返回;数据处理完成后,再向完成消息队列d1q标记完成消息后返回;如果该队列t1q没有数据,则不等待及时返回。
第二种情况:采用接收线程rxThd为主,激励发送线程txThd为从。此时使用到状态数据队列s1q。这种情况包括两种子模式:
不等待发送完成模式:
默认情况下,状态数据队列s1q的状态为未准备好状态notready;未准备好状态notready表示接收线程rxThd没有准备好接收数据;
当接收线程rxThd已准备好接收数据时,向状态数据队列s1q发送准备好状态;
激励发送线程txThd准备发数据之前,需要查询状态数据队列s1q的是否准备好状态;只有当查询状态数据队列s1q中的状态为准备好状态时,才启动发送数据;一旦发现状态数据队列s1q中的状态变为未准备好状态,则不发送数据;
根据状态数据队列s1q的状态,激励发送线程txThd发送数据到激励发送数据队列t1q,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,并从返回数据队列r1q中取出数据返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该队列中有数据,则读取数据并返回;如果该队列中没有数据,则不等待及时返回;
等待发送完成模式:
默认情况下,状态数据队列s1q的状态为未准备好状态notready;未准备好状态notready表示接收线程rxThd没有准备好接收数据;
当接收线程rxThd已准备好接收数据时,向状态数据队列s1q发送准备好状态;
激励发送线程txThd准备发数据之前,需要查询s1q队列的是否准备好状态。只有当状态数据队列s1q中的状态为准备好状态ready时,才启动发送数据。一旦发现状态数据队列s1q中的状态变为未准备好状态notready,则不发送数据;
根据状态数据队列s1q的状态,激励发送线程txThd发送数据到激励发送数据队列t1q,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,等待激励发送线程txThd接收线程反馈完成消息,从完成消息队列d1q中得到完成消息后返回;
接收线程rxThd从激励发送数据队列t1q读取数据,如果该对列有数据,则读取数据并返回;完成数据处理后,再向完成消息队列d1q标记完成消息后返回;如果该对列没有数据,则不等待及时返回。
作为进一步地实施,当存在其他线程,即广播线程brdThd,也向该双向多功能通信管道发送数据时,使用广播数据队列bmq。由于广播数据队列可以存放多个数据,广播线程可以不用等待,即可实现数据的成功发送。
广播线程brdThd将数据在广播数据队列bmq中按先进先出模式或者优先级抢占模式进行排队,并依次发送数据给接收线程rxThd;其中,按优先级抢占模式进行排队时,数据包会排在队列的最前端。
广播线程brdThd可以支持广播和组播。
广播线程brdThd和激励发送线程txThd发送的数据支持以下两种模式:
先进先出模式:广播线程brdThd和激励发送线程txThd发送的数据按先进先出方式在广播数据队列bmq中进行排队。
后进先出模式(优先级抢占模式):广播线程brdThd和激励发送线程txThd发送线程发送的数据可以高优先级,排在广播数据队列bmq的最前面,实现后进先出。
作为进一步地实施,根据每种验证组件的不同通信需求,每种验证组件自带的通信管道不同。
作为进一步地实施,发送数据包txPacket的格式如表1所示:
表1发送数据包txPacket的格式
发送数据包txPacket包括18byte的第一数据包头,第一数据包头包括发送端口号、子端口号、虚端口号、发送端口状态、发送延时和发送数据包长度;其中,发送端口号、发送延时和发送数据包长度为默认必须项,且需要保持正确。发送延时告知接收端,收到该数据包后,延迟一段时间后再发送,起到流量调度的作用。发送数据长度可以为0,表示没有数据需要发送。
子端口号、虚端口号和发送端口状态为可扩展选项,可扩展选项由用户根据实际需要使用。比如,可以将发送端口状态设置为1表示Lastone,告知接送端这是最后一个数据包。接收端获取该状态后,不再从接收端获取数据。
反馈数据包txFeedback的格式如表2所示:
表2反馈数据包txFeedback的格式
反馈数据包txFeedback包括18byte的第二数据包头,第二数据包头包括发送端口号、子端口号、虚端口号、仿真时间和BFM状态数据长度;其中,发送端口号、仿真时间和BFM状态数据长度为默认必须项,且需要保持正确。状态数据长度可以为0,表示不传递状态数据。
子端口号和虚端口号为可扩展选项,可扩展选项由用户根据实际需要使用。
本发明将验证组件和通信管道tube结合在一起,方便实现相应的通信需求;且重点设计了一种双向多功能通信管道来实现组件间的多种通信需求,双向多功能通信管道包括5种队列,通过队列间的配合关系、操作模式实现多种通信需求,进而提高芯片仿真速度和仿真效率。
实施例2
如图3所示,图3为本发明一种基于自带通信管道的验证组件的通信仿真方法实现的芯片仿真验证平台框架图。本实施例与实施例1的区别在于,本实施例提供了使用实施例1所述的一种基于自带通信管道的验证组件的通信仿真方法实现的芯片仿真验证平台,该平台包括多种验证组件,每种验证组件单独运行在不同线程上;每种验证组件自带一个通信管道,每个通信管道具有唯一的管道编号;各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;
验证组件包括主从激励组件txVC、主从接收组件rxVC、监控组件monVC、驱动组件drvVC、设备组件devVC、行为级参考模型组件brmVC、寄存器组件regVC和记分牌组件scbVC;主从激励组件txVC自带一个双向多功能通信管道,双向多功能通信管道通过管道内的队列进行发送数据包的发送和反馈数据包的接收。由以上验证组件构建的芯片仿真验证平台框架见图3所示,图3中待验证芯片DUV,发送端口txPort、接收端口rxPort、读写端口rwPort和设备端口devPort为待验证芯片DUV的四个端口。
在本框架下,各个验证组件执行在独立的线程上,验证组件在例化时自动启动线程,用户无需关注线程的启动。每个验证组件通过自带的通信管道tube和其他验证组件、DUV进行通信。其通信过程只有发送数据、获取数据两种操作,无需关注资源同步问题。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,该方法包括:
根据仿真验证平台的需求,将芯片仿真验证平台划分为多种验证组件;每种验证组件单独运行在不同线程上;
各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;每种验证组件自带一个通信管道,每个通信管道具有唯一的管道编号;
主从激励组件自带一个双向多功能通信管道,通过双向多功能通信管道内的队列进行发送数据包的发送和反馈数据包的接收。
2.根据权利要求1所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述双向多功能通信管道内的队列包括广播数据队列、激励发送数据队列、返回数据队列、状态数据队列和完成消息队列;
通过广播数据队列或激励发送数据队列进行发送数据包的发送;
结合返回数据队列、状态数据队列和完成消息队列进行反馈数据包的接收。
3.根据权利要求2所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述双向多功能通信管道两侧通过不同线程进行数据交换,不同线程包括广播线程、激励发送线程和接收线程;
所述广播线程只能往广播数据队列中发送数据;
所述激励发送线程既能往激励发送数据队列中发送数据,还能往广播数据队列中发送数据;
所述接收线程既能接收广播线程发送过来的数据,还能接收激励发送线程发送过来的数据。
4.根据权利要求3所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述广播线程发送数据只支持单向传递,不能接收反馈数据;
所述激励发送线程发送数据支持双向传递,能够和接收线程进行数据交换;
所述激励发送线程和广播线程均包括一个或多个,接收线程只有一个。
5.根据权利要求3所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述激励发送线程和接收线程之间的通信方式采用激励发送线程为主,接收线程为从,包括:
不等待发送完成模式:
激励发送线程主动发送数据到激励发送数据队列,如果该队列中有数据,则等待;如果该队列为空,则将发送数据保存到该队列,并从返回数据队列中取出数据返回;
接收线程从激励发送数据队列读取数据,如果该队列中有数据,则读取数据并返回;如果该队列为空,则不等待并及时返回,获取的数据为空数据;
等待发送完成模式:
激励发送线程主动发送数据到激励发送数据队列,如果该队列中有数据,则等待;如果该队列为空,则将发送数据并保存到该队列中,等待接收线程反馈完成消息,从完成消息队列中得到完成消息后返回;
接收线程从激励发送数据队列中读取数据,如果该队列中有数据,则读取数据返回;数据处理完成后,再向完成消息队列标记完成消息后返回;如果该队列没有数据,则不等待及时返回。
6.根据权利要求3所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述激励发送线程和接收线程之间的通信方式采用接收线程为主,激励发送线程为从,包括:
不等待发送完成模式:
当接收线程已准备好接收数据时,向状态数据队列发送准备好状态;
根据状态数据队列的状态,激励发送线程发送数据到激励发送数据队列,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,并从返回数据队列中取出数据返回;
接收线程从激励发送数据队列读取数据,如果该队列中有数据,则读取数据并返回;如果该队列中没有数据,则不等待及时返回;
等待发送完成模式:
当接收线程已准备好接收数据时,向状态数据队列发送准备好状态;
根据状态数据队列的状态,激励发送线程发送数据到激励发送数据队列,如果该队列有数据,则等待;如果该队列为空,则将发送数据保存到该队列,等待激励发送线程接收线程反馈完成消息,从完成消息队列中得到完成消息后返回;
接收线程从激励发送数据队列读取数据,如果该对列有数据,则读取数据并返回;完成数据处理后,再向完成消息队列标记完成消息后返回;如果该对列没有数据,则不等待及时返回。
7.根据权利要求3所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述广播线程和接收线程之间的通信方式为:
广播线程将数据在广播数据队列中按先进先出模式或者优先级抢占模式进行排队,并依次发送数据给接收线程;其中,按优先级抢占模式进行排队时,数据包会排在队列的最前端。
8.根据权利要求1所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,根据每种验证组件的不同通信需求,每种验证组件自带的通信管道不同。
9.根据权利要求1所述的一种基于自带通信管道的验证组件的通信仿真方法,其特征在于,所述发送数据包包括第一数据包头,所述第一数据包头包括发送端口号、子端口号、虚端口号、发送端口状态、发送延时和发送数据包长度;其中,发送端口号、发送延时和发送数据包长度为默认必须项;子端口号、虚端口号和发送端口状态为可扩展选项;
所述反馈数据包包括第二数据包头,所述第二数据包头包括发送端口号、子端口号、虚端口号、仿真时间和BFM状态数据长度;其中,发送端口号、仿真时间和BFM状态数据长度为默认必须项,子端口号和虚端口号为可扩展选项。
10.使用如权利要求1至9中任一所述的一种基于自带通信管道的验证组件的通信仿真方法实现的芯片仿真验证平台,其特征在于,该平台包括多种验证组件,每种验证组件单独运行在不同线程上;每种验证组件自带一个通信管道,每个通信管道具有唯一的管道编号;各种验证组件之间、验证组件和待验证芯片之间均通过管道编号进行通信访问;
所述验证组件包括主从激励组件、主从接收组件、监控组件、驱动组件、设备组件、行为级参考模型组件、寄存器组件和记分牌组件;其中,主从激励组件自带一个双向多功能通信管道,双向多功能通信管道通过管道内的队列进行发送数据包的发送和反馈数据包的接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159576.1A CN115934386B (zh) | 2023-02-24 | 2023-02-24 | 一种基于自带通信管道的验证组件的通信仿真方法及平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310159576.1A CN115934386B (zh) | 2023-02-24 | 2023-02-24 | 一种基于自带通信管道的验证组件的通信仿真方法及平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934386A true CN115934386A (zh) | 2023-04-07 |
CN115934386B CN115934386B (zh) | 2023-05-30 |
Family
ID=85827228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310159576.1A Active CN115934386B (zh) | 2023-02-24 | 2023-02-24 | 一种基于自带通信管道的验证组件的通信仿真方法及平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934386B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190155985A1 (en) * | 2017-11-22 | 2019-05-23 | Mentor Graphics Corporation | Communication protocols design verification through database systems for hardware-based emulation platforms |
CN111506345A (zh) * | 2020-06-29 | 2020-08-07 | 深圳市芯天下技术有限公司 | 一种非型闪存指令组合验证方法、系统、存储介质和终端 |
CN112699695A (zh) * | 2021-03-23 | 2021-04-23 | 广州智慧城市发展研究院 | Rfid读写器软件验证装置、方法及电子设备 |
CN114091391A (zh) * | 2021-11-26 | 2022-02-25 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备和存储介质 |
CN114386365A (zh) * | 2021-12-29 | 2022-04-22 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114818599A (zh) * | 2022-04-29 | 2022-07-29 | 深圳云豹智能有限公司 | 芯片仿真验证系统 |
CN115659906A (zh) * | 2022-10-28 | 2023-01-31 | 海光信息技术股份有限公司 | 一种芯片验证系统、方法及相关设备 |
-
2023
- 2023-02-24 CN CN202310159576.1A patent/CN115934386B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190155985A1 (en) * | 2017-11-22 | 2019-05-23 | Mentor Graphics Corporation | Communication protocols design verification through database systems for hardware-based emulation platforms |
CN111506345A (zh) * | 2020-06-29 | 2020-08-07 | 深圳市芯天下技术有限公司 | 一种非型闪存指令组合验证方法、系统、存储介质和终端 |
CN112699695A (zh) * | 2021-03-23 | 2021-04-23 | 广州智慧城市发展研究院 | Rfid读写器软件验证装置、方法及电子设备 |
CN114091391A (zh) * | 2021-11-26 | 2022-02-25 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备和存储介质 |
CN114386365A (zh) * | 2021-12-29 | 2022-04-22 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114818599A (zh) * | 2022-04-29 | 2022-07-29 | 深圳云豹智能有限公司 | 芯片仿真验证系统 |
CN115659906A (zh) * | 2022-10-28 | 2023-01-31 | 海光信息技术股份有限公司 | 一种芯片验证系统、方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
LI RUOWEI: "Implementation and verification of network-on-chip based on virtual output queue", 《ICIAI \'18: PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON INNOVATION IN ARTIFICIAL INTELLIGENCE》 * |
刘达;王勇;李炳乾;褚文奎;: "基于FPGA的FC终端协议处理芯片的设计与实现", 火力与指挥控制 * |
Also Published As
Publication number | Publication date |
---|---|
CN115934386B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5434976A (en) | Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers | |
US8209690B2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
CN100454280C (zh) | 处理器系统,dma控制电路,dma控制方法,dma控制器用控制方法,图形处理方法和图形处理电路 | |
RU2427029C2 (ru) | Способ и устройство формирования очереди потоков | |
CN107077390B (zh) | 一种任务处理方法以及网卡 | |
US11347546B2 (en) | Task scheduling method and device, and computer storage medium | |
TW201238295A (en) | A method and system for improved multi-cell support on a single modem board | |
CN1118029C (zh) | 用于高速总线的流控制的系统和方法 | |
CN1279790A (zh) | 快速16位分离事务i/o总线 | |
JPH0653994A (ja) | データ送信方式及び通信制御装置 | |
WO2017218133A1 (en) | Technologies for coordinating access to data packets in a memory | |
US7707584B2 (en) | Method and apparatus for synchronizing calls in a server and client system | |
CN110955461B (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN115934386B (zh) | 一种基于自带通信管道的验证组件的通信仿真方法及平台 | |
CN117033008A (zh) | 一种基于描述符共享循环队列的多核快速消息通信方法 | |
US9838471B2 (en) | Method and an apparatus for work request arbitration in a network processor | |
JPH02212955A (ja) | プロトコルマシン | |
JPH06301655A (ja) | 分散処理システム | |
JP2012203911A (ja) | 非同期のデバイスによって実行されるタスクのスケジューリングの向上 | |
CN113296972A (zh) | 一种信息的注册方法、计算设备及存储介质 | |
CN113568665B (zh) | 一种数据处理装置 | |
EP1548591A2 (en) | Accelerator for object-oriented communications and method | |
Grogono et al. | A fair protocol for non-deterministic message passing | |
JPH0962517A (ja) | タスク制御装置 | |
JP2012205142A (ja) | データ転送装置、データ転送方法および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |