01-27-2014 03:54 PM
I have a design on a Kintex7 part, with 2 microBlazes 1 mdm module 1 chipscope module (implemented in XPS) and 2 picoBlazes.
I am compiling in PlanAhead 14.6.
When I try to enable the JTAG Loader (by setting C_JTAG_LOADER_ENABLE => 1) I get this compile error:
[PhysDesignRules 1683] Unsupported programming for BSCAN block and JTAG_CHAIN attribute value 2. The BSCAN component PB_PIC/inst_PIC_program_rom/instantiate_loader.jtag_loader_6_inst/jtag_loader_gen.BSCAN_7SERIES_gen.BSCAN_BLOCK_inst has placement which requires the JTAG_CHAIN attribute to be set to the value 3. The JTAG_CHAIN attribute must be changed or the programming for the BSCAN block must be moved to a location corresponding to the JTAG_CHAIN attribute setting.
Any ideas what is causing this error?
Could the mdm or chipscope module be interfering?
01-28-2014 05:21 AM
There are four BSCAN primitives in a 7-Series device and each must be allocated a different ‘USER’ address in the range 1 to 4. As provided, JTAG Loader is set to ‘USER2’ so it sounds like one of the other things in your design is competing for the same address (and happened to get there first). Clearly you need to allocate different addresses to each user of BSCAN in your design (and not exceed the limit of 4 BSCAN in the whole design). Which modules you choose to change to resolve your particular situation is up to you, but if you decide to change the address used by JTAG Loader then this is described in the ‘Known Issues’ section of the ‘READ_ME_FIRST’ file supplied in the KCPSM6 package. Please look for ‘JTAG Loader and BSCAN Users’.
Even when you have allocated a valid set of addresses to the BSCAN’s so that your design can be implemented, it must be accepted that there is only one physical JTAG connection to the device. As such, the various applications will need to timeshare the connection and you will need to be sensitive to this limitation when using them. Generally speaking, JTAG Loader only requires a few seconds at a time to do its thing but it does need to be given the opportunity to communicate in the first place.