VCS 使用 +ntb_random_seed 指定随机种子跑仿真
Makefile
1
2
3
4
5
6
7
8
|
# 使用随机种子
RANDOM_SEED := +ntb_random_seed=$(shell echo $$((1 + RANDOM % 10000)))
# 使用固定种子
# RANDOM_SEED := +ntb_random_seed=7618
# 不使用随机种子, 使用默认种子 即为0
# RANDOM_SEED :=
all:
./simv -l xxx.log +UVM_TESTNAME=abc $(RANDOM_SEED)
|
如果不指定 +ntb_random_seed 系统默认随机种子为 0
testbench 获取随机种子以便记录
1
2
3
4
5
6
|
int seed;
initial begin
$value$plusargs("ntb_random_seed=%d", seed);
`uvm_info("get random seed", $sformatf(" seed: %d", seed), UVM_LOW);
run_test(); // 由Makefile 的 +UVM_TESTNAME 指定
end
|
如此这般, 随机种子就已经记录在log 文件里了, 如果需要DEBUG 的话, 再指定log 中的随机种子即可复现问题