CN114024871B - 一种芯片验证方法、***、计算机设备及可读存储介质 - Google Patents
一种芯片验证方法、***、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN114024871B CN114024871B CN202210000686.9A CN202210000686A CN114024871B CN 114024871 B CN114024871 B CN 114024871B CN 202210000686 A CN202210000686 A CN 202210000686A CN 114024871 B CN114024871 B CN 114024871B
- Authority
- CN
- China
- Prior art keywords
- command
- client software
- chip
- register
- verification
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种芯片验证方法、***、计算机设备及可读存储介质,方法包括:在服务器运行验证环境,基于验证环境执行以下步骤:创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;响应于接收到客户端软件通过网络发送的命令,对命令进行解析,并发送返回命令给客户端软件;基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问待验证芯片的寄存器。方法还包括:在客户端运行软件,软件执行以下步骤:与服务器的验证环境建立基于套接字的链接以通过网络发送命令到验证环境,其中,命令用于访问验证环境中待验证芯片的寄存器。本发明方案提高了芯片验证质量,加快了芯片验证速度。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种芯片验证方法、***、计算机设备及可读存储介质。
背景技术
在芯片研发过程中,验证是其中重要的一环,每一个芯片从模块级、***级,最后到芯片级都要经过大量的测试验证。目前常规的验证方法大都采用功能验证对待测试的部件搭建验证环境,产生激励,检查相应的输出结果。但当测试验证过程中,需要根据输出结果来调整输入激励时,往往伴随着一些软件算法,这些算法绝大多数是采用C语言实现的,如何能尽早的验证芯片硬件功能及算法的正确性成为芯片设计开发过程中重要的一环,也对芯片的验证方法提出了新的挑战。如果将完整算法进行功能仿真,需要将算法编译成动态链接库,加载进EDA仿真工具中,但必将面临由待测设计规模增加而引起的仿真时间成倍增长等问题,同时在EDA仿真工具中调试软件代码也非常的不便捷,这些不利因素都会导致芯片验证周期的增长。为了解决这一问题,目前常用的方法是将软件算法简化,通过编写相应的测试用例在EDA工具中进行仿真,但是这种方法需要验证人员对算法模型进行深入了解,否则很难验证算法及硬件实现的正确性。
发明内容
有鉴于此,本发明提出了一种芯片验证方法、***、计算机设备及可读存储介质,通过网络将算法验证与芯片验证有机结合起来,使软件算法的开发环境及调试工具不再受到限制,提高了芯片验证质量。
基于上述目的,本发明实施例的一方面提供了一种芯片验证方法,在服务器运行验证环境,基于所述验证环境执行以下步骤:
创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件;
基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
对所述命令进行解析,并发送返回命令给所述客户端软件,包括:
判断所述命令是否为断开链接;
若所述命令不为断开链接,则判断所述命令是否为对寄存器的写操作;
若所述命令为对寄存器的写操作,则生成寄存器写总线访问,并发送返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令不为对寄存器的写操作,则判断所述命令是否为对寄存器的读操作;
若所述命令为对寄存器的读操作,则生成寄存器读总线访问,并发送带数据的返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令不为对寄存器的读操作,则发送带数据的返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令为断开链接,则发送带数据的返回命令给所述客户端软件,并断开链接。
在一些实施方式中,响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件,包括:
响应于接收到多个所述客户端软件通过网络发送的命令,基于所述客户端软件创建对应数量个线程;
基于对应的线程对每个所述客户端软件发送的命令进行解析,并发送返回命令给所述客户端软件。
本发明实施例的另一方面,还提供了一种芯片验证方法,在客户端运行软件,所述软件执行以下步骤:
与服务器的验证环境建立基于套接字的链接以通过网络发送命令到所述验证环境,其中,所述命令用于访问所述验证环境中待验证芯片的寄存器。
本发明实施例的另一方面,还提供了一种芯片验证***,包括:
监听进程,所述监听进程配置为创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
命令解析模块,所述命令解析模型配置为响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件;
总线功能模块,所述总线功能模块配置为基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明至少具有以下有益技术效果:通过在客户端运行软件,在服务器运行验证环境,验证环境通过创建链接监听网络状态,在监听到客户端软件发来的命令时,对命令进行解析,并将解析后的命令转换成物理总线访问实现对待验证芯片内部寄存器的访问,实现了软件算法与芯片的协同验证,提高了芯片的验证质量,加快了芯片验证速度;当多个软件并行执行时,通过多线程方式对芯片进行统一验证,进一步缩短了验证的时间,充分利用了硬件资源,并且验证了多核并发执行任务时芯片内部功能的正确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的芯片验证方法的一实施例的框图;
图2为本发明提供的在验证环境中接收并解析命令的一实施例的流程图;
图3为本发明提供的芯片验证方法的又一实施例的结构示意图;
图4为本发明提供的客户端软件与验证环境多线程并行的芯片验证的一实施例的结构示意图;
图5为本发明提供的芯片验证***的一实施例的示意图;
图6为本发明提供的芯片验证***的又一实施例的框图;
图7为本发明提供的计算机设备的一实施例的结构示意图;
图8为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种芯片验证方法的实施例。如图1所示,在服务器运行验证环境,基于验证环境执行以下步骤:
步骤S101、创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
步骤S103、响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件;
步骤S105、基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
响应于芯片的测试验证启动,在验证环境创建链接,实时监听网络状态,等待客户端软件发出的链接请求。
采用DPI的方式实现网络通信功能。具体的,基于socket函数建立套接字,监听网络状态,允许接收其他客户端软件访问的请求。
具体函数定义如下所示,其中,参数port表示定义的服务器口:
int listen_fd,command_fd;
void mm_start(unsigned int port)
{
/*声明socket属性结构体*/
struct socketaddr_in servaddr;
/*建立socket*/
listen_fd = socket(AF_INET,SOCK_STREAM,0);
…
/*将socket与机器端口号进行绑定*/
bind( listen_fd,(struct sockaddr*)& servaddr,sizeof(servaddr));
/*设置socket处于监听模式*/
listen(listen_fd,1);
/*等待客户端的链接请求*/
command_fd = accept( listen_fd,(struct sockaddr*)NULL,NULL);
}
若是监听到客户端软件通过网络发送的命令,对命令进行解析,从而转换成对待验证芯片内部寄存器的读写指令、访问地址、数据等内容,并发送相应的返回命令给客户端软件;基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问进而访问待验证芯片内部相关的寄存器。
本实施例中,验证环境通过创建链接监听网络状态,在监听到客户端软件发来的命令时,对命令进行解析,并将解析后的命令转换成物理总线访问实现对待验证芯片内部寄存器的访问,实现了软件算法与芯片的协同验证,提高了芯片的验证质量,加快了芯片验证速度。
对所述命令进行解析,并发送返回命令给所述客户端软件,包括:
判断所述命令是否为断开链接;
若所述命令不为断开链接,则判断所述命令是否为对寄存器的写操作;
若所述命令为对寄存器的写操作,则生成寄存器写总线访问,并发送返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令不为对寄存器的写操作,则判断所述命令是否为对寄存器的读操作;
若所述命令为对寄存器的读操作,则生成寄存器读总线访问,并发送带数据的返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令不为对寄存器的读操作,则发送带数据的返回命令给所述客户端软件。
在一些实施方式中,方法进一步包括:
若所述命令为断开链接,则发送带数据的返回命令给所述客户端软件,并断开链接。
下面通过具体的实施例对本发明的多个实施方式进行说明。
当验证环境收到通过网络传输过来的命令后,需要对其进行拆分解析。数据格式可以根据用户需求进行自定义。
具体函数定义如下,其中,*cmd代表接收到的命令,*offset代表需要访问的寄存器地址,*value代表需要访问的寄存器的数据,*opcode代表操作模式选择:
int mm_getcommand(unsigned short *cmd,unsigned short *offset,unsignedshort *value,unsigned short *opcode )
{
/*变量声明*/
int bytes_read;
unsigned char str[20];
/*获取输入缓存区指定长度的数据*/
bytes_read = read(command_fd,str,20);
…
return bytes_read;
}
当验证环境收到通过网络传输过来的命令后,验证环境需要通过返回命令返回相关的信息给发送命令的客户端软件,返回命令包括:不带数据的返回命令和带数据的返回命令。不带数据的返回命令主要适用于写寄存器操作,带数据的返回命令适用于读寄存器操作。
具体函数定义如下,其中,函数mm_respwovalue表示不带数据的返回命令,函数mm_respvalue表示带数据的返回命令:
void mm_respwovalue (char resp_value)
{
…
/*向客户端返回不含有效数据的特定编码*/
write(command_fd, &resp_value);
}
void mm_respvalue (int resp_value)
{
/*变量声明*/
char response[8];
bzero(response,8)
…
*((unsigned int*)( response+4)) = resp_value;
/*向客户端返回指定长度的有效数据*/
write(command_fd, response,8);
}
当仿真环境不需要接收命令时,或者软件所在的客户端软件侧进行复位时,需要断开网络链接,具体函数定义如下所示:
void mm_stop ()
{
…
/*关闭socket链接*/
close(commnd_fd);
close(listen_fd);
}
在验证环境中,通常采用UVM验证方法学搭建一个完整的验证平台。在启动测试用例后,通过DPI的方式调用上述函数,启动链接,并不间断的接收来自对端通过网络发送过来的命令,并根据接收到的命令转换出标准寄存器的总线访问。具体实例如下所示:
/*获取端口号*/
uvm_cmdline_proc.get_arg_value(“+PORT”,port);
/*启动链接*/
mm_start(port);
/*循环接收命令*/
do begin
mm_getcommand(command, offset, value , opcode)
if(command =0)begin
/*当接收命令为0时断开网络链接*/
mm_stop();
end else if(command ==1) begin
/*当接收命令为1时进行寄存器写操作*/
register_write(offset,value);
mm_respondwovalue(8'h11);
…
end
end while (command!=0)
当验证环境接收到软件通过网络发送过来的命令后,解析出对芯片内部寄存器操作的相关信息,进而通过验证平台中的BFM去驱动内部标准总线,实现对寄存器的访问。更进一步的,验证环境还可以在芯片验证过程中同时将所有的操作信息记录下来,方便软件的跟踪调试。
在软件算法实现过程中,需要与芯片内部的寄存器进行交互,通过实时获取芯片内部的状态进行运算,并将需要调整的参数写回到芯片内部。因此软件算法需要考虑后期直接运行在芯片内部的处理器上,也要能够在前期芯片算法验证阶段将读写寄存器的操作封装成自定义的命令格式,通过网络将命令传输给验证平台一侧,以便尽早的进行软件算法与芯片的协同验证。
如图2所示,对命令进行解析具体包括如下步骤:
接收命令;
判断命令是否为断开链接,若是断开链接,则发送带特定数据的返回命令给客户端软件,并断开链接;
若不是断开链接,则判断是否为寄存器写操作;
若是为寄存器写操作,则产生寄存器写总线访问,并发送返回命令给客户端软件,并在发送返回命令后,返回接收命令步骤;
若是不为寄存器写操作,则判断是否为寄存器读操作;
若是为寄存器读操作,则产生寄存器读总线访问,并发送带数据的返回命令给客户端软件,并在发送返回命令后,返回接收命令步骤;
若是不为寄存器读操作,则发送带特定数据的返回命令给客户端软件,并在发送返回命令后,返回接收命令步骤。
在一些实施方式中,响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件,包括:
响应于接收到多个所述客户端软件通过网络发送的命令,基于所述客户端软件创建对应数量个线程;
基于对应的线程对每个所述客户端软件发送的命令进行解析,并发送返回命令给所述客户端软件。
本实施例中,当多个软件并行执行时,在验证环境创建多个线程进行统一验证,进一步缩短了芯片验证的时间。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种芯片验证方法。如图3所示,在客户端运行软件,所述软件执行以下步骤:
步骤S301、与服务器的验证环境建立基于套接字的链接以通过网络发送命令到所述验证环境,其中,所述命令用于访问所述验证环境中待验证芯片的寄存器。
在客户端运行软件,预先在软件算法底层嵌入基于套接字的网络通信协议,当软法对芯片硬件寄存器操作时,软件与芯片验证环境建立链接关系,进而通过网络发送一系列自定义命令集中的命令。
自定义命令集,将软件对芯片内部资源的访问操作封装到命令集中,通过网络传输的方式与验证环境之间进行通信。当软件需要访问芯片内部寄存器时,可将数据、地址、操作符等信息放入命令集中,通过网络发送出。
验证环境实时监测网络数据,收到相应的数据命令之后,按照预先定义的格式进行解析,并将有效信息转发给总线功能模块,总线功能模块根据验证环境的不同可以有不同实现方式,但都实现的是对芯片内部寄存器的访问,同时将芯片内部寄存器状态通过网络返回给软件一侧。
当多个软件并行执行时,通过启动多线程的方式,模拟芯片内部多核访问,相关软件可以根据各自的执行方式及访问资源独立仿真运行,实现了软件的跨平台验证。
本发明通过网络将算法验证与芯片验证有机结合起来,不再限制软件算法的开发环境及调试工具,实现了软件算法与芯片的协同验证,提高了芯片的验证质量,加快了芯片验证速度。
由于芯片内部的功能复杂,多个处理器需要完成不同的算法处理,因此需要模拟多核同时运行不同软件的情形。本发明可以通过创建多线程支持多点并发的方式进行芯片硬件资源访问。具体的,如图4所示,本发明提供了客户端软件与验证环境多线程并行进行芯片验证的结构示意图。图4中,软件1和软件2分别代表不同的软件处理单元,分别运行在各自客户端上,当验证环境创建链接之后,可以循环等待软件1与软件2进行网络链接,当任何一个软件链接成功时,启动一个单独线程进行接收命令与解析的任务,从而实现多线程任务。通过命令解析之后,将对寄存器的访问操作交由BFM总线功能模块进行处理,BFM根据总线协议,将对寄存器的操作转换成标准总线访问发送到待验证芯片的接口上,由于是不同软件,多任务并发,访问的地址可能不同,则需要芯片内部根据访问地址进行译码,从而能够保证各自软件能够访问到对应的模块上,更进一步的,译码功能可以由图4中的互联模块实现,模块1、模块2代表芯片内部的不同模块。
通过网络通信方式将芯片的软件验证进行提前,从而极大的提高了软件与芯片功能紧耦合情况下的验证质量。通常当芯片内部具有一些高速接口时,由于生产工艺的影响,或多或少都会存在一些偏差,而这些将会对高速接口带来严重的影响,导致数据传输的不稳定,甚至一些错误。因此对这些带有高速接口的芯片在生产出来之后,都需要进行训练校准,这些都需要软件参与,通过获取芯片内部的状态寄存器,进行算法计算,计算出合适的参数进行修正,从而可以保证芯片数据传输的正确性与稳定性。由于这些软件算法和芯片内部的功能设计紧耦合,如果不进行充分的验证,很难保证后期功能的正确。根据本发明的方案,可以在芯片功能仿真验证阶段与软件算法进行协同统一验证,软件算法可以在合适的平台上进行调试,大大的加快了验证的速度,提高了验证的质量。
当多个软件并行执行时,通过多线程方式进行统一验证,进一步缩短了验证的时间,充分利用了硬件资源,还可以验证多核并发执行任务时芯片内部功能的正确性。将芯片与软件交互的很多验证工作提前,从而极大的节省了软件后期调试的时间和成本。
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种芯片验证***500,包括:
监听进程510,所述监听进程510配置为创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
命令解析模块520,所述命令解析模型520配置为响应于接收到所述客户端软件通过网络发送的命令,对所述命令进行解析,并发送返回命令给所述客户端软件;
总线功能模块530,所述总线功能模块530配置为基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
如图6所示,本发明提供了芯片验证的又一实施例的结构示意图。
软件运行在客户端软件侧,通过网络与服务器相连,验证环境运行在服务器上安装的EDA仿真工具中。验证环境中需要包含监听进程,当在监听进程建立网络通信链接之后,监听进程则接收软件一侧通过网络发送过来的命令。命令解析模块则需要对接收到的命令集进行拆分解析,从而转换成对芯片内部寄存器的读写指令、访问地址、数据等内容,并将其转交给BFM,BFM则根据待测件的总线访问协议将接收到的软件指令转化成真实的物理总线读写访问,进而控制待测件内部状态的运转。
本实施例中,验证环境通过监听进程监听网络状态,在监听到客户端软件发来的命令时,通过命令解析模块对命令进行解析,并将解析后的命令通过BMF模块转换成物理总线访问实现了软件对待验证芯片内部寄存器的访问,实现了软件与芯片的协同验证,提高了芯片的验证质量,加快了芯片验证速度。
基于同一发明构思,根据本发明的另一个方面,如图7所示,本发明的实施例还提供了一种计算机设备70,在该计算机设备70中包括处理器710以及存储器720,存储器720存储有可在处理器上运行的计算机程序721,处理器710执行程序时执行如上的方法的步骤。
其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的所述芯片验证方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的芯片验证方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于同一发明构思,根据本发明的另一个方面,如图8所示,本发明的实施例还提供了一种计算机可读存储介质80,计算机可读存储介质80存储有被处理器执行时执行如上方法的计算机程序810。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个***的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (8)
1.一种芯片验证方法,其特征在于,在服务器运行验证环境,基于所述验证环境执行以下步骤:
创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
响应于接收到多个所述客户端软件通过网络发送的命令,基于所述客户端软件创建对应数量个线程;
基于对应的线程对每个所述客户端软件发送的命令进行解析,并发送返回命令给所述客户端软件;
基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
2.根据权利要求1所述的方法,其特征在于,基于对应的线程对每个所述客户端软件发送的命令进行解析,并发送返回命令给所述客户端软件,包括:
在对应的线程判断所述客户端软件发送的所述命令是否为断开链接;
若所述命令不为断开链接,则判断所述命令是否为对寄存器的写操作;
若所述命令为对寄存器的写操作,则生成寄存器写总线访问,并发送返回命令给所述客户端软件。
3.根据权利要求2所述的方法,其特征在于,进一步包括:
若所述命令不为对寄存器的写操作,则判断所述命令是否为对寄存器的读操作;
若所述命令为对寄存器的读操作,则生成寄存器读总线访问,并发送带数据的返回命令给所述客户端软件。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
若所述命令不为对寄存器的读操作,则发送带数据的返回命令给所述客户端软件。
5.根据权利要求2所述的方法,其特征在于,进一步包括:
若所述命令为断开链接,则发送带数据的返回命令给所述客户端软件,并断开链接。
6.一种芯片验证***,其特征在于,包括:
监听进程,所述监听进程配置为创建基于套接字的链接以允许接收客户端软件通过网络发送的命令;
命令解析模块,所述命令解析模型配置为响应于接收到多个所述客户端软件通过网络发送的命令,基于所述客户端软件创建对应数量个线程;所述命令解析模型还配置为基于对应的线程对每个所述客户端软件发送的命令进行解析,并发送返回命令给所述客户端软件;
总线功能模块,所述总线功能模块配置为基于待验证芯片的总线访问协议将解析后的命令转化为物理总线访问以访问所述待验证芯片的寄存器。
7.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1至5任意一项所述的方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1至5任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000686.9A CN114024871B (zh) | 2022-01-04 | 2022-01-04 | 一种芯片验证方法、***、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000686.9A CN114024871B (zh) | 2022-01-04 | 2022-01-04 | 一种芯片验证方法、***、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114024871A CN114024871A (zh) | 2022-02-08 |
CN114024871B true CN114024871B (zh) | 2022-03-22 |
Family
ID=80069512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210000686.9A Active CN114024871B (zh) | 2022-01-04 | 2022-01-04 | 一种芯片验证方法、***、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114024871B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114417761B (zh) * | 2022-03-30 | 2022-07-22 | 新华三半导体技术有限公司 | 一种芯片验证方法、装置、***、控制服务器及介质 |
CN117787155A (zh) * | 2023-12-28 | 2024-03-29 | 上海合芯数字科技有限公司 | 一种芯片可测性代码动态仿真测试***及测试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107202B1 (en) * | 2000-01-31 | 2006-09-12 | Intel Corporation | Method and apparatus for hardware and software co-simulation |
WO2013109640A1 (en) * | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
CN109614147A (zh) * | 2018-12-03 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种phy寄存器读写方法和装置 |
CN110912689A (zh) * | 2019-10-30 | 2020-03-24 | 苏州科达科技股份有限公司 | 一种唯一值的生成、验证方法及*** |
CN111258880A (zh) * | 2018-11-30 | 2020-06-09 | 慧与发展有限责任合伙企业 | 用于实况设备上配置验证的***和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195784B2 (en) * | 1998-08-31 | 2015-11-24 | Cadence Design Systems, Inc. | Common shared memory in a verification system |
US7243193B2 (en) * | 2004-05-27 | 2007-07-10 | Silverbrook Research Pty Ltd | Storage of program code in arbitrary locations in memory |
CN100585601C (zh) * | 2006-12-29 | 2010-01-27 | 深圳市明微电子股份有限公司 | 在ic验证中描述pci接口配置流的方法 |
CN100573537C (zh) * | 2007-05-23 | 2009-12-23 | 中兴通讯股份有限公司 | 一种soc芯片***级验证***及方法 |
CN102141951B (zh) * | 2010-11-25 | 2013-10-02 | 华为技术有限公司 | 芯片仿真***及方法 |
CN103178996B (zh) * | 2013-03-15 | 2015-07-01 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证***及验证方法 |
US9735968B2 (en) * | 2014-10-20 | 2017-08-15 | Microsoft Technology Licensing, Llc | Trust service for a client device |
CN104714870A (zh) * | 2015-03-26 | 2015-06-17 | 浪潮集团有限公司 | 一种基于bfm验证大型互连芯片的方法 |
US10430263B2 (en) * | 2016-02-01 | 2019-10-01 | Electro Industries/Gauge Tech | Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices |
CN109918303B (zh) * | 2019-03-05 | 2022-12-16 | 上海嘉楠捷思信息技术有限公司 | 一种芯片、芯片调试方法及装置、设备、介质 |
-
2022
- 2022-01-04 CN CN202210000686.9A patent/CN114024871B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107202B1 (en) * | 2000-01-31 | 2006-09-12 | Intel Corporation | Method and apparatus for hardware and software co-simulation |
WO2013109640A1 (en) * | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
CN111258880A (zh) * | 2018-11-30 | 2020-06-09 | 慧与发展有限责任合伙企业 | 用于实况设备上配置验证的***和方法 |
CN109614147A (zh) * | 2018-12-03 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种phy寄存器读写方法和装置 |
CN110912689A (zh) * | 2019-10-30 | 2020-03-24 | 苏州科达科技股份有限公司 | 一种唯一值的生成、验证方法及*** |
Non-Patent Citations (1)
Title |
---|
一种融合FPGA和ISS技术的软硬件协同验证方法;王培东等;《计算机工程与应用》;20091021(第30期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114024871A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114024871B (zh) | 一种芯片验证方法、***、计算机设备及可读存储介质 | |
US8336102B2 (en) | Delivering malformed data for fuzz testing to software applications | |
US20210081258A1 (en) | Synthesis Path For Transforming Concurrent Programs Into Hardware Deployable on FPGA-Based Cloud Infrastructures | |
US5600579A (en) | Hardware simulation and design verification system and method | |
CN101924656B (zh) | 一种基于动态配置的网络设备cli实现方法和装置 | |
US8667119B2 (en) | System and method for re-generating packet load for load test | |
US8819831B2 (en) | Remote procedure call (RPC) services fuzz attacking tool | |
US9367415B1 (en) | System for testing markup language applications on a device | |
US20070169055A1 (en) | Method and system for automated analysis of the performance of remote method invocations in multi-tier applications using bytecode instrumentation | |
CN111459824B (zh) | 并发服务的测试用例处理方法及装置 | |
CN111859832B (zh) | 一种芯片仿真验证方法、装置及相关设备 | |
CN111444111A (zh) | 基于python的性能测试方法、装置、计算机设备及存储介质 | |
CN108595331B (zh) | 异步接口的测试方法、介质、装置和计算设备 | |
US8296607B2 (en) | Serialization module separating pipelined trace-worthy event and sync packet data | |
CN116028292B (zh) | 用于远程直接内存访问仿真验证的仿真验证***及方法 | |
CN102866944A (zh) | 一种压力测试***及方法 | |
CN110688313A (zh) | 一种VxWorks操作***下软件测试的故障注入方法 | |
Hine et al. | Scalable emulation of enterprise systems | |
CN111274144A (zh) | 一种基于网络文件***操作字接口的单元测试方法与*** | |
CN113657068A (zh) | Soc仿真验证及soc的仿真验证设备验证环境搭建方法 | |
CN115757084A (zh) | 测试方法和测试装置及存储介质 | |
CN110798371A (zh) | 一种私有通信协议的测试方法 | |
Löscher et al. | Property-based testing of sensor networks | |
Wang et al. | Application of model-based testing on a quorum-based distributed storage | |
CN114117440A (zh) | 脚本命令漏洞检测方法、漏洞扫描器及存储介质 |
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 |