要不以后就做SOC 验证吧,感觉工作中一直没有自己搭UVM TB的经历,每次遇到UVM TB的问题, 都会“秋天墨墨向昏黑”,唯一的积累来自 e公司AE 提供的一个小环境,今天再次拎出来,看了半天,感觉已经彼此不认识了。
小环境如上图所示,
DUT 是一个寄存器为AXI 接口的UART 模块,模式是DTE(数据终端设备),验证环境挂了个AXI master vip, 又挂了个 DCE(数据通讯设备) 模式的UART VIP, 可以举这样一个例子,DCE 向 DTE发送数据,AXI maste 读 DTE DATA 寄存器来取得数据,这部分scb 可以这样设计,
在SCB里实现 write_initiated() 函数,取得AXI master 的TR,同时实现 write_response()函数,取得DCE 的 TR,
write_xxx()函数的调用在对应的monitor里,如
axi_system_env.master[i].monitor 和 dce_agent.monitor;
书上说,
SCB 比较的数据,一来自 reference model, 二来自o_agt 的 monitor.前者通过 exp_port获取,后者通过 act_port 获取,
对应到这个实际应用,SCB 比较的数据,一来自 DCE VIP 的 svt_uart_transaction, 二来自AXI master VIP 的svt_axi_transaction,
先到这里,希望面试的时候可以起作用。
UVM SCB学习001
最新推荐文章于 2024-03-12 10:51:56 发布