完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我是一哥,上章介绍了构成uvm测试平台的主要组件?最后,我们将一个典型的uvm平台进行最简化,从本章我们开始搭建一个可以运行的uvm测试平台。
本节课的重要内容是事物级建模,建用户所需的transaction,以及创建用于产生事物的事物发生器sequence。 在uvm验证平台中穿梭各个组件之间的基本信息单元是一个被称为transaction的数据对象,也就是我们前面所说的事物对象,就是transaction。 验证工程师需要根据不同的项目对项目中的事务进行建模,事物对象的类需要从uvm sequence item这个基类进行扩展,为了事物在产生的时候可以自动的随机化,一般需要为它的类成员指定random属性。 代码是如何实现的? 首先,我们说事物类需要从uvm sequence item进行扩展,然后定义事物所具备的属性,那么这里使用一个简单的例子来说明。 假定该事物有三个属性,sa代表的是原地址,da代表的是目标地址,vocalute则是传输的数据,不要忘了为他们指定random属性使它们在产生的时候可以随机化。 接下来,使用了uvm提供的一些宏,那么这些宏的作用现在不必深入的了解,而只需要明白它是将当前所建立的事物类通知给uvm。告诉uvm,你需要为我做一些事情,那么具体的事情uvm会帮你完成。 然后,为了保证事物在随机的时候不会没有限制,在这里为它添加约束,指定成员的随意条件以及随机范围,比如例子当中,限制sa的值只能在0-15之间随机,限制pillow的这个队列当中,最大的内容为四个,最小为两个。 然后写构造函数,参数,name是实例化时为该对象指定的名字。 当事物模型创建好了之后,需要为它创建对应的事物发生器,在uvm当中,这个事物发生器叫做sequence,在平台的运行过程当中,只有启动了某个sequence,才会产生相应的事物对象,创建对应的sequence需要注意sequence需要从uvm sequence扩展。sequence的作用是用来产生事物的,并且可以控制事物何时产生合何时结束。一般来说使用一种sequence来产生一种类型的事物,一种sequence产生多种事物这种情况比较复杂。Sequence中最重要的部分就是body任务,对事物的控制和事物的产生都是在这个任务中完成的,因此,写好body任务是关键。 用张图来说明sequence与sequence item之间的关系,当一个sequence被启动之后,它会按照body函数当中的功能,依次产生多个相同类型的事物对象,可以将sequence看作是存储并且管理着一系列事物的仓库。 下面我们来看一看代码是如何实现的: 首先sequence需要从uvm sequence扩展,uvm sequence是一个带有参数的基类,该参数是指定sequence所产生的事物类型。 这里,我们指定刚刚所创建的事物类my transaction,sequence在被启动之后所产生的事物对象的类型就是my transaction。与之前类似,这里使用uvm提供的宏,将该sequence注册到uvm当中,接着,完成该类的构造函数,然后就是sequence当中一个极为重要的任务body任务,这个任务需要验证工程师自己完成,里边所实现的功能,就是事物的产生以及对事物的控制,在智能代码中前后有两个if语句,这里先不用管,它的功能是控制验证平台何时结束。 在来看看repeat语句当中的内容,repeat的语句中使用了uvm do这个uvm内建的宏,这个宏的作用是产生事物对象,并且是每调用一次产生一个事物对象,宏当中的参数iq是指向产生事物对象的指针,也就是说,我们可以通过iq来访问产生的事物对象,这个宏在这里被repeat了十次,所以说一共会产生十个事物。 总的说,这个sequence的功能十分简单,当被启动之后产生十个事物对象,然后停止仿真。到这里我们就完成了事物建模以及产生事物的sequence。 本章内容就介绍到这里!!! 未完(待更)....... |
|
相关推荐
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
1213 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1025 浏览 0 评论
2279 浏览 1 评论
1996 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2249 浏览 0 评论
1771 浏览 46 评论
6000 浏览 113 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 11:29 , Processed in 0.712532 second(s), Total 51, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号