CN115081366B - 寄存器突发访问的建模方法 - Google Patents
寄存器突发访问的建模方法 Download PDFInfo
- Publication number
- CN115081366B CN115081366B CN202210659715.2A CN202210659715A CN115081366B CN 115081366 B CN115081366 B CN 115081366B CN 202210659715 A CN202210659715 A CN 202210659715A CN 115081366 B CN115081366 B CN 115081366B
- Authority
- CN
- China
- Prior art keywords
- register
- access
- read
- burst
- write
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000012795 verification Methods 0.000 claims abstract description 47
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims abstract description 3
- 238000012360 testing method Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- 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
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种寄存器突发访问的建模方法,搭建UVM验证环境;创建寄存器突发读写访问的扩展对象,用于指定寄存器突发读写访问的相关信息;在寄存器适配器中对寄存器突发访问事务类型进行解码;将reg2bus方法转换生成的寄存器访问事务请求数据驱动到寄存器总线上;在寄存器总线监测器中对寄存器总线进行监测,将寄存器访问事务请求数据拆分转换为多次单个寄存器的读写访问,并逐一广播给预测器;在寄存器访问序列里声明例化并配置扩展对象的数据类型,并调用write方法和read方法对寄存器进行突发读写访问。本发明解决了现有技术中不支持对寄存器的突发读写访问行为功能的建模的问题,提高了寄存器读写、仿真效率,以及验证开发人员的验证效率。
Description
技术领域
本发明涉及芯片验证技术领域,特别涉及一种寄存器突发访问的建模方法。
背景技术
通常情况下,UVM(Universal Verification Methodology)提供的寄存器模型(RAL,Register Abstraction Layer)可以非常方便的对DUT(即待测器件)中的寄存器进行建模,并且提供了一系列的寄存器访问接口方法来方便的对DUT中寄存器的读写访问以及其功能进行验证。比如验证开发人员可以通过调用寄存器的read和write方法轻松的完成对某个寄存器的一次读写访问。但是每调用一次寄存器读写访问方法,只会对某一个寄存器发起一次读或写的访问,这是因为寄存器模型中的适配器(adapter)一次只能处理对一个寄存器的访问,但是一些常见的SOC(System on Chip)总线是支持突发(Burst)读写访问的,比如典型的AHB总线(由ARM公司提出的总线规范,全称为Advanced High-performanceBus)就支持突发访问传输特性。 也就是说UVM提供的寄存器模型接口方法中不支持对寄存器的突发(Burst)读写访问,只提供了对存储的突发读写访问的支持,这给验证开发人员的验证工作带来了麻烦,需要花费更多的精力来对设计中这种寄存器突发读写访问功能进行验证。 同时这也意味着寄存器突发读写访问功能点就永远不会被测试覆盖到,遗留了验证漏洞,可能会导致芯片流片的失败,而且由于不支持突发读写访问,读写访问以及仿真的效率也会受到影响。除此之外,验证开发人员还需要手动去更新维护寄存器模型中的镜像值,而不是使用UVM寄存器模型中提供的预测同步机制,这对于一个较为复杂的芯片来说,往往其中会有成千上万的寄存器,这种手动更新维护的验证方法效率非常低。
现有技术中存在如下缺陷:
(1)现有基于UVM验证方法学搭建的寄存器模型不支持对寄存器的突发(Burst)读写访问行为功能的建模,导致暂时没有有效可行的方案。
(2)由于UVM缺乏对寄存器突发读写访问行为功能的支持,因此该功能点无法被测试覆盖点,遗留了验证漏洞,可能会导致芯片流片的失败。
(3)寄存器读写访问以及仿真的效率也会受到不良影响。
(4)验证开发人员需要手动更新维护寄存器模型中的镜像值,而不是使用UVM寄存器模型中提供的预测同步机制,这对于一个较为复杂的芯片来说,往往其中会有成千上万的寄存器,这种手动更新维护的验证方法效率非常低,因此迫切需要有一种对寄存器突发访问的建模方法来解决上述缺陷问题。
发明内容
根据本发明实施例,提供了一种寄存器突发访问的建模方法,包含如下步骤:
搭建UVM验证环境;
创建寄存器突发读写访问的扩展对象,用于指定寄存器突发读写访问的相关信息;
在UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对寄存器突发读写访问的总线事务数据类型和UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换;
将寄存器适配器中的reg2bus()方法转换生成的寄存器访问事务请求数据驱动到寄存器总线上;
在UVM验证环境的寄存器总线监测器中对寄存器总线进行监测,当监测到寄存器访问事务请求数据为突发读写访问类型时,将寄存器访问事务请求数据拆分转换为多次单个寄存器的读写访问,并逐一广播给UVM验证环境的预测器,用于完成对突发访问寄存器的镜像值与实际值的更新同步;
在寄存器访问序列里声明例化并配置扩展对象的数据类型,然后调用寄存器模型的寄存器的write方法和read方法,用于对寄存器进行突发读写访问。
进一步,寄存器突发读写访问的相关信息包含:寄存器突发读写访问的数据信息和寄存器突发读写访问的长度信息。
进一步,预测器派生于UVM验证环境的uvm_reg_predictor类,预测器与寄存器总线监测器相连,用于获取总线上监测到的数据,然后匹配与目标访问寄存器有关的地址,并自动调用寄存器模型的预测同步方法从而完成与待测器件中实际寄存器数值的同步。
进一步,在UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对寄存器突发读写访问的总线事务数据类型和UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换,包含如下子步骤:
在reg2bus()方法中声明扩展对象;
调用寄存器适配器的get_item方法获取寄存器模型的访问事务数据;
对寄存器模型的访问事务数据进行判断,获得若干个判断结果;
结合若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作;
reg2bus()方法将寄存器模型发出的事务请求类型转换成寄存器总线能够接受的事务数据类型;
寄存器适配器的bus2reg()方法将寄存器总线上的事务请求类型转换成寄存器模型能够接受的事务数据类型。
进一步,结合若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作,包含如下子步骤:
若本次访问是单个寄存器读写访问,reg2bus()方法将寄存器模型的访问事务数据类型中的访问地址、读写访问类型与访问数据信息传递并封装为寄存器总线上的事务数据类型;
若本次访问是突发寄存器读写访问,reg2bus()方法将寄存器模型的访问事务数据类型中的访问地址信息、访问类型信息和扩展对象中的寄存器突发读写访问的相关信息进行传递并封装为寄存器总线上的事务数据类型,并调用寄存器适配器的bus2reg()方法将突发读写访问转换为多次单个寄存器的读写访问。
进一步,对寄存器模型的访问事务数据进行判断,包含如下判断内容:
判断寄存器模型的访问事务数据是否带有寄存器突发访问所需的扩展对象信息;
判断寄存器模型的访问事务数据的数据类型是否和扩展对象的数据类型一致;
判断寄存器模型的访问事务数据的突发访问长度是否为1。
根据本发明实施例的寄存器突发访问的建模方法,解决了现有技术中因寄存器模型不支持对寄存器的突发读写访问行为功能的建模,遗留了验证漏洞,进而可能会导致芯片流片失败的问题,提高了寄存器读写访问以及仿真的效率,提高了验证开发人员的验证效率。
要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。
附图说明
图1为根据本发明实施例寄存器突发访问的建模方法的原理图;
图2为根据本发明实施例寄存器突发访问的建模方法的步骤流程图;
图3为图2中步骤S3的子步骤的流程图;
图4为图3中步骤S34的子步骤的流程图。
具体实施方式
以下将结合附图,详细描述本发明的优选实施例,对本发明做进一步阐述。
首先,将结合图1~4描述根据本发明实施例的寄存器突发访问的建模方法,用于芯片验证,其应用场景广阔。
如图1所示,本实施例的工作过程示例的寄存器总线上的信号有:
bus_valid:为1时总线数据有效,为0时无效。该有效信号只持续一个时钟,DUT应该在其为1的期间对总线上的数据进行采样。如果是写操作,DUT应该在下一个时钟检测到总线数据有效后,采样总线上的数据并写入到其内部寄存器。如果是读操作,DUT应该在下一个时钟检测到总线数据有效后,将寄存器数据读到数据总线上。
bus_op:总线读写操作。为2'b00时向总线上写单个寄存器操作,为2'b01时从总线上读单个寄存器操作,2'b10时向总线上发起突发读操作,为2'b11时向总线上发起突发写操作。
bus_addr:表示地址总线上的地址,其位宽为16位。
bus_wr_data:表示写数据总线上的16位宽的数据。
bus_rd_data:表示从数据总线上读取的16位宽的数据。
这里地址总线宽度为16位,数据总线宽度也为16位,这里示例的突发访问读写寄存器burst_reg的位宽也为16位宽,即与总线宽度一致,我们为突发访问读写寄存器burst_reg0~7分配的总线地址为16' h20~16'h27。
如果要对上述burst_reg进行突发访问,只要发起对寄存器burst_reg0的读写访问即可,并且此时bus_vaild信号需要为高有效电平,具体分为以下突发写和突发读访问两个过程:
(1)当发起的是突发写访问操作的时候,在bus_vaild信号为高的同时,将写数据总线bus_wr_data上的数据顺次写入寄存器burst_reg0~7,具体写入寄存器的数量取决于突发访问的长度。
(2)当发起的是突发读访问操作的时候,检测bus_valid信号为高,然后将寄存器burst_reg0~7的值依次传输到读数据总线bus_rd_data上,具体传输到读数据总线上的寄存器数量同样取决于突发访问的长度。
如图1~4所示,本发明实施例的寄存器突发访问的建模方法,包含如下步骤:
在 S1中,如图1~2所示,搭建UVM验证环境。
在 S2中,如图1~2所示,创建寄存器突发读写访问的扩展对象,使得在调用寄存器读写访问方法时作为输入参数用于指定本次突发访问的相关信息;大多数UVM提供的寄存器访问方法都容许传入一个扩展对象作为输入参数,从而传递此次寄存器总线操作的额外信息,比如目标id编号,传输延迟等控制信息,这些都可以在寄存器适配器(adapter)中完成解码和转换为实际总线上的事务请求数据。因此我们可以把寄存器突发访问的相关数据信息也存入该扩展对象内,即使用该扩展对象里的数据成员对象来对突发访问的数据和长度进行建模。
在 S3中,如图1~2所示,在UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对寄存器突发读写访问的总线事务数据类型和UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换;由于适配器一次只能处理一个寄存器的访问,而要实现对突发读写访问,我们需要使用某种方式来告诉它,我们实际上需要对更多的寄存器进行读写访问,而在UVM中的适配器提供了两个方法,分别是 reg2bus()和bus2reg()方法,因此我们需要在上述两个方法中完成对寄存器突发访问事务类型的解码和转换:
(1) reg2bus()方法
reg2bus()方法的作用为验证开发人员调用寄存器读写访问方法时使得寄存器模型发出的事务请求类型转换成寄存器总线能够接受的事务数据类型;首先我们需要在其中声明扩展对象,然后调用适配器的get_item方法获取到本次发起的寄存器模型的访问事务数据,接着判断该事务数据类型是否带有寄存器突发访问所需的扩展对象信息,并且判断类型是否和之前定义的一致,以及突发访问的长度是否为1,通过以上这些判断的结果来最终决定本次是通常的单个寄存器读写访问还是突发寄存器读写访问。 如果是通常的单个寄存器读写访问,那么将寄存器模型的访问事务数据类型中的访问地址,读写访问类型,访问数据信息传递并封装为寄存器总线上的事务数据类型。如果是突发寄存器读写访问,那么将使用本次寄存器模型的访问事务数据类型中的访问地址,访问类型和扩展对象中的突发访问数据和长度信息进行传递并封装为寄存器总线上的事务数据类型,从而构造在寄存器总线发起对应的突发读写访问请求数据。
(2) bus2reg()方法
bus2reg()方法的作用为当监测到总线上有对寄存器的读写访问操作时,它将收集到的总线上的事务请求类型转换成寄存器模型能够接受的事务数据类型,以便寄存器模型能够读到返回的寄存器的值。 因为我们需要将突发读写访问转换为多次的单个寄存器的读写访问,因此,这里判断如果是突发读写访问类型,需要将其转换为通常的单个寄存器的读写访问类型,其他方面没什么变化,和通常一样将寄存 器总线上的事务数据类型信息传递并封装为寄存器模型的访问事务数据类型即可。
在 S4中,如图1~2所示,将寄存器适配器中的reg2bus()方法转换生成的寄存器访问事务请求数据驱动到寄存器总线上。;如果是突发写操作的话,则将转换后的突发数据队列中的值逐一驱动到寄存器写数据总线上。如果是寄存器读请求(包括单个的读操作和突发的读操作)的话,则将读回来的寄存器值返回到总线事务类型中。此外,适配器会接收来自序列器(sequencer)传送过来的寄存器总线读写请求,因此需要将寄存器读写数据等信息封装到寄存器模型的事务类型中。
在 S5中,如图1~2所示,在UVM验证环境的寄存器总线监测器中对寄存器总线进行监测,当监测到寄存器访问事务请求数据为突发读写访问类型时,将寄存器访问事务请求数据拆分转换为多次单个寄存器的读写访问,并逐一广播给UVM验证环境的预测器,用于完成对突发访问寄存器的镜像值与实际值的更新同步;我们还需要考虑寄存器的预测同步方式,通常验证平台中使用的是寄存器显示预测方式,这样可以尽可能地保证寄存器模型中的镜像值和DUT中实际寄存器值的同步,而该寄存器预测同步功能是由预测器(predictor)来完成的,该预测器会通过TLM通信端口获取到来自寄存器总线监测器(monitor)广播过来的数据,并且通过内部的逻辑发起对目标访问寄存器的预测同步。但是预测器只能处理通常的单个(Single)寄存器的读写访问请求,也就是说预测器并不知道什么时候会发起突发访问,因此监测器(monitor)需要将突发读写访问的事务请求类型转换为多个单个寄存器的读写访问,并广播给预测器,这样该突发读写访问操作才能被预测器来进行逐一的更新预测以实现寄存器模型镜像值和DUT中实际寄存器值的同步。这里的预测器(predictor),派生于UVM的uvm_reg_predictor类,它与寄存器总线监测器进行连接以获取总线上监测到的数据,然后匹配与目标访问寄存器有关的地址,并自动调用寄存器模型的预测同步方法从而完成与DUT中实际寄存器数值的同步。
在 S6中,如图1~2所示,在寄存器访问序列里声明例化并配置扩展对象的数据类型,然后调用寄存器模型的寄存器的write方法和read方法,用于对寄存器进行突发读写访问;如果是突发写访问,则配置要写入的数据队列以及数据长度,如果是突发读访问,则配置读的数据长度。发起突发读写访问操作后,寄存器模型依然会和以往的寄存器显示预测方式一样,自动完成寄存器模型镜像值与DUT实际寄存器值的更新同步。综上,最终可以通过简单的调用寄存器的write和read读写访问方法来完成对寄存器的突发读写访问功能的支持,从而解决了之前提到的缺陷问题,达到了我们的目的。
进一步,寄存器突发读写访问的相关信息包含:寄存器突发读写访问的数据信息和寄存器突发读写访问的长度信息。
进一步,预测器派生于UVM验证环境的uvm_reg_predictor类,预测器与寄存器总线监测器相连,用于获取总线上监测到的数据,然后匹配与目标访问寄存器有关的地址,并自动调用寄存器模型的预测同步方法从而完成与待测器件中实际寄存器数值的同步。
进一步,在UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对寄存器突发读写访问的总线事务数据类型和UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换,包含如下子步骤:
在S31中,如图1、3所示,在reg2bus()方法中声明扩展对象。
在S32中,如图1、3所示,调用寄存器适配器的get_item方法获取寄存器模型的访问事务数据。
在S33中,如图1、3所示,对寄存器模型的访问事务数据进行判断,获得若干个判断结果。
在S34中,如图1、3所示,结合若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作。
在S35中,如图1、3所示,reg2bus()方法将寄存器模型发出的事务请求类型转换成寄存器总线能够接受的事务数据类型。
在S36中,如图1、3所示,寄存器适配器的bus2reg()方法将寄存器总线上的事务请求类型转换成寄存器模型能够接受的事务数据类型。
进一步,结合若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作,包含如下子步骤:
在S341中,如图1、4所示,若本次访问是单个寄存器读写访问,reg2bus()方法将寄存器模型的访问事务数据类型中的访问地址、读写访问类型与访问数据信息传递并封装为寄存器总线上的事务数据类型。
在S342中,如图1、4所示,若本次访问是突发寄存器读写访问,所述reg2bus()方法将寄存器模型的访问事务数据类型中的访问地址信息、访问类型信息和扩展对象中的寄存器突发读写访问的相关信息进行传递并封装为寄存器总线上的事务数据类型,并调用寄存器适配器的bus2reg()方法将突发读写访问转换为多次单个寄存器的读写访问。
进一步,对寄存器模型的访问事务数据进行判断,包含如下判断内容:
判断寄存器模型的访问事务数据是否带有寄存器突发访问所需的扩展对象信息;
判断寄存器模型的访问事务数据的数据类型是否和扩展对象的数据类型一致;
判断寄存器模型的访问事务数据的突发访问长度是否为1。
如图1所示(图1中的标号①~⑧对应于下面的描述(1)~ (8)),突发读寄存器访问原理如下:
(1)创建寄存器突发读访问的扩展对象,使得在调用寄存器读访问方法时作为输入参数用于指定本次突发读访问的相关信息,主要包括突发访问的长度信息。
(2)调用寄存器模型中寄存器的读访问方法,将上述扩展对象作为输入参数进行传递,并更新寄存器模型相应寄存器的值。
(3)寄存器模型产生请求序列,并产生寄存器模型数据请求类型的序列元素。
(4)调用适配器(adapter)的reg2bus方法将上述类型的请求序列元素转换成寄存器总线事务类型的请求序列元素,这里需要将扩展对象的突发读访问的长度信息封装到寄存器总线事务类型中。
(5)将寄存器总线事务类型请求序列元素传送给寄存器总线序列器(sequencer),然后再由序列器传送给寄存器总线驱动器(driver),然后驱动器根据请求事务数据类型中的突发读访问的长度信息将其驱动到寄存器总线上并依次返回读取的寄存器的值,并将返回的数值放回到事务请求数据中。
(6)寄存器总线监测器(monitor)监测到上述被驱动到寄存器总线上的事务请求数据,然后将该突发读访问拆分转换为多次单个寄存器的读访问,并逐一广播给预测器(predictor)。
(7)预测器根据接收到的寄存器总线事务请求数据来完成对突发读访问寄存器的镜像值与实际值的更新同步。
(8)调用适配器的bus2reg方法将总线事务请求数据中读取的值传递给寄存器模型的事务类型中,相当于返回给了寄存器模型,此时在寄存器读总线上可以依次看到突发访问寄存器的值。
如图1所示(图1中的标号①~⑧对应于下面的描述(1)~(8)),突发写寄存器访问原理如下:
(1)创建寄存器突发写访问的扩展对象,使得在调用寄存器写访问方法时作为输入参数用于指定本次突发写访问的相关信息,主要包括突发访问的数据队列和突发长度信息。
(2)调用寄存器模型中寄存器的写访问方法,将上述扩展对象作为输入参数进行传递,并更新寄存器模型相应寄存器的值。
(3)寄存器模型产生请求序列,并产生寄存器模型数据请求类型的序列元素。
(4)调用适配器(adapter)的reg2bus方法将上述类型的请求序列元素转换成寄存器总线事务类型的请求序列元素,这里需要将扩展对象的突发写访问的数据队列和突发访问长度信息封装到寄存器总线事务类型中。
(5)将寄存器总线事务类型请求序列元素传送给寄存器总线序列器(sequencer),然后再由序列器传送给寄存器总线驱动器(driver),然后驱动器根据请求事务数据类型中的突发写访问的数据队列和突发访问长度信息将其驱动到寄存器总线上。
(6)寄存器总线监测器(monitor)监测到上述被驱动到寄存器总线上的事务请求数据,然后将该突发写访问拆分转换为多次单个寄存器的写访问,并逐一广播给预测器(predictor)。
(7)预测器根据接收到的寄存器总线事务请求数据来完成对突发写访问寄存器的镜像值与实际值的更新同步。
(8)此时在寄存器写总线上可以依次看到扩展对象中配置的数据队列被依次写入了目标突发访问寄存器,也可以通过再发起读访问来验证是否写成功。
以上,参照图1~4描述了根据本发明实施例的寄存器突发访问的建模方法,解决了现有技术中因寄存器模型不支持对寄存器的突发读写访问行为功能的建模,遗留了验证漏洞,进而可能会导致芯片流片失败的问题,提高了寄存器读写访问以及仿真的效率,提高了验证开发人员的验证效率。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (5)
1.一种寄存器突发访问的建模方法,其特征在于,包含如下步骤:
搭建UVM验证环境;
创建寄存器突发读写访问的扩展对象,用于指定所述寄存器突发读写访问的相关信息;
在所述UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对所述寄存器突发读写访问的总线事务数据类型和所述UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换;
将所述寄存器适配器中的reg2bus()方法转换生成的寄存器访问事务请求数据驱动到寄存器总线上;
在所述UVM验证环境的寄存器总线监测器中对所述寄存器总线进行监测,当监测到所述寄存器访问事务请求数据为突发读写访问类型时,将所述寄存器访问事务请求数据拆分转换为多次单个寄存器的读写访问,并逐一广播给所述UVM验证环境的预测器,用于完成对突发访问寄存器的镜像值与实际值的更新同步;
在寄存器访问序列里声明例化并配置所述扩展对象的数据类型,然后调用所述寄存器模型的寄存器的write方法和read方法,用于对寄存器进行突发读写访问;
在所述UVM验证环境的寄存器适配器中对寄存器突发访问事务类型进行解码,用于完成对所述寄存器突发读写访问的总线事务数据类型和所述UVM验证环境的寄存器模型能够接受的事务数据类型之间的相互转换,包含如下子步骤:
在所述reg2bus()方法中声明所述扩展对象;
调用所述寄存器适配器的get_item方法获取所述寄存器模型的访问事务数据;
对所述寄存器模型的访问事务数据进行判断,获得若干个判断结果;
结合所述若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作;
所述reg2bus()方法将所述寄存器模型发出的事务请求类型转换成所述寄存器总线能够接受的事务数据类型;
所述寄存器适配器的bus2reg()方法将所述寄存器总线上的事务请求类型转换成所述寄存器模型能够接受的事务数据类型。
2.如权利要求1所述寄存器突发访问的建模方法,其特征在于,所述寄存器突发读写访问的相关信息包含:寄存器突发读写访问的数据信息和寄存器突发读写访问的长度信息。
3.如权利要求1所述寄存器突发访问的建模方法,其特征在于,所述预测器派生于所述UVM验证环境的uvm_reg_predictor类,所述预测器与所述寄存器总线监测器相连,用于获取总线上监测到的数据,然后匹配与目标访问寄存器有关的地址,并自动调用所述寄存器模型的预测同步方法从而完成与待测器件中实际寄存器数值的同步。
4.如权利要求1所述寄存器突发访问的建模方法,其特征在于,结合所述若干个判断结果决定本次访问是单个寄存器读写访问还是突发寄存器读写访问并执行相应操作,包含如下子步骤:
若本次访问是单个寄存器读写访问,所述reg2bus()方法将所述寄存器模型的访问事务数据类型中的访问地址、读写访问类型与访问数据信息传递并封装为寄存器总线上的事务数据类型;
若本次访问是突发寄存器读写访问,所述reg2bus()方法将所述寄存器模型的访问事务数据类型中的访问地址信息、访问类型信息和所述扩展对象中的所述寄存器突发读写访问的相关信息进行传递并封装为所述寄存器总线上的事务数据类型,并调用所述寄存器适配器的bus2reg()方法将所述突发读写访问转换为多次单个寄存器的读写访问。
5.如权利要求1所述寄存器突发访问的建模方法,其特征在于,对所述寄存器模型的访问事务数据进行判断,包含如下判断内容:
判断所述寄存器模型的访问事务数据是否带有寄存器突发访问所需的扩展对象信息;
判断所述寄存器模型的访问事务数据的数据类型是否和所述扩展对象的数据类型一致;
判断所述寄存器模型的访问事务数据的突发访问长度是否为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210659715.2A CN115081366B (zh) | 2022-06-13 | 2022-06-13 | 寄存器突发访问的建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210659715.2A CN115081366B (zh) | 2022-06-13 | 2022-06-13 | 寄存器突发访问的建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115081366A CN115081366A (zh) | 2022-09-20 |
CN115081366B true CN115081366B (zh) | 2024-04-05 |
Family
ID=83251438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210659715.2A Active CN115081366B (zh) | 2022-06-13 | 2022-06-13 | 寄存器突发访问的建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115081366B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118093064A (zh) * | 2024-04-22 | 2024-05-28 | 深圳市楠菲微电子有限公司 | 一种Model组件及使用Model组件同步Sequence的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001042913A1 (en) * | 1999-12-07 | 2001-06-14 | Advanced Micro Devices, Inc. | Register arrangement for optimum access |
CN101123113A (zh) * | 2007-09-20 | 2008-02-13 | 上海交通大学 | 同步动态随机访问存储器的访问方法及控制装置 |
CN105320583A (zh) * | 2014-07-31 | 2016-02-10 | 上海华虹集成电路有限责任公司 | 基于uvm验证方法学的只写寄存器验证测试平台及验证方法 |
WO2016197711A1 (zh) * | 2015-06-09 | 2016-12-15 | 中兴通讯股份有限公司 | 一种配置寄存器的方法和装置 |
CN109117518A (zh) * | 2018-07-21 | 2019-01-01 | 中国人民解放军战略支援部队信息工程大学 | 一种寄存器读写访问验证系统及方法 |
CN112286746A (zh) * | 2020-10-31 | 2021-01-29 | 拓维电子科技(上海)有限公司 | 针对axi从设备接口的通用验证平台及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155887A1 (en) * | 2005-01-12 | 2006-07-13 | Low Yun S | Enhanced multi-access data port |
-
2022
- 2022-06-13 CN CN202210659715.2A patent/CN115081366B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001042913A1 (en) * | 1999-12-07 | 2001-06-14 | Advanced Micro Devices, Inc. | Register arrangement for optimum access |
CN101123113A (zh) * | 2007-09-20 | 2008-02-13 | 上海交通大学 | 同步动态随机访问存储器的访问方法及控制装置 |
CN105320583A (zh) * | 2014-07-31 | 2016-02-10 | 上海华虹集成电路有限责任公司 | 基于uvm验证方法学的只写寄存器验证测试平台及验证方法 |
WO2016197711A1 (zh) * | 2015-06-09 | 2016-12-15 | 中兴通讯股份有限公司 | 一种配置寄存器的方法和装置 |
CN109117518A (zh) * | 2018-07-21 | 2019-01-01 | 中国人民解放军战略支援部队信息工程大学 | 一种寄存器读写访问验证系统及方法 |
CN112286746A (zh) * | 2020-10-31 | 2021-01-29 | 拓维电子科技(上海)有限公司 | 针对axi从设备接口的通用验证平台及方法 |
Non-Patent Citations (2)
Title |
---|
Lite寄存器模型的设计与实现;潘国腾;欧国东;晁张虎;李梦君;;计算机应用;20201231(第05期);全文 * |
一种面向写穿透Cache的写合并设计及验证;梅魁志;李国辉;张斌;;西安交通大学学报;20100410(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115081366A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070055911A1 (en) | A Method and System for Automatically Generating a Test-Case | |
CN115081366B (zh) | 寄存器突发访问的建模方法 | |
CN115081367A (zh) | 基于uvm存储模型的寄存器突发访问的建模方法 | |
CN108874665A (zh) | 一种测试结果校验方法、装置、设备和介质 | |
US6820149B2 (en) | Method, system, and program for testing a bus interface | |
CN112989740B (zh) | 一种仿真方法、装置、计算机设备和存储介质 | |
US10664370B2 (en) | Multiple core analysis mode for defect analysis | |
US8250545B2 (en) | Associated apparatus and method for supporting development of semiconductor device | |
JP2000259215A (ja) | Plc用ツール装置、並びに、プログラム記録媒体 | |
CN113835757A (zh) | 多主机共享寄存器模型的方法、装置及电子设备 | |
CN108733529B (zh) | Axi交叉开关的间插功能的验证方法与装置 | |
JP3085730B2 (ja) | 複合cpuシステムの並列シミュレーション方式 | |
US20030056027A1 (en) | Apparatus and method for improvement of communication between an emulator unit and a host device | |
JPH08184648A (ja) | 半導体試験装置用テストパターンの高速転送装置 | |
CN116627496B (zh) | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 | |
CN117632685A (zh) | 一种数据分析方法、装置及相关设备 | |
JPH09159734A (ja) | Ic試験装置 | |
JPH1040125A (ja) | マイクロコンピュータ | |
JP2612469B2 (ja) | 半導体試験装置 | |
JP2000122898A (ja) | シミュレーション方法及び装置 | |
JP2007072604A (ja) | 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 | |
JP2933888B2 (ja) | 双方向バスの機能検査方法 | |
JPH086810A (ja) | 論理回路シミュレーション装置 | |
JP3735860B2 (ja) | エミュレータ用汎用メモリシステム | |
JP2001067241A (ja) | 情報処理装置の試験方式 |
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 | ||
CB02 | Change of applicant information |
Country or region after: Zhong Guo Address after: 3 / F, 665 Zhangjiang Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Yunhe Zhiwang (Shanghai) Technology Co.,Ltd. Address before: 311203 floor 12, building 2, Purple Orange International Center, No. 39, Jincheng Road, Xiaoshan District, Hangzhou, Zhejiang Province Applicant before: Hangzhou yunhezhi Network Technology Co.,Ltd. Country or region before: Zhong Guo |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |