cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
micah_d
Observer
Observer
468 Views
Registered: ‎07-20-2021

Zynq PL to PS interrupt no interrupt ID in xparameters

Hi All,

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 ?

 

micah_d_0-1627499315419.png

 

micah_d_2-1627499410302.png

 

 

 

0 Kudos
7 Replies
abhinayp
Xilinx Employee
Xilinx Employee
414 Views
Registered: ‎07-12-2018

Hi @micah_d ,

Make sure to create a port or module whose pin type is interrupt as shown in the image.

abhinayp_0-1627570593473.png

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.

Best Regards
Abhinay PS
------------------------------------------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give kudos to a post which you think is helpful and reply oriented.
-------------------------------------------------------------------------------------------------------------------------------

0 Kudos
micah_d
Observer
Observer
403 Views
Registered: ‎07-20-2021

Hi Abhinay,

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.

micah_d_0-1627573249815.png

 

 

0 Kudos
micah_d
Observer
Observer
368 Views
Registered: ‎07-20-2021

Hello Abhinay,

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

micah_d_0-1627595836485.png

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.

micah

0 Kudos
abhinayp
Xilinx Employee
Xilinx Employee
319 Views
Registered: ‎07-12-2018

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.

Best Regards
Abhinay PS
------------------------------------------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give kudos to a post which you think is helpful and reply oriented.
-------------------------------------------------------------------------------------------------------------------------------

0 Kudos
micah_d
Observer
Observer
187 Views
Registered: ‎07-20-2021

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.

Thanks.

0 Kudos
micah_d
Observer
Observer
173 Views
Registered: ‎07-20-2021

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.

0 Kudos
stephenm
Xilinx Employee
Xilinx Employee
91 Views
Registered: ‎09-12-2007

There is a known issue, and the changes are not automatically detected. you would need to do this manually:

BSP.PNG

0 Kudos