|
发表于 2021-11-2 13:48:39
|
显示全部楼层
二楼说法是错误的,三楼是对的,sv 2012 版本的LRM对multi-clock有了很强的支持
具体代码如下:
`timescale 1ns/1ps
property p_time_check;
time t1, t2;
@(posedge sig1) (1, t1=$time) |-> @(posedge sig2) (1, t2=$time, check_time(t1, t2));
endproperty
a_time_check : assert property p_time_check ;
automatic function void check_time(input time t1, input time t2);
if (t2-t1>15)
$display("[ERROR] t1:%0d, t2:%0d", t1, t2);
else if (t2-t1<10)
$display("[ERROR] t1:%0d, t2:%0d", t1, t2);
else
$display("[PASS] t1:%0d, t2:%0d", t1, t2);
endfunction
|
|