代码验证系统和代码验证方法技术方案

技术编号:34276005 阅读:18 留言:0更新日期:2022-07-24 17:10
本申请涉及一种代码验证系统和代码验证方法。系统包括:系统级芯片SOC模块、参考模块、对比模块、代理模块以及顶层模块,所述顶层模块包括:第一待测试模块和第二待测试模块,所述第一待测试模块采用第一语言代码生成,所述第二待测试模块采用第二语言代码生成,所述SOC模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述参考模块和所述对比模块连接,所述对比模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接。实现了使用同一个验证系统,对两种不同的代码进行验证,解决了现有技术中维护两套验证环境带来的验证效率低的问题。题。题。

【技术实现步骤摘要】
代码验证系统和代码验证方法


[0001]本申请涉及云计算
,特别是涉及一种代码验证系统和代码验证方法。

技术介绍

[0002]Virtio是一个通用的半虚拟化I/O框架,该框架主要包含三个部分:前端驱动、后端设备以及虚拟队列。随着云计算产业的高速发展,出现了一些硬件实现Virtio的后端设备,如智能网卡以及数据处理单元(Data Processing Unit,简称DPU),一款高质量的智能网卡决定了产品会立于市场的不败之地。这对验证工程师提出了很高的要求,一个高效的验证方案,可以快速收敛缺陷,保证产品的高速、高质量问世。高层次综合(High

level Synthesis,简称HLS)具有开发效率高等优点,因此被广泛用于智能网卡代码的开发,HLS能自动把C以及C++等高级语言转换成VERILOG语言,对验证人员来说,需要对C语言和VERILOG语言两套代码进行验证。
[0003]现有技术中,对于C语言代码,采用HLS自带的C语言验证模块C TESTBENCH对C语言代码进行验证,对于VERILOG语言代码,搭建基于通用验证方法学(Universal Verification Methodology,简称UVM)的验证平台对VERILOG语言代码进行验证,然而这种方式,验证效率不高。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提升验证效率的代码验证系统和代码验证方法。
[0005]第一方面,本申请提供了一种代码验证系统,包括:系统级芯片SOC模块、参考模块、对比模块、代理模块以及顶层模块,所述顶层模块包括:第一待测试模块和第二待测试模块,所述第一待测试模块采用第一语言代码生成,所述第二待测试模块采用第二语言代码生成,所述SOC模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述参考模块和所述对比模块连接,所述对比模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述代理模块配置有所述第一待测试模块对应的模式以及所述第二待测试模块对应的模式;
[0006]当对所述第一待测试模块进行验证时,所述代理模块用于切换至所述第一待测试模块对应的模式,所述SOC模块用于对所述第一待测试模块进行第一配置,所述第一待测试模块用于响应于所述第一配置生成第一测试结果,并通过所述代理模块将所述第一测试结果发送至所述对比模块,所述参考模块用于生成第一参考结果,所述对比模块用于获取所述第一测试结果和所述第一参考结果,并根据所述第一测试结果和所述第一参考结果,验证所述第一待测试模块是否正常;
[0007]当对所述第二待测试模块进行验证时,所述代理模块用于切换至所述第二待测试模块对应的模式,所述SOC模块用于对所述第二待测试模块进行第二配置,所述第二待测试模块用于响应于所述第二配置生成第二测试结果,并通过所述代理模块将所述第二测试结
果发送给所述对比模块,所述参考模块用于生成第二参考结果,所述对比模块用于获取所述第二测试结果和所述第二参考结果,并根据所述第二测试结果和所述第二参考结果,验证所述第二待测试模块是否正常。
[0008]在其中一个实施例中,所述代码验证系统,还包括:双向转换模块,所述双向转换模块用于将第一语言转换为第二语言,还用于将所述第二语言转换为第一语言,所述代理模块通过接口interface和所述第二待测试模块连接,所述代理模块通过所述双向转换模块和所述第一待测试模块连接。
[0009]在其中一个实施例中,所述顶层模块还包括:时钟模块、复位模块以及时钟模拟模块,所述第一待测试模块和所述时钟模拟模块连接,所述第二待测试模块分别与所述时钟模块和所述复位模块连接,所述时钟模块用于,在对所述第二待测试模块进行验证的过程中产生时钟信号,以使所述第二待测试模块基于所述时钟信号,生成所述第二测试结果,两个相邻时钟信号之间相隔一个时钟周期,所述复位模块用于,在对所述第二待测试模块进行验证的过程中产生复位信号,所述时钟模拟模块用于,在对所述第一待测试模块进行验证的过程中,每隔一个时钟周期调用一次所述第一语言代码,以使所述第一待测试模块生成所述第一测试结果。
[0010]在其中一个实施例中,所述SOC模块包括能够并行运行的三个线程,所述三个线程分别用于运行控制程序、协处理程序和开放虚拟交换标准OVS处理程序,所述控制程序、所述协处理程序和所述开放虚拟交换标准OVS处理程序用于进行所述第一配置和所述第二配置。
[0011]在其中一个实施例中,所述代码验证系统还包括:事务级别模型端口,所述SOC模块通过所述事务级别模型端口和所述代理模块连接。
[0012]在其中一个实施例中,所述代理模块包括:寄存器代理REG agent、直接内存存取代理DMA agent、双倍速率同步动态随机存储器代理DDR agent、以太网接收口代理MAC RX agent以及以太网发送口代理MAC TX agent。
[0013]在其中一个实施例中,所述第一语言代码为C语言代码,所述第二语言代码为VERILOG语言代码。
[0014]第二方面,本申请还提供了一种代码验证方法,包括:
[0015]当对所述第一待测试模块进行验证时,控制所述代理模块切换至所述第一待测试模块对应的模式,控制所述第一待测试模块运行,并控制所述SOC模块启动,使得所述SOC模块对所述第一待测试模块进行第一配置,所述第一待测试模块响应于所述第一配置生成第一测试结果,并通过所述代理模块将所述第一测试结果发送至所述对比模块,所述对比模块根据所述第一测试结果和第一参考结果,验证所述第一待测试模块是否正常;
[0016]当对所述第二待测试模块进行验证时,控制所述代理模块切换至所述第二待测试模块对应的模式,控制所述第二待测试模块运行,并控制所述SOC模块启动,使得所述SOC模块对所述第二待测试模块进行第二配置,所述第二待测试模块响应于所述第二配置生成第二测试结果,并通过所述代理模块将所述第二测试结果发送至所述对比模块,所述对比模块根据所述第二测试结果和第二参考结果,验证所述第二待测试模块是否正常。
[0017]上述代码验证系统和代码验证方法,系统包括:系统级芯片SOC模块、参考模块、对比模块、代理模块以及顶层模块,所述顶层模块包括:第一待测试模块和第二待测试模块,
所述第一待测试模块采用第一语言代码生成,所述第二待测试模块采用第二语言代码生成,所述SOC模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述参考模块和所述对比模块连接,所述对比模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接。实现了使用同一个验证系统,对两种不同的代码进行验证,解决了现有技术中维护两套验证环境带来的验证效率低的问题。
附图说明
[0018]图1为一个实施例中代码验证系统的结构示意图;
[0019]图2为另一个实施例中代码验证系统的结构示意图;
[0020]图3为又一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码验证系统,其特征在于,包括:系统级芯片SOC模块、参考模块、对比模块、代理模块以及顶层模块,所述顶层模块包括:第一待测试模块和第二待测试模块,所述第一待测试模块采用第一语言代码生成,所述第二待测试模块采用第二语言代码生成,所述SOC模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述参考模块和所述对比模块连接,所述对比模块通过所述代理模块分别与所述第一待测试模块和所述第二待测试模块连接,所述代理模块配置有所述第一待测试模块对应的模式以及所述第二待测试模块对应的模式;当对所述第一待测试模块进行验证时,所述代理模块用于切换至所述第一待测试模块对应的模式,所述SOC模块用于对所述第一待测试模块进行第一配置,所述第一待测试模块用于响应于所述第一配置生成第一测试结果,并通过所述代理模块将所述第一测试结果发送至所述对比模块,所述参考模块用于生成第一参考结果,所述对比模块用于获取所述第一测试结果和所述第一参考结果,并根据所述第一测试结果和所述第一参考结果,验证所述第一待测试模块是否正常;当对所述第二待测试模块进行验证时,所述代理模块用于切换至所述第二待测试模块对应的模式,所述SOC模块用于对所述第二待测试模块进行第二配置,所述第二待测试模块用于响应于所述第二配置生成第二测试结果,并通过所述代理模块将所述第二测试结果发送给所述对比模块,所述参考模块用于生成第二参考结果,所述对比模块用于获取所述第二测试结果和所述第二参考结果,并根据所述第二测试结果和所述第二参考结果,验证所述第二待测试模块是否正常。2.根据权利要求1所述的方法,其特征在于,所述代码验证系统还包括:双向转换模块,所述双向转换模块用于将第一语言转换为第二语言,还用于将所述第二语言转换为第一语言,所述代理模块通过接口和所述第二待测试模块连接,所述代理模块通过所述双向转换模块和所述第一待测试模块连接。3.根据权利要求2所述的方法,其特征在于,所述顶层模块还包括:时钟模块、复位模块以及时钟模拟模块,所述第一待测试模块和所述时钟模拟模块连接,所述第二待测试模块分别与所述时钟模块和所述复位模块连接,所述时钟模块用于,在对所述第二待测试模块进行验证的过程中产生时钟信号,以使所述第二待测试模块基于所述时钟信号,生成所述第二测试结果,两个相邻时钟信号之间相隔一个时钟周期,所述复位模块用于,在对所述第二待测试模块进行验证的过程中产生复位信号,所述时钟模拟模块用于,在对所述第一待测试模块进行...

【专利技术属性】
技术研发人员:孙敬宇
申请(专利权)人:深圳云豹智能有限公司
类型:发明
国别省市:

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

1