File description:
Time:2018/01/01
Description: This scripts used to reading STA_check.csv file and parsing this file to generate get_timing_path command which used in PrimeTime to check the setup/hold violations, and write out the reports to .csv
Input CSV file(STA_check.csv):
Type,Description,Launch,From,Thr1,Thr2,Thr3,To,Capture,setup,setup_req,setup_bor,hold,hold_req
Clock,Path1,,,,,,/IDDR4CHA/DDR4CHACHAN_GUT/path1_to/cell<1>/a,clk_cap_path1,,,,,
Clock,Path2,clk_lau_path2,,,,,/IDDR4CHA/DDR4CHACHAN_GUT/path2_to/cell<2>/a,clk_cap_path2,,,,,
Clock,Path3,clk_lau_path3,/IDDR4CHA/DDR4CHACHAN_GUT/path3_from/cell<1>/a,,,,/IDDR4CHA/DDR4CHACHAN_GUT/path3_to/cell<3>/a,clk_cap_path3,,,,,
Clock,Path4,clk_lau_path4,/IDDR4CHA/DDR4CHACHAN_GUT/path4_from/cell<2>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path4_thr1/cell<3>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path4_thr2/cell<3>/a,,/IDDR4CHA/DDR4CHACHAN_GUT/path4_to/cell<4>/a,clk_cap_path4,,,,,
Clock,Path5,clk_lau_path5,/IDDR4CHA/DDR4CHACHAN_GUT/path5_from/cell<3>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path5_thr1/cell<4>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path5_thr2/cell<4>/a,,/IDDR4CHA/DDR4CHACHAN_GUT/path5_to/cell<5>/a,clk_cap_path5,,,,,
Clock,Path6,clk_lau_path6,/IDDR4CHA/DDR4CHACHAN_GUT/path6_from/cell<4>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path6_thr1/cell<5>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path6_thr2/cell<5>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path6_thr3/cell<5>/a,/IDDR4CHA/DDR4CHACHAN_GUT/path6_to/cell<6>/a,clk_cap_path6,,,,,
,,,,,,,,,,,,,
Gate,Gate_path1,clk_gate1,/IDDR4CHA/DDR4CHACHAN_GUT/gate_paht_from1/cell<4>/a,,,,/IDDR4CHA/DDR4CHACHAN_GUT/gate_paht_to_1/cell<4>/a,clk_gate_to1,,,,,
CheckListRpt.tcl
set RmPathHeader "/IDDR4CHA/"
set debug_file "./ChkPointRpt_debug.csv"
proc test {args} {
set vars(-f) "STA_check.csv"
set vars(-out) "ChkPointRpt.csv"
set vars(-d) "./ChkPointRpt_debug.csv"
#parse_proc_argments -args $args vars
#parse_proc_argments $args vars
#puts "$vars(-f)"
#puts "$vars(-out)"
if { [file exists $vars(-f)] } {
set fo [open $vars(-out) w]
set pathLib [ ReadCheckList $vars(-f)]
set pathLib [ RptTiming $pathLib]
set pathLib [ RptPtList $pathLib]
WriteCheckList $vars(-out) $vars(-d