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: 
1,188 Views
Registered: ‎03-03-2017

Can't copy MIG from one block design to another

Jump to solution

Hi,

   I have a general question about Vivado with multiple block designs within a single project.   Most blocks within a block design I can copy from one block design and paste into the other.   Do you know why I cannot copy/paste a MIG block?   When I attempt to do this I get the error message shown below (in Vivado 2017.4 KC-705 project).   If it is not currently supported do you have a best-practices method you recommend?

 

Error message shown in Console window:

CRITICAL WARNING: [BD 5-397] Cannot copy cell '/mig_7series_0' - MIG 7 Series does not support copying.
ERROR: [BD 5-153] To-be-copied objects are empty. Please specify objects
ERROR: [Common 17-39] 'copy_bd_objs' failed due to earlier errors.

 

 

Thanks.

Tim

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
1,609 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

What Ryan means is that you cannot copy/paste MIG as it has specific IO constraints within the Wizard that are unique to each controller.

 

The best we can do is a create_bd_cell / set_property CONFIG.XLM_INPUT_FILE type scenario in order to mimic a copy/paste" type scenario. Just make sure you change your pinout in the PRJ file you are associating for each controller. This can be easily scripted.

 

This is very similar to our "upgrade flow" for going from ISE to Vivado MIG which is documented in UG586, but using IPI commands instead. I will provide and example for you below:

 

These commands create the first MIG core in BD1.

create_bd_design "design_1"

create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.1 mig_7series_0

set_property -name {CONFIG.XML_INPUT_FILE} -value  {mig_a.prj} -objects [get_bd_cells mig_7series_0]

 

Create a new BD2. I copied the mig_a.prj from the first BD to the second BD location on disc to keep it a relative path.

create_bd_design "design_2"

create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.1 mig_7series_0

set_property -name {CONFIG.XML_INPUT_FILE} -value  {mig_a.prj} -objects [get_bd_cells mig_7series_0]

 

Just add these to your script if you are scripting it or just manually paste them into your tcl console. The choice is yours.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
13 Replies
Moderator
Moderator
1,180 Views
Registered: ‎11-28-2016

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

I don't have any specifics on this but looking internally it's related to the MIG IP generation flow, which is unique for 7-Series designs, and it doesn't work well when there are multiple instances with the same name in a design. 

 

Since each one will have to be added individually, they need unique names, and the pinouts need to be defined for each interface I would create individual pin constraints for each interface and start with a base XCI that has the target configuration you want to use.  Going this way you could generate a managed IP for each interface and then add them to the BD. The other option is to add the MIG IP, run through the MIG customization GUI, and load the XDC file for each interface in you design.

1,109 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@ryana,

   Sorry for the late reply.   Inunderstand that you would only want to use one copy at a time.  In my situation I am setting up multiple block designs and only using one of them at a time.   It would make things easier if I could copy the MIG across block designs like i can do with other blocks.   

Tim

0 Kudos
Moderator
Moderator
1,610 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

What Ryan means is that you cannot copy/paste MIG as it has specific IO constraints within the Wizard that are unique to each controller.

 

The best we can do is a create_bd_cell / set_property CONFIG.XLM_INPUT_FILE type scenario in order to mimic a copy/paste" type scenario. Just make sure you change your pinout in the PRJ file you are associating for each controller. This can be easily scripted.

 

This is very similar to our "upgrade flow" for going from ISE to Vivado MIG which is documented in UG586, but using IPI commands instead. I will provide and example for you below:

 

These commands create the first MIG core in BD1.

create_bd_design "design_1"

create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.1 mig_7series_0

set_property -name {CONFIG.XML_INPUT_FILE} -value  {mig_a.prj} -objects [get_bd_cells mig_7series_0]

 

Create a new BD2. I copied the mig_a.prj from the first BD to the second BD location on disc to keep it a relative path.

create_bd_design "design_2"

create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.1 mig_7series_0

set_property -name {CONFIG.XML_INPUT_FILE} -value  {mig_a.prj} -objects [get_bd_cells mig_7series_0]

 

Just add these to your script if you are scripting it or just manually paste them into your tcl console. The choice is yours.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
1,017 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@coryb / @ryana,

   I believe I just successfully copy/pasted a MIG across block designs in a project in Vivado 2018.1.   Can you confirm that this feature indeed was added to Vivado?

Thanks.

Tim

0 Kudos
Moderator
Moderator
1,014 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

This feature is still not supported in 2018.1.

 

Thanks,
Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
1,011 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@coryb,

   Interesting.   Here is what I did successfully:

- Opened 1 block design that contains many blocks including an instance of MIG connected to a DDR3 bus.

- Created a new block design called dummy.

- Selected all in the original block design and right click copied.

- Selected dummy block design and pasted.

- All blocks went over successfully including the MIG block which used to give an error when pasting saying the MIG doesn't support copy/paste.

 

Tim

0 Kudos
Moderator
Moderator
1,005 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

I tried this exact flow step by step, and everything copies over minus MIG. We wtill output the following message: CRITICAL WARNING: [BD 5-397] Cannot copy cell '/mig_7series_0' - MIG 7 Series does not support copying. Please re-check your dummy BD to see if MIG actually copied over.

 

Could you also please provide your original BD for inspection?

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
1,001 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@coryb,

   Yes it definitely copied over and the design validated successfully.

   I would feel more comfortable sharing the block design privately if you don't mind.   I can provide the block design generation TCL files for both my block designs.

Thanks.

Tim

0 Kudos
Moderator
Moderator
999 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

Yes please send it via Private Message.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
648 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@coryb, I just sent the files to you on ez-move.

 

Tim

0 Kudos
Moderator
Moderator
643 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

There is something missing from your tcl scripts. Do you have some custom IP included in your BD?

 

ERROR: [BD_TCL-115] The following module(s) are not found in the project: OR_Gate aud_pat_gen hdmi_acr_ctrl

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Moderator
Moderator
634 Views
Registered: ‎02-11-2014

Re: Can't copy MIG from one block design to another

Jump to solution

Hello @tim_severance,

 

I was able to copy/paste your BD. I think the reason it's working, is that MIG is a hierarchical IP in your BD. I can copy/paste your "mem" block without any issue. I had not been running this type of test in my own project.

 

Thanks,

Cory

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
631 Views
Registered: ‎03-03-2017

Re: Can't copy MIG from one block design to another

Jump to solution

@coryb,

   Thanks for verifying.   I like that this is an option.   I hope you guys don't disable this in future versions :)

Tim

0 Kudos