set f [open output.txt w]
set pa1 [get_timing_paths \
-from START_POINT \
-to END_POINT \
-start_end_pair]
#set pa1 [get_timing_paths -from START_POINT -to END_POINT -start_end_pair -group CLK_NAME]
foreach_in_collection p1 $pa1 {
#Get slack
set slack1 [get_attribute $p1 slack]
##Get startpoint
set sp_m [get_attribute [get_attribute $p1 startpoint] full_name]
set sp [string trimright $sp_m "\/clk"]
##Get Endpoint
set ep_m [get_attribute $p1 endpoint]
set ep [get_cell -of_object $ep_m]
##Getting the prev stage margin: slack, cell
set sp_pa1 [get_timing_path -to $sp/d]
set sp_pa1_slack [get_attribute $sp_pa1 slack]
set ep_sp_pa1 [get_attribute $sp_pa1 endpoint]
set ep_sp_pa1_cell [get_cell -of_objects [get_pin $ep_sp_pa1]]
set ep_sp_pa1_cell_slack [get_attribute [get_timing_path -to $ep_sp_pa1_cell] slack]
##Getting the next stage margin: slack, cell
set ep_pa1 [get_timing_path -from [get_attribute $ep full_name]/clk]
set ep_pa1_slack [get_attribute $ep_pa1 slack]
set sp_ep_pa1 [get_attribute $ep_pa1 startpoint]
set sp_ep_pa1_cell [get_cell -of_objects [get_pin $sp_ep_pa1]]
set sp_ep_pa1_cell_slack [get_attribute [get_timing_path -to $sp_ep_pa1_cell] slack]
puts $f "$sp [get_attribute $ep full_name] $slack1 $sp_pa1_slack $ep_pa1_slack"
}
close $f
set pa1 [get_timing_paths \
-from START_POINT \
-to END_POINT \
-start_end_pair]
#set pa1 [get_timing_paths -from START_POINT -to END_POINT -start_end_pair -group CLK_NAME]
foreach_in_collection p1 $pa1 {
#Get slack
set slack1 [get_attribute $p1 slack]
##Get startpoint
set sp_m [get_attribute [get_attribute $p1 startpoint] full_name]
set sp [string trimright $sp_m "\/clk"]
##Get Endpoint
set ep_m [get_attribute $p1 endpoint]
set ep [get_cell -of_object $ep_m]
##Getting the prev stage margin: slack, cell
set sp_pa1 [get_timing_path -to $sp/d]
set sp_pa1_slack [get_attribute $sp_pa1 slack]
set ep_sp_pa1 [get_attribute $sp_pa1 endpoint]
set ep_sp_pa1_cell [get_cell -of_objects [get_pin $ep_sp_pa1]]
set ep_sp_pa1_cell_slack [get_attribute [get_timing_path -to $ep_sp_pa1_cell] slack]
##Getting the next stage margin: slack, cell
set ep_pa1 [get_timing_path -from [get_attribute $ep full_name]/clk]
set ep_pa1_slack [get_attribute $ep_pa1 slack]
set sp_ep_pa1 [get_attribute $ep_pa1 startpoint]
set sp_ep_pa1_cell [get_cell -of_objects [get_pin $sp_ep_pa1]]
set sp_ep_pa1_cell_slack [get_attribute [get_timing_path -to $sp_ep_pa1_cell] slack]
puts $f "$sp [get_attribute $ep full_name] $slack1 $sp_pa1_slack $ep_pa1_slack"
}
close $f
No comments:
Post a Comment