Verdi VC Apps除了能在Verdi gui中启动之外,其实还可以使用batch mode. 下面我简单介绍一下如何使用:
$VERDI_HOME/share/VIA/Apps/Bin/ 目录下有各个Apps对应的perl脚本,我们使用该脚本来启动batch mode.
以listRegisters.pl 为例:
perl $VERDI_HOME/share/VIA/Apps/Bin/listRegisters.pl
有如下输出:
[VC App]
listRegisters.pl
[Path]
/share/VIA/Apps/Bin/
[Abstract]
Run listRegisters in batch mode
[Usage]
./listRegisters.pl <design_import> \
[-target_scope <target_scope>] \
[-o <output_log>] \
[-non_reset_flop] \
[-report_sync_reset]
[Example]
./listRegisters.pl -f run.f -path Design -target_scope "tb_CPUsystem.i_CPUsystem" -non_reset_flop
[Options]
-target_scope: optional.
specify the target scope full hierarchical name to list registers.
-o: specify the output log name; default is "listRegisters.log"
-non_reset_flop: optional.
specify whether to only dump the non-resettable flop
-report_sync_reset: optional.
specify whether to dump the synchronous reset pin by the RTL coding style in the flop
如果仅仅用上面help 中提到的几个option,执行如下命令:
perl $VERDI_HOME/share/VIA/Apps/Bin/listRegisters.pl -non_reset_flop -target_scope ipsec_ss_tb_top.dut.core_0
是会报错的,因为找不到design的database
[listRegisters] Begin to list the inferred registers in the design...
[listRegisters] Target scope: ipsec_ss_tb_top.dut.core_0
novas: Please import design first!
[listRegisters]-Error. Failed to find the scope "ipsec_ss_tb_top.dut.core_0" in design.
其实listRegisters.pl 脚本隐含了一个-dbdir的option,上面的命令改为:
perl $VERDI_HOME/share/VIA/Apps/Bin/listRegisters.pl -dbdir /xxx/xxx/simv.daidir -non_reset_flop -target_scope ipsec_ss_tb_top.dut.core_0
就能正确生成
[listRegisters] Begin to list the inferred registers in the design...
[listRegisters] Target scope: ipsec_ss_tb_top.dut.core_0
[listRegisters] Write to the log file "listRegisters.log"...
[listRegisters] End...