System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于UVM的水平复用平台及其构建方法技术_技高网

一种基于UVM的水平复用平台及其构建方法技术

技术编号:41391408 阅读:5 留言:0更新日期:2024-05-20 19:13
本发明专利技术属于密码算法验证技术领域,公开一种基于UVM的水平复用平台及其构建方法,其中构建方法包括:调用UVM中的序列发生组件、驱动组件、监控组件、参考模型组件和计分板组件构建水平复用平台;对水平复用平台进行参数化验证,对水平复用平台内部对象重复利用;在水平复用平台中,对多个测试平台中不相同的部分进行封装,相同的部分封装为完整的验证环境;定义水平复用平台中采用工厂机制替换验证环境中的实例或者已经注册的类型,并进行实例创建;定义水平复用平台采用层次化序列。本发明专利技术搭建出高质量的可复用验证平台,提高UVM代码的复用水平,避免重复的开发工作,可以大大提高验证平台的搭建效率。

【技术实现步骤摘要】

本专利技术属于密码算法验证,特别涉及一种基于uvm的水平复用平台及其构建方法。


技术介绍

1、uvm(universal verification methodology,通用验证方法学)是一个以systemverilog为主体的验证平台开发框架,利用其可重用组件可以构建具有标准化层次结构和接口的功能验证环境。uvm是一个库,在这个库中,使用类(class)来实现的。

2、使用uvm的第一条原则是:验证平台中所有的组件都应该派生自uvm中的类。当要实现一个功能时,首先应该想到的就是从uvm的某个类派生出一个新的类,类中可以有成员变量,也可以有函数和任务,通过成员变量、函数或任务实现所期望的功能。面向对象的三个基本特征是:封装、继承、多态。封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是:代码复用。而多态则是为了实现另一个目的—接口重用,多态的作用,就是为了类在继承和派生的时候,保证使用任一类的实例的某一属性时的正确调用。由于面对对象方法的这些特点,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上,通过复用、扩展和细化来进行;这样,大大减少了重写新代码的工作量,降低了程序设计过程中出错的可能性,达到事半功倍的效果。

3、现有的uvm验证模型中并没有提出复用平台,在uvm验证平台中,复用是提高uvm验证平台质量与验证生产效率的关键技术。现有技术中不够关注system verilog语言中定义的语义,对uvm验证平台的复用价值也没有充分利用,尤其是面向对象技术所独有的多态、继承、封装等新特点,生成了更多可利用的复用空间。


技术实现思路

1、针对上述问题,本专利技术提供一种基于uvm的水平复用平台及其构建方法,采用以下技术方案:

2、一种基于uvm的水平复用平台的构建方法,包括以下步骤:

3、调用uvm中的序列发生组件、驱动组件、监控组件、参考模型组件和计分板组件构建水平复用平台;

4、对水平复用平台进行参数化验证,通过传递参数实际值对水平复用平台内部对象重复利用;

5、在水平复用平台中,定义采用回调函数机制对多个测试平台中不相同的部分进行封装,相同的部分封装为完整的验证环境;

6、定义水平复用平台中采用工厂机制替换验证环境中的实例或者已经注册的类型,并进行实例创建;

7、定义水平复用平台采用层次化序列,包括等级序列、虚拟序列和分层序列。

8、进一步的,对水平复用平台进行参数化验证,通过传递参数实际值对水平复用平台内部对象重复利用,包括以下步骤:

9、在编译阶段与建模阶段,使用config_db机制对虚拟接口进行参数化;

10、对于序列发生组件,指定事务的类型,在进行使用或者派生参数化的序列发生组件中,通过配置参数生成数据包。

11、进一步的,在水平复用平台中,定义采用回调函数机制对多个测试平台中不相同的部分进行封装,相同的部分封装为完整的验证环境,包括以下步骤:

12、在参数化验证后的水平复用平台中,内嵌uvm callback函数或任务;建立一个uvmcallback空壳类;

13、从uvm callback空壳类中扩展uvm_callback类,使用宏`uvm_register_db在水平复用平台各组件中登记uvm_callback,使用宏`uvm_do_callbacks在组件中行为之前或者之后嵌入callback函数或者任务;

14、在验证环境中创建并登记uvm callback实例,在测试用例中创建并例化callback对象,调用uvm_callbacks#(t,cb)::add(t,cb)将callback对象添加到test;

15、其中,uvm_callbacks#(t,cb)::add(t,cb)中其几个参数的含义如下:t:表示回调类所在的组件名,即实现callback机制的组件名,回调类与组件类在同一组件文件中;cb:表示空壳回调类的类名;t:表示回调类所在的组件的实例名,也就是组件的对象名;cb:表示回调类的实例名,也就是对象名。

16、进一步的,定义水平复用平台中采用工厂机制替换验证环境中的实例或者已经注册的类型,并进行实例创建,包括以下步骤:

17、将类注册到工厂,通过uvm_component_utils()注册组件类uvm_component,通过uvm_object_utils()注册核心基类uvm_object;

18、对于注册组件类uvm_component和注册核心基类uvm_object,通过set_type_override_by_type函数对重载的类进行全局覆盖,通过set_type_override_by_type函数对重载的类进行局部覆盖;

19、基于重载后的注册组件类uvm_component和注册核心基类uvm_object,通过调用create()函数进行实例创建。

20、进一步的,其中,等级序列包括top_seq和reg_cfg_seq,单元序列包括clk_rst_seq,reg_test_seq,reg_wr_seq和reg_rd_seq。

21、进一步的,定义水平复用平台采用层次化序列包括通过抽象层次化序列来模拟协议层次,包括:

22、构建出transaction layer、transport layer和physical layer的事务转化。

23、进一步的,在等级序列top_seq中,通过对clk_rst_seq和reg_test_seq这两个单元序列进行组合和随机化赋值。

24、进一步的,在单元序列的例化和传送item时,通过随机化的bus_trans中的域来实现不同命令和数据内容。

25、进一步的, `uvm_component_utils()包括m_uvm_component_registry_internal(t,t) 和m_uvm_get_type_name_func(t)。

26、进一步的,配置参数生成数据包,包括:

27、通过配置参数生成crc错误包、sfd错误包、preamble错误包、crc与sfd同时错误包、sfd与preamble同时错误包和crc、sfd与preamble同时错误包。

28、进一步的,配置参数生成数据包,还包括:

29、通过配置参数来控制错误包的占总包数的比例;

30、通过配置参数选择要发送的数据是随机化的还是从文件读取;

31、通过配置参数选择是否将发送出去的包写入文件中;

32、通过配置参数选择长包、中包、短包各自的阈值长度;

33、通过配置参数选择长包、中包、短包的发送比例;

34、通过配置参数选择是否在包的负载中加入当前要发送的包的序号。

<本文档来自技高网...

【技术保护点】

1.一种基于UVM的水平复用平台的构建方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于UVM的水平复用平台的构建方法,其特征在于,对水平复用平台进行参数化验证,通过传递参数实际值对水平复用平台内部对象重复利用,包括以下步骤:

3.根据权利要求1所述的基于UVM的水平复用平台的构建方法,其特征在于,在水平复用平台中,定义采用回调函数机制对多个测试平台中不相同的部分进行封装,相同的部分封装为完整的验证环境,包括以下步骤:

4.根据权利要求1所述的基于UVM的水平复用平台的构建方法,其特征在于,定义水平复用平台中采用工厂机制替换验证环境中的实例或者已经注册的类型,并进行实例创建,包括以下步骤:

5.根据权利要求1所述的基于UVM的水平复用平台的构建方法,其特征在于,其中,等级序列包括top_seq和reg_cfg_seq,单元序列包括clk_rst_seq,reg_test_seq,reg_wr_seq和reg_rd_seq。

6.根据权利要求1所述的基于UVM的水平复用平台的构建方法,其特征在于,定义水平复用平台采用层次化序列包括通过抽象层次化序列来模拟协议层次,包括:

7.根据权利要求5所述的基于UVM的水平复用平台的构建方法,其特征在于,在等级序列top_seq中,通过对clk_rst_seq和reg_test_seq这两个单元序列进行组合和随机化赋值。

8.根据权利要求5所述的基于UVM的水平复用平台的构建方法,其特征在于,在单元序列的例化和传送item时,通过随机化的bus_trans中的域来实现不同命令和数据内容。

9.根据权利要求4所述的基于UVM的水平复用平台的构建方法,其特征在于,uvm_component_utils()包括m_uvm_component_registry_internal(T,T)和m_uvm_get_type_name_func(T)。

10.根据权利要求2所述的基于UVM的水平复用平台的构建方法,其特征在于,配置参数生成数据包,包括:

11.根据权利要求10所述的基于UVM的水平复用平台的构建方法,其特征在于,配置参数生成数据包,还包括:

12.根据权利要求1-11任一所述的基于UVM的水平复用平台的构建方法,其特征在于,还包括以下步骤:

13.一种基于UVM的水平复用平台,其特征在于,通过权利要求1-12任一所述的基于UVM的水平复用平台的构建方法获得,包括水平复用平台序列发生组件、驱动组件、监控组件、参考模型组件和计分板组件;

...

【技术特征摘要】

1.一种基于uvm的水平复用平台的构建方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于uvm的水平复用平台的构建方法,其特征在于,对水平复用平台进行参数化验证,通过传递参数实际值对水平复用平台内部对象重复利用,包括以下步骤:

3.根据权利要求1所述的基于uvm的水平复用平台的构建方法,其特征在于,在水平复用平台中,定义采用回调函数机制对多个测试平台中不相同的部分进行封装,相同的部分封装为完整的验证环境,包括以下步骤:

4.根据权利要求1所述的基于uvm的水平复用平台的构建方法,其特征在于,定义水平复用平台中采用工厂机制替换验证环境中的实例或者已经注册的类型,并进行实例创建,包括以下步骤:

5.根据权利要求1所述的基于uvm的水平复用平台的构建方法,其特征在于,其中,等级序列包括top_seq和reg_cfg_seq,单元序列包括clk_rst_seq,reg_test_seq,reg_wr_seq和reg_rd_seq。

6.根据权利要求1所述的基于uvm的水平复用平台的构建方法,其特征在于,定义水平复用平台采用层次化序列包括通过抽象层次化序列来模拟协议层次,包括:

7.根据权利要求5所述的基于uvm的水平复用平台的构建方法,其...

【专利技术属性】
技术研发人员:倪园慧刘光宇马盼林子明
申请(专利权)人:北京全路通信信号研究设计院集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1