I created a block design in Vivado 2017.2 targeting Kintex Ultra-Scale. The design is pretty big consists of 7 interconnects, seven micro blazes, some HLS IPs etc. During each stages of block design creation, I simulated it with NCSIM (version 15.20.026, in GUI) and wrote block design to a TCL file. After completing the block I ran the simulation again. Simulation was OK and I wrote the final block design as a TCL file.
Then I changed some project settings related to synthesis and implementation , generated output product. After that I removed block design from the project (deleted all project local files). Closed the project.
Later, when I opened the project, source the block diagram and ran simulation, first register access is giving interconnect decode error. The same behavior is with all the intermediate tcl files.
Is there any problem with Vivado 2017.2 while writing or sourcing block design? (I forgot to save .BD file when it was working)
Block design validation did not gave any errors but some warnings only. Since the files have some confidentiality issues, I cannot share it. Sorry.
Test case only contains some register access by forcing the AXI port of a master from test bench. ( Test bench and test cases are proven and has been used in many project )
12-05-2017 12:11 AM
I have another update.
I sourced block design tcl ,did synthesis and ran post synthesis behavioral simulation. Then it worked.
After that I ran behavioral simulation. Then also it worked.
Could you please help me to find a reason and solution?
12-06-2017 07:52 PM
I found the reason for interconnect decode error. It seems a tool issue. I think You still have some flaws in simulation flow.
There is a mig in the design(4GB). Microblaze have only 2GB access to mig. Therefore the interconnect to which microblaze is connected will automatically infer an MMU. When vivado sources tcl file and genertae PRJ.ip_user_files, this MMU RTL is generated with different parameters when compared to the situation of no decode error.
not working case
When I copied the working case rx_subsystem_s00_mmu_0.v file , it worked.
When I un-mapped mig from microblaze(to remove MMU), then also it worked.
But both these solution seems to be temporary. I request Xilinx to provide some advice and a solution.