11-23-2020 05:14 AM
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.
11-23-2020 06:39 AM
You can get the checkpoint or edif netlist of "mmi64" cell from synthesized dcp using : write_checkpoint -cell or write_edif -cell
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
11-23-2020 08:38 PM
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.
11-23-2020 09:30 PM - edited 11-23-2020 09:33 PM
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 )
@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
11-23-2020 09:34 PM - edited 11-23-2020 10:11 PM
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
11-24-2020 12:34 AM
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.