← 2022 · ZEKU 笔试

推荐答案 测试一下

关于下面约束,说法正确的是() constraint ST{ (a==0)-> (b==0) }

C.如果b==0,则a==0
单选题 中等 笔试真题单选

参考答案

正确选项是 B。 该约束 `constraint ST{ (a==0)-> (b==0) }` 使用 SystemVerilog 蕴含操作符 `->`,其逻辑等价于 `!(a==0) || (b==0)`,即 `a!=0` 或 `b==0`。这意味着:当 `a==0` 时,`b` 必须为 0;当 `a!=0` 时,`b` 无限制(可以是 0 或非 0)。 选项 A(如果 `a!=0`,则 `b!=0`)错误:因为 `a!=0` 时约束自动满足,`b` 可以是 0,不必非 0。 选项 B(如果 `b!=0`,则 `a!=0`)正确:如果 `b!=0`,要满足 `a!=0 || b==0`,由于 `b==0` 为假,则必须 `a!=0` 为真,即 `a!=0`。注意题干选项 B 写的是“如果 b!=0,则 a!=0”,与答案一致。 选项 C(如果 `b==0`,则 `a==0`)错误:`b==0` 时,约束对 `a` 无要求,`a` 可以是任意值。 易错点:误解蕴含关系为双向等价;混淆逻辑蕴含与 if-else 语法。

涉及知识点

  • 蕴含操作符 -> 的语义与逻辑等价
  • 约束求解中条件分支的理解
  • 逆否命题的推导
  • SystemVerilog 约束基本语法
← 上一题
登录后反馈错题
下一题 →