SVA 中的门级时序检查
Gate-level timing checks in SVA
我需要在时钟边沿出现一定时间后检查信号值。例如,我想检查信号 b 在 posedge 时钟出现后是否断言为高 1ps。
SVA 是否为此提供语法?
system-verilog-assertions were not intended for use as gate-level timing checks. Verilog already provides a number of built-in and optimized timing checks like $setuphold and $skew. See section 31. Timing checks in the IEEE 1800-2017 SystemVerilog LRM.
时序检查通常表示为限制——断言发生在时钟边沿后 least 1ps,或发生在时钟边沿后 most 1ps时钟边沿。此外, 必须 b
在每个时钟边沿之后被断言?不管这些问题的答案如何,都可以使用 SVA 对时序检查进行建模,但您必须根据实际需求手动创建方程式。例如
property p;
realtime timestamp;
@(posedge c) ($rose(a), timestamp = $realtime) =>
@(posedge b) $realtime - timestamp < 1ps;
endproperty
我需要在时钟边沿出现一定时间后检查信号值。例如,我想检查信号 b 在 posedge 时钟出现后是否断言为高 1ps。
SVA 是否为此提供语法?
system-verilog-assertions were not intended for use as gate-level timing checks. Verilog already provides a number of built-in and optimized timing checks like $setuphold and $skew. See section 31. Timing checks in the IEEE 1800-2017 SystemVerilog LRM.
时序检查通常表示为限制——断言发生在时钟边沿后 least 1ps,或发生在时钟边沿后 most 1ps时钟边沿。此外, 必须 b
在每个时钟边沿之后被断言?不管这些问题的答案如何,都可以使用 SVA 对时序检查进行建模,但您必须根据实际需求手动创建方程式。例如
property p;
realtime timestamp;
@(posedge c) ($rose(a), timestamp = $realtime) =>
@(posedge b) $realtime - timestamp < 1ps;
endproperty