#SVA语法滴水穿石# (006)关于 `define true 1的用法

在 SystemVerilog 断言(SVA)中,使用 ##n 是实现固定周期延时的标准方式。但若需要 动态控制延时长度 或 基于条件选择延时周期,可以结合 宏定义 true(如 define true 1`)或布尔表达式来实现灵活的逻辑控制。

1. 基本概念

  • ##n 语法
    表示固定延时 n 个时钟周期,例如 req ##2 grant 表示 req 后 2 个周期 grant 必须有效。

  • true 表达式
    若定义 define true 1,则 true在代码中被替换为1,可用于动态生成延时长度(如 ##(n*``true))。 **注意**:在 SVA 中直接使用 11'b1` 更常见,但此处假设通过宏定义增加可读性。

2. 使用 true 实现动态延时

场景描述
  • 设计需求:根据配置参数 DELAY_MODE 选择延时周期:

    • DELAY_MO

你可能感兴趣的:(SVA,SVA)