WIPO logo
Mobile | Deutsch | English | Español | 日本語 | 한국어 | Português | Русский | 中文 | العربية |
PATENTSCOPE

Recherche dans les collections de brevets nationales et internationales
World Intellectual Property Organization
Recherche
 
Options de navigation
 
Traduction
 
Options
 
Quoi de neuf
 
Connexion
 
Aide
 
maximize
Traduction automatique
1. (WO2016197711) PROCÉDÉ ET APPAREIL DE CONFIGURATION DE REGISTRE
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080  

权利要求书

1   2   3   4   5   6  

附图

0001   0002   0003   0004  

说明书

发明名称 : 一种配置寄存器的方法和装置

技术领域

[0001]
本申请涉及但不限于时间逻辑验证领域,尤指一种配置寄存器的方法和装置。

背景技术

[0002]
在集成电路(ASIC,Application Specific Integrated Circuit)芯片设计和现场可编逻辑门阵列(FPGA,Field Programmable Gate Array)设计中,逻辑工程师们按照设计说明书把具体的需求翻译成Verilog代码,在翻译过程中,会由于各种原因导致Verilog代码存在功能性的错误。为了保证设计功能的正确性,通过逻辑验证来定位并改正设计中的错误已成为一种必要手段。
[0003]
在传统验证方式不断发展的背景,通用验证方法学(UVM,Universal Verification Methodology)的出现,对于提升验证效率有极大的帮助。它是基于开放验证方法学(OVM,Open Verification Methodology)发展而来的新一代验证方法学。在UVM的五步验证流程(即制定验证计划、开发验证平台、大规模激励验证、缩小范围激励验证、特别定制激励验证)中,开发验证平台是最基本的要求,但耗时最多的大规模激励验证阶段便是需要对待验证模块(DUT,Design Under Test)灌输大量的随机数据来保证代码覆盖率和功能覆盖率,这些灌输的随机数据中就包括了对寄存器的配置。UVM在system verilog的基础上,在实现UVM的库文件中定义了一些在验证平台中经常使用到的基类、宏、和块语句。这些库文件可以直接调用,方便对DUT的验证时定位错误。
[0004]
随着光通信网络的演化和验证技术(即采用UVM来进行验证)的发展,以及FPGA的库文件与EDA工具编译的兼容性,ASIC芯片验证和FPGA逻辑验证趋向于统一。在这种前提下,光通信网络的硬件逻辑验证时数据流激励和寄存器实时随机配置,在验证平台中变得很重要,也是保障逻辑功能覆盖率的重要方式。一般地,需要添加激励数据并且对DUT内部的寄存器进行实时改变。在DUT的逻辑设计中,通常都会用到低速总线,比如外围总 线(APB,Advanced Peripheral Bus)、串行外围设备接口(SPI,Serial Peripheral Interface)总线、内部集成电路(I2C,Inter-Integrated Circuit)总线等等,称之为带配置总线的DUT。这些低速总线会连接到DUT中的待配置寄存器,通过低速总线来配置寄存器。
[0005]
其中,图1为相关技术的UVM中实现数据流激励的装置的结构组成示意图。如图1所示,实现数据流激励的方法包括:
[0006]
事物处理(Transaction)模块获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至第一sequence模块;第一序列(sequence)模块根据每一数据包的包结构信息生成随机数,且将每一数据包对应的所有随机数生成帧数据;第一定序器(sequencer)模块通过预置的事物级建模(TLM,Transaction Level Modeling)端口将帧数据发送给第一驱动(driver)模块;第一driver模块将帧数据打包成字节数据流,并加载到DUT中;第一monitor模块监控DUT的输入数据(即第一driver模块加载到DUT中的数据包),并将DUT的输入数据发送给参考(Reference)模块;Reference模块根据DUT的输入数据完成与DUT相同的功能后,将输出的期望数据信息发送给计分板(scoreboard)模块;第二监控(monitor)模块检测DUT输出的检测数据信息,并发送给scoreboard模块;scoreboard模块对检测数据信息和期望数据信息进行比较。其中,设置好transaction的数据包结构,然后在sequence类中只需设置`uvm_do_on类或`uvm_do_on_with类的循环次数,便可简单地完成大批量随机数据的灌输功能。
[0007]
其中,包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
[0008]
其中,transaction模块可以直接派生UVM的库文件中的uvm_sequence_item类得到的transaction类来实现,第一sequence模块可以直接派生UVM的库文件中的uvm_sequence类得到的第一sequence类来实现,第一sequencer模块可以直接派生UVM的库文件中的uvm_sequencer类得到的第一sequencer类来实现,第一driver模块可以直接派生UVM的库文件中的uvm_driver类得到的第一driver类来实现,Reference模块可以直接派生 UVM的库文件中的uvm_Reference类得到的Reference类来实现,第一monitor模块可以直接派生UVM的库文件中的uvm_monitor类得到的第一monitor类来实现,第二monitor模块可以直接派生UVM的库文件中的uvm_monitor类得到的第二monitor类来实现,scoreboard模块可以直接派生UVM的库文件中的uvm_scoreboard类得到的scoreboard类来实现。
[0009]
在相关技术实现激励的过程中,配置寄存器的方法包括:用户手动将写入寄存器的值输入到force语句中,采用force语句进行层次化的引用来改变寄存器的值。例如,force a.b.c.d=1表示将a模块下的b模块下的c模块下的d寄存器的值改为1。
[0010]
相关技术的配置寄存器的方法中,写入寄存器的值需要手动输入,而在验证过程中,为了保证验证的代码覆盖率和功能覆盖率,要求写入寄存器的值随机变化,而相关技术的配置寄存器的方法很难保证写入寄存器的值的随机变化。
[0011]
发明内容
[0012]
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
[0013]
为了解决上述问题,本申请提出了一种配置寄存器的方法和装置,能够保证写入寄存器的值的随机变化。
[0014]
为了达到上述目的,本申请提出了一种配置寄存器的方法,包括:
[0015]
预先设置寄存器和地址之间的对应关系;
[0016]
生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;
[0017]
根据写控制指令将生成的随机数写入寄存器。
[0018]
可选地,在所述根据写控制指令将生成的随机数写入寄存器的步骤之后,所述配置寄存器的方法还包括:
[0019]
根据所述对应关系生成对所述寄存器的读控制指令;
[0020]
根据所述读控制指令读取所述寄存器。
[0021]
可选地,所述配置寄存器的方法被封装到顶层平台文件中,并在case类中实例化所述顶层平台文件。
[0022]
本申请另外提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被执行时实现上述方法。
[0023]
本申请还提出了一种配置寄存器的装置,至少包括:
[0024]
设置模块,设置成预先设置寄存器和地址之间的对应关系;
[0025]
生成模块,设置成生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;
[0026]
控制模块,设置成根据写控制指令将生成的随机数写入寄存器中。
[0027]
可选地,所述生成模块还设置成:
[0028]
在根据写控制指令将生成的随机数写入寄存器之后,根据所述对应关系生成对所述寄存器的读控制指令;
[0029]
所述控制模块还设置成:
[0030]
根据所述读控制指令读取所述寄存器。
[0031]
可选地,所述配置寄存器的装置被封装到顶层平台文件中,并在case类中实例化所述顶层平台文件。
[0032]
与相关技术相比,本申请包括:预先设置寄存器和地址之间的对应关系;生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;根据写控制指令将生成的随机数写入寄存器。通过上述方案,根据生成的写控制指令将生成的随机数写入寄存器中,保证了写入寄存器的值的随机变化。
[0033]
在阅读并理解了附图和详细描述后,可以明白其他方面。
[0034]
附图概述
[0035]
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本申请的进一步理解,与说明书一起用于解释本申请,并不构成对本申请保护范围的限制。
[0036]
图1为相关技术的UVM中实现数据流激励的装置的结构组成示意图;
[0037]
图2为本申请提供的配置寄存器的方法的流程图;
[0038]
图3为本申请提供的配置寄存器的装置的结构示意图;
[0039]
图4为本发明实施例提供的配置寄存器的装置的结构示意图。
[0040]
本发明的较佳实施方式
[0041]
为了便于本领域技术人员的理解,下面结合附图对本申请作进一步的描述,并不能用来限制本申请的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。
[0042]
参见图2,本申请提出了一种配置寄存器的方法,包括:
[0043]
步骤100、预先设置寄存器和地址之间的对应关系;
[0044]
其中,对应关系中的寄存器为DUT中的寄存器。
[0045]
寄存器可以采用寄存器的标识来表示,例如,寄存器的名称等。
[0046]
步骤200、生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;
[0047]
本步骤中,写控制指令中包含有要进行写操作的寄存器及其对应的地址、生成的随机数。
[0048]
本步骤中,可以在数据流激励的过程中生成随机数。
[0049]
本步骤中,可以根据实际需要多次生成虽极少数。
[0050]
本步骤中,可以采用随机数生成函数来生成随机数,实现的方法属于本领域技术人员的公知技术,并不用于限定本申请的保护范围,这里不再赘述。
[0051]
步骤201、根据写控制指令将生成的随机数写入寄存器。
[0052]
可选地,在所述根据写控制指令将生成的随机数写入寄存器的步骤之后,该配置寄存器的方法还包括:
[0053]
根据对应关系生成对寄存器的读控制指令;根据读控制指令读取寄存器。
[0054]
通过本申请的方案,根据生成的写控制指令将生成的随机数写入寄存器中,保证了写入寄存器的值的随机变化。
[0055]
可选地,本申请的方法中,配置寄存器的方法被封装到顶层平台文件中,并在case类中实例化顶层平台文件。
[0056]
其中,可以在整个验证平台的基础上派生出case类。
[0057]
本发明实施例另外提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被执行时实现上述方法。
[0058]
参见图3,本申请还提出了一种配置寄存器的装置,包括:
[0059]
设置模块,设置成预先设置寄存器和地址之间的对应关系;
[0060]
生成模块,设置成生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;
[0061]
控制模块,设置成根据写控制指令将生成的随机数写入寄存器。
[0062]
本申请的装置中,生成模块还设置成:
[0063]
在根据写控制指令将生成的随机数写入寄存器之后,根据对应关系生成对寄存器的读控制指令;
[0064]
控制模块还设置成:
[0065]
根据读控制指令读取寄存器。
[0066]
可选地,所述配置寄存器的装置被封装到顶层平台文件中,并在case类中实例化顶层平台文件。
[0067]
下面通过具体实施例详细说明本申请的方法。
[0068]
图4为配置寄存器的装置的结构示意图。如图4所示,配置寄存器的方法包括:
[0069]
寄存器模型(Reg_model)模块中预先设置有寄存器和地址之间的对应关系。
[0070]
第二sequence模块生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令,将生成的写控制指令发送给第一适应(adapter)模块;第一adapter模块将写控制指令转换成第二sequencer模块能够识别的格式;第二sequencer模块将转换后的写控制指令发送给第二driver模块;第二driver模块根据转换后的写控制指令控制DUT 将生成的随机数写入寄存器中。
[0071]
第二sequence模块根据对应关系生成对寄存器的读控制指令,将生成的读控制指令发送给第一adapter模块;第一adapter模块将读控制指令转换成第二sequencer模块能够识别的格式;第二sequencer模块将转换后的读控制指令发送给第二driver模块;第二driver模块根据转换后的读控制指令控制DUT读取寄存器;第三monitor模块检测DUT读取寄存器的输出数据;predictor模块将输出数据发送给第二adapter模块;第二adapter模块将输出数据转换成reg_model模块或scoreboard模块能够识别的格式后发送给reg_model模块或scoreboard模块。
[0072]
其中、第二sequencer模块、第二driver模块和第三monitor模块模拟了APB总线的功能。
[0073]
其中,可以采用派生自UVM中的sequence类的Virtual sequence类来实例化第二sequence模块和第一sequence模块。
[0074]
其中,可以将配置寄存器的装置中的所有模块和实现数据流激励的装置中的所有模块封装到顶层平台文件中,并在顶层平台文件中实例化Virtual sequencer,采用在整个验证平台基础上派生出来的case类中实例化顶层平台文件。
[0075]
其中,Virtual sequencer中同时实例化第一sequence类、第一sequencer类、第二sequence类、第二sequencer类来实现数据流激励和寄存器配置的同步。
[0076]
也可以通过脚本调用的形式来实现寄存器的配置。
[0077]
其中,reg_model模块可以直接派生UVM的库文件中的uvm_reg_model类得到的reg_model类来实现,第二sequence模块可以直接派生UVM的库文件中的uvm_sequence类得到的第二sequence类来实现,第一adapter模块可以直接派生UVM的库文件中的uvm_adapter类得到的第一adapter类来实现,第二sequencer模块可以直接派生UVM的库文件中的uvm_sequencer来得到的第二sequencer类来实现,第二driver模块可以直接派生UVM的库文件中的uvm_driver类得到的第二driver类来实现,第三monitor模块可以直接派生UVM的库文件中的uvm_monitor类得到的第三monitor类来实现, predictor模块可以直接派生UVM的库文件中的uvm_predictor类得到的predictor类来实现,第二adapter模块可以直接派生UVM的库文件中的uvm_adapter类得到的第二adapter类来实现。
[0078]
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本申请的保护范围,在不脱离本申请的发明构思的前提下,本领域技术人员对本申请所做出的任何显而易见的替换和改进等均在本申请的保护范围之内。
[0079]
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。

工业实用性

[0080]
与相关技术相比,本申请包括:预先设置寄存器和地址之间的对应关系;生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令;根据写控制指令将生成的随机数写入寄存器。通过上述方案,根据生成的写控制指令将生成的随机数写入寄存器中,保证了写入寄存器的值的随机变化。

权利要求书

[权利要求 1]
一种配置寄存器的方法,包括: 预先设置寄存器和地址之间的对应关系; 生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令; 根据写控制指令将生成的随机数写入寄存器。
[权利要求 2]
根据权利要求1所述的方法,在所述根据写控制指令将生成的随机数写入寄存器的步骤之后,所述配置寄存器的方法还包括: 根据所述对应关系生成对所述寄存器的读控制指令; 根据所述读控制指令读取所述寄存器。
[权利要求 3]
根据权利要求1所述的方法,所述配置寄存器的方法被封装到顶层平台文件中,并在case类中实例化所述顶层平台文件。
[权利要求 4]
一种配置寄存器的装置,包括: 设置模块,设置成预先设置寄存器和地址之间的对应关系; 生成模块,设置成生成随机数,根据预先设置的寄存器和地址之间的对应关系和生成的随机数生成对寄存器的写控制指令; 控制模块,设置成根据写控制指令将生成的随机数写入寄存器。
[权利要求 5]
根据权利要求4所述的装置,所述生成模块还设置成: 在根据写控制指令将生成的随机数写入寄存器之后,根据所述对应关系生成对所述寄存器的读控制指令; 所述控制模块还设置成: 根据所述读控制指令读取所述寄存器。
[权利要求 6]
根据权利要求4所述的装置,所述配置寄存器的装置被封装到顶层平台文件中,并在case类中实例化所述顶层平台文件。

附图

[ 图 0001]  
[ 图 0002]  
[ 图 0003]  
[ 图 0004]