How to simulate a (minimal example) block design containing the packaged IP #974
-
I am trying to figure out how to simulate block designs in Vivado. I have created a minimal working example containing just the NEORV32 IP block and a Xilinx IP Clocking Wizard. However when trying to run a basic simulation testbench I get the following errors: I have added two relevant files at the bottom of this post. I followed section 12 of the user guide to create the folder with the packaged IP. Then I created an empty project and added that folder to the IP repository. Tis is my example block diagram: With the clocking wizard set to a 100 MHz clock and a negative reset. The wiring is done in a similar manner as the screenshot in the user guide. The NEORV32 core has the following properties changed, the rest is default: Then I used the functionality to create a VHDL wrapper for the block diagram:
And a tcl command to generate a testbench template:
I am not sure what is going wrong and if this should have worked out of the box? It seems like Vivado is assigning the wrong types to the AXI ports, but I am not sure why that is happening. Should I fix them by hand? For more information, this is the test.vhd file:
And this is the file where the errors are reffering to:
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 14 replies
-
Thanks for the great report! I've just tested such a setup on my side and I can confirm this bug. It seems like Vivado is using signals of type The quick-an-dirty fix would be to connect a dummy interconnect to the AXI port. A more elegant solution might be to compile the IP's top entity with VHDL2008 standard, which allows assigning |
Beta Was this translation helpful? Give feedback.
Here is another attempt #978 😅