← 2022 · 海思 笔试

推荐答案 测试一下

class C1;

A.m>=10 B.m<=10 C.m=10 D.解约束失败
单选题 中等 笔试真题单选

参考答案

正确答案是A。派生类C2中定义了与基类C1同名的约束c1_cons,根据SystemVerilog的约束覆盖规则,派生类中的约束会完全覆盖基类中的同名约束,而不是合并。因此,基类中的约束`m<=10`被忽略,仅保留派生类中的约束`m>=10`。由于`m`是`rand int`类型,没有其他约束限制,随机化时`m`可以在满足`m>=10`的范围内取值(如10, 11, 100等),不会导致解约束失败。选项B(m<=10)是基类约束,因覆盖而无效;选项C(m=10)只有在两个约束同时生效且取交集时才会得到,但此处是覆盖而非叠加;选项D(解约束失败)错误,因为存在可行解。

涉及知识点

  • SystemVerilog约束覆盖
  • 类的继承与约束同名覆盖规则
  • 约束求解与随机化
← 上一题
登录后反馈错题