yield dut.data_in.eq(d)
yield
+# Verifies the given values via the requested operation
+# Arguments:
+# pre (Prefix): Appended to the front of the assert statement
+# e (Expected): The expected value
+# out (Output): The output result
+# op (Operation): (0 => ==), (1 => !=)
def check(pre, e, out, op):
if(op == 0):
yield
else:
yield
assert out != e, pre + " Output " + str(out) + " Expected " + str(e)
-
+
+# Checks the key state of the CAM entry
+# Arguments:
+# dut: The CamEntry being tested
+# k (Key): The expected key
+# op (Operation): (0 => ==), (1 => !=)
def check_key(dut, k, op):
out_k = yield dut.key
check("K", out_k, k, op)
-
+
+# Checks the data state of the CAM entry
+# Arguments:
+# dut: The CamEntry being tested
+# d (Data): The expected data
+# op (Operation): (0 => ==), (1 => !=)
def check_data(dut, d, op):
out_d = yield dut.data
check("D", out_d, d, op)
-
+
+# Checks the match state of the CAM entry
+# Arguments:
+# dut: The CamEntry being tested
+# m (Match): The expected match
+# op (Operation): (0 => ==), (1 => !=)
def check_match(dut, m, op):
out_m = yield dut.match
check("M", out_m, m, op)
-
+
+# Checks the state of the CAM entry
+# Arguments:
+# dut: The CamEntry being tested
+# k (key): The expected key
+# d (data): The expected data
+# m (match): The expected match
+# kop (Operation): The operation for the key assertion (0 => ==), (1 => !=)
+# dop (Operation): The operation for the data assertion (0 => ==), (1 => !=)
+# mop (Operation): The operation for the match assertion (0 => ==), (1 => !=)
def check_all(dut, k, d, m, kop, dop, mop):
yield from check_key(dut, k, kop)
yield from check_data(dut, d, dop)