SEED = $$RANDOM
INC = +incdir+../rtl +incdir+../tb +incdir+../test
comp = ncverilog +access+rwc -uvm -coverage all -seed $(SEED) $(INC) ../tb/top.sv
logs=mkdir logs;mv test_case* ./logs
test1:
$(comp) +UVM_VERBOSITY=UVM_MEDIUM +UVM_TESTNAME=test_case_1;
mkdir test_case_1_$(SEED);
mv cov_work ./test_case_1_$(SEED);
mv ncverilog.log NCVERILOG_$(SEED).log
mv *.log ./test_case_1_$(SEED)
$(logs)
这里" SEED"是指随机数:
make test1 SEED=23679
我将同样在终端中运行目标test1
。但问题是在这里我想通过使用任何条件循环运行该目标10次。如果我想再次运行test1
第二次,我需要这样做:
make test1 SEED=40244
第3次:
make test1 SEED=87797
第四次:
make test1 SEED=5489
同样,每次我需要在终端中给出种子值。我不希望它像那样,如果有任何条件循环运行test1
10次,使用10种不同的种子,这会为我减少很多时间。
答案 0 :(得分:0)
seeds.txt
:
23679
40244
87797
5489
仅make test1
从SEED
执行seeds.txt
执行cat seeds.txt | while read in; do make test1 SEED=$in; done
:
make test1
执行SEED
,seeds.txt
取自cat seeds.txt | while read in; do seq 10 | xargs -I -- make test1 SEED=$in; done
10次:
table1 A:1
table2 A:A
欢迎你。