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: 
Visitor maio
Visitor
855 Views
Registered: ‎07-23-2014

Unable to instantiate 2 Microblaze processors due to BSCAN2 being place in the same location for both

Jump to solution

Hello,

 

I'm trying to provide as much information as possible.

 

I'm using Vivado 2017.3, the part I'm applying my design to is xcvu9p-flgb2104-2L-e.

 

I have designed using IP Integrater a microblaze system that includes the mdm submodule. I used vivado to generate a wrapper then added all the files with corresponding XCI files to a filelist script and added them to the bigger project where the microblaze is supposed to go. Instantiating one microblaze works fine.

 

However when trying to instantiate the second one, it looks like it is trying to use the same BSCAN2 BEL. This is the first error I was getting:

 

ERROR: [Place 30-1100] Failed to do pre-placement. Reason: Cannot place instance microblaze_1/[...]/Use_E2.BSCAN_I/Use_E2.BSCANE2_I of type BSCANE2 in site CONFIG_SITE_X0Y1 with message Instance microblaze_1/[...]/Use_E2.BSCAN_I/Use_E2.BSCANE2_I can not be placed in BSCAN2 of site CONFIG_SITE_X0Y1 because the bel is occupied by microblaze_2/[...]/Use_E2.BSCAN_I/Use_E2.BSCANE2_I(port:). This could be caused by bel constraint conflict

 

I went through the placing constrains that are set for the project and couldn't find anywhere something that was constraining both microblazes in the same area. I then noticed there are only 3 BSCAN2 BELs in the whole device:

 

get_bels *BSCAN2*
get_bels: Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 10073.879 ; gain = 0.000
CONFIG_SITE_X0Y2/BSCAN2 CONFIG_SITE_X0Y1/BSCAN2 CONFIG_SITE_X0Y0/BSCAN2

 

I attempted to constrain each microblaze to another SLR. Now I'm running into this:

 

ERROR: [Place 30-1100] Failed to do pre-placement. Reason: Cannot place instance microblaze_2/[...]/Use_E2.BSCAN_I/Use_E2.BSCANE2_I of type BSCANE2 in site CONFIG_SITE_X0Y1 with message microblaze_2/[...]/Use_E2.BSCAN_I/Use_E2.BSCANE2_I placed on site CONFIG_SITE_X0Y1 rpm (3552, 749) tile (583, 558) CFG_CONFIG_X100Y360 is outside its area constraints. The BSCANE2 can be only instantiated in the master SLR in SSI devices.

 

Can I only instantiate it in the "master" SLR? Can I use a different BSCAN instance for each microblaze instance? Do you know any other way I could tackle the issue I am facing?

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
786 Views
Registered: ‎11-30-2007

Re: Unable to instantiate 2 Microblaze processors due to BSCAN2 being place in the same location for both

Jump to solution

I would suggest removing the MDM IP block in your current MicroBlaze subsystem Block Diagram and instantiate that in your upper level HDL.  The MDM has the option to configure for multiple MicroBlaze processors.  You would set this to the number of MicroBlaze subsystems you are instantiating.  In your case, I believe this is '2'.

 

20180907_Multiple_uB_MDM.png

 

You will go from a MicroBlaze Subsystem as follows (including MDM):

 

20180907_Multiple_uB_MDM_2.png

 

To a MicroBlaze Subsystem as follows (excluding MDM) which will add external ports for the DEBUG and MicroBlaze Debug Reset:

 

20180907_Multiple_uB_MDM_3.png

That should get you over your place error.

 

Thank you.

0 Kudos
3 Replies
Highlighted
Xilinx Employee
Xilinx Employee
787 Views
Registered: ‎11-30-2007

Re: Unable to instantiate 2 Microblaze processors due to BSCAN2 being place in the same location for both

Jump to solution

I would suggest removing the MDM IP block in your current MicroBlaze subsystem Block Diagram and instantiate that in your upper level HDL.  The MDM has the option to configure for multiple MicroBlaze processors.  You would set this to the number of MicroBlaze subsystems you are instantiating.  In your case, I believe this is '2'.

 

20180907_Multiple_uB_MDM.png

 

You will go from a MicroBlaze Subsystem as follows (including MDM):

 

20180907_Multiple_uB_MDM_2.png

 

To a MicroBlaze Subsystem as follows (excluding MDM) which will add external ports for the DEBUG and MicroBlaze Debug Reset:

 

20180907_Multiple_uB_MDM_3.png

That should get you over your place error.

 

Thank you.

0 Kudos
Moderator
Moderator
765 Views
Registered: ‎09-12-2007

Re: Unable to instantiate 2 Microblaze processors due to BSCAN2 being place in the same location for both

Jump to solution
You can Configure the MDM to specify the BSCAN location.
https://www.xilinx.com/support/documentation/ip_documentation/mdm/v3_2/pg115-mdm.pdf#page34

Also, With multiple mdm you would need to tell the debugger to scan all bscan otherwise the won’t be detected:
https://www.xilinx.com/support/answers/64003.html

However, as Mike said you should just instanciate a single MDM with multiple debug ports. You are wasting resources that you might need for hw debug such as the ILA.
0 Kudos
Visitor maio
Visitor
725 Views
Registered: ‎07-23-2014

Re: Unable to instantiate 2 Microblaze processors due to BSCAN2 being place in the same location for both

Jump to solution

Thank you for your suggestions.

 

For the final solution, I removed the MDM from the IP Block design, generated another block design in the same project that only had the MDM and then manually modified the top-level wrapper to instantiate the MDM based on a generic. This way I can have the debugger enabled with one FPGA build and I don't mess with the top-level interface of the Microblaze.

0 Kudos