+ self.put(self.ss, self.es, self.out_ann, [0, ['APACC: ' + bits]])
+
+ # TODO: When to use Data IN / Data OUT?
+
+ # Data IN
+ data, a, rnw = bits[:-3], bits[-3:-1], bits[-1]
+ data_hex = '0x%x' % int('0b' + data, 2)
+ r = 'Read request' if (rnw == '1') else 'Write request'
+ s = 'DATA: %s, A: %s, RnW: %s' % (data_hex, reg[a], r)
+ self.put(self.ss, self.es, self.out_ann, [0, [s]])
+
+ # Data OUT
+ data, ack = bits[:-3], bits[-3:]
+ data_hex = '0x%x' % int('0b' + data, 2)
+ ack_meaning = ack_val[ack]
+ s = 'DATA: %s, ACK: %s' % (data_hex, ack_meaning)
+ self.put(self.ss, self.es, self.out_ann, [0, [s]])