今天,我们要学习比较重要的一个关键字。$past 的用法,今天系统学习。
1. $past 函数的核心作用
$past 用于 获取某个信号在过去指定时钟周期前的值,通常用于检查历史状态是否符合预期。
其语法如下:
$past(signal, [num_cycles], [gating_condition], [clock], [reset]);
-
必选参数:
-
signal:需要检查的历史信号或表达式。 -
num_cycles:回溯的时钟周期数(默认为 1)。
-
-
可选参数:
-
gating_condition(门控条件):仅当条件为真时,才记录历史值。 -
clock:指定时钟(默认为断言所在时钟域)。 -
reset:复位信号(复位时忽略历史值)。
-
2. 基本用法示例
场景 1:检查信号过去的值
设计规则:当 valid 为高时,当前数据 data 必须等于 2 个周期前的 data。
property check_data_stable;
@(posedge clk)
valid |-> (data == $past(data, 2)); // 检查当前 data 是否等于 2 周期前的值
endproperty
assert property (check_data_stable);
波形分析:
周期:





![[创业之路-352]:从创业和公司经营的角度看:分析美国的三大财务报表](https://i-blog.csdnimg.cn/direct/02bacb6412074880b012819d585daf3a.png)




![[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine](https://i-blog.csdnimg.cn/direct/6e8a84040dac47cc9b3071876c17ca21.png)








