Built-in Self Tests (BIST)

Overview

A number of self tests are implemented in the recording system to debug combinations of subsystems.

Test Functional Area
--------------------- --------------------------------
Base Station PC -> BS (slot) connection
Heartbeat Probe -> BSC FPGA connection
SerDes Link HS -> BSC communication
I2C/Memmap Probe configuration interface
EEPROM Part number/version data storage
Shift Registers Shank configuration network
Parallel Serial Bus Probe -> BSC data connection
Signal Path Signal fidelity check
Noise Level Amplifier noise check
Terminology:
    HW     = hardware
    SW     = software
    PC     = computer
    FPGA   = microcomputer
    I2C    = inter-IC bus
    BS     = base station card
    BSC    = base station connect card
    HS     = headstage
    PSB    = parallel serial bus
    POR    = power-on reset
    PRBS   = pseudo random binary signal
    SerDes = serializer/deserializer

Base Station

This test checks the connectivity between PC and BS FPGA board over the PCIe interface.

Heartbeat

The heartbeat signal generated by the PSB_SYNC signal of the probe is routed via the SerDes to the BSC FPGA. The BSC analyzes the presence of a 1 Hz clock signal.

The presence of a heartbeat signal indicates the functionality of the power supplies on the HS for serializer and probe, the POR signal, the presence of the master clock signal on the probe, the functionality of the clock divider on the probe, and basic communication over the SerDes link.

The functionality of the SerDes link is quantitatively verified using the integrated PRBS test of the SerDes component pair.

I2C/Memmap

This test verifies the functionality of the I2C interface and the probe's memory map. The function reads a register on a memory map address, writes back a modified value, reads this again, and writes the original value again to restore the probe to its settings before test.

The test is successful if the modified value can be read back, and if an ‘Ack’ byte has been received for each R/W operation.

EEPROM

The test verifies the correct access to the EEPROM on flex, HS and BSC. The function writes data to an unused location on the EEPROM, and reads it back.

The test is successful if the data can be read back, and if a ‘Ack’ byte has been received for each R/W operation.

The function tests the flex, HS and BSC EEPROM consecutively. The function returns an error after the first failed test.

Shift Registers

This test verifies the functionality of the shank and base shift registers (SR_CHAIN 1 to 3). The function configures the shift register two times with the same code. After the 2nd write cycle the SR_OUT_OK bit in the STATUS register is read. If OK, the shift register configuration was successful. The test is done for all 3 registers. The configuration code used for the test is a dedicated code (to make sure the bits are not all 0 or 1).

If this test fails, the shank is likely broken.

Parallel Serial Bus

A test mode is implemented on the probe which enables the transmission of a known data pattern over the PSB bus. This test records a small data set and verifies whether that matches the known data pattern.

This way the PSB bus on the probe and all data lines between probe and serializer are verified.

Signal Path

The probe is configured for recording of a test signal which is generated on the HS. This configuration is done via the shank and base configuration registers and the memory map. The AP data signal is recorded and the frequency and amplitude of the recorded signal are extracted for each electrode. If at least 90% of the electrodes show a signal within the frequency and amplitude tolerance, the functions returns a pass/fail value.

The function requires more than 30 seconds to complete.

Noise Level

The probe is configured for noise analysis. Via the base configuration registers and the memory map, the channel inputs are shorted to ground. The data signal is recorded and the noise level is calculated. The function analyses if the probe performance falls inside a specified tolerance range (go/no-go test).

The probe passes the noise test if fewer than 20% of the electrodes have their AP noise value out of spec, and if fewer than 20% of the electrodes have their LFP noise value out of spec.

The API function returns a pass/fail value.

The function requires more than 30 seconds to complete.

fin