Source code for basil.HL.fei4_rx

#
# ------------------------------------------------------------
# Copyright (c) All rights reserved
# SiLab, Institute of Physics, University of Bonn
# ------------------------------------------------------------
#


from basil.HL.RegisterHardwareLayer import RegisterHardwareLayer


[docs] class fei4_rx(RegisterHardwareLayer): """FEI4 receiver controller interface for fei4_rx FPGA module""" _registers = { "RESET": {"descr": {"addr": 0, "size": 8, "properties": ["writeonly"]}}, "RX_RESET": {"descr": {"addr": 1, "size": 8, "properties": ["writeonly"]}}, "VERSION": {"descr": {"addr": 0, "size": 8, "properties": ["ro"]}}, "READY": {"descr": {"addr": 2, "size": 1, "properties": ["ro"]}}, "INVERT_RX": {"descr": {"addr": 2, "size": 1, "offset": 1}}, "ENABLE_RX": {"descr": {"addr": 2, "size": 1, "offset": 2}}, "FIFO_SIZE": {"default": 0, "descr": {"addr": 3, "size": 16, "properties": ["ro"]}}, "DECODER_ERROR_COUNTER": {"descr": {"addr": 5, "size": 8, "properties": ["ro"]}}, "LOST_DATA_COUNTER": {"descr": {"addr": 6, "size": 8, "properties": ["ro"]}}, } _require_version = "==3" def __init__(self, intf, conf): super(fei4_rx, self).__init__(intf, conf) def reset(self): self.RESET = 0 def rx_reset(self): self.RX_RESET = 0 def is_done(self): return self.is_ready @property def is_ready(self): return self.READY def set_invert_rx(self, value): self.INVERT_RX = value def get_invert_rx(self): return self.INVERT_RX def get_fifo_size(self): return self.FIFO_SIZE def get_decoder_error_counter(self): return self.DECODER_ERROR_COUNTER def get_lost_data_counter(self): return self.LOST_DATA_COUNTER