formality check rtl2netlist 时候可能会出现stuck at verify 阶段,这种形况是rtl 中的一些code 很复杂, formality 不能解读。这时有两种解决方法:
1.在timing 满足的形况下,重新进行综合,在综合的过程中设置如下params
set_verification_priority [get_cells {$cell_name}] 或者set_verification_priority [get_references $ref_name -hierarchical] -high
其中的cell_name 和ref_name 可以在formality 中找到
2.更改verification strategy,需要使用到之前fail 的formality session
>module load formality/version
>source parallel.tcl
其中parallel.tcl 中的内容如下:
set verification_timeout_limit 24:0:0
set_run_alternate_strategies_options -max_cores 4 -protocol LSF -submit_command "bsub -q $q_name"
run_alternate_strategies -session rtl2netlist_fail_session.fss
exit
当执行上面的parallel run 之后会得到一个可以pass 的strategy ,这时我们在正常的flow 中设置上这个strategy 就可以了,默认的strategy 是none
set_app_var verification_alternate_strategy s10
printvar verification_alternate_strategy_names 可以查看有哪些策略