signaltap state trigger false positive
I have an issue were an internal memory block is reporting data that is shifted by 8 bytes. I'm trying to set up a SignalTap trigger to catch the discrepancy. The trigger is activating when it shouldn't so I'm wondering if this trigger is too complicated, or if anyone can suggest a better way to capture it.
Here's my normal data, with the 3dcccccdh data (LD) at address 4034h (LA) in the first memory block (shown), or at a second memory block at address 6834h:
I want to catch when this data doesn't show at this (or the following address). I set up a simple state machine trigger:
with the following logic:
with the conditions defined as follows:
In my mind that says - trigger when you see the data 3dcccccdh at an address is not 4034h and not 4038h and not 6834h and not 6838h. If the data shows up at any other address it should trigger.
I can eliminate the extra parenthesis without having to recompile, so it appears to be following the TCL operator priorities.
The gotcha is that it is still triggering at 4034h as shown above.
Is there a way around this false positive trigger? A different triger method, maybe?
I dropped this back to a simpler filter and got it to work
Condition 1 : data = 3dcccccdh
Condition 2: address = 403xh
Condition 4: address = 683xh
Trigger on Condition1 && !Condition 2 && !Condition3=4
This won't catch a 4 byte data shift but it will catch an 8 byte or larger shift. That works for now.
Thanks for all your help.