UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer dbanks12
Observer
5,191 Views
Registered: ‎09-09-2016

Loading DCP netlists and continuing synthesis

Jump to solution

I am attempting to do the following, where moduleX.dcp is the result of synthesis of moduleX:

 

read_checkpoint module1.dcp
read_checkpoint module2.dcp
add_files <module3-files>
...
...
...
synth_design -top module3.dcp -part ....

I then may want to repeat this for another module (say module4), and read in module3.dcp.

 

My issue is that it is not finding the 'design unit' of each previous module:

INFO: [Synth 8-638] synthesizing module 'module3' ...
...
ERROR: [Synth 8-493] no such design unit 'module1' ...
...
ERROR: [Synth 8-285] failed synthesizing module 'module3' ...
...

But when I open up module1's DCP file, it contains 'module1_stub.vhdl with the module1 vhdl entity defined.

0 Kudos
1 Solution

Accepted Solutions
Observer dbanks12
Observer
8,118 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Thank you @vemulad and @anusheel. The most recent error I was having was because of some missing VHDL definitions. Ultimately this problem seemed to boil down to a few things:

  1. The lack of generics/parameters in stub files generated by Vivado
    • I solved this by using the EDIF files with my own stubs
  2. I was accidentally omitting certain VHDL files from module3 (sorry for wasting your time here since this was my fault).
  3. I am sure it is in the documentation somewhere, but at first I did not know that DCP files contain a netlist and stub files. This should be made more clear!
  4. I could not tell what the package/library hierarchy was of module1 after synthesis to confirm that the package/library hierarchy preserved in OOC mode.

Anyway, thank you both for your assistance here.

 

Regards,

David

View solution in original post

0 Kudos
14 Replies
Observer dbanks12
Observer
5,189 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

After reading a DCP, do I then need to somehow manually read/add the vhdl stub file which is contained in the DCP?

0 Kudos
Observer dbanks12
Observer
5,179 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

I have also tried running "link_design" for each module checkpoint that is read in, but same problem.

0 Kudos
Observer dbanks12
Observer
5,145 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

It looks like this has something to do with the fact that module1 and module2 are associated with libraries lib1 and lib2 respectively. They are instantiated in module3.vhd via  libX.<package>.moduleX. This works fine if the source files are all added to the same project pre-synthesis, but these library associations seem to be lost once I just have netlists. Is there some way to get around this?

0 Kudos
Xilinx Employee
Xilinx Employee
5,133 Views
Registered: ‎09-20-2012

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Hi @dbanks12

 

You need not add stub file separately as its inbuilt in DCP.

 

Which version of vivado are you using? Related issue is seen on older version of vivado (2015.2) https://www.xilinx.com/support/answers/64107.html 

 

Can you try using Component instantiation rather than direct instantiation?

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)
Observer dbanks12
Observer
5,113 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

I am instantiating the modules as follows:

 

my_mod1 : component lib1.<package>.module1
generic map (...
...
...)
port map (...
...
...
);
0 Kudos
Observer dbanks12
Observer
5,109 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

The code above is in module3, but in module1:

component module1
is
generic ( ...

...);
port (
...
...);
end component module1
;

and then in another file:

entity module1
is
generic (
...
...);
port (
...
...);
...
...
end entity module1
;
0 Kudos
Observer dbanks12
Observer
5,108 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Note that the component declaration is inside a package. That is the package used when instantiating it within module3

0 Kudos
Observer dbanks12
Observer
5,081 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Sorry @vemulad, I realize I did not answer your question! I am using Vivado 2016.4. I have seen that link while searching for solutions, but I am using DCP files, not IP. Maybe there is something similar I can do but for post-synthesis DCP files?

0 Kudos
Moderator
Moderator
5,065 Views
Registered: ‎07-21-2014

Re: Loading DCP netlists and continuing synthesis

Jump to solution

@dbanks12

 

Please correct if my understanding is not correct:

You have two DCPs say D1 and D2, these two DCPs are instantiated in top level RTL file which will deliver a new DCP(say D3). While using D3 in another project, you get an error from tool for D1 and D2 module not found?

 

If this is the case, you might be using the D3-DCP generated at .runs/synth_1 folder which will use black_boxes for D1 and D2. You need to open the synthesized design and then need to use write_checkpoint command to write a checkpoint without black_boxes(D3).

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

Observer dbanks12
Observer
4,046 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Thank you for your response @anusheel.

 

I receive the error when trying to synthesize D3. I am not able to generate the post-synthesis DCP, D3. During the synthesis of module3, I get an error stating for that there is "no such design unit module1" which I am accessing as follows "lib1.<package>.module1".

0 Kudos
Observer dbanks12
Observer
4,041 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

I switched to using EDIF files instead of DCPs. I did this because I was having other errors elsewhere since the DCP stub files do not include generics/parameters. So, I am now using EDIF files with my own stub files. I am now encountering another, less helpful error:

 

INFO: [Synth 8-637] synthesizing blackbox instance 'my_module1' of component 'module1' ...
Abnormal program termination (11)
Please check 'hs_err_pid5678.log' for details
Parent process (pid 5678) has died. This helper process will now exit

I have attached that log file.

0 Kudos
Observer dbanks12
Observer
8,119 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

Thank you @vemulad and @anusheel. The most recent error I was having was because of some missing VHDL definitions. Ultimately this problem seemed to boil down to a few things:

  1. The lack of generics/parameters in stub files generated by Vivado
    • I solved this by using the EDIF files with my own stubs
  2. I was accidentally omitting certain VHDL files from module3 (sorry for wasting your time here since this was my fault).
  3. I am sure it is in the documentation somewhere, but at first I did not know that DCP files contain a netlist and stub files. This should be made more clear!
  4. I could not tell what the package/library hierarchy was of module1 after synthesis to confirm that the package/library hierarchy preserved in OOC mode.

Anyway, thank you both for your assistance here.

 

Regards,

David

View solution in original post

0 Kudos
Moderator
Moderator
4,023 Views
Registered: ‎07-21-2014

Re: Loading DCP netlists and continuing synthesis

Jump to solution

@dbanks12

 

Good to know that you were able to proceed. Please close the thread by marking the answer.

 

Thanks,
Anusheel
-----------------------------------------------------------------------------------------------
Search for documents/answer records related to your device and tool before posting query on forums.
Search related forums and make sure your query is not repeated.

Please mark the post as an answer "Accept as solution" in case it helps to resolve your query.
Helpful answer -> Give Kudos
-----------------------------------------------------------------------------------------------

0 Kudos
Observer dbanks12
Observer
3,214 Views
Registered: ‎09-09-2016

Re: Loading DCP netlists and continuing synthesis

Jump to solution

@anusheel and @vemulad Is there a way to force generics/parameters into the DCP's stub files? Months later this is causing me problems. I am using EDIFs with my own stubs, but now when I want to add IP to my designs I have to make sure to add any encrypted EDN netlists as well. This is problematic for my automated non-project/ooc hierarchical use case. I would like to use DCP's instead, but the problem remains that generics/parameters are not captured in the DCP's stubs. I do not want to automate the process of opening up a DCP and patching the stub files with my generics/parameters. Any help is much appreciated.

0 Kudos