CN117555741A - 基于uvm的原子指令模块验证系统、方法、设备及介质 - Google Patents
基于uvm的原子指令模块验证系统、方法、设备及介质 Download PDFInfo
- Publication number
- CN117555741A CN117555741A CN202410032703.6A CN202410032703A CN117555741A CN 117555741 A CN117555741 A CN 117555741A CN 202410032703 A CN202410032703 A CN 202410032703A CN 117555741 A CN117555741 A CN 117555741A
- Authority
- CN
- China
- Prior art keywords
- address
- locking
- result
- proxy component
- instruction module
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 40
- 230000006870 function Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000005284 excitation Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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
- G06F11/2242—Detection 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 in multi-processor systems, e.g. one processor becoming the test master
Abstract
本申请公开了一种基于UVM的原子指令模块验证系统、方法、设备及介质,包括:代理组件用于向待测原子指令模块和参考模型发送上锁请求,上锁请求携带第一地址;待测原子指令模块用于读取第一地址的第一标识位的最新状态,根据最新状态判断第一地址是否已被上锁,根据上锁判断结果执行相应操作得到第一实际结果;参考模型用于根据上锁请求执行相应操作得到第一参考结果;计分板用于对第一实际结果和第一参考结果进行分析比对得到第一比对结果。本申请根据标识位对操作数所在地址进行上锁操作,可以准确验证原子的上锁功能,上锁验证与解锁验证均可独立验证,无需捆绑验证,实现了验证的随机性和独立性。
Description
技术领域
本申请涉及UVM验证技术领域,尤其涉及一种基于UVM的原子指令模块验证系统、方法、设备及介质。
背景技术
随着IC技术的不断更新迭代,单核单线程的处理方式早已无法满足于大多数的功能需求,在多方面的条件限制范围下,多核多线程的处理方式受到了更为广泛的关注。但多核多线程的处理方式在共享同一个可读写数据时,容易引起数据竞争现象。随着原子操作的引入,数据竞争现象也得到了极大的改善。当多个线程需要对同一个数据发起操作时,为了保证每个线程操作的完整性和有效性,原子“上锁”指令起到了保护作用。对于一个多线程共享的数据,当一个线程正在对其进行操作,原子操作对该数据或该数据所在一片区域进行“上锁”,待此线程完成相关操作后,原子性再对其“解锁”,其他线程才可以对该数据发起请求。原子指令便是通过这“上锁”和“解锁”的过程,完成共享区域的互斥访问。
如今越来越多的总线或是芯片内部的模块都引入了原子指令模块,对其验证工作也越来越重要。原子操作的核心是“上锁”和“解锁”,这两个操作必须搭配捆绑使用,如果无法保证前后激励的关联性,则无法确定原子操作的完整,进而无法准确的验证原子操作的准确性。
发明内容
本申请的主要目的在于提供一种基于UVM的原子指令模块验证系统、方法、设备及介质,可以解决现有技术中传统的验证方法在做原子指令模块测试时,上锁和解锁需要捆绑验证,进而无法准确的验证原子操作的准确性的技术问题。
为实现上述目的,本申请第一方面提供了一种基于UVM的原子指令模块验证系统,该验证系统包括与待测原子指令模块连接的UVM验证平台,UVM验证平台包括代理组件、参考模型、计分板;
代理组件,用于向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
待测原子指令模块,用于从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果,其中,第一上锁判断结果为未被上锁或已被上锁;第一实际结果用于指示上锁成功或上锁失败;
参考模型,用于根据上锁请求执行相应操作,得到第一参考结果;第一参考结果用于指示上锁成功或上锁失败;
计分板,用于对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
为实现上述目的,本申请第二方面提供了一种基于UVM的原子指令模块验证方法,该方法包括:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
为实现上述目的,本申请第三方面提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
为实现上述目的,本申请第四方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
采用本申请实施例,具有如下有益效果:
本申请通过在UVM组件中的不同地址存储操作数以及用于指示地址所处状态的标识位,来对操作数所在地址进行上锁操作,可以准确验证原子指令模块的上锁功能。基于UVM方法学搭建的可以人工控制、也可自动化控制的具有高效性和完备性的验证平台,其可以有效地解决原子上锁与解锁操作不好控制的问题,本实施例上锁验证与解锁验证均可独立验证,无需捆绑验证,实现了验证的随机性和独立性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为本申请实施例中基于UVM的原子指令模块验证系统的结构框图;
图2为本申请实施例中基于UVM的原子指令模块验证方法的流程示意图;
图3为本申请实施例中计算机设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如今越来越多的总线或是芯片内部的模块都引入了原子指令模块,对其验证工作也越来越重要。原子操作的核心是“上锁”和“解锁”,这两个操作必须搭配捆绑使用。而传统的验证方法在做大批量测试时,难以保证前后激励的关联性,无法确定原子操作的完整,进而无法准确的验证原子操作的准确性。
基于此,本申请提供了一种基于UVM的原子指令模块验证方案。
参考图1,本申请提供了一种基于UVM的原子指令模块验证系统,该验证系统包括与待测原子指令模块20连接的UVM验证平台10,UVM验证平台10包括代理组件11、参考模型12和计分板13;
代理组件,用于向待测原子指令模块20和参考模型12发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
待测原子指令模块20,用于从代理组件11中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件11返回相应的第一实际结果,其中,第一上锁判断结果为未被上锁或已被上锁;第一实际结果用于指示上锁成功或上锁失败;
参考模型12,用于根据上锁请求执行相应操作,得到第一参考结果;第一参考结果用于指示上锁成功或上锁失败;
计分板13,用于对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
具体地,该UVM验证平台10还包括、虚拟序列类(virtual sequence),
各个虚拟序列类(virtual sequence)代表各种测试场景的激励;每一个虚拟序列类都涵盖了上游代理组件11和下游代理组件11的序列激励信息,组合在一起便可实现一种测试场景。序列器即序列发生器(sequencer)。
通用验证方法学(Universal Verification Methodology,UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。
自上而下,首先是testbench,中间是interface,用来连接testbench和dut(design under test,待测设计),最底下是dut,也就是待测试的部分。
代理组件11包含序列发生器、驱动器和监视器中的至少一种。在同一个代理组件11中的组件之间通信连接。
代理组件11,用于在拿到上锁序列事务(激励事务)后,将上锁序列事务转换为上锁请求,将上锁请求作为信号,并遵循规定的协议将该信号驱动到总线上,通过总线接口将上锁请求发送或传输给待测原子指令模块20。
代理组件11,还用于获取并存储每个地址对应的标识位和操作数。标识位的状态可以根据上锁或解锁而改变,操作数也可能被改写。
待测原子指令模块20,用于对上锁请求进行解析,获取第一地址,从代理组件11中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,得到第一上锁判断结果。
若第一上锁判断结果指示第一地址未被上锁,则待测原子指令模块20更改代理组件11中第一地址存储的第一标识位的状态,使第一地址处于上锁状态,并向代理组件11返回用于指示上锁成功的第一实际结果。
若第一上锁判断结果指示第一地址已被上锁,则待测原子指令模块20向代理组件11返回用于指示上锁失败的第一实际结果。
待测原子指令模块20与代理组件11可以通过总线接口进行数据交互,因此,待测原子指令模块20可以对代理组件11中存储的标识位进行读写操作。
代理组件11,还用于监测待测原子指令模块20的输入端口,抓取上锁请求,并将上锁请求传输给参考模型12。
参考模型12为与待测设计功能相似的模型,该参考模型12用简化的方式实现原子指令模块的功能,在接收到各种原子操作请求(例如上锁请求、解锁请求)时,可做出原子性反馈。
在一个具体实施例中,参考模型12,用于对上锁请求进行解析,获取第一地址,从与参考模型12通信连接的参考存储单元中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,得到第一上锁判断结果。
若第一上锁判断结果指示第一地址未被上锁,则参考模型12更改参考存储单元中第一地址存储的第一标识位的状态,使第一地址处于上锁状态,并向代理组件11或计分板13返回用于指示上锁成功的第一参考结果。
若第一上锁判断结果指示第一地址已被上锁,则参考模型12向代理组件11或计分板13返回用于指示上锁失败的第一参考结果。
负责做数据比较的计分板13,该计分板13接收到分别来自于待测原子指令模块20和参考模型12的反馈数据后做对比,两者一致表示待测设计(待测原子指令模块20)行为正常,两者不一致时表示待测设计存在漏洞。
例如,测试过程中,可以通过观察监测信号、计分板13输出报告、覆盖率报告等方式,清晰直观地截取问题点,方便做设计漏洞修复。
本实施例通过在UVM组件中的不同地址存储操作数以及用于指示地址所处状态的标识位,来对操作数所在地址进行上锁操作,可以准确验证原子指令模块的上锁功能。基于UVM方法学搭建的可以人工控制、也可自动化控制的具有高效性和完备性的验证平台,其可以有效地解决原子上锁与解锁操作不好控制的问题,本实施例上锁验证与解锁验证均可独立验证,无需捆绑验证,实现了验证的随机性和独立性。
在一个实施例中,上锁请求中所携带的序列事务还包含第一操作请求序号;
第一实际结果和第一参考结果中均携带第一操作请求序号;
计分板13,具体用于通过第一操作请求序号对第一实际结果和第一参考结果进行匹配,对匹配到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
具体地,在验证环境中,这个序号可以当做不同请求的编号,原子指令模块在回复数据时,其回复的编号与请求的编号相同时,才表示原子指令模块的回复与此次请求匹配上。
另外,为了便于匹配,在必要时,其他数据中也可以携带第一操作请求序号,本申请对此不做限制。
在一个实施例中,代理组件11,还用于向待测原子指令模块20和参考模型12发送相同的解锁请求,其中,解锁请求中所携带的序列事务包含第二地址、第四操作数;
待测原子指令模块20,还用于从代理组件11中读取第二地址存储的第二标识位的最新状态,根据第二标识位的最新状态判断第二地址是否已被上锁,根据得到的第二上锁判断结果与第四操作数执行相应操作,并向代理组件11返回相应的第二实际结果,其中,第二上锁判断结果为未被上锁或已被上锁;
参考模型12,还用于根据解锁请求执行相应操作,得到第二参考结果;
计分板13,还用于对获取到的第二实际结果和第二参考结果进行分析比对,得到第二比对结果。
具体地,代理组件11,用于在拿到解锁序列事务(激励事务)后,将解锁序列事务转换为解锁请求,将解锁请求作为信号,并遵循规定的协议将该信号驱动到总线上,通过总线接口将解锁请求发送或传输给待测原子指令模块20。
代理组件11,还用于获取并存储每个地址对应的标识位和操作数。标识位的状态可以根据上锁或解锁而改变,操作数也可能被改写。
若第二上锁判断结果指示第二地址已被上锁,则待测原子指令模块20根据第四操作数更新第二地址存储的第二操作数,更改代理组件11中第二地址存储的第二标识位的状态,使第二地址处于解锁状态,并向代理组件11返回用于指示解锁成功的第二实际结果;
若第二上锁判断结果指示第二地址未被上锁,则待测原子指令模块20向代理组件11和/或计分板13返回用于指示解锁失败的第二实际结果;
代理组件11,还用于监测待测原子指令模块20的输入端口,抓取解锁请求,并将解锁请求传输给参考模型12。
在一个具体实施例中,参考模型12,用于对解锁请求进行解析,获取第二地址,从与参考模型12通信连接的参考存储单元中读取第二地址存储的第二标识位的最新状态,根据第二标识位的最新状态判断第二地址是否已被上锁,得到第二上锁判断结果。
若第二上锁判断结果指示第二地址已被上锁,则参考模型12根据第四操作数更新参考存储单元中第二地址存储的第二操作数,更改参考存储单元中第二地址存储的第二标识位的状态,使第二地址处于解锁状态,并向代理组件11或计分板13返回用于指示解锁成功的第二参考结果。
若第二上锁判断结果指示第二地址未被上锁,则参考模型12向代理组件11或计分板13返回用于指示解锁失败的第二参考结果。
传统的验证方法在做大批量测试时,难以保证前后激励的关联性,无法确定原子操作的完整,进而无法准确的验证原子操作的准确性。
本实施例采用基于UVM方法学搭建的测验证平台,可以运用指定测试场景和随机测试场景的灵活组合,更加充分地覆盖各个原子指令模块功能点的验证。
本实施例的结构层次明显,方便复用,易于被集成于更高子系统级或是系统级层次结构中,不同的测试序列分类明显,便于交叉组合完成不同测试场景。
本实施例着重于指定测试用例和随机测试用例,鉴于原子指令的上锁和解锁操作之间的特殊关系,随机测试用例加入了特定的约束,确保在随机的同时又能保证该两个原子指令的完整性,大幅度提高了前后不相连的访问行为的关联性,减少多重约束。
本实施例通过在UVM组件中的不同地址存储操作数以及用于指示地址所处状态的标识位,来对操作数所在地址进行解锁操作,不论该地址之前是否已上锁,原子指令模块都可以做出相应反馈,以准确验证原子指令模块的解锁功能。另外,原子指令模块可以在上锁的情况下进行解锁,在地址未上锁的情况输出解锁失败的结论,实现了上锁与解锁的关联,确保在随机验证的同时又能保证上锁与解锁两个原子指令的完整性,大幅度提高了前后不相连的访问行为的关联性,减少多重约束,有效解决了原子上锁与解锁操作不好控制的问题,本实施例上锁验证与解锁验证均可独立验证,无需捆绑验证,实现了验证的随机性和独立性,也实现了上锁与解锁的关联性。
在一个实施例中,解锁指令中的序列事务还包含第二操作请求序号;
第二实际结果和第二参考结果中均携带第二操作请求序号;
计分板13,具体用于通过第二操作请求序号对第二实际结果和第二参考结果进行匹配,对匹配到的第二实际结果和第二参考结果进行分析比对,得到第二比对结果。
另外,为了便于匹配,在必要时,其他数据中也可以携带第二操作请求序号,本申请对此不做限制。
在一个实施例中,代理组件11,还用于向待测原子指令模块20和参考模型12发起相同的其他类型指令,其中,其他类型指令为除了上锁指令和解锁指令之外的其他指令,其他类型指令中的序列事务包含第三地址、第五操作数;
待测原子指令模块20,还用于若确定第三地址上锁成功,则从代理组件11中读取第三地址存储的第三操作数,对第三操作数与第五操作数进行计算,将得到的实际计算结果,反馈给代理组件11;
代理组件11,还用于根据实际计算结果更新第三地址的第三操作数;
参考模型12,还用于根据相同的其他类型指令执行相应操作,得到参考计算结果;
计分板13,还用于对获取到的实际计算结果和参考计算结果进行分析比对,得到第三比对结果。
具体地,其他类型指令为非上锁非解锁指令。
代理组件11可以直接下发上锁成功的第三地址,在其他类型指令中携带指示第三地址上锁成功的标识,待测原子指令模块20可以不用重复判断直接执行后续操作;或者,代理组件11也可以下发状态未知的第三地址,由待测原子指令模块20自身判断第三地址是否上锁成功。具体地,待测原子指令模块20,还用于从代理组件11中读取第三地址存储的第三标识位的最新状态,根据第三标识位的最新状态判断第三地址是否已被上锁。
参考模型12,还用于若确定第三地址上锁成功,则对其他类型指令进行解析,获取第三地址和第五操作数,从参考存储单元中读取第三地址存储的第三操作数,对第三操作数与第五操作数进行计算,将得到的实际计算结果,反馈给代理组件11和计分板13。
参考模型12,还用于根据参考计算结果更新参考存储单元中第三地址的第三操作数。
参考模型12,还用于从参考存储单元中读取第三地址存储的第三标识位的最新状态,根据第三标识位的最新状态判断参考存储单元中第三地址是否已被上锁。
本实施例在除了验证原子指令模块的上锁功能和解锁功能之外,还能通过数据计算进一步验证原子指令模块的上锁功能。
在一个实施例中,其他类型指令中的序列事务还包含第三操作请求序号;
实际计算结果和参考计算结果中均携带第三操作请求序号;
计分板13,具体用于通过第三操作请求序号对实际计算结果和参考计算结果进行匹配,对匹配到的实际计算结果和参考计算结果进行分析比对,得到第三比对结果。
另外,为了便于匹配,在必要时,其他数据中也可以携带第三操作请求序号,本申请对此不做限制。
在一个实施例中,代理组件11包括第一代理组件、第二代理组件;
第一代理组件,用于向待测原子指令模块20和参考模型12发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
待测原子指令模块20,用于从第二代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,得到第一上锁判断结果;
待测原子指令模块20,还用于若第一上锁判断结果指示第一地址未被上锁,则更改第二代理组件中第一地址存储的第一标识位的状态,使第一地址处于上锁状态,并向第一代理组件返回用于指示上锁成功的第一实际结果;其中,第二代理组件中的各个地址存储有对应标识位的状态;
待测原子指令模块20,还用于若第一上锁判断结果指示第一地址已被上锁,则向第一代理组件返回用于指示上锁失败的第一实际结果。
具体地,本实施例中第一代理组件用于向待测原子指令模块20发送上锁请求,或上锁指令,第二代理组件用于存储各个地址对应的标识位的状态。
待测原子指令模块20可与第一代理组件和第二代理组件进行数据通信。
第二代理组件中各个地址存储的标识位的状态可以被更改或切换。
第一代理组件包括第一序列发生器(SQR)、第一驱动器和第一监视器;第二代理组件包括第二序列发生器(SQR)第二驱动器。
第一代理组件相当于是主代理组件11,第二代理组件是从代理组件11。
在一个实施例中,代理组件11包括第一代理组件、第二代理组件和第三代理组件;
第一代理组件,还用于向待测原子指令模块20和参考模型12发送相同的解锁请求,其中,解锁请求中所携带的序列事务包含第二地址、第四操作数、第二操作请求序号;
待测原子指令模块20,还用于从第二代理组件中读取第二地址对应的第二标识位的最新状态,根据第二标识位的最新状态判断第二地址是否已被上锁,得到第二上锁判断结果;其中,第二代理组件中的各个地址存储有对应标识位的状态;
待测原子指令模块20,还用于若第二上锁判断结果指示第二地址已被上锁,则根据第四操作数更新第三代理组件中第二地址存储的第二操作数,更改第二代理组件中第二地址存储的第二标识位的状态,使第二地址处于解锁状态,并向第一代理组件返回用于指示解锁成功的第二实际结果;其中,第三代理组件中的各个地址存储有对应的操作数;
待测原子指令模块20,还用于若第二上锁判断结果指示第二地址未被上锁,则向第一代理组件返回用于指示解锁失败的第二实际结果。
具体地,本实施例中第一代理组件用于向待测原子指令模块20发送解锁请求,或解锁指令,第二代理组件用于存储各个地址对应的标识位的状态,第三代理组件用于存储各个地址对应的操作数。
待测原子指令模块20可与第一代理组件、第二代理组件和第三代理组件进行数据通信。
第二代理组件中各个地址存储的标识位的状态可以被更改或切换。
第三代理组件中各个地址存储的操作数也可以被更新。
第一代理组件包括第一序列发生器(SQR)、第一驱动器和第一监视器;第二代理组件包括第二序列发生器(SQR)第二驱动器;第三代理组件包括第三序列发生器(SQR)第三驱动器。
第一代理组件相当于是主代理组件11,第二代理组件是从代理组件11,第三代理组件是数据代理组件11。
监视器,用于抓取同组驱动器发送给外部待测原子指令模块20的请求信号,将抓取到的请求信号发送给参考模型12;监视器,还用于监测来自于外部待测原子指令模块20对请求信号的实际处理结果,并将实际处理结果发送给计分板13;监视器,还用于监测来自于参考模型12对请求信号的参考处理结果,并将参考处理结果发送给计分板13;监视器提取其反馈中的关键信息(计算结果以及id编号等),例如通过TLM port传送到计分板13中。其中,TLM即Transaction Level Modeling,在本方法中作为UVM一种基于事务的通信传输方式。
在一个实施例中,代理组件11包括第一代理组件、第二代理组件和第三代理组件;
第一代理组件,还用于向待测原子指令模块20和参考模型12发起相同的其他类型指令,其中,其他类型指令为除了上锁指令和解锁指令之外的其他指令,其他类型指令中的序列事务包含第三地址、第五操作数;
待测原子指令模块20,还用于从第二代理组件中读取第三地址存储的第三标识位的最新状态,根据第三标识位的最新状态判断第三地址是否已被上锁,得到第三上锁判断结果;其中,第二代理组件中的各个地址存储有对应标识位的状态;
待测原子指令模块20,还用于若第三上锁判断结果指示第三地址已被上锁,则从第三代理组件中读取第三地址对应的第三操作数,对第三操作数与第五操作数进行计算,将得到的实际计算结果,反馈给第一代理组件;
代理组件11,还用于根据实际计算结果更新第三代理组件中第三地址的第三操作数。
具体地,本实施例中第一代理组件用于向待测原子指令模块20发送解锁请求,或解锁指令,第二代理组件用于存储各个地址对应的标识位的状态,第三代理组件用于存储各个地址对应的操作数。
待测原子指令模块20可与第一代理组件、第二代理组件和第三代理组件进行数据通信。
第二代理组件中各个地址存储的标识位的状态可以被更改或切换。
第三代理组件中各个地址存储的操作数也可以被更新。
在一个实施例中,第一代理组件、第二代理组件和第三代理组件通过不同的总线接口与待测原子指令模型进行数据通信。
具体地,总线接口可以遵循AXI4总线协议等,本申请对此不做限制。AXI4为一种总线协议,AXI为Advanced eXtensible Interface的简写。
在一个具体实施例中,UVM验证平台10,是一个由各个不同职能的功能块组建成的具有层次性的架构,其各个功能块分类如下:
负责模拟请求激励的事务类,该类可模拟各种原子指令,若想实现基本的随机原子测试用例,可在该类中作初步的约束。
负责接收和传送激励的序列管理器或序列发生器(SQR),序列器在拿到激励事务后,待驱动器向其发起请求,便将激励发送至驱动器一端。
负责将请求发送出去的驱动器,该驱动器将从序列器处拿来的激励事务转化为信号,遵循规定的协议驱动到总线上。
负责监测数据的监视器,该监视器监测经总线上传输到待测模块的激励,同时也监测待测模块的相关反馈。
负责将序列器、驱动器和监视器例化在一起的代理组件,在该代理组件中完成几个器件之间的通信连接。
可实现与待测设计功能相似的参考模型,该参考模型用简化的方式实现原子指令模块的功能,在接收到原子操作请求时,可做出原子性反馈。
负责做数据比较的计分板,该计分板接收到分别来自于待测模块和参考模型的反馈数据后做出对比,两者一致表示待测设计行为正常,两者不一致时表示待测设计存在漏洞。
负责“路由”所有序列管理器的虚拟序列器,可通过其访问各个代理组件里的序列管理器。
负责数据生成的序列类,序列类承载着相关事务,其挂载在序列管理器上,从而通过序列管理器将测试事务送达驱动器一端。
负责集成所有组件的容器,完成各个组件之间的通信连接。
负责实现平台启动的测试组件。
负责完成各类事务序列传输的通信管道。
实现验证架构和待测模块之间通信的testbench模块。
当在testbench模块中指定测试场景,测试组件即可找到相应的测试序列,从而启动整个验证流程。
在testbench顶层模块中,例化原子指令模块,声明接口,通过指定的总线协议将原子指令模块和验证平台进行通信连接,并将接口传递给验证平台中的相关组件,之后通过运行测试事件名称以启动整个测试平台。
顶层指定了测试事件后,对应的序列类带着原子用例事务挂载在序列器上。
驱动器依次向序列器发起请求,序列器将原子测试用例事务传递给驱动器,驱动器负责将事务分解为各个信号驱动到接口上,由接口将信号传递至原子指令模块,原子指令模块接收到指令信号后做出原子性反馈再驱动到接口上,在这个过程中,监视器将会监测到对原子指令模块的请求信号以及原子指令模块的反馈信号,并分别将信号通过TLMport传送给参考模型以及计分板。
参考模型和原子指令模块接收到相同的请求用例,分别给出反馈结果,并将结果传送至计分板中,在计分板中做出对比,结果一致代表原子指令模块功能正确。
其中,参考模型是用SystemVerilog语言编写的可模拟完成原子指令模块操作的模型,可接收原子指令操作,做出相应的反馈。其输入的指令请求来自于监视器或监测器监测到的信息。
环境组件(env)将各个代理组件、计分板、虚拟序列发生器封装在一起;除了例化以上元件组件,在该环境组件中还完成了各个组件之间的通信连接:mst_agent中监测器传输请求信号和反馈信号的通信管道与计分板之间的连接,各个代理组件中序列发生器的句柄与虚拟序列发生器的各个对应句柄连接。
最外层的组件将验证环境和原子指令模块(DUT)封装起来,负责产生时钟和复位信号;在其中例化了例如相关的总线接口m_if、a_if、b_if,这三个接口分别和原子指令模块的三组接口相连,三个接口的句柄被分别分配给验证环境中的三个代理组件,以此实现三个代理组件和原子指令模块的信息传递。在该层组件中还调用了run_test函数,选择测试用例。
为了完成原子指令模块的充分验证,全面覆盖其功能点,针对某些极端情况,本方法可以先采用多个指定测试用例(direct case)的方式对原子指令模块进行验证,保证原子指令模块响应请求的正确反应,以及各个基本算法的正确性,然后再有针对性的实施随机用例(random case)测试,因原子指令的先“上锁”后“解锁”的特性,完全的随机可能会导致指令不完整,不符合实际用法,因此,本方法在做随机测试时,会记录已完成“上锁”操作的地址区域(地址)和对应id编码(操作序号),在之后的某次测试中再这些区域的地址作“解锁”操作,通过此方法,有效地保证了原子“上锁”和“解锁”的操作完整性。
本申请基于UVM方法学提出了一种针对原子指令模块的验证方案。该方案遵循AXI总线协议,通过标准接口将访问命令发送至原子指令模块,再从监测组件中抓取命令传送至参考模型中,最终在计分板中进行结果对比。与传统方法相比较,本申请有以下优势:
可根据原子指令的特性,采用随机测试用例与指定测试用例灵活配合的方式,更加全面的覆盖模块功能点的验证;
在采用随机测试方法时,为保证原子基本的上锁和解锁两个基本操作,随机选择测试命令机制中可记录已经完成的原子操作(比如上锁操作),给之后的随机机制添加了一定的约束(比如在已经完成上锁操作的地址领域做解锁),以此大幅度提高了前后不相连的访问行为的关联性,减少多重约束。
参考图2,本申请还提供了一种基于UVM的原子指令模块验证方法,该方法包括:
S100:向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
S200:获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
S300:获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
S400:对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
具体地,本申请基于UVM的原子指令模块验证方法具体参见上述基于UVM的原子指令模块验证系统的描述,此处不再赘述。
本实施例通过在UVM组件中的不同地址存储操作数以及用于指示地址所处状态的标识位,来对操作数所在地址进行上锁操作,可以准确验证原子指令模块的上锁功能。基于UVM方法学搭建的可以人工控制、也可自动化控制的具有高效性和完备性的验证平台,其可以有效地解决原子上锁与解锁操作不好控制的问题,本实施例上锁验证与解锁验证均可独立验证,无需捆绑验证,实现了验证的随机性和独立性。
图3示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述方法实施例中的各个步骤。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述方法实施例中的各个步骤。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取待测原子指令模块根据上锁请求执行相应操作所得到的第一实际结果,其中,待测原子指令模块从代理组件中读取第一地址存储的第一标识位的最新状态,根据第一标识位的最新状态判断第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向代理组件返回相应的第一实际结果;
获取参考模型根据上锁请求执行相应操作得到的第一参考结果;
对获取到的第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于UVM的原子指令模块验证系统,其特征在于,所述验证系统包括与待测原子指令模块连接的UVM验证平台,所述UVM验证平台包括代理组件、参考模型和计分板;
所述代理组件,用于向所述待测原子指令模块和参考模型发送相同的上锁请求,其中,所述上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
所述待测原子指令模块,用于从所述代理组件中读取所述第一地址存储的第一标识位的最新状态,根据所述第一标识位的最新状态判断所述第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向所述代理组件返回相应的第一实际结果,其中,所述第一上锁判断结果为未被上锁或已被上锁;所述第一实际结果用于指示上锁成功或上锁失败;
所述参考模型,用于根据所述上锁请求执行相应操作,得到第一参考结果;所述第一参考结果用于指示上锁成功或上锁失败;
所述计分板,用于对获取到的所述第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
2.根据权利要求1所述的验证系统,其特征在于,
所述代理组件,还用于向所述待测原子指令模块和参考模型发送相同的解锁请求,其中,所述解锁请求中所携带的序列事务包含第二地址、第四操作数;
所述待测原子指令模块,还用于从所述代理组件中读取所述第二地址存储的第二标识位的最新状态,根据所述第二标识位的最新状态判断所述第二地址是否已被上锁,根据得到的第二上锁判断结果与所述第四操作数执行相应操作,并向所述代理组件返回相应的第二实际结果,其中,所述第二上锁判断结果为未被上锁或已被上锁;
所述参考模型,还用于根据所述解锁请求执行相应操作,得到第二参考结果;
所述计分板,还用于对获取到的所述第二实际结果和第二参考结果进行分析比对,得到第二比对结果。
3.根据权利要求1所述的验证系统,其特征在于,
所述代理组件,还用于向所述待测原子指令模块和参考模型发起相同的其他类型指令,其中,所述其他类型指令为除了上锁指令和解锁指令之外的其他指令,所述其他类型指令中的序列事务包含第三地址、第五操作数;
所述待测原子指令模块,还用于若确定所述第三地址上锁成功,则从所述代理组件中读取所述第三地址存储的第三操作数,对所述第三操作数与第五操作数进行计算,得到的实际计算结果,反馈给所述代理组件;
所述代理组件,还用于根据所述实际计算结果更新所述第三地址的第三操作数;
所述参考模型,还用于根据相同的其他类型指令执行相应操作,得到参考计算结果;
所述计分板,还用于对获取到的所述实际计算结果和参考计算结果进行分析比对,得到第三比对结果。
4.根据权利要求1所述的验证系统,其特征在于,所述代理组件包括第一代理组件、第二代理组件;
所述第一代理组件,用于向所述待测原子指令模块和参考模型发送相同的上锁请求,其中,所述上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
所述待测原子指令模块,用于从所述第二代理组件中读取所述第一地址存储的第一标识位的最新状态,根据所述第一标识位的最新状态判断所述第一地址是否已被上锁,得到第一上锁判断结果;
所述待测原子指令模块,还用于若所述第一上锁判断结果指示所述第一地址未被上锁,则更改所述第二代理组件中所述第一地址存储的第一标识位的状态,使所述第一地址处于上锁状态,并向所述第一代理组件返回用于指示上锁成功的第一实际结果;其中,所述第二代理组件中的各个地址存储有对应标识位的状态;
所述待测原子指令模块,还用于若所述第一上锁判断结果指示所述第一地址已被上锁,则向所述第一代理组件返回用于指示上锁失败的第一实际结果。
5.根据权利要求2所述的验证系统,其特征在于,所述代理组件包括第一代理组件、第二代理组件和第三代理组件;
所述第一代理组件,还用于向所述待测原子指令模块和参考模型发送相同的解锁请求,其中,所述解锁请求中所携带的序列事务包含第二地址、第四操作数;
所述待测原子指令模块,还用于从所述第二代理组件中读取所述第二地址存储的第二标识位的最新状态,根据所述第二标识位的最新状态判断所述第二地址是否已被上锁,得到第二上锁判断结果;其中,所述第二代理组件中的各个地址存储有对应标识位的状态;
所述待测原子指令模块,还用于若所述第二上锁判断结果指示所述第二地址已被上锁,则根据所述第四操作数更新所述第三代理组件中所述第二地址存储的第二操作数,更改所述第二代理组件中所述第二地址存储的第二标识位的状态,使所述第二地址处于解锁状态,并向所述第一代理组件返回用于指示解锁成功的第二实际结果;其中,所述第三代理组件中的各个地址存储有对应的操作数;
所述待测原子指令模块,还用于若所述第二上锁判断结果指示所述第二地址未被上锁,则向所述第一代理组件返回用于指示解锁失败的第二实际结果。
6.根据权利要求3所述的验证系统,其特征在于,所述代理组件包括第一代理组件、第二代理组件和第三代理组件;
所述第一代理组件,还用于向所述待测原子指令模块和参考模型发起相同的其他类型指令,其中,所述其他类型指令为除了上锁指令和解锁指令之外的其他指令,所述其他类型指令中的序列事务包含第三地址、第五操作数;
所述待测原子指令模块,还用于从所述第二代理组件中读取所述第三地址存储的第三标识位的最新状态,根据所述第三标识位的最新状态判断所述第三地址是否已被上锁,得到第三上锁判断结果;其中,所述第二代理组件中的各个地址存储有对应标识位的状态;
所述待测原子指令模块,还用于若所述第三上锁判断结果指示所述第三地址已被上锁,则从所述第三代理组件中读取所述第三地址对应的第三操作数,对所述第三操作数与第五操作数进行计算,将得到的实际计算结果,反馈给所述第一代理组件;
所述代理组件,还用于根据所述实际计算结果更新所述第三代理组件中所述第三地址的第三操作数。
7.根据权利要求1所述的验证系统,其特征在于,所述上锁请求中所携带的序列事务还包含第一操作请求序号;
所述第一实际结果和第一参考结果中均携带所述第一操作请求序号;
所述计分板,具体用于通过所述第一操作请求序号对所述第一实际结果和第一参考结果进行匹配,对匹配到的所述第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
8.一种基于UVM的原子指令模块验证方法,其特征在于,所述方法包括:
向待测原子指令模块和参考模型发送相同的上锁请求,其中,所述上锁请求中所携带的序列事务包含第一操作数对应的第一地址;
获取所述待测原子指令模块根据所述上锁请求执行相应操作所得到的第一实际结果,其中,所述待测原子指令模块从代理组件中读取所述第一地址存储的第一标识位的最新状态,根据所述第一标识位的最新状态判断所述第一地址是否已被上锁,根据得到的第一上锁判断结果执行相应操作,并向所述代理组件返回相应的第一实际结果;
获取所述参考模型根据所述上锁请求执行相应操作得到的第一参考结果;
对获取到的所述第一实际结果和第一参考结果进行分析比对,得到第一比对结果。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求8中所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求8中所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410032703.6A CN117555741B (zh) | 2024-01-10 | 2024-01-10 | 基于uvm的原子指令模块验证系统、方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410032703.6A CN117555741B (zh) | 2024-01-10 | 2024-01-10 | 基于uvm的原子指令模块验证系统、方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117555741A true CN117555741A (zh) | 2024-02-13 |
CN117555741B CN117555741B (zh) | 2024-04-26 |
Family
ID=89818879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410032703.6A Active CN117555741B (zh) | 2024-01-10 | 2024-01-10 | 基于uvm的原子指令模块验证系统、方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555741B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708090A (zh) * | 2012-05-16 | 2012-10-03 | 中国人民解放军国防科学技术大学 | 用于共享存储多核多线程处理器硬件锁的验证方法 |
CN111400997A (zh) * | 2020-03-26 | 2020-07-10 | 超验信息科技(长沙)有限公司 | 一种基于同步执行的处理器核验证方法、系统及介质 |
CN113742230A (zh) * | 2021-09-03 | 2021-12-03 | 北京爱芯科技有限公司 | 一种基于uvm的芯片监视器模块的验证方法及验证系统 |
CN114036013A (zh) * | 2021-10-22 | 2022-02-11 | 北京全路通信信号研究设计院集团有限公司 | 一种基于uvm的应答器芯片多模块同步验证平台和验证方法 |
CN115841089A (zh) * | 2023-02-27 | 2023-03-24 | 合肥六角形半导体有限公司 | 一种基于uvm的系统级芯片验证平台及验证方法 |
CN116108800A (zh) * | 2022-12-22 | 2023-05-12 | 深圳大普微电子科技有限公司 | 基于uvm的sm4模块验证平台及验证方法 |
CN116501388A (zh) * | 2023-06-26 | 2023-07-28 | 深流微智能科技(深圳)有限公司 | 一种指令处理方法、装置、存储介质及设备 |
CN116776786A (zh) * | 2023-06-30 | 2023-09-19 | 海光信息技术股份有限公司 | 一种芯片验证方法、装置及相关设备 |
CN117034855A (zh) * | 2023-09-28 | 2023-11-10 | 芯动微电子科技(武汉)有限公司 | 一种基于uvm的哈希交织算法的验证方法与平台 |
CN117331775A (zh) * | 2023-09-27 | 2024-01-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种参考模型调用方法、装置、设备及存储介质 |
-
2024
- 2024-01-10 CN CN202410032703.6A patent/CN117555741B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708090A (zh) * | 2012-05-16 | 2012-10-03 | 中国人民解放军国防科学技术大学 | 用于共享存储多核多线程处理器硬件锁的验证方法 |
CN111400997A (zh) * | 2020-03-26 | 2020-07-10 | 超验信息科技(长沙)有限公司 | 一种基于同步执行的处理器核验证方法、系统及介质 |
CN113742230A (zh) * | 2021-09-03 | 2021-12-03 | 北京爱芯科技有限公司 | 一种基于uvm的芯片监视器模块的验证方法及验证系统 |
CN114036013A (zh) * | 2021-10-22 | 2022-02-11 | 北京全路通信信号研究设计院集团有限公司 | 一种基于uvm的应答器芯片多模块同步验证平台和验证方法 |
CN116108800A (zh) * | 2022-12-22 | 2023-05-12 | 深圳大普微电子科技有限公司 | 基于uvm的sm4模块验证平台及验证方法 |
CN115841089A (zh) * | 2023-02-27 | 2023-03-24 | 合肥六角形半导体有限公司 | 一种基于uvm的系统级芯片验证平台及验证方法 |
CN116501388A (zh) * | 2023-06-26 | 2023-07-28 | 深流微智能科技(深圳)有限公司 | 一种指令处理方法、装置、存储介质及设备 |
CN116776786A (zh) * | 2023-06-30 | 2023-09-19 | 海光信息技术股份有限公司 | 一种芯片验证方法、装置及相关设备 |
CN117331775A (zh) * | 2023-09-27 | 2024-01-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种参考模型调用方法、装置、设备及存储介质 |
CN117034855A (zh) * | 2023-09-28 | 2023-11-10 | 芯动微电子科技(武汉)有限公司 | 一种基于uvm的哈希交织算法的验证方法与平台 |
Also Published As
Publication number | Publication date |
---|---|
CN117555741B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8429457B2 (en) | Use of statistical representations of traffic flow in a data processing system | |
CN111756575B (zh) | 存储服务器的性能分析方法及装置、电子设备 | |
CN115841089B (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
CN100428174C (zh) | 一种嵌入式故障注入系统及其方法 | |
US7756695B2 (en) | Accelerated simulation and verification of a system under test (SUT) using cache and replacement management tables | |
Kornecki et al. | Certification of software for real-time safety-critical systems: state of the art | |
JP2001518662A (ja) | 自動化したコンピュータ・ソフトウェアの妥当性検査および検証 | |
CN104216746B (zh) | 一种星上设备dsp程序地面在线烧写的实时监控和校验方法 | |
CN107710166A (zh) | 利用符号快速错误检测的硅后验证和调试 | |
WO2015003943A1 (de) | Hinterlegen mindestens eines berechenbaren integritätsmesswertes in einem speicherbereich eines speichers | |
Wang et al. | Automated test case generation for the Paxos single-decree protocol using a Coloured Petri Net model | |
US5692153A (en) | Method and system for verifying execution order within a multiprocessor data processing system | |
CN112363877A (zh) | 芯片验证方法及平台 | |
CN117555741B (zh) | 基于uvm的原子指令模块验证系统、方法、设备及介质 | |
US5794012A (en) | Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system | |
CN109669436A (zh) | 一种基于电动汽车的功能需求的测试用例生成方法和装置 | |
Paul | End-to-end integration testing | |
Rodriguez-Navas et al. | Offline analysis of independent guarded assertions in automotive integration testing | |
CN116048952A (zh) | 一种基于可裁剪ip的实例化模块仿真验证方法及装置 | |
CN107256308B (zh) | 一种基于协同开发系统的构件交互关系建模系统 | |
Kovács et al. | Formal modeling of BPEL workflows including fault and compensation handling | |
Ferro et al. | Generation of test programs for the assertion-based verification of TLM models | |
Cai et al. | Customized real-time data management for automotive systems: A case study | |
CN115827361A (zh) | 用于存储模块的数据比对方法、装置、设备和存储介质 | |
Kahlouche et al. | Hardware testing using a communication protocol conformance testing tool |
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 |