VCS 使用 +ntb_random_seed 指定随机种子跑仿真

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 中的随机种子即可复现问题

Licensed under CC BY-NC-SA 4.0