UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
3,245 Views
Registered: ‎07-14-2008

Question regarding PLB error/interrupt generation

Good morning,

 

in our project we use a PLB slave core to interconnect a Microblaze with our FPGA design. Until now, we never had to worry about data phase timeout. However, now that we connected an external device to the PLB slave, there is a possibility that data can not be retrieved and send to the Microblaze in time and thus should result into a timeout. However, after some testing I discovered that the PLB slave attachment will always terminated any request in time with its internal watchdog timer (you guys should really remove "gracefully" from the slave's manual). After some further testing and modifications of the slave attachment I'm now at my wits end. The only possible solution I can think of to generate a timeout IRQ is to add an extra IRQ port to the PLB slave and directly connect it to the XINTC, circumventing the PLB Arbiter.

 

Now:

  1. When a PLB slave generates an error (i.e. sl_MRdErr), shouldnt that have at least some effect and if so, where? (I modified the slave attachment so that not only the IP2Bus_Error but also the internal timeout signal is being forwarded on sl_MRdErr)
  2. What conditions need to met in order to trigger the Bus_Error_Det IRQ from the PLB Arbiter? Is it possible to trigger this IRQ from within the PLB slave via the error signals?
  3. Why is the sl_MIRQ signal being forced to zero within the slave single wrapper module?
0 Kudos
1 Reply
Explorer
Explorer
3,228 Views
Registered: ‎07-14-2008

Re: Question regarding PLB error/interrupt generation

An additional question arose. Lets assume I did modify the error signals leaving the PLB slave so that by the time the slave attachment module terminates the request with a fake acknowledge the error signal is set likewise for one clock cycle. From what i gathered so far, I was under the impression that the error signal will be forwarded by the PLB arbiter to the requesting PLB master. That in turn should trigger an exception in the Microblaze. Obviously I'm missing something here, what steps do I exactly need to perform to succesfully create and catch an exception? Besides the obvious exception handler and its assignment in C that is of course.
0 Kudos