CN116205174A - 一种基于uvm的异步微处理器验证方法及系统 - Google Patents
一种基于uvm的异步微处理器验证方法及系统 Download PDFInfo
- Publication number
- CN116205174A CN116205174A CN202310183424.5A CN202310183424A CN116205174A CN 116205174 A CN116205174 A CN 116205174A CN 202310183424 A CN202310183424 A CN 202310183424A CN 116205174 A CN116205174 A CN 116205174A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- delay
- simulation
- microprocessor
- verification
- 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
Images
Classifications
-
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于UVM的异步微处理器验证方法及系统,方法包括:对RTL代码进行修改;通过异步握手单元延时模拟,模拟Click异步握手单元内部逻辑元件的内部延时;通过DelayBuffer延时模拟,模拟Click流水线寄存器墙之间的组合逻辑延时;通过路径反馈延时模拟,模拟从后级流水线的输出反馈至前级流水线的数据延时;根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。本发明能够使得异步微处理器在功能仿真阶段就能够正常产生波形,为在功能仿真阶段完成验证功能奠定基础,从而提高验证效率,可广泛应用于芯片验证领域。
Description
技术领域
本发明涉及芯片验证技术领域,尤其是一种基于UVM的异步微处理器验证方法及系统。
背景技术
随着芯片复杂度和规模不断的增加,使其在芯片的复杂设计过程更加容易带来错误,这给芯片的验证工作带来了极大的挑战。异步微处理器不同于同步微处理器,同步微处理器的逻辑电路由同步全局时钟源控制,而异步微处理器是由异步电路构成,也称为无时钟电路,各个模块是通过相互握手来实现通信和同步的。
由于Click异步电路握手单元本身的特性,其需要逻辑电路本身的延时才能完成异步握手单元之间的握手形成控制信号。而功能仿真阶段并不会引入逻辑库的延时等信息,这就导致了其无法在功能仿真阶段产生波形,进而导致无法完成功能验证,这不仅违背了常规芯片设计开发流程,且会引入额外的仿真时间。
发明内容
有鉴于此,本发明实施例提供一种基于UVM的异步微处理器验证方法及系统,以解决基于Click异步握手单元的异步微处理器功能验证无法在功能仿真阶段完成的问题,以及解决当前没有一种验证系统满足异步微处理器验证的问题。
本发明实施例的一方面提供了一种基于UVM的异步微处理器验证方法,包括:
对RTL代码进行修改;
通过异步握手单元延时模拟,模拟Click异步握手单元内部逻辑元件的内部延时;
通过DelayBuffer延时模拟,模拟Click流水线寄存器墙之间的组合逻辑延时;
通过路径反馈延时模拟,模拟从后级流水线的输出反馈至前级流水线的数据延时;
根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
优选地,所述对RTL代码进行修改,包括:
对异步控制单元库中逻辑原件的延时添加、异步控制单元之间握手的延时添加或对所有电路设计中反馈路径的延时添加中的至少之一,进行修改。
优选地,所述Click异步握手单元包括Source结构、Reg结构或Sink结构。
优选地,所述异步微处理器为由两个及以上的Click异步握手单元组成的异步控制器。
本发明实施例的另一方面还提供了一种基于UVM的异步微处理器验证系统,用于实现上述一种基于UVM的异步微处理器验证方法,所述验证系统包括:
第一虚接口,用于与取指令相关信号连接;第二虚接口,用于与读写数据相关信号连接;第三虚接口,用于与异步click脉冲信号连接;第四虚接口,用于与控制处理器运行相关信号连接;
验证模块,用于将测试程序加载到异步微处理器的内存,加载测试程序过程异步微处理器不工作;运行所述测试程序得到仿真日志;根据所述仿真日志验证异步微处理器;
其中,异步微处理器顶层端口信号包括控制处理器运行相关信号、取指令相关信号、读写数据相关信号及异步click脉冲信号。
优选地,验证模块,用于运行所述测试程序得到仿真日志,包括:
验证模块,用于在指令集模拟器仿真产生第一仿真日志;在riscv_testbench验证系统进行功能仿真阶段产生第二仿真日志。
优选地,验证模块,用于根据所述仿真日志验证异步微处理器,包括:
验证模块,用于通过对第一仿真日志与第二仿真日志逐行比对每条程序指令运行产生的寄存器写回地址与写回值是否一致,验证异步微处理器。
本发明实施例的另一方面还提供了一种基于UVM的异步微处理器验证装置,包括:
代码修改单元,用于对RTL代码进行修改;
异步握手单元延时模拟单元,用于模拟Click异步握手单元内部逻辑元件的内部延时;
DelayBuffer延时模拟单元,用于模拟Click流水线寄存器墙之间的组合逻辑延时;
路径反馈延时模拟单元,用于模拟从后级流水线的输出反馈至前级流水线的数据延时;
波形验证单元,用于根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现上述的方法。
本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现上述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本发明提出了一种基于UVM的异步微处理器验证方法,该方法能够使得异步微处理器在功能仿真阶段就能够正常产生波形,为在功能仿真阶段完成验证功能奠定基础,同时避免了引入门级仿真的逻辑库带来的额外的仿真时间,以及门级仿真带来的debug困难的问题,从而提高验证效率。本发明还提出了一种基于UVM的异步微处理器验证系统,该系统基于UVM和SystemVerilog搭建了一个可重用性高、拓展性强、支持异步微处理器功能仿真,采用DUT内部异步脉冲时钟驱动验证环境,不同于同步微处理器需要验证系统产生时钟驱动,具备验证环境与异步微处理器脉冲时钟同步的优点;且验证系统仅需做少许改动即可适配同类型异步微处理器的验证工作,节约验证时间,提升验证效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于UVM的异步微处理器验证方法的流程示意图;
图2为本发明实施例提供的一种基于UVM的异步微处理器验证系统的结构框图;
图3为本发明实施例提供的一种基于Click异步握手单元的异步RISC-V CPU具体结构图;
图4为本发明实施例提供的一种异步控制器的结构图;
图5为本发明实施例提供的一种Source异步握手单元结构图;
图6为本发明实施例提供的一种Reg异步握手单元结构图;
图7为本发明实施例提供的一种异步握手单元结构图;
图8为本发明实施例提供的一种基于UVM的异步微处理器验证系统的示例结构图;
图9为本发明实施例提供的一种基于UVM的异步微处理器验证系统的验证流程图;
图10为本发明实施例提供的一种基于UVM的异步微处理器验证装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明实施例提供了一种基于UVM的异步微处理器验证方法,具体包括以下步骤:
步骤S100:对RTL代码进行修改。
步骤S110:通过异步握手单元延时模拟,模拟Click异步握手单元内部逻辑元件的内部延时。
步骤S120:通过DelayBuffer延时模拟,模拟Click流水线寄存器墙之间的组合逻辑延时。
步骤S130:通过路径反馈延时模拟,模拟从后级流水线的输出反馈至前级流水线的数据延时。
步骤S140:根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
具体的,本发明提出了一种基于UVM的异步微处理器验证方法,方法可以包括异步握手单元延时模拟、DelayBuffer延时模拟以及路径反馈延时模拟。
异步握手单元延时模拟用于模拟Click异步握手单元内部逻辑元件的延时信息。Click异步握手单元有三种结构,第一种是Source结构,第二种是Reg结构,第三种是Sink结构,其均由与门、异或门、同或门、相位寄存器组成。
DelayBuffer延时模拟用于模拟Click异步握手单元之间的传递延时,即流水线寄存器墙之间的组合逻辑延时。
路径反馈延时模拟用于模拟对于从后级流水线的输出反馈至前级流水线的数据延时,假设其延时为tFEEDBACK。一般而言,tFEEDBACK的值的设置可以满足两个条件:(1)输出数据不被同一周期下的前级流水寄存器采集;(2)输出数据被下一周期的前级流水寄存器采集。
假设Click异步握手单元的与门逻辑延时为tAND,异或门逻辑延时为tXOR,同或门逻辑延时tXNR,流水线寄存器墙之间的组合逻辑延时tBUFFER。一般而言,tBUFFER远大于tAND、tXOR和tXNR。
Click异步握手单元可以组成2级及以上的异步控制器。且其产生的脉冲Click信号的特征及相位关系满足如下的关系:
(1)2级Click握手单元握手,即Source与Sink握手,Source:高电平脉冲宽度为tXNR,脉冲周期为tXNR+tBUFFER+tXOR;Sink:高电平脉冲宽度为tXOR,脉冲周期为tXOR+tXNR+tBUFFER;相位关系:Source置高后经过tBUFFER+tXOR,Sink置高。
(2)3级Click握手单元握手,即Source与Reg握手,同时Reg与Sink握手,Source:高电平脉冲宽度为tXNR;脉冲周期为tBUFFER+tXNR+tXOR+tAND;Reg:高电平脉冲宽度为tAND+min{tXNR,tXOR};脉冲周期为tBUFFER+tXNR+tXOR+tAND;Sink:高电平脉冲宽度为tXOR;脉冲周期为tXOR+tXNR+tAND+tBUFFER;相位关系:Source置高后经过tBUFFER+tXOR+tAND,Reg置高。Reg置高后经过tBUFFER+tXOR,Sink置高。
(3)4级及以上的Click握手单元握手,即Source与第一个Reg握手,多个Reg之间串联握手,最后一个Reg与Sink握手,Source:高电平脉冲宽度为tXNR;脉冲周期为tBUFFER+tXNR+tXOR+tAND+tAND;Reg:高电平脉冲宽度为tAND+min{tXNR,tXOR};脉冲周期为tBUFFER+tXNR+tXOR+tXND+tAND;Sink:高电平脉冲宽度为tXOR;脉冲周期为tBUFFER+tXNR+tXOR+tAND+tAND;相位关系:Source置高后经过tBUFFER+tXOR+tAND+tAND,Reg置高。Reg置高后经过tBUFFER+tAND+tXOR,Reg置高。Reg置高后经过tBUFFER+tXOR,Sink置高。
本发明方法可以对RTL代码进行修改,其中修改部分可以包括:异步控制单元库中的逻辑原件的延时添加、异步控制单元之间握手的延时添加、对所有电路设计中的反馈路径的延时添加。
基于本发明方法完成RTL代码相应修改后,即可实现异步处理器的功能仿真阶段正常产生波形,接下来可以通过本发明提出的一种基于UVM的异步微处理器验证系统对异步微处理器的波形进行功能验证。
参照图2,本发明实施例提供了一种基于UVM的异步微处理器验证系统,具体包括以下:
第一虚接口,用于与取指令相关信号连接;第二虚接口,用于与读写数据相关信号连接;第三虚接口,用于与异步click脉冲信号连接;第四虚接口,用于与控制处理器运行相关信号连接;
验证模块,用于将测试程序加载到异步微处理器的内存,加载测试程序过程异步微处理器不工作;运行所述测试程序得到仿真日志;根据所述仿真日志验证异步微处理器;
其中,异步微处理器顶层端口信号包括控制处理器运行相关信号、取指令相关信号、读写数据相关信号及异步click脉冲信号。
具体的,可以将异步微处理器作为DUT,DUT顶层端口信号划分为控制处理器运行相关信号、取指令相关信号、读写数据相关信号、异步click脉冲信号。
将DUT的取指令相关信号与虚接口inst_mem_interface连接;将DUT的读写数据相关信号与虚接口data_mem_interface连接;将DUT的异步click脉冲信号与虚接口clk_interface连接;DUT的控制处理器运行相关信号与虚接口probe_interface连接。
inst_mem_interface、data_mem_interface、clk_interface和probe_interface实现了验证系统与待验证异步微处理器的连接。
fetch_agent组件包含fetch_drv、fetch_mon、fetch_seqr等组件。其中fetch_mon主要对inst_mem_interface上采样到的取指令相关数据打包成数据包pkt发送给fetch_seqr。fetch_seqr主要是启动fetch_seq,并将fetch_seq产生的req数据包经过仲裁传送给fetch_drv。fetch_drv组件将从fetch_seqr接收到的req数据包根据时序协议驱动到inst_mem_interface。
lsu_agent组件主要包括lsu_mon、lsu_seqr、lsu_drv等组件。其中lsu_mon主要对data_mem_interface上采样到的读写相关数据打包成pkt发送给lsu_seqr。lsu_seqr主要功能是启动lsu_seq,并将lsu_seq产生的req数据包经过仲裁传送给lsu_drv。lsu_drv组件将从lsu_seqr接收到的req数据包根据时序协议驱动到data_mem_interface。
mem_model组件主要对内存模块进行建模,其主要包含如下功能:取指令、写数据、读数据,用于模拟DUT与内存模块交互功能。
riscv_base_test通过probe_interface的fetch_enable和ecall信号控制DUT的运行,其工作流程如下:(1)加载测试程序到mem_model,此时riscv_base_test通过fetch_enable置低使DUT不工作(2)加载完成后,riscv_base_test通过fetch_enable置高使DUT工作,同时验证系统工作(3)当DUT完成测试后,DUT的ecall信号会置高,当riscv_base_test检测到ecall置高,控制fetch_enable置低,使DUT结束工作,验证系统结束工作。
将测试程序二进制文件分别在指令集模拟器仿真(ISS Simulation)产生仿真Log日志、在riscv_testbench验证系统进行功能仿真产生Trace Log日志,通过对SimulationLog与Trace Log逐行比对每条程序指令运行产生的寄存器写回地址、写回值是否一致,判断DUT功能是否通过。
为了更详细描述本发明,接下来将以具体实例说明本发明的实际应用过程。
图3为本实施例的RISC-V CPU,包含4个部分:(1)PC产生与取指令(2)译码、分支跳转与Store访存执行(3)执行与写回逻辑(4)状态控制器与寄存器堆。
异步控制模块如图4所示,异步控制模块由Source、Reg和Sink三个异步握手单元依次串联组成。其产生的Click1脉冲信号控制Stage1寄存器墙、Click2脉冲信号控制Stage2寄存器墙、Click3脉冲信号控制状态控制器与寄存器堆,如图3所示。
模拟延时中延时单元的时间单位由编译命令`timescale决定,其语法如下:`timescale time_unit/time_precision。time_unit决定仿真的时间单位,time_precision决定仿真的时间精度。即意味着假设本实施例延时X个时间单位,那么延时的总时间time=X*time_unit。具体可根据实际电路仿真需求进行调整,在本实施例中可以采用编译命令`timescale 1ns/1ps进行仿真。
根据模拟延时验证方法,修改三个异步握手单元之间的req连接RTL代码,插入DelayBuffer延时#20,即tBUFFER=20ns,即认为两级流水之间的最大组合逻辑延时为20ns,该值可根据具体实施例调整,如图4所示。
修改Source异步握手单元的RTL代码,给同或门的输出插入延时#1,即tXNR=1ns,如图5所示。
修改Reg异步握手单元的RTL代码,给同或门和异或门的输出插入延时#1、与门的输出插入延时#1.5,即tXNR=1ns,tXOR=1ns,tAND=1.5ns,如图6所示。
修改Sink异步握手单元的RTL代码,给异或门插入延时#1,即tXOR=1ns,如图7所示。
第一级Click的高电平脉冲宽度为1ns,脉冲周期为22.5ns。第二级Click的高电平脉冲宽度为2.5ns,脉冲周期为22.5ns。第三级Click的高电平脉冲宽度为1ns,脉冲周期为22.5ns。上述Click脉冲的周期和宽度以及相位关系都可通过调整插入的延时大小进行调整。
通过模拟异步控制模块中实际逻辑元件的延时,以使得异步控制模块内部能产生正确的握手信号,进而产生脉冲信号使得处理器流水线正常工作。
对路径反馈的延时插入如图3中虚线所示,微架构设计中涉及跨流水的部分为CSR&MachineControl模块信号反馈至第一级前PC_MUX模块,插入跨流水级的反馈延时#10,即tFEEDBACK=10ns。其余图3所示的反馈路径实则均为组合逻辑之间的反馈,不涉及跨流水时钟,故不需要插入延时。
将异步RISC-V处理器模块例化为DUT,DUT顶层接口信号划分为控制处理器运行相关信号、取指令相关信号、读写数据相关信号、异步click脉冲信号。
DUT模块端口的取指令请求信号、指令地址pc、取指令应答信号和指令取指令相关信号与虚接口inst_mem_interface连接;DUT模块端口的数据读请求信号、读地址、读应答信号、读数据;数据写请求信号、数据写掩码信号、数据写应答信号、写数据与虚接口data_mem_interface连接;DUT模块端口的各级click脉冲信号、reset复位信号与虚接口clk_interface连接;DUT模块端口的fetch_enable、ecall信号与虚接口probe_interface连接。
通过inst_mem_interface、data_mem_interface、clk_interface和probe_interface接口,在riscv_testbench层面实现了验证系统(riscv_base_test)与待验证模块(DUT)的连接,如图8所示。整个验证系统如图8所示。
fetch_agent组件包含fetch_drv、fetch_mon、fetch_seqr等组件。其中fetch_mon主要对inst_mem_interface上采样到的取指令相关数据打包成数据包pkt发送给fetch_seqr。fetch_seqr主要是启动fetch_seq,并通过uvm_tlm_analysis_fifo通道将pkt发送给fetch_seq,fetch_seq根据pkt数据从mem_model读指令并产生req数据包经过仲裁传送给fetch_drv。fetch_drv组件将从fetch_seqr接收到的req数据包根据时序协议驱动到inst_mem_interface。
lsu_agent组件主要包括lsu_mon、lsu_seqr、lsu_drv等组件。其中lsu_mon主要对data_mem_interface上采样到的读写相关数据打包成pkt发送给lsu_seqr。lsu_seqr主要功能是启动lsu_seq,并通过uvm_tlm_analysis_fifo通道将pkt发送给fetch_seq。lsu_seq根据pkt数据从mem_model读/写数据并产生req数据包经过仲裁传送给lsu_drv。lsu_drv组件将从lsu_seqr接收到的req数据包根据时序协议驱动到data_mem_interface。
mem_model组件主要对内存模块进行建模,其主要包含如下功能:取指令、写数据、读数据,该三个功能均可根据DUT的规格来动态配置大小,用于模拟DUT与实际内存模块交互功能。
riscv_base_test通过probe_interface的fetch_enable和ecall信号控制DUT的运行,其工作流程如下:(1)加载测试程序到mem_model,此时riscv_base_test通过fetch_enable置低使DUT不工作(2)加载完成后,riscv_base_test通过fetch_enable置高使DUT工作(3)当DUT完成测试后,DUT的ecall信号会置高,当riscv_base_test检测到ecall置高,控制fetch_enable置低,使DUT停止工作,验证系统结束工作。
整个验证流程如图9所示,将测试程序二进制文件分别在指令集模拟器仿真(ISSSimulation)产生仿真Log日志、在riscv_testbench验证系统进行功能仿真产生Trace Log日志,通过对Simulation Log与Trace Log逐行比对每条程序指令运行产生的寄存器写回地址、写回值是否一致,判断DUT功能是否通过。
参照图10,本发明实施例提供了一种基于UVM的异步微处理器验证装置,包括:
代码修改单元,用于对RTL代码进行修改;
异步握手单元延时模拟单元,用于模拟Click异步握手单元内部逻辑元件的内部延时;
DelayBuffer延时模拟单元,用于模拟Click流水线寄存器墙之间的组合逻辑延时;
路径反馈延时模拟单元,用于模拟从后级流水线的输出反馈至前级流水线的数据延时;
波形验证单元,用于根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编辑只读存储器(EPROM或闪速存储器)、光纤装置以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
Claims (10)
1.一种基于UVM的异步微处理器验证方法,其特征在于,包括:
对RTL代码进行修改;
通过异步握手单元延时模拟,模拟Click异步握手单元内部逻辑元件的内部延时;
通过DelayBuffer延时模拟,模拟Click流水线寄存器墙之间的组合逻辑延时;
通过路径反馈延时模拟,模拟从后级流水线的输出反馈至前级流水线的数据延时;
根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
2.根据权利要求1所述的一种基于UVM的异步微处理器验证方法,其特征在于,所述对RTL代码进行修改,包括:
对异步控制单元库中逻辑原件的延时添加、异步控制单元之间握手的延时添加或对所有电路设计中反馈路径的延时添加中的至少之一,进行修改。
3.根据权利要求1所述的一种基于UVM的异步微处理器验证方法,其特征在于,所述Click异步握手单元包括Source结构、Reg结构或Sink结构。
4.根据权利要求3所述的一种基于UVM的异步微处理器验证方法,其特征在于,所述异步微处理器为由两个及以上的Click异步握手单元组成的异步控制器。
5.一种基于UVM的异步微处理器验证系统,其特征在于,用于实现权利要求1至4任一项所述的一种基于UVM的异步微处理器验证方法,所述验证系统包括:
第一虚接口,用于与取指令相关信号连接;第二虚接口,用于与读写数据相关信号连接;第三虚接口,用于与异步click脉冲信号连接;第四虚接口,用于与控制处理器运行相关信号连接;
验证模块,用于将测试程序加载到异步微处理器的内存,加载测试程序过程异步微处理器不工作;运行所述测试程序得到仿真日志;根据所述仿真日志验证异步微处理器;
其中,异步微处理器顶层端口信号包括控制处理器运行相关信号、取指令相关信号、读写数据相关信号及异步click脉冲信号。
6.根据权利要求5所述的一种基于UVM的异步微处理器验证系统,其特征在于,验证模块,用于运行所述测试程序得到仿真日志,包括:
验证模块,用于在指令集模拟器仿真产生第一仿真日志;在riscv_testbench验证系统进行功能仿真阶段产生第二仿真日志。
7.根据权利要求6所述的一种基于UVM的异步微处理器验证系统,其特征在于,验证模块,用于根据所述仿真日志验证异步微处理器,包括:
验证模块,用于通过对第一仿真日志与第二仿真日志逐行比对每条程序指令运行产生的寄存器写回地址与写回值是否一致,验证异步微处理器。
8.一种基于UVM的异步微处理器验证装置,其特征在于,包括:
代码修改单元,用于对RTL代码进行修改;
异步握手单元延时模拟单元,用于模拟Click异步握手单元内部逻辑元件的内部延时;
DelayBuffer延时模拟单元,用于模拟Click流水线寄存器墙之间的组合逻辑延时;
路径反馈延时模拟单元,用于模拟从后级流水线的输出反馈至前级流水线的数据延时;
波形验证单元,用于根据所述内部延时、所述组合逻辑延时及所述数据延时,获取异步微处理器在功能仿真阶段产生的波形,以验证所述异步微处理器。
9.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310183424.5A CN116205174A (zh) | 2023-02-28 | 2023-02-28 | 一种基于uvm的异步微处理器验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310183424.5A CN116205174A (zh) | 2023-02-28 | 2023-02-28 | 一种基于uvm的异步微处理器验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116205174A true CN116205174A (zh) | 2023-06-02 |
Family
ID=86516961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310183424.5A Pending CN116205174A (zh) | 2023-02-28 | 2023-02-28 | 一种基于uvm的异步微处理器验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116205174A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117422026A (zh) * | 2023-12-18 | 2024-01-19 | 青岛本原微电子有限公司 | 一种基于risc-v架构的处理器验证系统 |
-
2023
- 2023-02-28 CN CN202310183424.5A patent/CN116205174A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117422026A (zh) * | 2023-12-18 | 2024-01-19 | 青岛本原微电子有限公司 | 一种基于risc-v架构的处理器验证系统 |
CN117422026B (zh) * | 2023-12-18 | 2024-03-26 | 青岛本原微电子有限公司 | 一种基于risc-v架构的处理器验证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101405690B1 (ko) | 메모리 컨트롤러를 사용하는 로버스트한 메모리 링크 테스팅 | |
US20050216247A1 (en) | Method and program for verifying logic circuit having asynchronous interface | |
CN111427794B (zh) | 一种用于加速存储部件网表仿真的方法、系统及介质 | |
CN113076227A (zh) | Mcu验证方法、系统和终端设备 | |
US7484192B2 (en) | Method for modeling metastability decay through latches in an integrated circuit model | |
EP1872288A2 (en) | Method and system for debugging using replicated logic and trigger logic | |
JP2017523489A (ja) | プログラム可能な遅延を用いてダイナミックランダムアクセスメモリ(dram)コマンドを生成するメモリ物理レイヤインタフェースロジック | |
US7251794B2 (en) | Simulation testing of digital logic circuit designs | |
CN116205174A (zh) | 一种基于uvm的异步微处理器验证方法及系统 | |
US20130024178A1 (en) | Playback methodology for verification components | |
JP4187470B2 (ja) | 半導体装置の開発支援連携装置及び開発支援方法 | |
US8195441B1 (en) | Hardware co-simulation involving a processor disposed on a programmable integrated circuit | |
Gao et al. | Software and hardware co-verification technology based on virtual prototyping of RF SOC | |
US20050055190A1 (en) | Circuit operation verification device and method | |
US20090150103A1 (en) | Computer-Based Method and System for Simulating Static Timing Clocking Results | |
US20140325468A1 (en) | Storage medium, and generation apparatus for generating transactions for performance evaluation | |
JP5454349B2 (ja) | 性能推定装置 | |
WO2017152534A1 (zh) | 一种获取ddr odt参数的方法和装置 | |
US8793548B2 (en) | Integrated circuit, simulation apparatus and simulation method | |
US20070258300A1 (en) | Functional verification of synchronized signals using random delays | |
JP5104356B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
US9507898B2 (en) | Identification of mistimed forcing of values in design simulation | |
JP3214459B2 (ja) | シミュレーション方法及び装置 | |
KR100321780B1 (ko) | 칩의외부신호자동비교에의한칩기능검증방법 | |
CN110321574B (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 |