← 2022 · ZEKU 笔试

推荐答案 测试一下

在时钟上升沿时采样别start有效开始,两个时钟周期后,信号“a”连续或者间断地出现3次为高电平,紧接着信号“stop”在下一个时钟周期为高电平,转换成断言描述。以下哪个是正确的

A. property p0: @(posedge clk) $rose (start)1  ##2 (a[=>3]) ##1 stop endpropery B. property p0: C property p0: D. property p0:
单选题 中等 笔试真题单选

参考答案

正确选项为 D。 原题描述:在时钟上升沿采样到 start 有效($rose(start))后,延迟两个时钟周期(##2),随后信号 a 连续或间断地出现 3 次高电平,紧接着下一个时钟周期 stop 为高电平。这对应一个序列:start 上升沿 → ##2 → (a 恰好出现 3 次,允许间隔,且最后一次出现后下一个时钟沿立即为 stop 高) → stop。 选项 A 使用了 [=>3](非连续重复,允许最后一次重复后有任意空闲周期),但这不符合“紧接着” stop 的要求;且语法中有多余字符“1”和拼写错误。 选项 B 使用了 [*3](连续重复),要求 a 连续 3 个周期为高,不符合“连续或间断”的条件。 选项 C 使用了 [=>3](同 A),且 start 拼写错误为 star,重复类型错误。 选项 D 使用了 [=3](go-to 非连续重复),该操作符要求 a 出现 3 次后,下一个时钟沿必须立即匹配后续序列(这里是 ##1 stop),符合“紧接着”的描述。同时使用蕴含操作符 |-> 正确表达了“当 start 上升沿发生时开始检查”的触发条件。语法正确。 因此 D 正确。

涉及知识点

  • SystemVerilog 断言重复操作符
  • 非连续重复 [=>n] 与 go-to 重复 [=n] 的区别
  • 序列蕴含操作符 |-> 与 |=>
  • 断言中时序延迟 ## 的使用
← 上一题
登录后反馈错题
下一题 →