CN114912358A - 一种基于uvm的卷积神经网络验证系统 - Google Patents
一种基于uvm的卷积神经网络验证系统 Download PDFInfo
- Publication number
- CN114912358A CN114912358A CN202210542908.XA CN202210542908A CN114912358A CN 114912358 A CN114912358 A CN 114912358A CN 202210542908 A CN202210542908 A CN 202210542908A CN 114912358 A CN114912358 A CN 114912358A
- Authority
- CN
- China
- Prior art keywords
- data
- tested
- design
- verification
- uvm
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 63
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 32
- 238000013461 design Methods 0.000 claims abstract description 57
- 238000012360 testing method Methods 0.000 claims abstract description 53
- 238000004891 communication Methods 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 16
- 238000011176 pooling Methods 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 7
- 239000010410 layer Substances 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 7
- 239000002346 layers by function Substances 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000012986 modification Methods 0.000 abstract description 4
- 230000004048 modification Effects 0.000 abstract description 4
- 238000004904 shortening Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical class C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G06F11/3664—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于UVM的卷积神经网络验证系统,包括待测设计DUT使用基于待测卷积神经网络的硬件加速器;针对待测设计的接口模块,包含所有需要用到的待测设计接口信号的定义,用于待测设计与其他模块之间的数据通信;测试用例模块,用于创建不同的验证环境以及产生不同的测试激励;所述测试用例模块中例化的每个测试用例都继承自base_test类,根据所验功能点的不同配置相应的验证环境,以及配置不同的序列来产生符合协议规范的事务,以此形成不同的测试用例。上述系统只需少量修改就可以对不同结构层的卷积神经网络模型的硬件加速器验证平台进行重用,从而缩短了验证周期,提高了验证效率。
Description
技术领域
本发明涉及集成电路设计技术领域,尤其涉及一种基于UVM的卷积神经网络验证系统。
背景技术
随着集成电路的不断发展,系统级芯片(System On Chip,SOC)设计规模不断扩大,SOC芯片内部集成的IP(Intellectual Property,知识产权)模块的数量也不断增加,因此在芯片开发环节对芯片验证的要求越来越高,验证平台的搭建也更加复杂。在如今大多数的集成电路设计公司中,芯片验证所需要的人力、时间在整个芯片研发过程中所占的比例高达70%,传统的定向测试平台是基于verilog语言,不仅不能够覆盖全部的待测功能点,而且不能在不同项目间重用,这大大降低了验证效率,增加了芯片研发的时间和成本。
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一,在计算机视觉、分类等领域上,都取得了当前最好的效果。在现代人工智能系统中,卷积神经网络得到了广泛应用,这给底层硬件带来了数据吞吐量和能效的挑战,通过可重配置各种卷积神经网络架构,片内外数据流的处理以及优化,整个系统可以有效提高效率。在目前主流的卷积神经网络硬件设计方式中,ASIC(Application SpecificIntegrated Circuit,专用集成电路)受到了越来越多的关注,ASIC是为实现特定要求而定制的芯片,在体积、功耗、可靠性等方面具有优势,通用性强、适配各种算法模型的硬件加速器可用于更多的物联网终端设备,但现有技术中并没有专门针对卷积神经网络功能的验证解决方案,这极大的影响了验证效率。
发明内容
本发明的目的是提供一种基于UVM的卷积神经网络验证系统,所述系统按照UVM(Universal Verification Methodology,通用验证方法学)中的机制,量化验证进度,确保各功能模块的验证完备性,只需少量修改就可以对不同结构层的卷积神经网络模型的硬件加速器验证平台进行重用,从而缩短了验证周期,提高了验证效率。
本发明的目的是通过以下技术方案实现的:
一种基于UVM的卷积神经网络验证系统,所述系统包括待测设计DUT、针对所述待测设计的接口模块、测试用例模块base_test、验证环境,其中:
所述待测设计DUT使用基于待测卷积神经网络的硬件加速器;
针对所述待测设计的接口模块,具体包括主机接口、从机接口、控制接口、卷积核接口和寄存器接口,所述接口模块包含所有需要用到的待测设计接口信号的定义,用于所述待测设计与其他模块之间的数据通信;
测试用例模块base_test,用于创建不同的验证环境以及产生不同的测试激励;
所述测试用例模块中例化的每个测试用例都继承自base_test类,根据所验功能点的不同配置相应的验证环境,以及配置不同的序列sequence来产生符合协议规范的事务transaction,以此形成不同的测试用例;
其中,所述验证环境按照待测卷积神经网络硬件加速器的验证需求来搭建,用于对所述待测设计中卷积、激活、池化、全连接的功能层、基地址和数据偏移的数据流控制功能进行验证。
由上述本发明提供的技术方案可以看出,上述系统按照UVM中的机制,量化验证进度,确保各功能模块的验证完备性,只需少量修改就可以对不同结构层的卷积神经网络模型的硬件加速器验证平台进行重用,从而缩短了验证周期,提高了验证效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的基于UVM的卷积神经网络验证系统的结构示意图;
图2为本发明实施例寄存器模型的示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,这并不构成对本发明的限制。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示为本发明实施例提供的基于UVM的卷积神经网络验证系统的结构示意图,所述系统包括待测设计DUT、针对所述待测设计的接口模块、测试用例模块base_test、验证环境,其中:
所述待测设计DUT(Design Under Test)使用基于待测卷积神经网络的硬件加速器;
针对所述待测设计的接口模块,具体包括主机接口、从机接口、控制接口、卷积核接口和寄存器接口,所述接口模块包含所有需要用到的待测设计接口信号的定义,用于所述待测设计与其他模块之间的数据通信;具体实现中,各个接口在top_tb中实例化待测设计时可以直接使用,通过config_db机制传递到各个层级的组件中,在驱动器中通过virtual interface将接口的内容封装起来使用;
测试用例模块base_test,用于创建不同的验证环境以及产生不同的测试激励;
所述测试用例模块中例化的每个测试用例都继承自base_test类,根据所验功能点的不同配置相应的验证环境(environment,env),以及配置不同的序列sequence来产生符合协议规范的事务transaction,以此形成不同的测试用例;
其中,所述验证环境按照待测卷积神经网络硬件加速器的验证需求来搭建,用于对所述待测设计中卷积、激活、池化、全连接的功能层、基地址和数据偏移的数据流控制功能进行验证。
具体实现中,所述验证环境包括主机代理、从机代理、控制代理、卷积核代理、寄存器代理、参考模型和计分板组件;其中,当存在多图层时,需要例化对应的数据输入输出以及卷积核的通道数量;
所述主机代理用于发送随机有符号数数据,模拟图像数据传递到所述待测设计;具体来说,主机代理中的主机驱动器根据序列中uvm_send宏发送经过实例化的事务,用seq_item_port.get_next_item的方式获取寄存器的配置信息产生相应数量的数据,将数据由虚拟接口传递到待测设计,同时主机监视器将检测到的事务通过uvm_analysis_port传递到参考模型,待测设计接收数据之前需要确保协议握手成功,为加快仿真速度和优化验证组件功能,因此在数据请求信号和响应信号握手成功后,产生随机数直接发送到虚拟接口;
所述从机代理用于接收所述待测设计的运算结果数据,并将运算结果数据传递到计分板组件进行地址和数据的比对;
所述控制代理用于验证硬件触发卷积的方式,通过虚拟接口将待测设计触发卷积的信号置为有效,以此来验证设计中的功能点;
所述卷积核代理用于配置卷积核的权重信息,目的是产生随机的权重数据,用于卷积层的计算;
所述寄存器代理用于配置寄存器,所述寄存器代理与寄存器连接时使用前门访问的方式进行连接,本实施例中研究的大部分测试用例都是通过配置寄存器模型的值来触发卷积;
各个代理中都包含了驱动器、监视器和序列发生器,其中:
所述驱动器用于向所述序列发生器申请测试事务对象,并将申请的测试事务对象驱动到所述待测设计的端口上;具体实现中,在完成了从事务级别到待测设计能够接受的端口级别信息的转换以后,再按照待测设计总线接口协议(本申请实施例中为APB,也可以支持其他AMBA系列协议)要求通过接口驱动所述待测设计;
所述监视器用于收集所述待测设计端口上的数据,并将收集的数据转换成事务传送给后续的参考模型和计分板组件进行处理;
所述序列发生器用于启动序列,然后将测试事务对象发送给所述驱动器。具体实现中,序列发生器派生自uvm_sequencer,使用uvm_component_utils宏来注册到工厂中,在定义时指定要产生的事务的类型,测试事务对象是UVM验证平台中定义的类,所有的事务都从uvm_sequence_item派生,事务类中把所有测试要用的数据进行打包,在本实施例中,事务包含输入帧宽像素大小、输入帧长像素大小、输出帧像素大小、卷积核大小、滑框每列包含的卷积核数量、步长、操作地址和操作类型等信息,并且本数据支持AXI4协议;
具体实现中,序列发生器虽不属于验证系统的基本组件,但验证所需的激励由事务组成,由序列产生。
另外,所述测试用例模块中例化的每个测试用例的运行都由所述待测设计发出请求信号,再从主机驱动器中发出确认信号,并例化每层的read_channel_transaction产生不同的随机数,分别由读数据通道接口传递给所述待测设计和参考模型;
用事务级建模(Transaction Level Modeling,TLM)通信中的uvm_blocking_get_port获取对应通道的数据,触发信号开始数据卷积、激活、池化功能,并输出至所述计分板组件上进行比对;
所述计分板组件要比较的数据一是来源于参考模型,二是来源于所述从机代理中的监视器,若数据比对成功,则打印PASS;若比对失败,则报告FAIL;
在所述计分板组件中保存了所述待测设计与参考模型每笔数据比对的结果,用于调试待测试模块的功能。
具体实现中,所述计分板组件要比较的数据都通过uvm_blocking_get_port获取;在main_phase中通过fork建立两个进程,一个进程处理来源于所述参考模型的数据,当收到数据后,把数据放入expect_queue中;另外一个进程处理来源于从机代理中监视器的数据,这是所述待测设计的输出数据,暂存在actual_queue中;
两个队列中的数据按通道数存入对用的日志文件,同时将存放在actual_queue和expect_queue中的数据进行比对,如果数据一致,则会将他们清出队列,直至仿真验证结束;
再判断队列是否为空,并打印对应的仿真报告。
上述参考模型用于完成和所述待测设计相同的功能,包括实现卷积核与通道数据写入(单个像素点8/16bit随机)、满足卷积核列数开始卷积计算、基地址与偏移地址、非线性激活、最大最小以及均值池化、全连接和bank切换的功能,并将每个单独的功能层写成virtual task,将参数的传递和获取分离,便于封装和复用,经过处理后的每笔数据按总线位宽传输至所述计分板组件。具体实现中,卷积核与输出层数量保持一致,数据从驱动器中获取,用for循环嵌套存入二维数组。依据寄存器的值,判断卷积核大小以及数据类型,做出相应的乘加运算,计算的数据结果截取位宽后做非线性映射以及选择池化模式,对图像压缩提取特征,对连续多幅图片计算时,配置乒乓缓存的寄存器节约读写时序。
具体实现中,上述寄存器代理在配置寄存器的过程中,建立数据通道bank0、bank1以及卷积核与非乒乓配置寄存器三个uvm_reg_block,按照前门的方式产生测试事务并借助于代理来访问所述待测设计,消耗仿真时间;
同时启动多个序列产生存储着操作地址和操作类型的变量,经过转换器转换后传给所述序列发生器,最后交由所述驱动器以高级外设总线(Advanced Peripheral Bus,APB)接口时序完成前门访问操作。
在本实例中,无论是发送读的指令还是获取读操作的返回值,都可以由寄存器模型完成,这里,寄存器模型是一组高级抽象的类,用来对待测设计DUT中具有地址映射的寄存器和存储器进行建模,能反映待测设计DUT中寄存器的各种特性,产生激励作用于待测设计DUT并进行寄存器功能检查。另外,可以在任何耗费时间的phase中使用寄存器模型以前门访问或后门访问的方式来读取寄存器的值,同时还能在某些不耗费时间的phase中使用后门访问的方式来读取寄存器的值,本实施例中重新定义了验证系统与待测设计的寄存器接口,使验证人员更好地组织及配置寄存器,简化流程、减少工作量。
寄存器模型的前门访问,不论是读还是写操作,寄存器模型都会由序列产生一个uvm_reg_bus_op的变量,这个变量中存储着操作类型和操作地址。如果是写操作,还会将写入的数据等信息经过一个转换器转换后交给总线序列,再传到总线序列发生器,最终到达待测设计。如图2为本发明实施例寄存器模型的示意图,描述了寄存器模型前门访问的写操作模式流程,除了完成前门访问的读写操作,还通过自动预测来更新寄存器的镜像值和期望值,跟踪待测设计中存在的实时变更的寄存器值,图2中包括:
uvm_reg_item派生自uvm_sequence_item,是UVM中内建的一种事务,对应于写操作的对象,用于更新寄存器值、镜像值和期望值。
uvm_reg_map存储寄存器的地址,并将其转换成可以访问的物理地址,启动一个写的序列,并将写的结果返回。
uvm_reg_adapter实现对类型的强制转换功能,通过转换器的bus2reg及reg2bus,可以实现uvm_reg_item与目标事务的转换。reg2bus是将寄存器模型通过序列发出的uvm_reg_bus_op型的变量转换成总线序列发生器能够接收的形式。bus2reg是在检测到总线上有操作时,将收集来的事务转换成uvm_reg_bus_op类型的变量,便于寄存器模型可以及时更新对应的寄存器值。
uvm_driver驱动总线事务到待测设计;
uvm_monitor监测总线事务;
uvm_reg_predictor要求uvm_reg_adapter将总线事务转换为相应的寄存器操作。寄存器模型同样也可以发起读操作,再将数值返回给寄存器模型,由于总线的特殊性,总线驱动器以驱动总线发起读请求时,它能一并获得要读的数值,假如它把该值存入由总线序列发生器得到的总线事务中时,那么总线事务中已存在读取的数值,该值通过转换器中bus2reg函数的传递,最终寄存器模型得到此值。
另外,在利用所述验证环境进行功能验证过程中,若覆盖率达到百分之百,则判断为满足要求;若覆盖率未达到百分之百,则判断为不满足要求;
且若覆盖率不满足要求,则修改参数设置,再次进行验证。
值得注意的是,本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
综上所述,本发明实施例所述系统具有如下优点:
1、本系统采用目前最主流的UVM验证方法学搭建验证环境,可以对其进行合理复用,这样既保证了代码的正确性,又避免了对验证组件重复开发,只需要做少量的代码修改,即可投入其他的验证流程中;
2、本系统可拓展性强,支持各种配置的卷积神经网络,最大支持64位输入输出通道,输入Feature map(特征图)图像尺寸边长R最大为256pixel(像素),支持卷积核大小1*1/2*2/3*3/5*5/7*7/11*11,支持步长S=1/2/3/4/5,支持int4/int8/int16数据类型计算,适配目前主流的卷积神经网络模型;
3、本系统内置寄存器代理,支持寄存器可配,支持前门访问和后门访问,接口支持AMBA系列协议(AXI/AHB/APB),支持不同总线位宽;
4、本系统可以灵活地构造各种需要的测试用例,添加受约束的随机激励,加速覆盖率收敛,测试用例的验证效率高,极大的缩短了IC设计的研发周期。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。本文背景技术部分公开的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
Claims (7)
1.一种基于UVM的卷积神经网络验证系统,其特征在于,所述系统包括待测设计DUT、针对所述待测设计的接口模块、测试用例模块base_test、验证环境,其中:
所述待测设计DUT使用基于待测卷积神经网络的硬件加速器;
针对所述待测设计的接口模块,具体包括主机接口、从机接口、控制接口、卷积核接口和寄存器接口,所述接口模块包含所有需要用到的待测设计接口信号的定义,用于所述待测设计与其他模块之间的数据通信;
测试用例模块base_test,用于创建不同的验证环境以及产生不同的测试激励;
所述测试用例模块中例化的每个测试用例都继承自base_test类,根据所验功能点的不同配置相应的验证环境,以及配置不同的序列sequence来产生符合协议规范的事务transaction,以此形成不同的测试用例;
其中,所述验证环境按照待测卷积神经网络硬件加速器的验证需求来搭建,用于对所述待测设计中卷积、激活、池化、全连接的功能层、基地址和数据偏移的数据流控制功能进行验证。
2.根据权利要求1所述基于UVM的卷积神经网络验证系统,其特征在于,所述验证环境包括主机代理、从机代理、控制代理、卷积核代理、寄存器代理、参考模型和计分板组件;其中,当存在多图层时,需要例化对应的数据输入输出以及卷积核的通道数量;
所述主机代理用于发送随机有符号数数据,模拟图像数据传递到所述待测设计;
所述从机代理用于接收所述待测设计的运算结果数据,并将运算结果数据传递到计分板组件进行地址和数据的比对;
所述控制代理用于验证硬件触发卷积的方式,通过虚拟接口将待测设计触发卷积的信号置为有效,以此来验证设计中的功能点;
所述卷积核代理用于配置卷积核的权重信息,目的是产生随机的权重数据,用于卷积层的计算;
所述寄存器代理用于配置寄存器,所述寄存器代理与寄存器连接时使用前门访问的方式进行连接,其中,测试用例是通过配置寄存器的值来触发卷积;
各个代理中都包含了驱动器、监视器和序列发生器,其中:
所述驱动器用于向所述序列发生器申请测试事务对象,并将申请的测试事务对象驱动到所述待测设计的端口上;
所述监视器用于收集所述待测设计端口上的数据,并将收集的数据转换成事务传送给后续的参考模型和计分板组件进行处理;
所述序列发生器用于启动序列,然后将测试事务对象发送给所述驱动器。
3.根据权利要求2所述基于UVM的卷积神经网络验证系统,其特征在于,
所述测试用例模块中例化的每个测试用例的运行都由所述待测设计发出请求信号,再从主机驱动器中发出确认信号,并例化每层的read_channel_transaction产生不同的随机数,分别由读数据通道接口传递给所述待测设计和参考模型;
用事务级建模TLM通信中的uvm_blocking_get_port获取对应通道的数据,触发信号开始数据卷积、激活、池化功能,并输出至所述计分板组件上进行比对;
所述计分板组件要比较的数据一是来源于参考模型,二是来源于所述从机代理中的监视器,若数据比对成功,则打印PASS;若比对失败,则报告FAIL;
在所述计分板组件中保存了所述待测设计与参考模型每笔数据比对的结果,用于调试待测试模块的功能。
4.根据权利要求2所述基于UVM的卷积神经网络验证系统,其特征在于,
所述计分板组件要比较的数据一是来源于所述参考模型,二是来源于从机代理中的监视器,两者都通过uvm_blocking_get_port获取;
在main_phase中通过fork建立两个进程,一个进程处理来源于所述参考模型的数据,当收到数据后,把数据放入expect_queue中;另外一个进程处理来源于从机代理中监视器的数据,这是所述待测设计的输出数据,暂存在actual_queue中;
两个队列中的数据按通道数存入对用的日志文件,同时将存放在actual_queue和expect_queue中的数据进行比对,如果数据一致,则会将他们清出队列,直至仿真验证结束;
再判断队列是否为空,并打印对应的仿真报告。
5.根据权利要求2所述基于UVM的卷积神经网络验证系统,其特征在于,
所述参考模型用于完成和所述待测设计相同的功能,包括实现卷积核与通道数据写入、满足卷积核列数开始卷积计算、基地址与偏移地址、非线性激活、最大最小以及均值池化、全连接和bank切换的功能,并将每个单独的功能层写成virtual task,将参数的传递和获取分离,便于封装和复用,经过处理后的每笔数据按总线位宽传输至所述计分板组件。
6.根据权利要求2所述基于UVM的卷积神经网络验证系统,其特征在于,
所述寄存器代理在配置寄存器的过程中,建立数据通道bank0、bank1以及卷积核与非乒乓配置寄存器三个uvm_reg_block,按照前门的方式产生测试事务并借助于代理来访问所述待测设计,消耗仿真时间;
同时启动多个序列产生存储着操作地址和操作类型的变量,经过转换器转换后传给所述序列发生器,最后交由所述驱动器以高级外设总线APB接口时序完成前门访问操作。
7.根据权利要求1所述基于UVM的卷积神经网络验证系统,其特征在于,
在利用所述验证环境进行功能验证过程中,若覆盖率达到百分之百,则判断为满足要求;
若覆盖率未达到百分之百,则判断为不满足要求;
且若覆盖率不满足要求,则修改参数设置,再次进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542908.XA CN114912358A (zh) | 2022-05-18 | 2022-05-18 | 一种基于uvm的卷积神经网络验证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542908.XA CN114912358A (zh) | 2022-05-18 | 2022-05-18 | 一种基于uvm的卷积神经网络验证系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114912358A true CN114912358A (zh) | 2022-08-16 |
Family
ID=82768775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542908.XA Pending CN114912358A (zh) | 2022-05-18 | 2022-05-18 | 一种基于uvm的卷积神经网络验证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114912358A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117332742A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
-
2022
- 2022-05-18 CN CN202210542908.XA patent/CN114912358A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117332742A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
CN117332742B (zh) * | 2023-12-01 | 2024-02-23 | 芯动微电子科技(武汉)有限公司 | 一种芯片设计阶段的仿真验证方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100399341C (zh) | 一种矢量模式软硬件协同仿真/验证方法 | |
CN111353266B (zh) | 集成电路模块间协同工作的验证系统及验证方法 | |
CN114036013A (zh) | 一种基于uvm的应答器芯片多模块同步验证平台和验证方法 | |
CN114721986B (zh) | 基于通用验证方法的异构直接存储器访问验证方法及系统 | |
CN113705140B (zh) | 芯片验证方法、系统、设备及存储介质 | |
CN116414526B (zh) | 一种基于虚拟机的仿真装置和方法 | |
CN114912358A (zh) | 一种基于uvm的卷积神经网络验证系统 | |
CN115048888A (zh) | 集成电路验证方法、装置、仿真系统、电子设备及介质 | |
US20040034841A1 (en) | Emulation components and system including distributed event monitoring, and testing of an IC design under emulation | |
CN112632885B (zh) | 软硬件联合验证系统及方法 | |
CN113779913B (zh) | 一种面向ai多芯片系统的验证平台结构和测试方法 | |
CN113408240B (zh) | 芯片验证方法及装置、存储介质 | |
US7035787B2 (en) | Emulation components and system including distributed routing and configuration of emulation resources | |
CN115629928B (zh) | 一种面向类脑处理器的软硬协同验证方法及系统 | |
CN117892688A (zh) | 仿真方法、系统、装置、电子设备及存储介质 | |
CN109710562A (zh) | 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 | |
CN116070567A (zh) | 一种缓存电路的验证方法、装置、设备及存储介质 | |
CN112836455B (zh) | 一种soc仿真方法及系统 | |
CN110135572B (zh) | 一种基于soc的可训练柔性cnn系统设计方法 | |
US8645927B2 (en) | Methods and apparatus for simulation speedup | |
CN1996263A (zh) | 一种实时位真仿真开发系统及其方法 | |
Aboudeif et al. | UVM Based Verification Framework for Deep Learning Hardware Accelerator: Case Study | |
CN113496108A (zh) | 一种应用于仿真的cpu模型 | |
CN113272813A (zh) | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 | |
CN116090372B (zh) | 一种基于fpga的芯片仿真加速方法和系统 |
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 |