cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Advisor
Advisor
5,662 Views
Registered: ‎12-03-2007

TCL command to determine which runs are out-of-context in the current design

Hi,

 

There is a TCL command "get_runs" that returns the list of runs, which can be synthesis, implementation, or out-of-context. 

I need to determine which of those runs are out-of-context. 

I cannot use -regexp option, because names are arbitrary.

Perhaps there is a way to use -filter, but I cannot find the right property.

Any other suggestions are appreciated.

 

Thanks,

Evgeni

Tags (1)
0 Kudos
4 Replies
Highlighted
Moderator
Moderator
5,656 Views
Registered: ‎09-15-2016

Hi @evgenis1

 

You can use below command which will return regular synthesis run and rest of the runs will be out-of-context runs(if set as out of context) before running synthesis.

get_runs -regexp -filter {IS_SYNTHESIS}

 

Hope this helps.

 

Regards

Rohit

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

Regards
Rohit
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

0 Kudos
Highlighted
Advisor
Advisor
5,470 Views
Registered: ‎12-03-2007

Hi Rohit,

 

This approach doesn't work.

"get_runs -regexp -filter {IS_SYNTHESIS}" command returns all synthesis runs, including out-of-context.

 

I'm looking for a command to distinguish regular and out-of-context synthesis runs.

 

Edit:

Here is a kludge I'm currently using to solve this. To figure out which runs are out-of-context (OOC) within lists of synthesis and implementation runs, I read CONSTRSET, SRCSET, and NAME properties of the run using "get_property <property_name> <run_name>" command. Then I determine if CONSTRSET and SRCSET are substrings of NAME. For example, for ila_01 core, Vivado creates ila_01_synth_1 and ila_01_impl_1 runs.

 

Edit #2:

@thakurr , 

 

In XilinxTclStore, write_project_tcl.tcl file, I found "is_ip_run" function on line 1913.

This seems to be a proper way to determine if the run is IP/OOC or not.

 

 

Thanks,

Evgeni

Tags (2)
0 Kudos
Highlighted
Moderator
Moderator
5,415 Views
Registered: ‎09-15-2016

Hi @evgenis1

 

Thank you for your headway. This is really knowledgeable and helpful.

 

Regards'

Rohit

Regards
Rohit
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

0 Kudos
Highlighted
Moderator
Moderator
5,354 Views
Registered: ‎09-15-2016

Hi @evgenis1

 

I think you can try something like the below command to find out whether the run is ooc or not.

 

if { "BlockSrcs" == [get_property FILESET_TYPE [get_property SRCSET [get_runs <run_name>]]] } {
return ooc
} {
return not ooc

}

 

Hope this helps.

 

Regards

Rohit

Regards
Rohit
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

0 Kudos