CN117034855A - 一种基于uvm的哈希交织算法的验证方法与平台 - Google Patents

一种基于uvm的哈希交织算法的验证方法与平台 Download PDF

Info

Publication number
CN117034855A
CN117034855A CN202311271183.6A CN202311271183A CN117034855A CN 117034855 A CN117034855 A CN 117034855A CN 202311271183 A CN202311271183 A CN 202311271183A CN 117034855 A CN117034855 A CN 117034855A
Authority
CN
China
Prior art keywords
reference model
module
address information
tested
interleaving
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
Application number
CN202311271183.6A
Other languages
English (en)
Other versions
CN117034855B (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.)
Xindong Microelectronics Technology Wuhan Co ltd
Original Assignee
Xindong Microelectronics Technology Wuhan Co ltd
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 Xindong Microelectronics Technology Wuhan Co ltd filed Critical Xindong Microelectronics Technology Wuhan Co ltd
Priority to CN202311271183.6A priority Critical patent/CN117034855B/zh
Publication of CN117034855A publication Critical patent/CN117034855A/zh
Application granted granted Critical
Publication of CN117034855B publication Critical patent/CN117034855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及芯片设计技术领域,提供了一种基于UVM的哈希交织算法的验证方法与平台,通过依靠待测的哈希算法模块的规格协议创建参考模型,该参考模型保证了待测模块应有功能的正确性,通过对待测模块和参考模块输入相同的地址信息执行相同的功能,再将两者输出结果进行对比,从而对待测模块的各项功能的正确性进行验证;并且通过获取参考模型的输出地址信息并进行验证,从而对参考模型以及待测模块的规格协议的正确性进行验证,从而完成待测的哈希算法模块的正确性验证。

Description

一种基于UVM的哈希交织算法的验证方法与平台
技术领域
本发明涉及芯片设计技术领域,特别是涉及一种基于UVM的哈希交织算法的验证方法与平台。
背景技术
现有技术中,验证哈希交织算法主要通过UVM(Universal VerificationMethodology,通用验证方法学)的硬件描语言编写验证平台的方法,在FPGA硬件平台上运行进行功能验证;一方面该方法通常仅适合定向测试,难以通过各种不同的测试向量进行不定向测试,导致在需要大量功能需要进行验证的情境下,定向测试的效率较低且无法实现重用;另一方面,哈希交织算法的正确性主要通过全地址交织不粘连和交织均匀度两个指标来评判,以往的仿真资源无法承载内存中全地址如此庞大的数据量,因此难以判断全地址交织是否不发生粘连,并且传统的验证平台也无法统计交织均匀度,综上,目前对于哈希交织算法的验证大多不全面并且效率低下。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是需要提供一种验证全面的哈希算法模块的验证方法。
第一方面,一种基于UVM的哈希交织算法的验证方法,包括:
预先根据待测模块的规格协议创建参考模型,并对所述参考模型和待测模块进行预设功能定义;
向所述参考模型和待测模块同步下发地址信息;所述参考模型和待测模块根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果;
根据所述参考模型的处理结果验证待测模块的规格协议的正确性;
将所述预设功能下所述参考模型的处理结果和所述待测模块的处理结果进行对比,验证所述待测模块的预设功能的正确性。
优选的,所述根据所述参考模型的处理结果验证待测模块的规格协议的正确性,具体包括:
判断所述参考模型的处理结果的全地址交织是否发生粘连,以及获取参考模型的处理结果的交织均匀度;
当所述参考模型的处理结果的全地址交织未发生粘连,并且参考模型的处理结果的交织均匀度大于或者等于预设交织均匀度时,所述参考模型的规格协议正确;
当所述参考模型的处理结果的全地址交织发生粘连,或者参考模型的处理结果的交织均匀度小于预设交织均匀度时,所述参考模型的规格协议错误。
优选的,所述判断所述参考模型的处理结果的全地址交织是否发生粘连,具体包括:
将所述参考模型的处理结果存储至队列中,并判断队列中是否存在重复的地址信息,当存在时,则所述参考模型的处理结果的全地址交织发生粘连,当不存在时,则所述参考模型的处理结果的全地址交织未发生粘连。
优选的,所述获取参考模型的处理结果的交织均匀度,具体包括:
获取参考模型的处理结果中所有地址信息的对应落点的内存位置,从而得到每个内存对应存储地址信息的数量,进而得到所述交织均匀度。
优选的,所述对所述参考模型和待测模块进行预设功能定义,具体包括:
将多个第一类型功能作为第一测试用例,单个第二类型功能作为第二测试用例,所述第一测试用例采用不定向测试,所述第二测试用例采用定向测试,并且通过设置约束保证测试用例中所有功能的测试覆盖率。
第二方面,一种基于UVM的哈希交织算法的验证平台,使用所述的基于UVM的哈希交织算法的验证方法,包括:地址序列、参考模型、配置生成器、待测模块和计分板,其中:
所述配置生成器分别同所述参考模型和所述待测模块相连,所述配置生成器用于预先对所述参考模型和待测模块进行预设功能定义;
所述地址序列同所述参考模型和所述待测模块分别相连,所述地址序列用于向所述参考模型和所述待测模块发送相同的地址信息,所述参考模型和所述待测模块用于根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果;
所述计分板同所述参考模型和所述待测模块分别相连,所述计分板用于接收预设功能下来自参考模型和待测模块的处理结果,并将两个所述处理结果进行对比,验证所述待测模块的预设功能的正确性。
优选的,所述参考模型具体包括:选区单元、交织单元、重分区单元和越界检查单元,其中:
所述选区单元、交织单元、重分区单元和越界检查单元依次相连;
所述选区单元用于接收来自所述地址序列的地址信息,并将所述地址信息分为线性地址信息和交织地址信息,所述线性地址信息发送至所述重分区单元,所述交织地址信息发送至所述交织单元;
所述交织单元用于对所述交织地址信息进行哈希处理,并将哈希处理后的交织地址信息发送至所述重分区单元;
所述重分区单元用于将接收到的地址信息进行落点分配,将不同地址信息的落点定义为相应的内存中;
所述越界检查单元用于存储接收到的地址信息于队列中,判断队列中是否存在重复的地址信息,并将所有地址信息根据定义的落点发送至相应的内存中。
优选的,所述参考模型还包括:覆盖仓单元,其中:
所述覆盖仓单元同所述重分区单元相接,所述覆盖仓用于获取参考模型的处理结果中所有地址信息的对应落点的内存位置,从而得到每个内存对应存储地址信息的数量,进而得到所述交织均匀度。
优选的,所述地址序列和所述待测模块之间还设置有主代理,所述主代理具体包括:序列发生器、驱动、输入接口和输入监视器,其中:
所述序列发生器、驱动和输入接口依次相接,所述序列发生器同所述地址序列相接,所述输入接口同所述待测模块以及输入监视器分别相接,所述输入监视器同所述参考模型相接;
所述序列发生器用于接收来自地址序列的地址信息,并将地址信息进行存储,待所述驱动需要地址信息时,将地址信息发送至所述驱动;
所述驱动用于接收来自序列发生器的地址信息,并将所述地址信息进行格式转换,将转换后的地址信息发送至输入接口;
所述输入接口用于将接收到的地址信息发送至所述待测模块,所述待测模块根据所述功能定义对所述地址信息进行相应的计算处理;
所述输入监视器用于提取所述输入接口中的地址信息并发送至所述参考模型,保证参考模型和待测模块接收到的地址信息一致。
优选的,所述待测模块和计分板之间还设置有从代理,所述从代理具体包括:输出接口和输出监视器,其中:
所述输出接口同所述待测模块以及输出监视器分别相接,所述输出监视器同所述计分板相接;
所述输出接口用于接收来自待测模块的处理结果;
所述输出监视器用于提取所述输出接口中的处理结果,并将所述处理结果发送至所述计分板中。
本发明提供了一种基于UVM的哈希交织算法的验证方法与平台,通过依靠待测的哈希算法模块的规格协议创建参考模型,该参考模型保证了待测模块应有功能的正确性,通过对待测模块和参考模块输入相同的地址信息执行相同的功能,再将两者输出结果进行对比,从而对待测模块的各项功能的正确性进行验证;并且通过获取参考模型的输出地址信息并进行验证,对参考模型以及待测模块的规格协议的正确性进行验证,从而相对全面的完成待测的哈希算法模块的正确性验证。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于UVM的哈希交织算法的验证方法的方法流程图;
图2是本发明实施例提供的一种基于UVM的哈希交织算法的验证方法的参考模型规格协议判断的方法流程图;
图3是本发明实施例提供的一种基于UVM的哈希交织算法的验证方法的判断参考模型全地址是否发生粘连的方法流程图;
图4是本发明实施例提供的一种基于UVM的哈希交织算法的验证方法的获取交织均匀度的方法流程图;
图5是本发明实施例提供的一种基于UVM的哈希交织算法的验证方法的待测模块的预设功能正确性的判断方法流程图;
图6是本发明实施例提供的一种基于UVM的哈希交织算法的验证平台的模块框图;
图7是本发明实施例提供的一种基于UVM的哈希交织算法的验证平台的参考模型的模块框图;
图8是本发明实施例提供的一种基于UVM的哈希交织算法的验证平台的使用方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
本发明中术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是直接相连,也可以通过中间媒介间接相连。此外,术语“耦接”可以是实现信号传输的电性连接的方式。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例提供了一种基于UVM(Universal Verification Methodology,通用验证方法学)的哈希交织算法的验证方法,如图1所示,包括:
步骤101中,预先根据待测模块的规格协议创建参考模型,并对所述参考模型和待测模块进行预设功能定义。
在本发明实施例中,所述待测模块指代哈希算法模块,用于针对地址信息进行哈希交织处理,是一种用于存储器地址映射的功能模块,其目的是用于增加内存系统的并行性、带宽和吞吐量,从而提高系统性能。
所述待测模块的规格协议即为定义哈希算法模块的规格协议说明书,本实施例中所述待测模块即通过该规格协议进行定义制作;而所述参考模型通过所述规格协议创建,是用于模拟待测模块的行为模型,为采用高级编程语言systemverilog搭建的功能模型,本实施例中,所述参考模型具有以下特性:1、能同待测模块一样完成相同的功能计算工作,在相应的功能计算方面能够保证正确性,用于供待测模型进行参照对比,从而验证待测模型相应功能计算处理的正确性;2、由于参考模型按照规格协议进行创建,因此相应规格协议的问题参考模型无法规避,其中全地址交织不粘连和交织均匀度两个指标参考模型无法保证正确性,但由于参考模型和待测模块的规格协议一致,因此参考模型和待测模块的全地址交织不粘连和交织均匀度两个指标也一致,而本实施例则通过验证参考模型的全地址交织不粘连和交织均匀度两个指标的正确性,从而来间接验证待测模块的全地址交织不粘连和交织均匀度两个指标的正确性。
所述步骤101中的创建参考模型是在进行验证流程以前需要预先进行的,而对于参考模型和待测模块的预设功能定义目的在于,后续需要对待测模型的多个功能的正确性进行验证,需要在验证过程中将这些功能在参考模型和待测模型中执行,故需要预先将这些功能在参考模型和待测模型中进行定义,上述定义过程可以在验证流程开始以前进行,也可以在验证流程中间进行。所述预设功能则由本领域技术人员自行设定,取决于需要对待测模块的哪些功能进行验证。
步骤102中,向所述参考模型和待测模块同步下发地址信息;所述参考模型和待测模块根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果。
需要注意的是,同步下发给参考模型和待测模块的地址信息需要保证一致性,从而保证参考模型和待测模型两方在应用相同的输入执行相同的功能,再将两者输出的结果进行对比,即可验证待测模块对于该功能的正确性。
步骤103中,根据所述参考模型的处理结果验证待测模块的规格协议的正确性。
在本发明实施例中,所述待测模块的协议规格的正确性主要由待测模块的全地址交织不粘连和交织均匀度两个指标来决定,由于待测模块在经过验证得知其正确性的前提下,应尽量不对其进行改造,因此本实施例通过在参考模型中添加相应的检验单元和/或读取单元,对参考模型的输出的地址信息进行获取检验,从而得到相应的参考模型的全地址交织不粘连和交织均匀度两个指标,进而得到待测模块的全地址交织不粘连和交织均匀度两个指标,从而对相应的规格协议进行验证。
步骤104中,将所述预设功能下所述参考模型的处理结果和所述待测模块的处理结果进行对比,验证所述待测模块的预设功能的正确性。
需要注意的是,在本发明实施例中,所述待测模块的正确性由以下指标决定:1、待测模块的规格协议的正确性;2、待测模块的各项功能的正确性;上述两个指标相结合用于代表待测模块的正确性;而步骤104则是对待测模块的各项功能的正确性进行验证。需要注意的是,在验证过程中通常需要验证多个功能,不同功能的验证需要保证参考模块和待测模型对应执行相同的功能,并且输入的地址信息也需要完全一致,在上述基础上,参考模型输出的地址信息则代表该功能下正确的计算处理所得到的结果,将该结果作为参照同验证模型的计算结果进行对比,即可验证待测模型该功能的正确性。
现有技术中,验证哈希交织算法主要通过硬件描述语言编写验证平台的方法,在FPGA硬件平台上运行进行功能验证;一方面该方法通常仅适合定向测试,难以通过各种不同的测试向量进行不定向测试,导致在需要大量功能需要进行验证的情境下,定向测试的效率较低且无法实现重用;另一方面,哈希交织算法的正确性主要通过全地址交织不粘连和交织均匀度两个指标来评判,以往的仿真资源无法承载ddr全地址如此庞大的数据量,因此难以判断全地址交织是否不发生粘连,并且传统的验证平台也无法统计交织均匀度,综上,目前对于哈希交织算法的验证大多不全面并且效率低下。
在本发明实施例中,通过依靠待测的哈希算法模块的规格协议创建参考模型,该参考模型保证了待测模块应有功能的正确性,通过对待测模块和参考模块输入相同的地址信息执行相同的功能,再将两者输出结果进行对比,从而对待测模块的各项功能的正确性进行验证;并且通过获取参考模型的输出地址信息并进行验证,从而对参考模型以及待测模块的规格协议的正确性进行验证,从而完成待测的哈希算法模块的正确性验证。
如图2所示,所述待测模块的规格协议的正确性的判断条件如下:
步骤201中,判断参考模型的处理结果的全地址交织是否发生粘连,以及获取参考模型的处理结果的交织均匀度。
步骤202中,当所述参考模型的处理结果的全地址交织未发生粘连,并且参考模型的处理结果的交织均匀度大于或者等于预设交织均匀度时,所述参考模型的规格协议正确。
步骤203中,当所述参考模型的处理结果的全地址交织发生粘连,或者参考模型的处理结果的交织均匀度小于预设交织均匀度时,所述参考模型的规格协议错误。
需要注意的是,所述预设交织均匀度可根据实际情况自行设计,所有符合本实施例情景的预设交织均匀度的设定均应在本实施例的保护范围之内。
如图3所示,所述判断所述参考模型的处理结果的全地址交织是否发生粘连,具体包括:
步骤301中,将所述参考模型的处理结果存储至队列中。
步骤302中,判断队列中是否存在重复的地址信息。
步骤303中,当队列中存在重复的地址信息时,则所述参考模型的处理结果的全地址交织发生粘连。
步骤304中,当队列中不存在重复的地址信息时,则所述参考模型的处理结果的全地址交织未发生粘连。
在本发明实施例中,所述粘连是指,不同地址信息访问了同一个内存空间,造成的数据覆盖成为了地址粘连;需要注意的是,输入的地址信息均不存在相同重复,但当地址信息在经过参考模型或者待测模块的计算处理后,输出的地址信息可能会相同,此时即为全地址交织发生粘连。因此本实施例验证是否发生全地址交织粘连的方法是,预先在参考模型中设置相应的检查单元,该检查单元会将参考模型处理后的地址信息均先存放至其队列中,再对队列中进行唯一元素检查,即为不能出现重复的地址信息,当出现重复的地址信息时,则说明用于创建参考模型的规格协议本身存在问题,需要进行修正。
如图4所示,所述获取参考模型的处理结果的交织均匀度,方法流程如下:
步骤401中,获取参考模型的处理结果中所有地址信息的对应落点的内存位置。
步骤402中,从而得到每个内存对应存储地址信息的数量。
步骤403中,得到所述交织均匀度。
所述交织均匀度是哈希交织本身的处理特性,哈希交织在计算处理的过程中,具有以下特性:1、内存通道均衡:通过哈希交织,内存地址被均匀地映射到不同的物理通道或存储区域,使得不同的内存通道得到更均衡的负载,避免某个通道成为性能瓶颈,并且通过合理的地址分布,可以最大化利用多通道内存系统的带宽,从而降低内存访问的延迟;2、内存并行访问:哈希交织使得多个地址在同一时间可以并行地访问不同的物理通道或存储区域。这样可以增加内存系统的并行性,从而提高数据传输的效率和吞吐量,通过充分利用内存通道的并行性,可以加快数据的读取和写入速度;3、冲突消除:哈希交织可以减少地址之间的冲突,避免多个地址映射到同一个物理通道或存储区域的情况,通过避免冲突,可以减少内存访问的等待时间,提高整体系统的性能和效率;4、负载均衡:哈希交织可以实现对不同地址的负载均衡,使得内存系统中的数据访问更加均匀,有助于减少不同请求之间的竞争和延迟,提高内存访问的响应速度。
在本发明实施例中,所述交织均匀度的直观体现即为:在参考模型和待测模块对地址信息计算处理后,将处理结果的地址信息进行不同内存位置的落点分配,即将不同地址信息均匀的发送至不同的内存中进行存储,避免一个内存中接收到过多的地址信息,以达到上述的哈希交织的效果。而在本发明实施例中,通过在参考模型中设置相应的记录单元,获取参考模型对于每个地址信息的落点分配的状况,并进行统计,从而将参考模型的交织均匀度可视化并通过软件进行输出,本领域技术人员根据相应的交织均匀度即可即可对规格协议进行及时调整,使得哈希算法获得更高的交织均匀度。
所述将所述预设功能下所述参考模型的处理结果和所述待测模块的处理结果进行对比,验证所述待测模块的正确性,如图5所示,方法流程如下:
步骤501中,判断预设功能下参考模型的处理结果和待测模块的处理结果是否一致。
步骤502中,当所述预设功能下参考模型的处理结果和待测模块的处理结果一致时,所述待测模块的预设功能正确。
在本发明实施例中,通常需要对待测模块的多个功能的正确性进行验证,其中,因此在其中一个功能正确并验证完毕以后,通过UVM config_db机制将随机配置发送给reference model进行运算,通过连续赋值语句将随机配置发送给待测模块的配置输入接口,所述配置包括随机配置、特殊配置和定向配置,待测模块和参考模型则根据所述配置运算,得到相应不同功能的计算结果。
步骤503中,当所述预设功能下参考模型的处理结果和待测模块的处理结果不同时,所述待测模块的预设功能错误。
可以理解的是,待测模块的相应功能错误时,可以及时对待测模块进行修改调整。
由于在验证过程中,待测模块所需要进行测试的功能过多,通常UVM是将多个功能作为测试用例,并设置约束,来对测试用例中的多个功能进行随机配置,从而实现对于待测模块和参考模型的不同功能的下发和定义;但同时还存在部分功能难以被随机配置命中,在实际进行功能下发时效率过低,难以进行下发,影响验证功能的覆盖率,因此本发明实施例还具有以下设计:
所述对所述参考模型和待测模块进行预设功能定义,具体包括:
将多个第一类型功能作为第一测试用例,单个第二类型功能作为第二测试用例,所述第一测试用例采用不定向测试,所述第二测试用例采用定向测试,并且通过设置约束保证测试用例中所有功能的测试覆盖率。
需要注意的是,由于在对待测模块进行验证的过程中,通常验证效果是由被验证的功能数量决定的,被验证的功能数量越多,验证效果越优异,但随着验证功能数量的增多,验证功能的覆盖率也越难以达标,所述验证功能覆盖率即为:已经验证完毕并修复的功能占所有需要验证的功能比例,只有验证功能覆盖率达到100%时,才能代表该待测模块的功能验证完毕。
在本发明实施例中,所述第一类型功能为易于命中的功能,所述第二类型功能为不易于命中的功能,所述易于命中和所述不易于命中是根据相应功能的命中区间大小而定,在本发明实施例中,在进行功能下发时,通常采用对配置变量进行随机命中的方法,当该功能相应的命中区间越大,则更易于命中,当该功能相应的命中区间越小,则越不易命中;例如,配置变量的总区间为1到10000,其中功能一的命中区间为1到1000,而功能二的命中区间为2000到2010,可以看到功能一的命中区间大小为1000,功能二的命中区间大小为10,因此功能一相较于功能二更易于命中。本实施例中第一类型功能即为命中区间大小大于或等于第一预设值的功能,第二类型功能即为命中区间大小小于第一预设值的功能,所述第一预设值可自行根据实际情况设定,本发明对此不做限制。
其中,所述第一测试用例采用不定向测试进行功能仿真,第一测试用例中的功能都属于容易命中并进行配置的功能类型,通过对第一测试用例设置约束,将不同功能设置于不同的命中区间内,并且在设置约束时需要保证多个功能在第一测试用例中均易于命中并进行配置;而所述第二测试用例则均为单个不易于命中的功能类型,这些功能由于难以进行命中配置,因此倘若采用不定向测试,会导致这些功能在测试用例中难以被随机到,导致测试流程中验证功能的覆盖率始终无法达到预设值,导致验证效率较低;因此本实施例将上述难以命中的功能单独作为一个测试用例,来进行定向测试,在定向测试时,即无需进行随机命中,这是由于该测试用例中仅有这一个功能,测试用例中没有其他功能,从而对指定的功能进行下发配置。本实施例中,由于需要下发的功能包括易于命中的也包括不易于命中的,因此本实施例通过将多个易于命中的功能采用不定向测试,而不易于命中的功能采用定向测试,从而在保证测试覆盖率的同时,提高验证效率。
本实施例还提供一种基于UVM的哈希交织算法的验证平台,使用上述的基于UVM的哈希交织算法的验证方法,如图6所示,包括:地址序列、参考模型、配置生成器、待测模块和计分板,其中:
所述配置生成器分别同所述参考模型和所述待测模块相连,所述配置生成器用于预先对所述参考模型和待测模块进行预设功能定义。
其中,所述配置生成器派生自uvm_sequence_item,所述配置生成器包括哈希交织算法模块的多个配置变量以及多个约束块,配置变量均采用随机数据,数据关键字rand,结合合理约束,确保配置变量地正确且随机性;本实施例中对于预设功能的下发定义为:将第一测试用例中的功能通过定义多个约束块分配于不同的配置变量区间内,通过对配置变量进行随机命中,从而下发相应命中区间对于的功能。
通过举例对上述配置生成器的功能下发进行解释:配置生成器在1到10000的10000个数字中进行随机命中,当命中1到300区间的数字时,配置生成器下发A功能,当命中301到600区间内的数字时,配置生成器下发B功能,当命中601到1000区间内的数字时,配置生成器下发C功能;其中不同的区间对应不同的功能即为所述约束块。
所述配置生成器还连有覆盖率统计器,所述覆盖率统计器派生自uvm_component,通过功能覆盖组和采样函数来完成功能覆盖点的覆盖率的统计,收集数据或表达式所有出现过的值或改变的情况,由于在对待测模块进行验证的过程中,通常验证效果是由被验证的功能数量决定的,被验证的功能数量越多,验证效果越优异,但随着验证功能数量的增多,验证功能的覆盖率也越难以达标,所述验证功能覆盖率即为:已经验证完毕并修复的功能占所有需要验证的功能比例,只有验证功能覆盖率达到100%时,才能代表该待测模块的功能验证完毕。
所述地址序列同所述参考模型和所述待测模块分别相连,所述地址序列用于向所述参考模型和所述待测模块发送相同的地址信息,所述参考模型和所述待测模块用于根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果。
所述地址序列派生自uvm_sequence,所述地址序列是验证平台地址信息产生的源头,只需在测试用例中将不同的地址序列进行挂载,产生不同的验证激励,地址序列针对下发的功能进行相应地址信息的发送。
本实施例中,所述地址序列将地址信息发送至参考模型和待测模块时,需要经过主代理,所述主代理用于对地址信息进行地址信息的相应的格式转换以及驱动。
所述计分板同所述参考模型和所述待测模块分别相连,所述计分板用于接收预设功能下来自参考模型和待测模块的处理结果,并将两个所述处理结果进行对比,验证所述待测模块的预设功能的正确性。
所述计分板派生自uvm_scoreboard,用于比对待测模块的处理结果和参考模型的处理结果,并根据对比结果判断当前的待测模块运算是否正常。本实施例中,所述待测模块的处理结果需要经过从代理发送至计分板,所述从代理用于对处理结果进行格式转换以及驱动。
其中,当所述预设功能下参考模型的处理结果和待测模块的处理结果一致时,所述待测模块的预设功能正确。
在本发明实施例中,通常需要对待测模块的多个功能的正确性进行验证,其中,因此在其中一个功能正确并验证完毕以后,通过UVM config_db机制将随机配置发送给reference model进行运算,通过连续赋值语句将随机配置发送给待测模块的配置输入接口,所述配置包括随机配置、特殊配置和定向配置,待测模块和参考模型则根据所述配置运算,得到相应不同功能的计算结果。
当所述预设功能下参考模型的处理结果和待测模块的处理结果不同时,所述待测模块的预设功能错误。
待测模块的相应功能错误时,可以及时对待测模块进行修改调整。
在本发明实施例中,所述待测模块设置于顶层,所述地址序列和配置生成器设置于测试用例层,所述参考模型、计分板、主代理和从代理设置于验证环境层,其中所述主代理用于将序列发生器、驱动和输入监视器进行封装,增加重用性,所述从代理用于模拟记忆模型,将序列发生器、驱动和输出监视器进行封装。
如图7所示,所述参考模型具体包括:选区单元、交织单元、重分区单元和越界检查单元,其中:
所述选区单元、交织单元、重分区单元和越界检查单元依次相连;
所述选区单元用于接收来自所述地址序列的地址信息,并将所述地址信息分为线性地址信息和交织地址信息,所述线性地址信息发送至所述重分区单元,所述交织地址信息发送至所述交织单元。
所述交织单元用于对所述交织地址信息进行哈希处理,并将哈希处理后的交织地址信息发送至所述重分区单元。
所述重分区单元用于将接收到的地址信息进行落点分配,将不同地址信息的落点定义至相应的内存中。
所述重分区单元将处理结果的地址信息进行不同内存位置的落点分配,即将不同地址信息均匀的发送至不同的内存中进行存储,避免一个内存中接收到过多的地址信息,以达到哈希交织的内存通道并行均分的效果。
所述越界检查单元用于存储接收到的地址信息于队列中,判断队列中是否存在重复的地址信息,并将所有地址信息发送至相应的内存中。
本实施例中,所述越界检查模型还对于重分区单元所定义的地址信息的落点进行检查,防止地址信息落点至非内存区域,从而对参考模型进行自检调整。
所述参考模型还包括:覆盖仓单元,其中:
所述覆盖仓单元同所述重分区单元相接,所述覆盖仓用于获取参考模型的处理结果中所有地址信息的对应落点的内存位置,从而得到每个内存对应存储地址信息的数量,进而得到所述交织均匀度。
在本发明实施例中,对于交织均匀度的调整更多的是优化,即将交织均匀度朝向预设值进行调优,即根据覆盖仓单元对于地址信息的统计结果找到交织均匀度最高的配置。每有一个地址信息被处理,覆盖仓就会记录一次,然后参考模型把计算得到的数据传输至计分板模块进行比对,并根据比对结果分析得到仿真验证结果;覆盖仓记录的命中次数将交织均匀度进行可视化,最后通过软件输出各个覆盖仓的命中报告。通过查看覆盖仓的命中报告,本领域技术人员可以及时调整哈希算法以获得更大的交织均匀度。
所述地址序列和所述待测模块之间还设置有主代理,所述主代理具体包括:序列发生器、驱动、输入接口和输入监视器,其中:
所述序列发生器、驱动和输入接口依次相接,所述序列发生器同所述地址序列相接,所述输入接口同所述待测模块以及输入监视器分别相接,所述输入监视器同所述参考模型相接;所述序列发生器用于接收来自地址序列的地址信息,并将地址信息进行存储,待所述驱动需要地址信息时,将地址信息发送至所述驱动;所述驱动用于接收来自序列发生器的地址信息,并将所述地址信息进行格式转换,并将转换后的地址信息发送至输入接口;所述输入接口用于将接收到的地址信息发送至所述待测模块,所述待测模块根据所述功能定义对所述地址信息进行相应的计算处理;所述输入监视器用于提取所述输入接口中的地址信息并发送至所述参考模型,保证参考模型和待测模块接收到的地址信息一致。
其中,所述驱动派生自uvm_driver,驱动通过向序列发生器申请获得验证需要的地址信息,随后通过接口向待测模块和参考模型传输,进而驱动待测模块和参考模型进行功能仿真。
所述输入监视器派生自uvm_monitor,输入监视器通过接口提取地址信息,传给参考模型,确保参考模型能得到与待测模块一致的地址信息。其中,所述输入监视器通过先进先出存储区FIFO或者端口port将事务类数据传给参考模型。
所述待测模块和计分板之间还设置有从代理,所述从代理具体包括:输出接口和输出监视器,其中:
所述输出接口同所述待测模块以及输出监视器分别相接,所述输出监视器同所述计分板相接;所述输出接口用于接收来自待测模块的处理结果;所述输出监视器用于提取所述输出接口中的处理结果,并将所述处理结果发送至所述计分板中。
所述输出监视器派生自uvm_monitor,用于检测待测模块的输出结果,待测模块计算结束后,把计算结果的有效信息放入事务数据中,然后把事务数据传送给参考模型中进行比对,验证待测模块是否正确输出计算数据。
本实施例中,还提供一种基于UVM的哈希交织算法的验证平台的使用方法,如图8所示,方法流程如下:
步骤601中,按照预定结构搭建验证平台,初始化验证平台各个单元模块并通过run_test语句启动本验证平台。
步骤602中,通过覆盖率统计器建立功能覆盖率模型来检验验证平台的验证效果,然后将该功能覆盖率模型与配置生成器连接起来进行数据采样,最后通过软件输出覆盖率报告;通过查看覆盖率报告调整修改测试用例或增加约束条件,以完善用于验证待测模块的各个功能。
步骤603中,验证平台的驱动向序列发生器发送序列请求,序列发生器驱动序列获取地址信息,序列发生器将地址信息发给驱动,驱动地址信息通过输入接口将数据传输到待测模块之中,待测模块进行运算。
步骤604中,待测模块运算完成后通过输出接口将结果传输给输出监视器,并通过输出监视器将结果转换为事务数据,将事务数据通过FIFO传送给计分板进行保存。
步骤605中,参考模型将从输入监视器获取的地址信息依次经过选区单元、交织单元、重分区单元和越界检查单元进行处理,每有一个地址信息被处理,覆盖仓就会记录一次,参考模型将计算得到的数据传输至计分板模块进行比对,并根据比对结果分析得到验证结果。
步骤606中,覆盖仓记录的命中次数为均匀度验证进行可视化,最后通过软件输出各个覆盖仓的命中报告,通过查看覆盖仓的命中报告,调整哈希算法规格协议以获得更大的哈希交织均匀度。
本实施例通过顶层调用待测模块进行功能仿真验证,通过测试用例的大量不定向测试和少量定向测试进行功能仿真,确保DUT的各项功能和运算正常,采用UVM高级验证方法学搭建验证平台,结构清晰,同时具有很好的移植性和可重用性,并且有软件提供覆盖仓的命中情况的可视化结果,减少debug难度。参考模型有越界检查模型,全地址发送的时候,也能精确检查地址是否越界或粘连。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于UVM的哈希交织算法的验证方法,其特征在于,包括:
预先根据待测模块的规格协议创建参考模型,并对所述参考模型和待测模块进行预设功能定义;
向所述参考模型和待测模块同步下发地址信息;所述参考模型和待测模块根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果;
根据所述参考模型的处理结果验证待测模块的规格协议的正确性;
将所述预设功能下所述参考模型的处理结果和所述待测模块的处理结果进行对比,验证所述待测模块的预设功能的正确性。
2.根据权利要求1所述的基于UVM的哈希交织算法的验证方法,其特征在于,所述根据所述参考模型的处理结果验证待测模块的规格协议的正确性包括:
判断所述参考模型的处理结果的全地址交织是否发生粘连,以及获取参考模型的处理结果的交织均匀度;
当所述参考模型的处理结果的全地址交织未发生粘连,并且参考模型的处理结果的交织均匀度大于或者等于预设交织均匀度时,所述参考模型的规格协议正确;
当所述参考模型的处理结果的全地址交织发生粘连,或者参考模型的处理结果的交织均匀度小于预设交织均匀度时,所述参考模型的规格协议错误。
3.根据权利要求2所述的基于UVM的哈希交织算法的验证方法,其特征在于,所述判断所述参考模型的处理结果的全地址交织是否发生粘连包括:
将所述参考模型的处理结果存储至队列中,并判断队列中是否存在重复的地址信息,当存在时,则所述参考模型的处理结果的全地址交织发生粘连,当不存在时,则所述参考模型的处理结果的全地址交织未发生粘连。
4.根据权利要求2所述的基于UVM的哈希交织算法的验证方法,其特征在于,所述获取参考模型的处理结果的交织均匀度包括:
获取参考模型的处理结果中所有地址信息的对应落点的内存位置,从而得到每个内存对应存储地址信息的数量,进而得到所述交织均匀度。
5.根据权利要求1至4中任一项所述的基于UVM的哈希交织算法的验证方法,其特征在于,所述对所述参考模型和待测模块进行预设功能定义包括:
将多个第一类型功能作为第一测试用例,单个第二类型功能作为第二测试用例,所述第一测试用例采用不定向测试,所述第二测试用例采用定向测试,并且通过设置约束保证测试用例中所有功能的测试覆盖率。
6.一种基于UVM的哈希交织算法的验证平台,使用如权利要求1至5中任一项所述的基于UVM的哈希交织算法的验证方法,其特征在于,包括:地址序列、参考模型、配置生成器、待测模块和计分板,其中:
所述配置生成器分别同所述参考模型和所述待测模块相连,所述配置生成器用于预先对所述参考模型和待测模块进行预设功能定义;
所述地址序列同所述参考模型和所述待测模块分别相连,所述地址序列用于向所述参考模型和所述待测模块发送相同的地址信息,所述参考模型和所述待测模块用于根据所述预设功能定义对所述地址信息进行相应的计算处理,得到所述预设功能下参考模型的处理结果和待测模块的处理结果;
所述计分板同所述参考模型和所述待测模块分别相连,所述计分板用于接收预设功能下来自参考模型和待测模块的处理结果,并将两个所述处理结果进行对比,验证所述待测模块的预设功能的正确性。
7.根据权利要求6所述的基于UVM的哈希交织算法的验证平台,其特征在于,所述参考模型包括:选区单元、交织单元、重分区单元和越界检查单元,其中:
所述选区单元、交织单元、重分区单元和越界检查单元依次相连;
所述选区单元用于接收来自所述地址序列的地址信息,并将所述地址信息分为线性地址信息和交织地址信息,所述线性地址信息发送至所述重分区单元,所述交织地址信息发送至所述交织单元;
所述交织单元用于对所述交织地址信息进行哈希处理,并将哈希处理后的交织地址信息发送至所述重分区单元;
所述重分区单元用于将接收到的地址信息进行落点分配,将不同地址信息的落点定义为相应的内存中;
所述越界检查单元用于存储接收到的地址信息于队列中,判断队列中是否存在重复的地址信息,并将所有地址信息根据定义的落点发送至相应的内存中。
8.根据权利要求7所述的基于UVM的哈希交织算法的验证平台,其特征在于,所述参考模型还包括:覆盖仓单元,其中:
所述覆盖仓单元同所述重分区单元相接,所述覆盖仓用于获取参考模型的处理结果中所有地址信息的对应落点的内存位置,从而得到每个内存对应存储地址信息的数量,进而得到所述交织均匀度。
9.根据权利要求6所述的基于UVM的哈希交织算法的验证平台,其特征在于,所述地址序列和所述待测模块之间还设置有主代理,所述主代理包括:序列发生器、驱动、输入接口和输入监视器,其中:
所述序列发生器、驱动和输入接口依次相接,所述序列发生器同所述地址序列相接,所述输入接口同所述待测模块以及输入监视器分别相接,所述输入监视器同所述参考模型相接;
所述序列发生器用于接收来自地址序列的地址信息,并将地址信息进行存储,待所述驱动需要地址信息时,将地址信息发送至所述驱动;
所述驱动用于接收来自序列发生器的地址信息,并将所述地址信息进行格式转换,将转换后的地址信息发送至输入接口;
所述输入接口用于将接收到的地址信息发送至所述待测模块,所述待测模块根据所述功能定义对所述地址信息进行相应的计算处理;
所述输入监视器用于提取所述输入接口中的地址信息并发送至所述参考模型,保证参考模型和待测模块接收到的地址信息一致。
10.根据权利要求6所述的基于UVM的哈希交织算法的验证平台,其特征在于,所述待测模块和计分板之间还设置有从代理,所述从代理包括:输出接口和输出监视器,其中:
所述输出接口同所述待测模块以及输出监视器分别相接,所述输出监视器同所述计分板相接;
所述输出接口用于接收来自待测模块的处理结果;
所述输出监视器用于提取所述输出接口中的处理结果,并将所述处理结果发送至所述计分板中。
CN202311271183.6A 2023-09-28 2023-09-28 一种基于uvm的哈希交织算法的验证方法与平台 Active CN117034855B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311271183.6A CN117034855B (zh) 2023-09-28 2023-09-28 一种基于uvm的哈希交织算法的验证方法与平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311271183.6A CN117034855B (zh) 2023-09-28 2023-09-28 一种基于uvm的哈希交织算法的验证方法与平台

Publications (2)

Publication Number Publication Date
CN117034855A true CN117034855A (zh) 2023-11-10
CN117034855B CN117034855B (zh) 2024-01-02

Family

ID=88632099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311271183.6A Active CN117034855B (zh) 2023-09-28 2023-09-28 一种基于uvm的哈希交织算法的验证方法与平台

Country Status (1)

Country Link
CN (1) CN117034855B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555741A (zh) * 2024-01-10 2024-02-13 深流微智能科技(深圳)有限公司 基于uvm的原子指令模块验证系统、方法、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453302A (zh) * 2008-12-19 2009-06-10 深圳国微技术有限公司 解交织器、数据传输系统中的数据交织/解交织实现方法
CN101547064A (zh) * 2009-05-06 2009-09-30 普天信息技术研究院有限公司 一种交织速率匹配和解交织解速率匹配方法
CN106021044A (zh) * 2016-05-10 2016-10-12 中国电子科技集团公司第三十八研究所 可重用spi总线协议模块验证环境平台及其验证方法
KR20210027625A (ko) * 2019-08-29 2021-03-11 동국대학교 산학협력단 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN113297073A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 芯片中算法模块的验证方法、装置、设备及可读存储介质
WO2023024251A1 (zh) * 2021-08-26 2023-03-02 苏州浪潮智能科技有限公司 模块验证方法、uvm验证平台、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453302A (zh) * 2008-12-19 2009-06-10 深圳国微技术有限公司 解交织器、数据传输系统中的数据交织/解交织实现方法
CN101547064A (zh) * 2009-05-06 2009-09-30 普天信息技术研究院有限公司 一种交织速率匹配和解交织解速率匹配方法
CN106021044A (zh) * 2016-05-10 2016-10-12 中国电子科技集团公司第三十八研究所 可重用spi总线协议模块验证环境平台及其验证方法
KR20210027625A (ko) * 2019-08-29 2021-03-11 동국대학교 산학협력단 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN113297073A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 芯片中算法模块的验证方法、装置、设备及可读存储介质
WO2023024251A1 (zh) * 2021-08-26 2023-03-02 苏州浪潮智能科技有限公司 模块验证方法、uvm验证平台、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. PRATHEEK, N. JAWALKAR AND A. BASU: "Designing Virtual Memory System of MCM GPUs", 《2022 55TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO)》, pages 404 - 422 *
吴仁彪;吴琛琛;王文益: "基于累加分类的ADS-B交织信号处理方法", 《信号处理》, vol. 33, no. 4, pages 572 - 576 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555741A (zh) * 2024-01-10 2024-02-13 深流微智能科技(深圳)有限公司 基于uvm的原子指令模块验证系统、方法、设备及介质
CN117555741B (zh) * 2024-01-10 2024-04-26 深流微智能科技(深圳)有限公司 基于uvm的原子指令模块验证系统、方法、设备及介质

Also Published As

Publication number Publication date
CN117034855B (zh) 2024-01-02

Similar Documents

Publication Publication Date Title
CN117034855B (zh) 一种基于uvm的哈希交织算法的验证方法与平台
US6498999B1 (en) Method and apparatus for design verification of an integrated circuit using a simulation test bench environment
CN104516843A (zh) 基于fpga的非安装型存储器测试装置
CN112527705B (zh) 一种PCIe DMA数据通路的验证方法、装置及设备
CN103838899B (zh) 针对硬核mcu的中断控制器的仿真验证系统及方法
CN103970634B (zh) 一种大型互连芯片用基于添加检测逻辑的背靠背环回验证方法
CN116256621B (zh) 芯粒的测试方法、装置、电子设备及存储介质
CN115221071A (zh) 芯片验证方法、装置、电子设备和存储介质
CN104866402A (zh) 一种测试服务器的方法及装置
CN107193738A (zh) 一种基于功能点覆盖动态调整随机约束的验证方法
CN106326046B (zh) 存储器控制器的验证环境平台
CN114168200A (zh) 多核处理器访存一致性的验证系统及方法
CN107293330A (zh) 对随机存取存储器ram进行仿真验证的方法和仿真验证系统
CN105320593B (zh) 多路帧随机数据验证处理方法及装置
US6898746B2 (en) Method of and apparatus for testing a serial differential/mixed signal device
CN112665810B (zh) 芯片振动脱落的确定方法、系统、存储介质及电子设备
CN102057362A (zh) 用pci高速标记字段传递信息
CN109901962B (zh) 一种Linux下AEP内存的同步混合压力测试方法及系统
CN104678292B (zh) 一种复杂可编程逻辑器件cpld测试方法和装置
US20030159102A1 (en) Method for testing a universal serial bus host controller
CN116306398A (zh) 一种多通道io接口ip的验证平台及其停止算法
US8387067B2 (en) Method for tracking and/or verifying message passing in a simulation environment
CN116244133A (zh) 硬盘测试管理方法、系统、终端及存储介质
CN115454858A (zh) 验证系统
CN109800565A (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