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