写在前面:之前的博客都是纯理论,虽然基础理论也很重要,但是最近几个月的实习,让我越来越感受到把理论(包括对SV语法的掌握,以及UVM体系的理解)转化成Coding不是一蹴而就的。所以决定把近期所学整理成一个“Hands-on Coding”系列,便于学习与进步。
一 Harness Interface的基本结构
Harness interface一般包含以下部分:
- 实例化一个或多个interface。这些interface的接口信号要么来自harness interface的port signals(如sclken),要么直接来自dut自己的接口信号,或dut内部的信号(如dig_qspi.qspi_hclk, dig_qspi.***.***信号)
- 一般的interface会有的部分:timeunit和timeprecision定义,always block…
- set_vif function的定义,用config_db把内部的几个interface set出去,在tb中调用,通过设置set_vif的arguments来设置set的路径(如传给test_top)