cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
4,783 Views
Registered: ‎04-18-2012

AXI Peripheral Blocking Read/Timeout

Jump to solution

Hi,

 

I was wondering how the access from Microblaze to an AXI4-Lite peripheral is working on the bus, when using Xil_In32 (and Xil_Out32).

Assumed the peripheral needs some time to process the request; the function call of course would be blocking until Microblaze received the response.

 

But what happens on the bus in the mean time? Is it blocked, too? Or can other peripherals be used? I understand from the AXI4 specification, that there exist "outstanding transactions".That makes me think that a multithreaded program (Xilkernel) should be able to communicate with other peripherals, whilst the mentioned transaction is still outstanding. Is this correct?

 

Further, is there a timeout or something for the peripheral to reply? There is this parameter DPHASE_TIMEOUT I can set to NULL in EDK and I understand that in this case the transaction would be pending, until the peripheral had answered.

 

Thank you,

best Regards,

martin

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
6,310 Views
Registered: ‎08-06-2007

Hi,

 

MicroBlaze will stall while waiting on a bus response and will not be able to do anything while it waits.

That includes everything, it will not response to interrupt, it's in fact totally stalled until it gets the bus response.

 

Other masters on the bus (except MicroBlaze) can access other slaves at the same time.

If the other masters access the same slave as MicroBlaze do, they might have to wait until the slave response back to the AXI interconnect before starting a new access.

 

Göran

View solution in original post

0 Kudos
2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
6,311 Views
Registered: ‎08-06-2007

Hi,

 

MicroBlaze will stall while waiting on a bus response and will not be able to do anything while it waits.

That includes everything, it will not response to interrupt, it's in fact totally stalled until it gets the bus response.

 

Other masters on the bus (except MicroBlaze) can access other slaves at the same time.

If the other masters access the same slave as MicroBlaze do, they might have to wait until the slave response back to the AXI interconnect before starting a new access.

 

Göran

View solution in original post

0 Kudos
Highlighted
Visitor
Visitor
4,764 Views
Registered: ‎04-18-2012

Thank you Göran, very helpful!

0 Kudos