一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模块级中断的验证平台和方法与流程

2022-04-02 09:28:32 来源:中国专利 TAG:


1.本发明涉及芯片技术领域,具体地涉及一种模块级中断的验证平台和方法。


背景技术:

2.在工程项目中,无论是soc(system on chip)系统级芯片验证,还是模块验证,中断都是必不可少的。中断是一种硬件与软件间、cpu与外设间的交互手段,中断一旦出问题,芯片很可能会因此缺失某些特性,甚至于毁了整颗芯片,中断验证由此显得极为关键。技术人员需要在模块级验证中就对中断功能进行完备的验证。对于模块验证中的中断特性,技术人员需要考虑的是这些中断能不能被正常触发,触发后能不能正常上报,上报之后中断状态可不可查,中断源能不能被清除,清除之后能不能再次触发,中断是否可支持屏蔽等。
3.对于模块级中断功能的验证,由于没有cpu来接收中断信号、进入中断处理程序以及清除中断等,所以需要在验证环境中将序列或组件与中断信号同步。目前在基于uvm的验证平台中,仅可以实现由驱动器和监视器来处理与硬件事件的同步。


技术实现要素:

4.本发明实施例的目的是提供一种模块级中断的验证平台,该模块级中断的验证平台可以实现不通过驱动器和监视器来处理与硬件事件的同步。
5.为了实现上述目的,本发明实施例提供一种模块级中断的验证平台,所述模块级中断的验证平台基于通用验证方法uvm搭建,且所述模块级中断的验证平台包括虚拟序列发生器、验证模型、及中断接口;其中,所述虚拟序列发生器用于产生模块级的被测设计dut执行事务对应的激励,并监测所述中断接口的电平变化;所述验证模型用于接收来自所述虚拟序列发生器产生的激励,构造事务对应的序列,并驱动所述dut执行对应的事务;所述中断接口用于在所述dut发生中断时,作为上报对应的中断事务至所述虚拟序列发生器的通道。
6.可选的,所述虚拟序列发生器还用于调度所述dut的事务执行顺序。
7.可选的,所述验证模型包括:序列发生器sequencer,用于根据所述虚拟序列发生器产生的激励,构造事务对应的序列;驱动器driver,用于驱动所述dut执行对应的事务;监控器monitor,用于监控所述dut执行对应的事务。
8.可选的,所述验证模型包括:总线验证模型,通过总线接口与所述dut进行通信;通信验证模型,通过通信接口与所述dut进行通信。
9.可选的,所述模块级中断的验证平台还包括计分板,连接所述监控器monitor,用于比对期望值与所述监控器monitor对所述dut的输出值。
10.可选的,所述中断接口通过以下操作而被配置:创建所述中断接口;连接所述被测设计的输出信号和所述中断接口的中断信号;发布所述中断接口。
11.可选的,通过uvm类库config_db的set函数发布所述中断接口之后,所述虚拟序列发生器通过uvm类库config_db的get函数获取所述中断接口的句柄,以监测所述中断接口
的电平变化。
12.本发明实施例还提供一种模块级中断验证的方法,该模块级中断验证的方法包括:模块级的被测设计dut根据验证模型的驱动,执行所述验证模型构造的序列对应的事务;当发生中断时,所述dut通过中断接口上报对应的中断事务至所述虚拟序列发生器;所述虚拟序列发生器监测所述中断接口的电平变化,以对所述dut的中断事务进行验证。
13.可选的,所述模块级的被测设计dut根据验证模型的驱动,执行所述验证模型构造的序列对应的事务包括:所述虚拟序列发生器产生所述dut执行事务对应的激励;以及所述验证模型接收来自所述虚拟序列发生器产生的激励,构造事务对应的序列,并驱动所述dut执行对应的事务。
14.可选的,所述中断接口基于uvm类库config_db的set函数发布,所述虚拟序列发生器监测所述中断接口的电平变化包括:所述虚拟序列发生器通过uvm类库config_db的get函数获取所述中断接口的句柄。
15.通过上述技术方案,本发明实施例通过中断接口实现了在不与驱动器或监视器交互的情况下,将序列或组件与硬件事件进行同步,从而在序列中更方便地进行中断功能验证。
16.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
17.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
18.图1是本发明实施例提供的模块级中断的验证平台的结构示意图;
19.图2是本发明实施例提供的模块级中断的验证平台的示例结构示意图;
20.图3是本发明实施例中断接口被配置的流程示意图;
21.图4是本发明实施例提供的模块级中断的验证平台的结构示意图。
22.附图标记说明
23.10虚拟序列发生器
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
11验证模型
24.12被测设计
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
13中断接口
25.14计分板
具体实施方式
26.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
27.图1是本发明实施例提供的模块级中断的验证平台的结构示意图,请参考图1,所述模块级中断的验证平台基于通用验证方法uvm搭建,且所述模块级中断的验证平台包括虚拟序列发生器10、验证模型11、及中断接口13。
28.本技术实施例的模块级中断的验证平台可以基于通用验证方法学(universal verification methodology,uvm)进行搭建,uvm是一个以systemverilog类库为主体的验证平台开发框架,验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功
能验证环境。
29.其中,被测设计(design under test,dut)可以看作被测器件。其中,所述虚拟序列发生器10用于产生模块级的被测设计dut12执行事务对应的激励,并监测所述中断接口13的电平变化;所述验证模型11用于接收来自所述虚拟序列发生器10产生的激励,构造事务对应的序列,并驱动所述dut12执行对应的事务;所述中断接口13用于在所述dut12发生中断时,作为上报对应的中断事务至所述虚拟序列发生器10的通道。
30.其中,虚拟序列发生器(virtual sequencer)10,是uvm中设计的一种验证组件。虚拟序列发生器10可以产生的总验证序列,即被测设计dut12执行事务对应的激励。
31.优选的,所述虚拟序列发生器10还可以用于调度所述dut12的事务执行顺序。
32.其中,本技术实施例的验证模型11可以有多个,虚拟序列发生器10可以调度被测设计dut12的事务执行顺序,并产生所述dut12执行事务对应的激励,发送至多个验证模型11,验证模型11构造事务对应的序列,并驱动所述dut12执行对应的事务。
33.图2是本发明实施例提供的模块级中断的验证平台的示例结构示意图。请参考图2,优选的,所述验证模型11可以包括:序列发生器sequencer,用于根据所述虚拟序列发生器10产生的激励,构造事务对应的序列;驱动器driver,用于驱动所述dut12执行对应的事务;监控器monitor,用于监控所述dut12执行对应的事务。
34.优选的,所述验证模型可以包括:总线验证模型,通过总线接口与所述dut12进行通信;通信验证模型,通过通信接口与所述dut12进行通信。
35.以示例说明,总线验证模型可以为符合amba总线协议要求的总线验证模型,其中可以包括序列发生器sequencer,驱动器driver,监控器monitor。和所述dut12之间通过总线接口连接。其中,总线接口可以包括总线信号,例如,时钟、复位、地址线、数据线、写/读信号控制线。
36.以示例说明,通信验证模型可以为符合串行通信接口协议的验证模型,其中序列发生器sequencer,驱动器driver,监控器monitor。和所述dut12通过通信接口连接。通信接口可以包括通信信号,例如,时钟、控制线、双向单线数据线
37.针对所述验证模型11,虚拟序列发生器10中定义两个序列发生器句柄,句柄指向的序列类型,可以被设置为:分别符合总线验证模型和通信验证模型的序列描述,在验证平台中分别将两个句柄对应指向总线验证模型和通信验证模型的序列发生器sequencer,即将虚拟序列发生器10和验证模型11连接。
38.总验证序列,由虚拟序列发生器10产生,根据验证方案实现的验证激励,包括指定验证序列在对应验证模型11上执行,这样就实现了控制两个验证模型的验证序列,可以包括验证事务包类型,两个验证模型验证序列的发送秩序。中断接口13也在此验证序列中进行电平信号判断。
39.其中,验证序列sequence,验证事务包集合,构造符合指定功能的验证信息流,例如,发送功能验证序列,包括多个写寄存器事务包。
40.验证事务包transaction,验证信息的行为级描述,例如,在总线验证模型上定义的是写/读寄存器事务包,在通信验证模型上定义的是符合接口协议的数据帧事务包。
41.驱动器driver,可以接收序列发生器sequencer产生的验证事务包,转换成物理信号,通过接口和所述dut12进行交互。
42.监控器monitor,可以监控所述dut12和验证设备的接口,将物理信号转换为验证事务包,并传到计分板做事务级比对。其中,计分板的内容在后文解释,此处先不赘述。
43.接口(interface),可以连接所述dut12和验证平台中设备的一个或一组物理信号。
44.优选的,所述模块级中断的验证平台还包括计分板(scoreboard)14,连接所述监控器monitor,用于比对期望值与所述监控器monitor对所述dut12的输出值。
45.以示例说明,所述dut12可以根据总线验证模型的设置将发送数据按照通信接口协议帧格式进行发送,通信验证模型通过通信接口接收数据,其中监控器monitor将收到数据写入计分板14和计分板14中存入值做比较,验证数据传输顺序和数值正确。
46.优选的,所述中断接口13通过以下操作而被配置:创建所述中断接口13;连接所述dut12的输出信号和所述中断接口13的中断信号;发布所述中断接口13。
47.本发明实施例通过uvm类库config_db配置中断接口。config_db可以把验证环境的一些资源配置为类似于全局变量,使得该资源对于整个验证环境来说是可见的。可以在验证环境顶层通过config_db对一些组件进行配置,组件可以在建立的阶段读取这些配置实现组件不同工作模式的切换。
48.优选的,通过uvm类库config_db的set函数发布所述中断接口之后,所述虚拟序列发生器10通过uvm类库config_db的get函数获取所述中断接口的句柄,以监测所述中断接口的电平变化。
49.虚拟接口可以提供了一个访问接口的入口,在虚拟接口配置阶段,可以通过set函数把虚拟接口的句柄放到验证环境中(例如,全局的数据库中),uvm中的组件可以通过get函数拿到虚拟接口的句柄,以对接口数据进行操作。本发明实施例优选通过上述方式配置的中断接口13,以实现模块级中断的验证平台中的组件均可以通过该中断接口13访问所述dut12执行的中断事务,以对中断事务进行验证。
50.图3是本发明实施例中断接口被配置的流程示意图,请参考图3,中断接口可以通过以下操作而被配置:
51.需要说明,本发明实施例的模块级中断的验证平台及其各组件均通过面向对象的思想进行设计,出现的函数和代码仅用于解释技术内容,不限定本发明实施例开发的撰写语言、撰写方式等。
52.步骤s11,创建所述中断接口。
53.interface intr_interface(input bit clk);
54.ꢀꢀꢀꢀ
logic intr;
55.endinterface
56.步骤s12,在验证平台中实例化所述中断接口。
57.intr_interface m_inter_if(apb_dut_master_if.pclk);
58.步骤s13,连接所述被测设计的输出信号和所述中断接口的中断信号:
59.assign m_intr_if.intr=slv_int;
60.步骤s14,通过uvm类库config_db的set函数发布所述中断接口。
61.uvm_config_db#(virtual intr_interface)::set(null,“*”,“m_intr_vif”,m_intr_if);
62.步骤s15,通过uvm类库config_db的get函数获取所述中断接口的句柄。
63.typedef virtual intr_interface v_if;
64.uvm_config_db#(virtual intr_interface)::get(m_sequencer,“*”,“m_intr_vif”,vif)
65.步骤s16,通过vif指向验证平台中具体的中断接口,从而访问其中断信号,进而进行中断功能验证。
66.进一步地,以发送完成中断为例,通过以下步骤1)-3)解释中断验证过程:
67.1)虚拟序列发生器产生总验证序列,即被测设计dut执行事务对应的激励,以控制总线验证模型中的序列发生器,产生总线验证序列,可以包括写寄存器事务包多个,由总线验证模型中的驱动器转换为总线接口信号时序,通过总线接口发送给所述dut,完成所述dut的模式参数设置,中断可被执行,发送可被执行,并将多个发送数据写入发送寄存器。监控器monitor同时将发送数据存入计分板。虚拟序列发生器同时并行监控中断接口的信号变化。
68.2)所述dut根据总线验证模型的设置将发送数据按照通信接口协议帧格式进行发送,通信接口验证模型通过通信接口接收数据,其中监控器monitor将收到数据写入计分板和步骤1)中存入值做比较,以用来验证数据顺序和数值正确性。
69.3)所述dut发送完毕产生发送中断,通过中断接口被总验证序列监控到,即中断信号由0变1,总验证序列控制总线验证模型发送验证序列,包括读寄存器事务包,判断寄存器中的中断标志位是否正确;包括写寄存器事务包,写中断清除寄存器清除发送中断。总验证序列在总线验证序列执行完毕,判断中断接口信号是否变0,表示中断被清除。
70.图4是本发明实施例提供的模块级中断的验证方法的流程示意图,请参考图1,该模块级中断的验证方法可以包括以下步骤:
71.步骤s110:被测设计dut根据验证模型的驱动,执行所述验证模型构造的序列对应的事务。
72.优选的,上所述步骤s110可以包括:所述虚拟序列发生器产生所述dut执行事务对应的激励;以及所述验证模型接收来自所述虚拟序列发生器产生的激励,构造事务对应的序列,并驱动所述dut执行对应的事务。
73.其中,所述验证模型可以包括:总线验证模型,通过总线接口与所述dut进行通信;通信验证模型,通过通信接口与所述dut进行通信。
74.针对所述验证模型,虚拟序列发生器中定义两个序列发生器句柄,句柄指向的序列类型,可以被设置为:分别符合总线验证模型和通信验证模型的序列描述,在验证平台中分别将两个句柄对应指向总线验证模型和通信验证模型的序列发生器sequencer,即将虚拟序列发生器和验证模型连接。
75.虚拟序列发生器(virtual sequencer)还可以发送不同待执行的事务验证模型,以调度验证模型对应事务的执行秩序。
76.本技术实施例的验证模型可以有多个,虚拟序列发生器可以调度被测设计dut的事务执行顺序,并产生所述dut执行事务对应的激励,发送至多个验证模型,验证模块构造事务对应的序列,并驱动所述dut执行对应的事务。
77.步骤s120:当发生中断时,所述dut通过中断接口上报对应的中断事务至所述虚拟
序列发生器。
78.优选的,所述虚拟序列发生器与所述dut直接的中断接口基于uvm类库config_db的set函数发布,所述虚拟序列发生器监测所述中断接口的电平变化包括:所述虚拟序列发生器能通过uvm类库config_db的get函数获取所述中断接口的句柄。
79.其中,针对于中断接口的详细设计请参考步骤s11-s16,此处不再赘述。
80.虚拟接口可以提供了一个访问接口的入口,在虚拟接口配置阶段,可以通过set函数把虚拟接口的句柄放到验证环境中(例如,全局的数据库中),uvm中的组件可以通过get函数拿到虚拟接口的句柄,以对接口数据进行操作。本发明实施例优选通过上述方式配置的中断接口13,以实现模块级中断的验证平台中的组件均可以通过该中断接口13访问所述dut12执行的中断事务,以对中断事务进行验证。
81.步骤s130:所述虚拟序列发生器监测所述中断接口的电平变化,以对所述dut的中断事务进行验证。
82.以实例说明,所述dut发送完毕产生发送中断,通过中断接口被总验证序列监控到,即中断信号由0变1,总验证序列控制总线验证模型发送验证序列,包括读寄存器事务包,判断寄存器中的中断标志位是否正确;包括写寄存器事务包,写中断清除寄存器清除发送中断。总验证序列在总线验证序列执行完毕,判断中断接口信号是否变0,表示中断被清除。
83.虚拟序列发生器通过对中断接口的监控,以对所述dut的中断事务进行验证。中断验证过程请参考本发明提供的模块级中断的验证平台实施例的内容,此处不再赘述。
84.据此,本发明实施例通过中断接口实现了在不与驱动器或监视器交互的情况下,将序列或组件与硬件事件进行同步,从而在序列中更方便地进行中断功能验证。本发明实施例将中断信号引入序列中。本发明实施例提供的模块级中断的验证平台架构精简,设计了实现中断信号检测和监控的记分板模型,直接对检测序列中的中断信号进行分析统计,实现了中断仿真结果的自动化检查。
85.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
86.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
87.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
88.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
89.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
90.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
91.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
92.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
93.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献