完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
《我的第二个 UVM 代码——连接 interface》中直接在 testcase 里驱动 interface,当代码越来越多,需要考虑把环境拆分成多个小的环境,便于修改和维护。
如下图,定义一个 driver,并例化在testcase 里。把 interface 连接到 driver 里的 virtual interface,在 driver 里 toggle interface,实现协议功能。 第一步,在 build_phase 里连接 virtual interface。分两次,tb 到 testcase,再从 testcase里取出 interface 转存到 driver。如下图。注意,get 和 set 的路径是由几个参数共同组成的。例如,null、uvm_test_top、u_intf 组成了 uvm_test_top.u_intf。又如,this(uvm_test_top)、my_driver、u_intf 组成了 uvm_test_top.my_driver.u_intf。 在编译时可以加入+UVM_CONFIG_DB_TRACE 来打印 config_db 的 set 和 get 的详细信息。 第二步,在 driver 的 main_phase 里驱动 virtual interface。这一步与 《我的第二个 UVM 代码——连接 interface》没什么区别,只是把代码从 testcase 里移到 driver 里而已。 第三步,编译仿真。仿真命令(以 irun 为例)、波形、环境层次关系(verdi)如下。 实验代码: https://github.com/chenfengrugao/uvm_lab 总结:在本示例中没有 env、agent、sequencer、sequence 等组件,属于一个简化的验证环境,主要是由于分步演示的需要。侧面也说明UVM 是一个灵活的验证架构,可以根据自己的需要进行裁剪。 |
|
|
|
只有小组成员才能发言,加入小组>>
23156个成员聚集在这个小组
加入小组952 浏览 1 评论
1100 浏览 1 评论
12516 浏览 0 评论
5932 浏览 3 评论
17723 浏览 6 评论
1028浏览 1评论
1024浏览 1评论
952浏览 1评论
4821浏览 1评论
1101浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 00:28 , Processed in 0.845847 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号