在 SystemVerilog 中,断言(Assertion)是一种用于验证设计行为的强大工具。断言语句用于描述预期的设计行为,并在运行时进行验证。在 SystemVerilog 中,我们可以使用两种类型的断言:立即断言(Immediate Assertion)和并发断言(Concurrent Assertion)。
立即断言是一种在仿真运行时立即执行的断言。它指定了一个条件,如果该条件为真,则断言成功,仿真继续进行;如果条件为假,则断言失败,仿真停止,并将错误信息输出到仿真日志中。立即断言可以用于验证设计的功能正确性、约束条件和时序要求。
下面是一个使用立即断言的示例,我们将使用立即断言来验证一个计数器设计的功能是否正确:
module Counter (
input logic clk,
input logic reset,
output logic [3:0] count
);
always_ff @(posedge clk or posedge reset) begin
if (reset)
count <= 0;
else
count <= count + 1;
end
initial begin
$display("Start of