写testbench最最核心的部分就是发激励,今天用一个简单的示例来介绍如何在uvm里给rtl发激励。
第一步,先来定义interface,如下。
interface是sv的一个关键字,级别等同于module,所以与module是并列的,一般单独写一个文件。
第二步,在testbench里实例化interface,并连接interface与rtl。
既然interface与module同级,实例化时就不能忘记括号。由于大部分信息不需要引到interface端口上,所以看上起来有点不太像模块例化。
第三步,把interface实例化对象传递到uvm。
在run_test()之前,通过uvm里的函数uvm_config_db::set()函数把interface存储到指定的存储路径。
第四步,在uvm里读取interface,并存储到virtual interface里。
从名字上看,config_db是一种存储配置信息的数据库(类似全局变量,可以想象成一个关联数组),要正确存储和读取数据,需要类型和存储路径同时正确。v_intf有点像是一个指针,把读取的数据存到这个指针对应的存储空间里。
第五步,驱动v_intf的信号。
先初始化所有的信号。由于virtual interface指向了前面实例化的interface,给virtual interface赋值,等同于给真实的interface的信号赋值。
随机发一些激励,这部分与纯sv的写法没有差别。
仿真结果
离岸石油和天然气平台释放的甲烷量在持续增加
负电压是怎么产生的?如何从正电压电源获得负电压?
2018年十大科技趋势以及规律背后的范式转移
智能执法辅助机器人正式上岗服务大众 开启了智慧口岸建设
缩水至骁龙625,小米Max2不如一代?
我的第二个UVM代码—连接interface
带有流体阻抗测量的电磁流量计的原理及设计
有机焊盘栅格阵列OLGA及其应用
TMS Software:TMSBIZ产品——TMSScripter
一文了解分子束外延(MBE)技术
云游戏险成过去式 5G让云电脑又成玩家新宠
安徽2020年5G基站超额完成建设任务
瑞萨电子推出支持智能电表国际标准(DLMS)的RL78/I1C系列微控制器
NVIDIA GPU加速AI推理洞察,推动跨行业创新
WCDMA无线通信系统的空时处理技术
怎样更改Microsoft Office 2007的颜色
将高科技融入电梯中,镜面显示屏带来了更多便利
好礼丨联接ams OSRAM,感知硬科技未来 @2023MWC上海
KEIL5如何打开KEIL4的GD工程
“贸易战”开打!除了半导体,还有哪些商品也受影响?