使用cloking block进行信号的同步
在cloking block,所有信号的采样和驱动,都是和时钟同步的
clocking cb @(posedge clk);
input grant;
output request;
endclocking
用@和wait来同步测试平台中的信号
@bus.cb;
采样沿之前的值,驱动沿之后的值
cb中input可读不可写,dut的信号影响cb的相应信号
output可写不可读,cb的信号影响dut的相应信号,读dut的信号
cb中output信号赋值驱动必须要用非阻塞赋值
在cb中,采样(input)和驱动(output):
同步后的采样信号,都是前一状态的值
同步后的驱动信号,都是当前状态的值
默认输入偏差为1step,输出偏差为#0
改变默认的方法:cb中加default input #2 output #2;
logic不能被inout驱动
SV中没有明确定义如何驱动接口中的异步双向信号,故使用的方式:
连续赋值语句assign
虚接口
program中不支持always块
引用信号写为arbif_DUT.grant