-# The purpose of this module is to search a memory block given an
-# associativity.
-# This module will attempt to find a matching entry when given an address
-# and perform permission validation if successful.
-#
-# Arguments:
-# data_size: (bit count) The size of the data words being processed
-# assoc: (int) The associativity of the memory to be parsed
-# mem: (nmigen.Memory) The memory to be parsed
-#
-# Return:
-# 1. An entry was found -> Return PTE, set hit HIGH, set valid HIGH
-# 2. An entry was NOT found -> set hit LOW, set valid HIGH
-# 3. A permission fault occurs -> set hit LOW, set valid LOW