我有一个项目:
gulp.task('qr-task', gulp.series('md-task', 'js-task', function(done) {
gulp.src(src + '/*.qr')
.pipe(plugin())
.pipe(gulp.dest(dist));
done();
}));
在我的序列中的某个地方,我想约束class my_item extends uvm_sequence_item;
rand logic [31:0] addr;
...
endclass
的一部分:
addr
SV my_item temp_item;
temp_item = my_item::type_id::create("temp_my_item");
int mem_end_addr = 0x1234_5678;
temp_item.randomize() with {
...
addr[15:8] > mem_end_addr[15:8]; //---->>> does this work?
...
};
能够处理randomize()
字段的这种子选择吗?
答案 0 :(得分:0)
SystemVerilog并不关心哪些位被约束,只是约束表达式必须为true。这就是为什么您应该始终在测试返回值的条件语句中调用randomize()
的原因。
答案 1 :(得分:0)
是的,应该可以。由于您仅对位[15:8]有限制,因此将相应地生成那些位,而其他位将尽可能地是随机的。