CN115629928B - 一种面向类脑处理器的软硬协同验证方法及系统 - Google Patents

一种面向类脑处理器的软硬协同验证方法及系统 Download PDF

Info

Publication number
CN115629928B
CN115629928B CN202211654002.3A CN202211654002A CN115629928B CN 115629928 B CN115629928 B CN 115629928B CN 202211654002 A CN202211654002 A CN 202211654002A CN 115629928 B CN115629928 B CN 115629928B
Authority
CN
China
Prior art keywords
brain
processor
information
core
hardware
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
Application number
CN202211654002.3A
Other languages
English (en)
Other versions
CN115629928A (zh
Inventor
王蕾
陈小帆
杨智杰
王耀
石伟
铁俊波
彭凌辉
王世英
周干
康子扬
李石明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211654002.3A priority Critical patent/CN115629928B/zh
Publication of CN115629928A publication Critical patent/CN115629928A/zh
Application granted granted Critical
Publication of CN115629928B publication Critical patent/CN115629928B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种面向类脑处理器的软硬协同验证方法及系统,本发明包括基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;运行时验证框架基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;基于分析配置文件对采集的计算结果数据和核间通信数据分析生成测试报告。本发明能够支持类脑处理器的软硬协同验证,可用于类脑多核处理器的硬件验证,可大幅提高类脑硬件设计的功能调试、测试回归和版本迭代效率。

Description

一种面向类脑处理器的软硬协同验证方法及系统
技术领域
本发明属于类脑处理器和集成电路验证技术领域,具体涉及一种面向类脑处理器的软硬协同验证方法及系统。
背景技术
类脑计算(Neuromorphic Computing),是指仿真、模拟和借鉴大脑神经网络结构和信息处理过程的装置、模型和方法,其目标是制造类脑计算机和从结构仿真层次实现类脑智能,使类脑计算机拥有类似大脑的信息处理功能和系统行为。
随着类脑计算理论的不断发展和成熟,以实现类脑计算为目的的类脑处理器技术领域得到了快速发展。类脑芯片整合了人脑的多种高效的处理机制,包括存内计算、基于脉冲的信息处理、细粒度并行、误差容忍、增加随机性、适应性、片上学习、异步通信和模拟处理等,能以极低的功耗对信息进行异步、并行和分布式处理,并具备自主感知、识别和学习等多种能力。类脑处理器主要包含四个功能:神经元计算、突触连接、权重存储以及神经元通信。类脑处理器属于超大规模集成电路芯片,具有设计难度大、研发周期长、投片成本高昂等特点,为保证较高的投片成功率,需要在流片前对类脑处理器进行充分的验证。
UVM(Universal Verification Methodology,通用验证方法学)是一种覆盖率驱动的数字电路验证方法学,提供了结构化的测试环境,以及可复用性强的验证组件和场景,主要提供集成电路的功能验证,以及各类覆盖率收集。目前业界基于UVM方法学,针对通用CPU、DSP、GPU等传统处理器,已建立了诸多完整且成熟的验证工具,例如COCOTB(COroutinebased COsimulation TestBench environment)开源UVM库。由于类脑处理器在功能、工作模式等方面与上述传统处理器有较大差异,需要扩展UVM来适应类脑处理器的功能验证。随着类脑处理器架构的不断深入演进,缺乏类脑处理器验证方法的问题日渐突出,尤其是在类脑模型逐步落地后,对类脑处理器的需求高涨,亟需提出针对类脑处理器的验证方法,用以高效地对其进行功能验证与性能分析。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向类脑处理器的软硬协同验证方法及系统,本发明能够支持类脑处理器的软硬协同验证,可用于类脑多核处理器的硬件验证,可大幅提高类脑硬件设计的功能调试、测试回归和版本迭代效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向类脑处理器的软硬协同验证方法,包括:
S101,基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;
S102,基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;
S103,通过运行时验证框架基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;
S104,基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求。
可选地,步骤S101包括:
S201,解析被验证类脑处理器的原始测试配置文件,分别提取目录信息、测试顶层配置信息、自动化编译配置信息、测试用例配置信息、映射配置信息以及分析配置信息;
S202,基于目录信息生成验证工程目录,包括测试顶层目录、自动化编译目录和测试用例目录;测试顶层配置信息放入测试顶层目录中,根据自动化编译配置信息生成自动化编译文件并放入自动化编译目录中,根据测试用例配置信息生成测试用例并放入测试用例目录中。
可选地,步骤S201中还包括提取组件参数配置信息;步骤S202中基于目录信息生成验证工程目录时还包括生成组件目录,并将组件参数配置信息放入组件目录中。
可选地,步骤S102包括:
S301,对类脑配置文件进行解析,得到用户所指定的映射算法、类脑处理器的拓扑信息、类脑处理器的地址划分信息、类脑处理器的地址划分层次信息、类脑模型的拓扑信息以及类脑模型的权重文件;
S302,根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中获得神经元映射字典,所述神经元映射字典中包含了类脑模型中神经元和类脑处理器中硬件神经元核之间的映射关系;
S303,解析类脑模型的权重文件,将神经元映射字典转化为包含类脑处理器中硬件神经元互连类型以及突触权重的待测设计拓扑连接表,所述互连类型包括核内互连与核间互连,核内互连是指互连的两个硬件神经元属于同一个类脑处理器核,核间互连是指互连的两个硬件神经元分属两个不同的类脑处理器核;
S304,依据类脑处理器的地址划分信息、类脑处理器的地址划分层次信息,查询待测设计拓扑连接表中各互连权重对应的写入地址,得到类脑处理器突触配置字典;
S305,检查类脑处理器突触配置字典中的地址是否溢出,若溢出则抛出异常,结束并退出;否则将类脑模型的权重数据的写入地址进行写合并得到类脑处理器突触配置;
S306,检查类脑处理器突触配置中是否存在数据覆盖,若存在数据覆盖,则抛出异常,结束并退出;否则将类脑处理器突触配置作为最终得到的映射配置文件。
可选地,步骤S303中待测设计拓扑连接表的数据格式为:
Core_index_src_neuron_src-Core_index_des_neuron_des: Synapse_weight_z
其中,Core_index_src_neuron_src为源硬件神经元的编号,Core_index_des_neuron_des为目的硬件神经元的编号,Synapse_weight_z为突触权重。
可选地,步骤S304包括:
S401,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分层次信息中的类脑处理器核间地址划分信息,得到段信息地址内容Addr_base_0,所述类脑处理器核间地址划分信息中的每一个表项包括源硬件神经元所在核的编号Core_index_src、段信息地址宽度Addr_width_0以及段信息地址内容Addr_base_0;
S402,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分信息得到段信息地址内容Addr_base_1,所述类脑处理器核内地址划分信息中的每一个表项包括源硬件神经元在核内的编号Neuron_index_src、段信息地址宽度Addr_width_1和段信息地址内容Addr_base_1;
S403,将段信息地址内容Addr_base_0、段信息地址内容Addr_base_1从左到右依次拼接得到待写入互连的突触权重数据硬件神经元的基地址;根据待测设计拓扑连接表中的源硬件神经元的编号,在预设的类脑处理器硬件神经元存储空间地址分配表中索引到待写入权重数据的偏移地址Addr_offset,并将基地址和偏移地址Addr_offset相加后得到待测设计拓扑连接表中各互连权重对应的写入地址,并得到类脑处理器突触配置字典。
可选地,步骤S306中最终得到的映射配置文件中每一个表项包括核间权重写数据、核间权重写地址、核内权重写数据和核内权重写地址四种配置信息。
可选地,步骤S104包括:
S501,对分析配置文件进行解释或得到用户配置的类脑参考模型设置、用户指定的数据集、NoC最大通信延时阈值以及NoC通信延时单位;同时获取运行时验证框架的核间通信数据和计算结果数据;
S502,基于类脑参考模型设置建立类脑参考模型,并根据用户指定的数据集进行计算得到预期分类结果列表;然后将预期分类结果列表、从运行时验证框架得到的计算结果数据两者进行比对,将比对得到的预期分类结果列表加入测试报告;同时,根据运行时验证框架的核间通信数据计算核间通信延时得到核间通信延时字典,然后基于核间通信延时字典分析全局通信热度得到通信热度图,并分析全局通信延时得到最大通信延时,将通信热度图和最大通信延时加入测试报告;最终保存或输出测试报告。
此外,本发明还提供一种用于使用前文所述的面向类脑处理器的软硬协同验证方法的软硬协同验证装置,包括运行时验证框架、测试环境自动生成组件、映射组件和分析组件,其中:所述测试环境自动生成组件用于基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;所述映射组件用于基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;所述运行时验证框架用于基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;所述分析组件基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求;所述测试环境自动生成组件、映射组件和分析组件分别与运行时验证框架相连。
可选地,所述运行时验证框架由COCOTB验证组件和类脑处理器待测设计组成,所述COCOTB验证组件包含了激励生成组件,激励调度组件,驱动组件和监控组件,所述激励生成组件用于根据地址信息将映射配置文件中的配置信息和测试用例配置信息中的脉冲形式的激励数据拼接为事务数据包;所述激励调度组件用于完成驱动组件和激励生成组件之间的数据交互,缓存来自双方的读写请求,完成双向握手,并将来自激励生成组件的事务数据包传递给驱动组件;所述驱动组件用于根据接收的事务数据包生成输出到类脑处理器待测设计的激励数据,并获取类脑处理器待测设计的计算结果数据并输出到分析组件;所述监控组件用于监控类脑处理器待测设计内的核间通信端口,并将监控获取的核间通信数据传输至分析组件。
和现有技术相比,本发明主要具有下述优点:本发明包括基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;运行时验证框架基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;基于分析配置文件对采集的计算结果数据和核间通信数据分析生成测试报告,本发明能够支持类脑处理器的软硬协同验证,可用于类脑多核处理器的硬件验证,可大幅提高类脑硬件设计的功能调试、测试回归和版本迭代效率。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中软硬协同验证装置的结构示意图。
图3为本发明实施例中测试环境自动生成组件Generator的工作流程示意图。
图4为本发明实施例中映射组件Mapper的工作流程示意图。
图5为本发明实施例中分析组件Analyzer的工作流程示意图。
图6为本发明实施例中得到的类脑处理器核间通信热力图。
图7为本发明实施例中软硬协同验证装置的工作流程示意图。
具体实施方式
如图1所示,本实施例面向类脑处理器的软硬协同验证方法包括:
S101,基于被验证类脑处理器的测试配置文件分别生成自动化编译文件Makefile、测试用例Testcase.py、测试顶层配置信息Testbench.sv、类脑配置文件和分析配置文件;
S102,基于类脑配置文件为运行时验证框架中的类脑处理器待测设计(简称类脑处理器DUT)生成映射配置文件;
S103,通过运行时验证框架基于自动化编译文件Makefile、测试用例Testcase.py以及测试顶层配置信息Testbench.sv,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;
S104,基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求。
如图2所示,本实施例面向类脑处理器的软硬协同验证方法的软硬协同验证装置包括运行时验证框架、测试环境自动生成组件Generator、映射组件Mapper和分析组件Analyzer,其中:所述测试环境自动生成组件Generator用于基于被验证类脑处理器的测试配置文件分别生成自动化编译文件Makefile、测试用例Testcase.py、测试顶层配置信息Testbench.sv、类脑配置文件和分析配置文件;所述映射组件Mapper用于基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;所述运行时验证框架用于基于自动化编译文件Makefile、测试用例Testcase.py以及测试顶层配置信息Testbench.sv,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;所述分析组件Analyzer基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求;所述测试环境自动生成组件Generator、映射组件Mapper和分析组件Analyzer分别与运行时验证框架相连。
本实施例中,运行时验证框架由COCOTB验证组件和类脑处理器待测设计组成,所述COCOTB验证组件包含了激励生成组件Sequence,激励调度组件Sequencer,驱动组件Driver和监控组件Monitor,所述激励生成组件Sequence用于根据地址信息将映射配置文件中的配置信息和测试用例配置信息Testcase.csv中的脉冲形式的激励数据拼接为事务数据包Transaction;所述激励调度组件Sequencer用于完成驱动组件Driver和激励生成组件Sequence之间的数据交互,缓存来自双方的读写请求,完成双向握手,并将来自激励生成组件Sequence的事务数据包Transaction传递给驱动组件Driver;所述驱动组件Driver用于根据接收的事务数据包Transaction生成输出到类脑处理器待测设计的激励数据,并获取类脑处理器待测设计的计算结果数据并输出到分析组件Analyzer;监控组件Monitor用于监控类脑处理器待测设计内的核间通信端口,并将监控获取的核间通信数据传输至分析组件Analyzer。
本实施例中步骤S101为由测试环境自动生成组件Generator执行的。
如图3所示,本实施例中步骤S101包括:
S201,解析被验证类脑处理器的原始测试配置文件,分别提取目录信息dir.csv、测试顶层配置信息Testbench.sv、自动化编译配置信息Makefile.csv、测试用例配置信息Testcase.csv、映射配置信息Mapper.csv以及分析配置信息Analyzer.csv;
S202,基于目录信息dir.csv生成验证工程目录,包括测试顶层目录Testbench、自动化编译目录Makefile和测试用例目录Testcase;测试顶层配置信息Testbench.sv放入测试顶层目录Testbench中,根据自动化编译配置信息Makefile.csv生成自动化编译文件Makefile并放入自动化编译目录Makefile中,根据测试用例配置信息Testcase.csv生成测试用例Testcase.py并放入测试用例目录Testcase中。
本实施例中,步骤S201中还包括提取组件参数配置信息;步骤S202中基于目录信息dir.csv生成验证工程目录时还包括生成组件目录Component,并将组件参数配置信息放入组件目录Component中,从而可实现组件的定制。
本实施例中,原始测试配置文件为ini格式,需要事先设置ini格式的测试配置文件中的五类配置信息,包括Directory(工程目录设置),Testbench(测试顶层文件设置),Testcase(测试用例设置),Makefile(编译自动化脚本设置),以及Component(组件参数配置)。
原始测试配置文件内容的Directory设置如下:PRJ_TAG:验证工程标识,补充详细信息;TEST_TAG:具体验证测试标识,用于版本管理;CFG_DIR:测试配置文件目录;COCOTB_DIR:UVM组件文件目录,包含了基于COCOTB的UVM组件类;LOG_DIR:验证工程日志目录,记录仿真打印结果;SRC_DIR:设计源文件目录,包括所有RTL文件;VER_PRJ_DIRS:验证工程文件目录列表,包含测试环境自动生成组件Generator所生成的所有文件。
原始测试配置文件内容的Testbench设置如下:BUS_NAME:总线名,在Testbench文件作为各个总线的信号前缀,用以解析测试顶层总线信号;SIGNAL_SEP:总线信号分隔符,用于获取实际总线端口;TB_NAME:测试顶层文件名;TARGET_MODULES:待测目标模块列表;TARGET_SIGNALS:待测目标信号列表;原始测试配置文件内容的Testcase设置如下:TEST_NAMES:测试例函数名列表,对应到Testcase.py文件中协程函数的实际命名;TEST_CLOCK_CFG:测试用例时钟设置,对应到DUT中的各类时钟信号名及其时钟周期;TEST_RESETS:测试用例复位设置,包括复位信号名、复位时刻以及复位的沿触发类型;TEST_SYNAPSE_CFGS:测试用例突触连接设置,即指定突触权重文件的路径;SAMPLE_TYPE:测试用例数据集名;SAMPLE_TEST_MODE:测试用例数据采样方式,包括直接读出计算结果数据或者监控核间通信数据;SAMPLE_NUM_MAX:待测数据集的数据量。
原始测试配置文件内容的Makefile设置如下:TOPLEVEL_LANG:顶层文件所用编程语言,为(System) Verilog或者VHDL;SIM_TYPE:RTL工程编译所用仿真软件名简称,如icarus,需参照COCOTB官方手册;SIM_TIMEUNIT:顶层文件仿真时间单位,包括ps、ns、us、ms以及s的设置;SIM_TIMEPRECISION:顶层文件仿真时间精度,包括ps、ns、us、ms以及s的设置;TOP_LEVEL:Testbench.sv文件文件名;DUT_HIER_FILE:DUT层次结构文件名,包含DUT各模块实例之间的层次访问关系;MODULE:Testcase.py文件文件名;PRJ_DIR:验证工程目录,即当前COCOTB仿真所在目录;FILELIST_DIR:DUT对应的Filelist文件目录;SRC_DIR:DUT对应的设计源文件目录;DATA_DIR:仿真所需的数据集文件目录;SYNAPSE_DIR:仿真所需的连接权重文件目录;
原始测试配置文件内容的Component设置如下:BUS_TYPE:总线类型;DRIVER_NAME:Driver组件名;DRIVER_TARGETS :Driver组件需要传入的模块列表;DRIVER_SIGNAL_CFGS:Driver组件需要传入的信号字典,需要传入COCOTB Driver基类中;MONITOR_NAME:监控组件Monitor名;MONITOR_SINGAL_CFGS:监控组件Monitor需要传入的信号字典;MONITOR_TARGETS:监控组件Monitor需要传入的模块例化名列表;MONITOR_CALLBACK:监控组件Monitor需要传入的回调函数列表;SEQ_NAME:Sequence组件名;SEQ_MODE:Sequence组件所需激励数据的生成模式,包括normal、rate、phase、burst和time-to-first-spike模式;SEQ_DATA_WIDTH:Sequence组件激励数据位宽;SEQ_ADDR_WIDTH:Sequence组件地址数据位宽;SEQER_NAME:Sequencer组件名;SEQER_TRAN:Sequencer组件中事务级数据的设置;SEQER_ARB:Sequencer组件的仲裁策略设置,可选fifo、strict_fifo、weighted、random、strict_random以及user;MAPPER_NAME:映射组件Mapper名;MAPPER_ALG:映射组件Mapper所采用的映射算法,即所需映射函数的函数名;MAPPER_ADDR_DIR:DUT地址划分文件的文件目录列表;MAPPER_ADDR_HIER:DUT地址划分层次列表;MAPPER_SNN_ARCH:类脑模型拓扑文件路径;MAPPER_SNN_SYNAPSE:类脑模型权重文件路径;ANALYZER_NAME:分析组件Analyzer名;ANALYZER_RM:分析组件Analyzer名参考模型;INTERCORE_DELAY_MAX:NoC核间通信延时阈值;INTERCORE_DELAY_UNIT:NoC核间通信延时单位。
参见上述说明可知,工程目录配置类包含以下配置项:工程标签(PRJ_TAG),测试标签(TEST_TAG),测试配置文件目录(CFG_DIR),UVM组件文件目录(COCOTB_DIR),验证工程日志目录(LOG_DIR),设计源文件目录(SRC_DIR),以及验证工程文件目录列表(VER_PRJ_DIRS)。测试顶层文件配置类包含以下配置项:顶层总线前缀(BUS_NAME),总线信号隔离符(SIGNAL_SEP),测试顶层名(TB_NAME),待测目标模块列表(TARGET_MODULES),以及待测目标信号列表(TARGET_SIGNALS)。测试用例文件配置类包含以下配置项:测试用例名列表(TEST_NAMES),测试用例时钟配置(TEST_CLOCK_CFG),测试用例复位设置(TEST_RESETS),测试用例突触连接设置(TEST_SYNAPSE_CFGS),测试用例所用数据集名(SAMPLE_TYPE),测试用例数据采样模式(SAMPLE_TEST_MODE),以及待测数据集的数据量(SAMPLE_NUM_MAX)。编译自动化脚本配置类包含以下配置项:DUT所使用的编程语言(TOPLEVEL_LANG),硬件仿真器名(SIM_TYPE),仿真时间单位设置(SIM_TIMEUNIT),仿真时间精度设置(SIM_TIMEPRECISION),Testbench文件文件名(TOP_LEVEL),DUT模块层次结构文件(DUT_HIER_FILE),Testcase文件文件名(MODULE),验证工程目录(PRJ_DIR),Filelist文件的路径(FILELIST_DIR),DUT设计源文件路径(SRC_DIR),仿真所需的数据集文件目录(DATA_DIR),以及仿真所需的连接权重文件目录(SYNAPSE_DIR)。验证组件配置类包含针对Driver、Monitor、Sequence、Sequencer、Mapper和Analyzer的以下配置项:DUT顶层总线列类型(BUS_TYPE),Driver组件名(DRIVER_NAME),Driver组件需驱动的模块字典(DRIVER_TARGETS),Driver组件需传入的信号字典配置(DRIVER_SIGNAL_CFGS);监控组件Monitor名(MONITOR_NAME),Monitor监控的模块列表(MONITOR_TARGETS),Monitor监控的信号字典配置(MONITOR_SINGAL_CFGS),以及监控组件Monitor需要传入的回调函数列表(MONITOR_CALLBACK);Sequence组件名(SEQ_NAME),Sequence组件所需激励数据的生成模式(SEQ_MODE),Sequence组件的激励数据位宽(SEQ_DATA_WIDTH),Sequence组件的地址数据位宽(SEQ_ADDR_WIDTH),以及Sequence的事务级数据设置(SEQ_TRAN);Sequencer组件名(SEQER_NAME),Sequencer组件中仲裁策略设置(SEQER_ARB);映射组件Mapper名(MAPPER_NAME),Mapper中映射函数名(MAPPER_ALG),DUT拓扑文件路径(MAPPER_DUT_ARCH),DUT地址划分文件文件目录列表(MAPPER_ADDR_DIR),DUT地址划分层次列表(MAPPER_ADDR_HIER),类脑模型拓扑文件的路径设置(MAPPER_SNN_ARCH),以及类脑模型权重文件的路径设置(MAPPER_SNN_SYNAPSE);分析组件Analyzer名(ANALYZER_NAME),Analyzer中类脑模型参考模型(ANALYZER_RM),NoC通信延时阈值(INTERCORE_DELAY_MAX),以及NoC通信时间单位(INTERCORE_DELAY_UNIT)。
在检测到该原始测试配置文件后,测试环境自动生成组件Generator首先基于正则表达式对其进行格式检查。其次,测试环境自动生成组件Generator基于Python内建库configparser来逐项解析该配置文件,分别提取目录信息dir.csv、测试顶层配置信息Testbench.sv、自动化编译配置信息Makefile.csv、测试用例配置信息Testcase.csv、映射配置信息Mapper.csv以及分析配置信息Analyzer.csv。最后,测试环境自动生成组件Generator依据目录信息dir.csv生成验证工程目录,包括测试顶层目录Testbench、自动化编译目录Makefile和测试用例目录Testcase。最终,测试环境自动生成组件Generator将生成的Makefile.csv、Mapper.csv和Analyzer.csv输出到运行时验证框架。测试环境自动生成组件Generator将Mapper.csv和Analyzer.csv分别输出到映射组件Mapper和分析组件Analyzer。
本实施例中步骤S102为由映射组件Mapper执行的。
如图4所示,本实施例中步骤S102包括:
S301,对类脑配置文件(图中表示为Mapper配置文件)进行解析,得到用户所指定的映射算法、类脑处理器的拓扑信息、类脑处理器的地址划分信息、类脑处理器的地址划分层次信息、类脑模型的拓扑信息以及类脑模型的权重文件;
S302,根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中获得神经元映射字典,所述神经元映射字典中包含了类脑模型中神经元和类脑处理器中硬件神经元核之间的映射关系;
S303,解析类脑模型的权重文件,将神经元映射字典转化为包含类脑处理器中硬件神经元互连类型以及突触权重的待测设计拓扑连接表(DUT拓扑连接表),所述互连类型包括核内互连与核间互连,核内互连是指互连的两个硬件神经元属于同一个类脑处理器核,核间互连是指互连的两个硬件神经元分属两个不同的类脑处理器核;
S304,依据类脑处理器的地址划分信息、类脑处理器的地址划分层次信息,查询待测设计拓扑连接表中各互连权重对应的写入地址,得到类脑处理器突触配置字典;
S305,检查类脑处理器突触配置字典中的地址是否溢出,若溢出则抛出异常,结束并退出;否则将类脑模型的权重数据的写入地址进行写合并得到类脑处理器突触配置;
S306,检查类脑处理器突触配置中是否存在数据覆盖,若存在数据覆盖,则抛出异常,结束并退出;否则将类脑处理器突触配置作为最终得到的映射配置文件。
参见图4,首先映射组件Mapper对来自测试环境自动生成组件Generator的映射组件Mapper配置文件Mapper.csv进行解析,获取用户所指定的映射算法、类脑处理器的拓扑信息、类脑处理器的地址划分信息、类脑处理器的地址划分层次信息、类脑模型的拓扑信息以及类脑模型的权重数据。其次,映射组件Mapper根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中,获得神经元映射字典,其中包含了类脑模型中神经元和类脑处理器中硬件神经元核之间的映射关系。随后映射组件Mapper会进一步解析类脑模型的权重文件,将上述神经元映射字典转化为包含类脑处理器中硬件神经元互连类型以及权重的待测设计拓扑连接表。随后,映射组件Mapper会依据类脑处理器地址划分信息和地址划分层次信息,来查询待测设计拓扑连接表中各权重数据对应的写入地址,进而输出类脑处理器突触配置字典,并检查其中的地址信息是否越界。而后,映射组件Mapper根据各个权重数据的写入地址进行写合并,并检查是否存在数据覆盖的情况。最后,映射组件Mapper向运行时框架输出映射配置文件,其中包含了所述运行时验证框架中Sequence组件所需的配置信息。
本实施例中,步骤S301中类脑模型的拓扑信息中每一个表项包含五个参数,包括表示模型中神经元总数的Neu_number(十进制整型),表示模型中神经元类型的Neu_types(字符串,可选“ex”,“in”和“normal”),表示模型中各神经元比例的Neu_ratio(列表格式,对应Neu_types设置),表示类脑模型中神经元模型类型的Neu_model(字符串,可选LIF和IF,支持后续扩展),和表示类脑模型在神经元模型不应期的Neu_refractory(字符串:“不应期间隔+时间单位”)。
本实施例中,步骤S303中待测设计拓扑连接表的数据格式为:
Core_index_src_neuron_src-Core_index_des_neuron_des: Synapse_weight_z
其中,Core_index_src_neuron_src为源硬件神经元的编号,Core_index_des_neuron_des为目的硬件神经元的编号,Synapse_weight_z为突触权重。硬件神经元的编号是由映射算法根据类脑处理器拓扑信息所生成,突触权重是由解析类脑模型的权重数据所得。本实施例中,类脑处理器拓扑信息包括NoC类型、NoC拓扑参数、单核的拓扑参数、单核中映射神经元最大值:NoC类型的字符串有“2D-mesh”、“Cmesh”、“Torus”、“Tree”;NoC拓扑参数为参数列表格式,对应Neu_types,例如Cmesh的参数列表为[axis_x_range, axis_y_range, core_num_node];单核的拓扑参数为字符串,表示核内神经元编号方法。例如:[x-wise, y-wise]或者[y-wise, x-wise],分别表示由x或y方向开始递增index。单核中映射神经元最大值为十进制整型,表示在映射过程中单核允许支持的最大神经元数量。
本实施例中,步骤S301中对类脑配置文件进行解析得到用户所指定的映射算法,S302根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中获得神经元映射字典。其中映射算法的作用是,通过映射使类脑处理器中核间通信延迟最小化,即尽量将通信频繁的类脑模型神经元映射在同一个类脑处理器核中,类脑处理器核是包含多个类脑处理器硬件神经元的硬件单元。
映射组件Mapper生成类脑处理器突触配置字典的方法是,通过地址划分信息和地址划分层次信息,根据硬件神经元所在NoC(Network on Chip,片上网络)节点的编号、所在类脑处理器核的编号、其在核中编号以及互连类型等待测设计拓扑连接表中提供的信息,查询待测设计拓扑连接表中每一条互连权重对应的写入地址。
本实施例中类脑处理器的地址划分包含三个部分,第一部分是类脑处理器核间地址划分信息,第二部分是类脑处理器核内地址划分信息,第三部分是类脑处理器硬件神经元存储空间地址分配表中。地址划分层次信息记录了地址查询时需要先查询类脑处理器核间地址划分信息,再查询类脑处理器核内地址划分信息,最后查询类脑处理器硬件神经元存储空间地址分配表中。本实施例中,类脑处理器核间地址划分信息包括:源硬件神经元所在核的编号Core_index_src(非负整数)、该段信息地址宽度Addr_width_0(正整数)以及该段信息地址内容Addr_base_0(正整数)。类脑处理器核内地址划分信息包括:源硬件神经元在核内的编号Neuron_index_src(非负整数)、该段信息地址宽度Addr_width_1(正整数)以及该段信息地址内容Addr_base_1(正整数)。类脑处理器硬件神经元存储空间地址分配表包括目的硬件神经元所在核的编号Core_index_des(非负整数)、目的硬件神经元在核内的编号Neuron_index_des(非负整数)、该段信息地址宽度Addr_width_offset(正整数)以及该段信息地址内容Addr_offset(正整数)。
本实施例中,步骤S304包括:
S401,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分层次信息中的类脑处理器核间地址划分信息,得到段信息地址内容Addr_base_0,所述类脑处理器核间地址划分信息中的每一个表项包括源硬件神经元所在核的编号Core_index_src、段信息地址宽度Addr_width_0以及段信息地址内容Addr_base_0;
S402,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分信息,得到段信息地址内容Addr_base_1,所述类脑处理器核内地址划分信息中的每一个表项包括源硬件神经元在核内的编号Neuron_index_src、段信息地址宽度Addr_width_1和段信息地址内容Addr_base_1;
S403,将段信息地址内容Addr_base_0、段信息地址内容Addr_base_1从左到右依次拼接得到待写入互连的突触权重数据硬件神经元的基地址;根据待测设计拓扑连接表中的源硬件神经元的编号,在预设的类脑处理器硬件神经元存储空间地址分配表中索引到待写入权重数据的偏移地址Addr_offset,并将基地址和偏移地址Addr_offset相加后得到待测设计拓扑连接表中各互连权重对应的写入地址,并得到类脑处理器突触配置字典。
本实施例中,步骤S306中最终得到的映射配置文件中每一个表项包括核间权重写地址Weight_inter_addr、核间权重写数据Weight_inter_data、核内权重写地址Weight_intra_addr以及核内权重写数据Weight_intra_data四种配置信息,四种配置信息均为16进制整型。
本实施例中步骤S104为由分析组件Analyzer执行的。
如图5所示,本实施例中步骤S104包括:
S501,对分析配置文件进行解释或得到用户配置的类脑参考模型设置、用户指定的数据集、NoC最大通信延时阈值以及NoC通信延时单位;同时获取运行时验证框架的核间通信数据和计算结果数据;
S502,基于类脑参考模型设置建立类脑参考模型,并根据用户指定的数据集进行计算得到预期分类结果列表;然后将预期分类结果列表、从运行时验证框架得到的计算结果数据两者进行比对,将比对得到的预期分类结果列表加入测试报告;同时,根据运行时验证框架的核间通信数据计算核间通信延时得到核间通信延时字典,然后基于核间通信延时字典分析全局通信热度得到通信热度图,并分析全局通信延时得到最大通信延时,将通信热度图和最大通信延时加入测试报告;最终保存或输出测试报告。
参见图5,首先,Analyzer获取来自测试环境自动生成组件Generator的分析配置文件Analyzer.csv,解析得到用户配置的类脑参考模型(RM, Reference Model)设置、用户指定的数据集、NoC最大通信延时阈值以及NoC通信延时单位。与此同时,该组件获取来自运行时验证框架的计算结果数据和核间通信数据。其中,计算结果数据一般是DUT针对每一个输入样本的分类结果输出,需通过Driver组件读取;核间通信数据是通过监控组件Monitor实时监控DUT内的核间通信端口得到。其次,结合用户指定数据集与类脑参考模型计算得到预期分类结果。而后,分析组件Analyzer使用Python内建库diff,将计算结果数据与预期分类结果进行比较,以检测DUT功能是否符合预期。与此同时,分析组件Analyzer根据监控得到的核间通信数据计算出核间通信延时,输出核间通信延迟字典。一方面,分析组件Analyzer逐样本统计最大通信延时,用以检测DUT的核间通信是否小于NoC最大通信延时阈值;另一方面,分析组件Analyzer根据核间通信数据绘制不同激励数据对应的通信热度图,并统计通信延迟的平均值和方差值,以供分析DUT通信负载的均匀性。
本实施例中最终得到的类脑处理器核间通信热力图如图7所示。其中,经过映射后的硬件神经元分布在四个类脑处理器核中,在仅用1个测试激励时,测试报告记录了该激励的比对结果,且四个类脑处理器核中的最大、最小核间通信延迟、延时的平均值和延迟的方差输出,并且相应地输出通信热力图。热力图的x、y轴坐标为互连的2个类脑处理器核的编号,z轴为核间通信包的数量。
如图7所示,本实施例中软硬协同验证装置的工作包括:
步骤S1:向命令行中输入“source test.sh”命令,获取验证工程初始化及其编译的相关设置;
步骤S2:测试环境自动生成组件Generator载入ini格式的测试配置文件,检查当前测试配置是否有更新,如有则执行步骤S3,否则执行步骤S5;
步骤S3:基于测试配置文件分析器configparser来解析测试配置文件,若符合配置格式要求则执行步骤S4,否则执行步骤S10;
步骤S4:测试环境自动生成组件Generator初始化验证工程目录结构,并生成Makefile文件、Testcase.py文件、Testbench.sv文件、Mapper.csv文件和Analyzer.csv文件;
步骤S5:运行Makefile文件编译仿真工程;
步骤S6:执行Testcase.py文件,重置测试环境,并载入配置信息;
步骤S7:输入激励数据,读出计算结果数据,并实时监控核间通信数据;
步骤S8:分析组件Analyzer运行参考模型(RM),进行功能验证,将所得结果写入到测试报告中。若分类结果符合预期则执行步骤S9,否则跳转到步骤S10;
步骤S9:获取监控组件Monitor实时监控的核间通信数据,并统计核间通信延时结果,若所得结果符合预期即不大于预设通信延迟阈值则执行步骤S10,否则执行步骤S11;
步骤S10:在S9的基础上,进一步计算通信延迟的平均值和方差值,并输出通信热力度,以判断核间通信的均衡性,将所得结果写入到测试报告中。
步骤S11:在测试配置文件格式有误、分类结果不符合预期或核间延时不符预期时,抛出异常错误。
综上所述,本实施例可应用于类脑多核处理器硬件验证,通过测试环境自动生成组件Generator对测试环境进行高可配置的自动生成;并通过Mapper和分析组件Analyzer,来分别实现类脑模型到DUT的拓扑映射,和DUT的功能验证及性能测试。通过上述验证框架,设计人员可大幅提高类脑硬件设计的功能调试、测试回归和版本迭代效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种面向类脑处理器的软硬协同验证方法,其特征在于,包括:
S101,基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;
S102,基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;
S103,通过运行时验证框架基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;
S104,基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求;
步骤S102包括:
S301,对类脑配置文件进行解析,得到用户所指定的映射算法、类脑处理器的拓扑信息、类脑处理器的地址划分信息、类脑处理器的地址划分层次信息、类脑模型的拓扑信息以及类脑模型的权重文件;
S302,根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中获得神经元映射字典,所述神经元映射字典中包含了类脑模型中神经元和类脑处理器中硬件神经元核之间的映射关系;
S303,解析类脑模型的权重文件,将神经元映射字典转化为包含类脑处理器中硬件神经元互连类型以及突触权重的待测设计拓扑连接表,所述互连类型包括核内互连与核间互连,核内互连是指互连的两个硬件神经元属于同一个类脑处理器核,核间互连是指互连的两个硬件神经元分属两个不同的类脑处理器核;
S304,依据类脑处理器的地址划分信息、类脑处理器的地址划分层次信息,查询待测设计拓扑连接表中各互连权重对应的写入地址,得到类脑处理器突触配置字典;
S305,检查类脑处理器突触配置字典中的地址是否溢出,若溢出则抛出异常,结束并退出;否则将类脑模型的权重数据的写入地址进行写合并得到类脑处理器突触配置;
S306,检查类脑处理器突触配置中是否存在数据覆盖,若存在数据覆盖,则抛出异常,结束并退出;否则将类脑处理器突触配置作为最终得到的映射配置文件。
2.根据权利要求1所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S101包括:
S201,解析被验证类脑处理器的原始测试配置文件,分别提取目录信息、测试顶层配置信息、自动化编译配置信息、测试用例配置信息、映射配置信息以及分析配置信息;
S202,基于目录信息生成验证工程目录,包括测试顶层目录、自动化编译目录和测试用例目录;测试顶层配置信息放入测试顶层目录中,根据自动化编译配置信息生成自动化编译文件并放入自动化编译目录中,根据测试用例配置信息生成测试用例并放入测试用例目录中。
3.根据权利要求2所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S201中还包括提取组件参数配置信息;步骤S202中基于目录信息生成验证工程目录时还包括生成组件目录,并将组件参数配置信息放入组件目录中。
4. 根据权利要求1所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S303中待测设计拓扑连接表的数据格式为:
Core_index_src_neuron_src-Core_index_des_neuron_des:Synapse_weight_z
其中,Core_index_src_neuron_src为源硬件神经元的编号,Core_index_des_neuron_des为目的硬件神经元的编号,Synapse_weight_z为突触权重。
5.根据权利要求4所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S304包括:
S401,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分层次信息中的类脑处理器核间地址划分信息,得到段信息地址内容Addr_base_0,所述类脑处理器核间地址划分信息中的每一个表项包括源硬件神经元所在核的编号Core_index_src、段信息地址宽度Addr_width_0以及段信息地址内容Addr_base_0;
S402,根据待测设计拓扑连接表中的源硬件神经元的编号,查询类脑处理器的地址划分信息得到段信息地址内容Addr_base_1,所述类脑处理器核内地址划分信息中的每一个表项包括源硬件神经元在核内的编号Neuron_index_src、段信息地址宽度Addr_width_1和段信息地址内容Addr_base_1;
S403,将段信息地址内容Addr_base_0、段信息地址内容Addr_base_1从左到右依次拼接得到待写入互连的突触权重数据硬件神经元的基地址;根据待测设计拓扑连接表中的源硬件神经元的编号,在预设的类脑处理器硬件神经元存储空间地址分配表中索引到待写入权重数据的偏移地址Addr_offset,并将基地址和偏移地址Addr_offset相加后得到待测设计拓扑连接表中各互连权重对应的写入地址,并得到类脑处理器突触配置字典。
6.根据权利要求1所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S306中最终得到的映射配置文件中每一个表项包括核间权重写数据、核间权重写地址、核内权重写数据和核内权重写地址四种配置信息。
7.根据权利要求1所述的面向类脑处理器的软硬协同验证方法,其特征在于,步骤S104包括:
S501,对分析配置文件进行解释或得到用户配置的类脑参考模型设置、用户指定的数据集、NoC最大通信延时阈值以及NoC通信延时单位;同时获取运行时验证框架的核间通信数据和计算结果数据;
S502,基于类脑参考模型设置建立类脑参考模型,并根据用户指定的数据集进行计算得到预期分类结果列表;然后将预期分类结果列表、从运行时验证框架得到的计算结果数据两者进行比对,将比对得到的预期分类结果列表加入测试报告;同时,根据运行时验证框架的核间通信数据计算核间通信延时得到核间通信延时字典,然后基于核间通信延时字典分析全局通信热度得到通信热度图,并分析全局通信延时得到最大通信延时,将通信热度图和最大通信延时加入测试报告;最终保存或输出测试报告。
8.一种用于使用权利要求1~7中任意一项所述的面向类脑处理器的软硬协同验证方法的软硬协同验证装置,其特征在于,包括运行时验证框架、测试环境自动生成组件、映射组件和分析组件,其中:所述测试环境自动生成组件用于基于被验证类脑处理器的测试配置文件分别生成自动化编译文件、测试用例、测试顶层配置信息、类脑配置文件和分析配置文件;所述映射组件用于基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件;所述运行时验证框架用于基于自动化编译文件、测试用例以及测试顶层配置信息,通过类脑处理器待测设计实时运行硬件仿真,采集硬件仿真中的计算结果数据和核间通信数据;所述分析组件基于分析配置文件对采集的计算结果数据和核间通信数据进行分析生成测试报告,以供类脑处理器设计人员判断类脑处理器待测设计是否达到功能和性能指标要求;所述测试环境自动生成组件、映射组件和分析组件分别与运行时验证框架相连;所述基于类脑配置文件为运行时验证框架中的类脑处理器待测设计生成映射配置文件包括:S301,对类脑配置文件进行解析,得到用户所指定的映射算法、类脑处理器的拓扑信息、类脑处理器的地址划分信息、类脑处理器的地址划分层次信息、类脑模型的拓扑信息以及类脑模型的权重文件;S302,根据解析得到的类脑模型的拓扑信息和类脑处理器的拓扑信息输入至映射算法中获得神经元映射字典,所述神经元映射字典中包含了类脑模型中神经元和类脑处理器中硬件神经元核之间的映射关系;S303,解析类脑模型的权重文件,将神经元映射字典转化为包含类脑处理器中硬件神经元互连类型以及突触权重的待测设计拓扑连接表,所述互连类型包括核内互连与核间互连,核内互连是指互连的两个硬件神经元属于同一个类脑处理器核,核间互连是指互连的两个硬件神经元分属两个不同的类脑处理器核;S304,依据类脑处理器的地址划分信息、类脑处理器的地址划分层次信息,查询待测设计拓扑连接表中各互连权重对应的写入地址,得到类脑处理器突触配置字典;S305,检查类脑处理器突触配置字典中的地址是否溢出,若溢出则抛出异常,结束并退出;否则将类脑模型的权重数据的写入地址进行写合并得到类脑处理器突触配置;S306,检查类脑处理器突触配置中是否存在数据覆盖,若存在数据覆盖,则抛出异常,结束并退出;否则将类脑处理器突触配置作为最终得到的映射配置文件。
9.根据权利要求8所述的软硬协同验证装置,其特征在于,所述运行时验证框架由COCOTB验证组件和类脑处理器待测设计组成,所述COCOTB验证组件包含了激励生成组件,激励调度组件,驱动组件和监控组件,所述激励生成组件用于根据地址信息将映射配置文件中的配置信息和测试用例配置信息中的脉冲形式的激励数据拼接为事务数据包;所述激励调度组件用于完成驱动组件和激励生成组件之间的数据交互,缓存来自双方的读写请求,完成双向握手,并将来自激励生成组件的事务数据包传递给驱动组件;所述驱动组件用于根据接收的事务数据包生成输出到类脑处理器待测设计的激励数据,并获取类脑处理器待测设计的计算结果数据并输出到分析组件;所述监控组件用于监控类脑处理器待测设计内的核间通信端口,并将监控获取的核间通信数据传输至分析组件。
CN202211654002.3A 2022-12-22 2022-12-22 一种面向类脑处理器的软硬协同验证方法及系统 Active CN115629928B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211654002.3A CN115629928B (zh) 2022-12-22 2022-12-22 一种面向类脑处理器的软硬协同验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211654002.3A CN115629928B (zh) 2022-12-22 2022-12-22 一种面向类脑处理器的软硬协同验证方法及系统

Publications (2)

Publication Number Publication Date
CN115629928A CN115629928A (zh) 2023-01-20
CN115629928B true CN115629928B (zh) 2023-04-07

Family

ID=84910048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211654002.3A Active CN115629928B (zh) 2022-12-22 2022-12-22 一种面向类脑处理器的软硬协同验证方法及系统

Country Status (1)

Country Link
CN (1) CN115629928B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9704094B2 (en) * 2015-02-19 2017-07-11 International Business Machines Corporation Mapping of algorithms to neurosynaptic hardware
US11347630B1 (en) * 2020-11-09 2022-05-31 Jpmorgan Chase Bank, N.A. Method and system for an automated testing framework in design pattern and validating messages
CN113011189A (zh) * 2021-03-26 2021-06-22 深圳壹账通智能科技有限公司 开放式实体关系的抽取方法、装置、设备及存储介质
CN113225359A (zh) * 2021-07-12 2021-08-06 深圳市永达电子信息股份有限公司 一种基于类脑计算的安全流量分析系统

Also Published As

Publication number Publication date
CN115629928A (zh) 2023-01-20

Similar Documents

Publication Publication Date Title
CN112580295B (zh) 多核SoC芯片的自动化验证方法、系统及装置
US20170337309A1 (en) Target Capture And Replay In Emulation
CN100573537C (zh) 一种soc芯片系统级验证系统及方法
CN102508753B (zh) Ip核验证系统
US10657217B2 (en) Latency test in networking system-on-chip verification
US11726899B2 (en) Waveform based reconstruction for emulation
US20060190239A1 (en) Method and system for hardware based reporting of assertion information for emulation and hardware acceleration
EP3369015B1 (en) Methods and circuits for debugging circuit designs
US20090248390A1 (en) Trace debugging in a hardware emulation environment
CN103593271A (zh) 一种片上系统芯片追踪调试的方法及装置
US10664637B2 (en) Testbench restoration based on capture and replay
CN115629928B (zh) 一种面向类脑处理器的软硬协同验证方法及系统
US10546081B2 (en) Full memory logical erase for circuit verification
US11593547B1 (en) Prediction and optimization of multi-kernel circuit design performance using a programmable overlay
US9581643B1 (en) Methods and circuits for testing partial circuit designs
Wicaksana et al. Hybrid prototyping methodology for rapid system validation in HW/SW co-design
CN114115887A (zh) 具有用于快速分区编译的动态分区负载均衡的自适应调度
Seifert et al. Reverse Engineering the Timing Parameters of the I/O-System in Microcontrollers
CN113673106B (zh) 一种fpga内核可编程仿真器
CN115983172B (zh) 用于后仿真的方法和仿真平台
Cao A Communication-Centric Framework for Post-Silicon System-on-chip Integration Debug
CN100373387C (zh) 一种芯片仿真平台中的数据处理方法及系统
Kakani et al. Transactional Test Environment for Faster and Early Verification of Digital Designs
CN118133735A (zh) 一种验证方法、装置、电子设备及可读存储介质
CN114169287A (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