07-28-2021 12:16 PM - edited 07-29-2021 06:11 AM
With the block diagram shown below, I have connected an external port ln 1[0:]) to a concat block, intending to drive the port as an interrupt from RTL code in the fabric.
The problem is that I do not see an Interrupt ID in xparameters for this fabric interrupt. See below. It is only giving me the CDMA interrupt which is coming from an axicdma block on the diagram.
Does anyone know how to drive an interrupt from PL to PS, when is is being driven from code in the PL fabric? Should the block diagram I show below allow the tools to assign an interrupt ID for the port which shows up in xparameters ?
07-29-2021 07:58 AM
Hi @micah_d ,
Make sure to create a port or module whose pin type is interrupt as shown in the image.
You can select the interrupt sensitivity and type, recommended is level trigger. In your design I see only concat block but not any interrupt connected to it.
07-29-2021 08:41 AM
Thank you for the response. For my first attempt at this the port I created was "undefined.' I have since created a port with an interrupt property. Below is a screen shot after I double click on the port. I have generated products, created bitstream, exported hardware, updated platform, rebuilt platform, rebuilt the project. When I view xparameters.h, there seems to be no reference to the interrupt port.
07-29-2021 03:00 PM
I was finally able to force xparameters.h to show the interrupt from my external port.
I needed to add IIC_0 for my design so I opened the Zynq block on the block diagram, went to IO, checked the box for I2C0, saved the block diagram, generated the block, write bitstream, export hardware, updated hardware platform and rebuilt the platform project in Vitis.
Now the interrupt for port IN1 shows in xparameters.h. See below
Why would this not be generated until I opened, changed and closed the Zynq block? Before this change, I modified the block diagram (without going into the Zynq block), and then followed all the steps above.
Is this a bug within Vivado? Thanks.
08-03-2021 08:40 AM
Hi @micah_d ,
This is not a bug, but it might have take sometime to be updated. The procedure I shared was the right way to connect the interrupt port and it worked for me several times. Sorry for that, I requested the engineering team to test it for more number of times and see if this can be recreated and fixed. Thanks for letting us know.
08-20-2021 07:31 PM
I have tried to add another interrupt to the same concat block shown in the block diagram above. I used the procedure you have described. After generating output products up to writing a bitstream and exporting, I do not see a second interrupt in the xparameters.h file.
This is most certainly a bug. I have tried for 8 hours today to get it to be recognized by resetting all runs in Vivado, starting from scratch, etc. Nothing works.
Please offer some assistance if you are able.
08-20-2021 09:31 PM
I have discovered that in order to have the xparameters.h file updated after an export of the hardware platform, you MUST make a change inside the Zynq block (change an IO, add a peripheral, etc) and then generate output products and proceed to export hardware.
Adding a port as an interrupt at least, is not enough of a change to show up in the xparameters.h file.
This is certainly a bug in Vivado.