在不同的simulation中的capturing switching activity:
SAIF:Switching Activity Interface Format,包含toggle counts和static probabilities。
RTL中的SAIF文件包含primary input,hierarchical port,sysnthesis-invariant单元如sequential elements。
block box cells,tristate cell,latches,retention registers,clock-gating cell等。
不包含integrated clock-gating cells和latch-based isolation cells等。
VCD:Verilog Change Dump format,是一种event-based format,包含每个value change以及他们的time。
read_vcd -rtl表示输入的是rtl的activity文件。进行average分析。
-zero_delay表示输入的是netlist文件,但是并没有sdf文件的。进行cycle_accurate分析。
什么都不加时,表示进行基于event的分析。
在进行synthesis时,可能会使得一些rtl synthesis invariants的模块(register outputs,primary inputs,tristate,black boxes)
等的名字被改变,所以需要一个mapping文件来进行match RTL activity到gate_level component。
PTPX提供了三种方式:
1)set_rtl_to_get_name命令。
2)exact name mapping
3)default name mapping。
在综合的过程中,如果使用DC工具,可以生成一个map-file,包含很多set_rtl_to_gate_name命令来保证netlist与rtl的一致。
如果没有这个map-file就需要人为的设置很多这样的命令,如果工具仍然发现一个mismatch,那会使用PTPX内建的机制,来进行map。
经过这些操作,仍然mismatch,PTPX就不会在RTL activity file上反标这个object。
set_rtl_to_gate_name -rtl{a} -gate{a_reg}
当map一个RTL的寄存器时,工具实现Q pin和QB pin的标注。
PTPX支持one-to-many的mapping,如在插入Clock Tree Synthesis Buffer时,一个RTL clock可以map所有的buffer。
但是不支持多个RTL object map到一个netlist的object上。
Exact name mapping是区分大小写的,一般情况下,要将cell和pin的exact name map打开,关闭net的exact name map,
因为同一个net名字,可能已经经过了invert。
命令 power_disable_exact_name_match_to_net。
default mapping方式,
1)将RTL hierarchy map到flatten gate_level object上,用“_”代替“/”。
2)RTL的寄存器map到gate_level的object上,用_reg后缀。
3)bus上的"[]"号,map为"_",a[7]map为a_reg_7_。
Name Mapping report:
report_name_mapping,生成一个RTL与netlist之间的通过set_rtl_to_gate_name命令设置的map报告。
report_activity_file_check,列出activity file中所有的RTL name。