>>a third party FPGA with a 16-bit address bus
>Did you mean 16-bit data bus?
Yes
>>An invalid 32-bit read access to this FPGA (invalid register address) produces a single LGTA.
>Have you a reason to perform access to invalid register address?
Yes, there is a bug where approx. every 12 hours we think we get an invalid access to this fpga. The fpga has a wd timer that will produce its own LGTA in the event of an invalid access. I want to shut off that wd timer so that I can use the P1011 bus monitor to catch the invalid access. Unfortunately when I shut off the wd timer in the fpga it still produces a single LGTA on a dword access. I have asked the fpga vendor to fix this problem but I want to understand why the processor appears to be happy terminating a dword access with only one LGTA.
>>the bus transaction appears to have completed successfully with that single LGTA.
>Can you investigate this access using a scope or LA? You migh see very long duration of the second back-to-back access. When LGTA is not asserted, the transaction is terminated by bus monitor timeout and an error is reported in eLBC_LTESR[BM]. If bus monitor is disabled eLBC_LTED[BMD]=1 then internal bus time-out still occurs but the error is not reported.
Yes, I have connected a LA and I can see that only one LGTA is produced, and no error from the bus error monitor.
>>Under what circumstances would the P1011 be happy terminating a DWORD read with only a single LGTA?
> I think, you should avoid this condition (for example, use 16-bit reads instead). Bus monitor timeout is destined to handle error cases. Don't use timeout termination for normal practice. eLBC is quite robust to cope with this condition but aLBC stays blocked till the end of the transaction and no other accesses could be executed.
Right, we don't want this to happen but we have a bug where it does happen approx every 12 hours. I want to catch this error with the bus monitor but as long as there is one LGTA from this fpga during an invalid access it appears it wont catch it. I am not sure why a single LGTA can terminate the cycle unless perhaps the transaction from the processor is not an atomic operation, or that out-of-order transactions are allowed. I couldn't find a guard bit in this processor manual, which is a bit from older PPC families that allowed me to force guarded transactions.