SystemVerilog中soft软约束


soft表示的是软约束,如果在一个约束块中使用soft,那么表示这个约束块相比于没有使用soft的约束块(硬约束块)的优先级要低。
在constraint中的约束表达,可以使用soft修饰,当该约束和其他非soft约束冲突时,soft修饰的约束会失效。
要注意的是除了soft软约束块外,所有的约束块都是并行的。
如果在上面这道题中,没有soft关键字。全是硬约束块的话,那么这道题将会选B。因为没有soft关键词的话,那么第一个randomize with和题意中的randomize with的addr的约束是冲突的(不考虑第二个和第三个randomize的情况下)。在SV中只要有一个约束不满足选项或者起冲突的话,那么这个随机数过程就是失败的,编译的结果就是报错。
soft约束如果和其他硬约束冲突的话,soft约束会失效。
如果soft约束和其他硬约束没有冲突的话,则soft软约束和其他硬约束的交集则为约束后的值。
如果硬约束之间有冲突的话,仿真器会直接报错。
浙公网安备 33010602011771号