Each probe implements filter logic at the bus interfaces that allows the probe to operate on a subset of all the transactions snooped at the probe interface to the bus. Probe filtering is comprised of two functions:
- Address range filtering
- Probes can filter a transaction by an inclusive address range that is defined by a Lower address boundary and an Upper address boundary
- Depending on register configuration, a match will assert true if:
- Any of the destination addresses of the transaction fall inside the designated range
- Any of the destination addresses of the transaction fall outside the designated range
- If the low bound is greater than or equal to the high bound the behavior of the address filter is undefined
- Transaction qualifier filtering
- Bus qualifier filtering is done via a mask and compare scheme
- Bus qualifiers are connected to one or more filter registers in the probe
- Each filter register has an associated mask register
- Filter register is configured with the required values for the filtering scenario and the mask register is used to designate bits to be excluded from the comparison
- A bus qualifier comparison is considered true when value of the filter qualifier registers AND-ed with the filter mask registers is equal to the value of the qualifier inputs AND-ed with the filer qualifier registers
- Bus qualification filtering is applied when a valid transaction is detected at the probe interface. For transactions with multiple data phases, bus qualifiers that might change during these multiple data phases should not be used for filtering (for example, byte enables)
Note that both address range filtering and transaction qualifier filtering must assert as true for an access to meet the filtering criteria.