I'm working on a script that queries many timing paths (100s to 1000s) with find_timing_paths command. For each path, I specify a startpoint, endpoint, rise_throughs and fall_throughs.
After 100s of queries, OpenSTA reaches a critical error with the ArrayTable: max array table block count exceeded
Unfortunately, I am unable to share a specific test case at the moment. Psuedo-code of what I'm doing:
foreach path $list_of_paths {
set timing_path [find_timing_paths -from path.startpoint -to path.endpoint -rise_through path.rise_throughs -fall_through path.fall_throughs]
# report properties of interest on timing_path
}
I see where this is happening, exceeding the block_id_max of ArrayTable, but I am not exactly sure why using find_timing_paths is causing ArrayTable to grow.
As a hack, I was able to use sta::clear_state to reset and then reload design files, but wanted to understand more why I'm running into this limit and if there's a better way to avoid/remedy this limit?
I'm working on a script that queries many timing paths (100s to 1000s) with
find_timing_paths
command. For each path, I specify a startpoint, endpoint, rise_throughs and fall_throughs.After 100s of queries, OpenSTA reaches a critical error with the ArrayTable:
max array table block count exceeded
Unfortunately, I am unable to share a specific test case at the moment. Psuedo-code of what I'm doing:
I see where this is happening, exceeding the
block_id_max
of ArrayTable, but I am not exactly sure why usingfind_timing_paths
is causing ArrayTable to grow.As a hack, I was able to use
sta::clear_state
to reset and then reload design files, but wanted to understand more why I'm running into this limit and if there's a better way to avoid/remedy this limit?