cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
nlotankar
Visitor
Visitor
335 Views
Registered: ‎11-14-2019

Using a synthesized module from one dcp into another using tcl commands

Hi, I have a synthesized dcp file which has a mmi64 module present in it, and another synthesized dcp which has my entire design. 

I am looking for a way by which I can use the mmi64 synthesized module from dcp1 and place it into dcp2 using tcl commands, then run a PnR for modified dcp2. I am not sure if this is possible, any help would be appreciated.

0 Kudos
5 Replies
syedz
Moderator
Moderator
322 Views
Registered: ‎01-16-2013

@nlotankar 

 

You can get the checkpoint or edif netlist of "mmi64" cell from synthesized dcp using : write_checkpoint -cell or write_edif -cell 

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/ug835-vivado-tcl-commands.pdf#page=1825 

 

To use this in the entire design, you must declare this cell as blackbox before synthesizing the entire design. Create a RTL wrapper around Top netlist and run implementation. 

 

--Syed

 

---------------------------------------------------------------------------------------------
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.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
nlotankar
Visitor
Visitor
269 Views
Registered: ‎11-14-2019

Hi Syed,

Thanks for replying. The thing is I am looking for a way in which I need not synthesize the entire design again as it takes a lot of time.

I am planning to use this mmi64 as similar to a dft module, but wouldnt have a fixed location. Declaring mmi64 module as blackbox will require re-synth which is to be to avoided.

0 Kudos
surajc
Xilinx Employee
Xilinx Employee
262 Views
Registered: ‎01-30-2019

Hi @nlotankar

The first thing to make sure is that you are synthesizing both the designs targetting the same device to generate dcp1 and dcp2. If you change device / family then problems may arise in the following flow.
You can write out the DCP for mmi64 module from dcp1 as @syedz suggested then 
You can make use of update_design and read_checkpoint -cell commands to make the necessary changes in dcp2. ( if dcp2 already has a hole ( place) in the hierarchy to accommodate dcp1's mmi64 else you need to make use of eco commands to attach the two designs and flow will be little complex )

ECO Commands: 

surajc_0-1606195771721.png

@nlotankar >> I am planning to use this mmi64 as similar to a dft module, but wouldnt have a fixed location
Could you please let us know what is the scenario for adding mmi64 in dcp2? how are you planning to merge it in dcp2? 
you can create a diagram for this to explain it to us

 

0 Kudos
syedz
Moderator
Moderator
260 Views
Registered: ‎01-16-2013

@nlotankar 

 

I don't think there is any other way if you do not wish to resynthesize the entire design with blackbox of the module. 

Update:

Maybe try "update_design -blackbox" & "update_design -cell" to replace the existing submodule in the entire design with the "mmi64" cell..

Type "update_design -help" to know about this command. 

 

--Syed

---------------------------------------------------------------------------------------------
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.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
nlotankar
Visitor
Visitor
219 Views
Registered: ‎11-14-2019

Hi Syed, Suraj,

 

I am trying to create an alternative for ILA Cores. My "mmi64" module is capable of injecting and reading data through a host in real time. Just as we add ILA cores post synth, I am looking for a way to add this "mmi64" module post synth wherever required.

0 Kudos