• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

SystemVerilog中soft软约束

soft表示的是软约束,如果在一个约束块中使用soft,那么表示这个约束块相比于没有使用soft的约束块(硬约束块)的优先级要低。
在constraint中的约束表达,可以使用soft修饰,当该约束和其他非soft约束冲突时,soft修饰的约束会失效。
要注意的是除了soft软约束块外,所有的约束块都是并行的。

如果在上面这道题中,没有soft关键字。全是硬约束块的话,那么这道题将会选B。因为没有soft关键词的话,那么第一个randomize with和题意中的randomize with的addr的约束是冲突的(不考虑第二个和第三个randomize的情况下)。在SV中只要有一个约束不满足选项或者起冲突的话,那么这个随机数过程就是失败的,编译的结果就是报错。

soft约束如果和其他硬约束冲突的话,soft约束会失效。
如果soft约束和其他硬约束没有冲突的话,则soft软约束和其他硬约束的交集则为约束后的值。
如果硬约束之间有冲突的话,仿真器会直接报错。

posted on 2022-09-17 15:34  SOC验证工程师  阅读(5609)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3