samna.speck2fBoards

Contents

samna.speck2fBoards#

Submodules#

Module content#

class samna.speck2fBoards.CharBoardPowerModule#

Bases: pybind11_object

A handle which offers basic power api.

get_adc_core(self: samna.speck2fBoards.CharBoardPowerModule) samna.unifirm.adc.ads1119.Ads1119#
get_adc_io(self: samna.speck2fBoards.CharBoardPowerModule) samna.unifirm.adc.ads1119.Ads1119#
init_adc(self: samna.speck2fBoards.CharBoardPowerModule) None#
init_vdd(self: samna.speck2fBoards.CharBoardPowerModule, arg0: samna.speck2fBoards.CharBoardDefaultConfig) None#
reset_adc(self: samna.speck2fBoards.CharBoardPowerModule) None#
set_vdd_io(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set IO Power Supply

set_vdd_logic(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set Digital Power Supply

set_vdd_pixel_analog(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set Pixel Field Analog Power Supply

set_vdd_pixel_digital(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set Pixel Field Digital Power Supply

set_vdd_ram(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set SRAM Power Supply

set_vih(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set VIH Power Supply

set_vih_test(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set VIH test Power Supply

set_vil(self: samna.speck2fBoards.CharBoardPowerModule, arg0: float) None#

Set VIL power supply

class samna.speck2fBoards.DevKitDefaultConfig#

Bases: DefaultConfigBase

Default configuration for speck2f boards. Used as optional argument for
property boot_from_flash#

Force the board to boot from flash or not if set to True/False, ignoring any other conditions.

from_json(self: samna.speck2fBoards.DevKitDefaultConfig, arg0: str) None#
property io_voltage#

Voltage of io channel.

property logic_voltage#

Voltage of logic channel.

property pixel_analog_voltage#

Voltage of pixel analog channel.

property pixel_digital_voltage#

Voltage of pixel digital channel.

property ram_voltage#

Voltage of ram channel.

to_json(self: samna.speck2fBoards.DevKitDefaultConfig) str#
class samna.speck2fBoards.DevKitPowerModule#

Bases: pybind11_object

A handle which offers basic power api.

get_adc_core(self: samna.speck2fBoards.DevKitPowerModule) samna.unifirm.adc.ads1119.Ads1119#
get_adc_io(self: samna.speck2fBoards.DevKitPowerModule) samna.unifirm.adc.ads1119.Ads1119#
set_vdd_io(self: samna.speck2fBoards.DevKitPowerModule, arg0: float) None#

Set IO Power Supply

set_vdd_logic(self: samna.speck2fBoards.DevKitPowerModule, arg0: float) None#

Set Digital Power Supply

set_vdd_pixel_analog(self: samna.speck2fBoards.DevKitPowerModule, arg0: float) None#

Set Pixel Field Analog Power Supply

set_vdd_pixel_digital(self: samna.speck2fBoards.DevKitPowerModule, arg0: float) None#

Set Pixel Field Digital Power Supply

set_vdd_ram(self: samna.speck2fBoards.DevKitPowerModule, arg0: float) None#

Set SRAM Power Supply

class samna.speck2fBoards.Lcc84LoulanPowerModule#

Bases: pybind11_object

A handle which offers basic power api.

get_adc_core(self: samna.speck2fBoards.Lcc84LoulanPowerModule) samna.unifirm.adc.ads1119.Ads1119#
get_adc_io(self: samna.speck2fBoards.Lcc84LoulanPowerModule) samna.unifirm.adc.ads1119.Ads1119#
set_vdd_io(self: samna.speck2fBoards.Lcc84LoulanPowerModule, arg0: float) None#

Set IO Power Supply

set_vdd_logic(self: samna.speck2fBoards.Lcc84LoulanPowerModule, arg0: float) None#

Set Digital Power Supply

set_vdd_pixel_analog(self: samna.speck2fBoards.Lcc84LoulanPowerModule, arg0: float) None#

Set Pixel Field Analog Power Supply

set_vdd_pixel_digital(self: samna.speck2fBoards.Lcc84LoulanPowerModule, arg0: float) None#

Set Pixel Field Digital Power Supply

set_vdd_ram(self: samna.speck2fBoards.Lcc84LoulanPowerModule, arg0: float) None#

Set SRAM Power Supply

class samna.speck2fBoards.MeasurementChannels#

Bases: pybind11_object

Members:

Io

Ram

Logic

PixelDigital

PixelAnalog

property name#
class samna.speck2fBoards.Speck2fCharQiuciBoard#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f dev kit.

enable_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for CLK signal.

enable_mode_sel_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for MODE_SEL signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for MODE_SEL signal.

enable_rb_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for RB signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for RB signal.

enable_slow_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for slow CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for slow CLK signal.

enable_spi_m_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master CLK signal.

enable_spi_m_miso_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master MISO signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master MISO signal.

enable_spi_m_mosi_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master MOSI signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master MOSI signal.

enable_spi_m_ssn_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master SSN signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master SSN signal.

enable_spi_m_to_fpga(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Control the analog switch to connect SPI master signals to fpga, otherwise connects to the external flash if disabled, default enabled.

Parameters:

enable (bool) – enable/disable the connection of SPI master signals to fpga.

enable_spi_s_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave CLK signal.

enable_spi_s_miso_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave MISO signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave MISO signal.

enable_spi_s_mosi_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave MOSI signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave MOSI signal.

enable_spi_s_ssn_vil_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave SSN signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave SSN signal.

enable_vih(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Enable VIH voltage supply, default disabled.

Parameters:

enable (bool) – enable/disable the VIH voltage supply.

get_board_serial_number(self: samna.speck2fBoards.Speck2fCharQiuciBoard) str#

Get the serial number of the board.

Returns:

The board serial number.

get_core_dac(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.dac.dac7678.Dac7678#
get_firmware_versions(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_dac(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.dac.dac7678.Dac7678#
get_io_module(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.speck2fBoards.CharBoardPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fCharQiuciBoard) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_testing_module(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.testingModule.TestingModule#

Get a handle for communicating with the underlying Unifirm testing module.

Returns:

TestingModule

get_testing_module_sink_node(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.DeviceSinkNode_testing_module_event_input_event#

Convenience function to get the sink node of the testing module directly.

get_testing_module_source_node(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.DeviceSourceNode_testing_module_event_output_event#

Convenience function to get the source node of the testing module directly

get_usb_controller(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

get_waveform_generator(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.waveformGenerator.WaveformGenerator#

Get a handle to waveform generator.

Returns:

WaveformGenerator.

init(self: samna.speck2fBoards.Speck2fCharQiuciBoard, bootFromFlash: bool | None = None) None#

Initialize the board.) :param bootFromFlash: Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken :type bootFromFlash: bool

init_noc(self: samna.speck2fBoards.Speck2fCharQiuciBoard) None#

Configure the routing of the network on chip.

make_unifirm_hook(self: samna.speck2fBoards.Speck2fCharQiuciBoard) samna.unifirm.UnifirmHook#

Make a unifirm hook instance appropriately configured to tap into packet traffic.

read_write(self: samna.speck2fBoards.Speck2fCharQiuciBoard) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fCharQiuciBoard, bootFromFlash: bool | None = None, defaultConfig: samna.speck2fBoards.ZynqCharBoardDefaultConfig | None = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fCharQiuciBoard, bootFromFlash: bool | None = None, skipIsReadyCheck: bool | None = None) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • skipIsReadyCheck (optional bool) – Specify whether to check the ready status of the Speck2f after reset. If not specified, the value specified in the default configuration provided during board initialization will be used instead, which defaults to False)

set_io_module_destination(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: str) None#
set_mode_sel_high(self: samna.speck2fBoards.Speck2fCharQiuciBoard, arg0: bool) None#

Set MODE_SEL pins to HIGH if True, otherwise LOW if False, default LOW.

Parameters:

enable (bool) – Set MODE_SEL pins to HIGH if True, otherwise Low if False.

start_reader_writer(self: samna.speck2fBoards.Speck2fCharQiuciBoard) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fCharQiuciBoard) None#
class samna.speck2fBoards.Speck2fCharacterizationBoard#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f testboard.

enable_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for CLK signal.

enable_mode_sel_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for MODE_SEL signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for MODE_SEL signal.

enable_rb_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for RB signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for RB signal.

enable_slow_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for slow CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for slow CLK signal.

enable_spi_m_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master CLK signal.

enable_spi_m_miso_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master MISO signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master MISO signal.

enable_spi_m_mosi_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master MOSI signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master MOSI signal.

enable_spi_m_ssn_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI master SSN signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI master SSN signal.

enable_spi_m_to_fpga(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Control the analog switch to connect SPI master signals to fpga, otherwise connects to the external flash if disabled, default enabled.

Parameters:

enable (bool) – enable/disable the connection of SPI master signals to fpga.

enable_spi_s_clk_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave CLK signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave CLK signal.

enable_spi_s_miso_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave MISO signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave MISO signal.

enable_spi_s_mosi_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave MOSI signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave MOSI signal.

enable_spi_s_ssn_vil_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable the VIL/VIH test for SPI slave SSN signal, default disabled.

Parameters:

enable (bool) – enable/disable the VIL/VIH test for SPI slave SSN signal.

enable_vih(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Enable VIH voltage supply, default disabled.

Parameters:

enable (bool) – enable/disable the VIH voltage supply.

get_board_serial_number(self: samna.speck2fBoards.Speck2fCharacterizationBoard) str#

Get the serial number of the board.

Returns:

The board serial number.

get_core_dac(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.unifirm.dac.dac7678.Dac7678#
Returns:

A handle to the DAC of core power. Useful in debug scenarios.

get_edge_detection_module(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.unifirm.modules.edgeDetection.EdgeDetectionModule#
Returns:

A handle to an EdgeDetectionModule object providing a source node to output pulse detection events.

get_firmware_versions(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_dac(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.unifirm.dac.dac7678.Dac7678#
Returns:

A handle to the DAC of IO power. Useful in debug scenarios.

get_io_module(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.speck2fBoards.CharBoardPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fCharacterizationBoard) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_usb_controller(self: samna.speck2fBoards.Speck2fCharacterizationBoard) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

read_write(self: samna.speck2fBoards.Speck2fCharacterizationBoard) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fCharacterizationBoard, bootFromPc: bool, defaultConfig: samna.speck2fBoards.CharBoardDefaultConfig = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:

bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

set_mode_sel_high(self: samna.speck2fBoards.Speck2fCharacterizationBoard, arg0: bool) None#

Set MODE_SEL pins to HIGH if True, otherwise LOW if False, default LOW.

Parameters:

enable (bool) – Set MODE_SEL pins to HIGH if True, otherwise Low if False.

start_reader_writer(self: samna.speck2fBoards.Speck2fCharacterizationBoard) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fCharacterizationBoard) None#
class samna.speck2fBoards.Speck2fDevKit#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f dev kit.

get_board_serial_number(self: samna.speck2fBoards.Speck2fDevKit) str#

Get the serial number of the board.

Returns:

The board serial number.

get_dac(self: samna.speck2fBoards.Speck2fDevKit) samna.unifirm.dac.dac7678.Dac7678#
get_edge_detection_module(self: samna.speck2fBoards.Speck2fDevKit) samna.unifirm.modules.edgeDetection.EdgeDetectionModule#
Returns:

A handle to an EdgeDetectionModule object providing a source node to output pulse detection events.

get_firmware_versions(self: samna.speck2fBoards.Speck2fDevKit) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fDevKit) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_module(self: samna.speck2fBoards.Speck2fDevKit) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fDevKit) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fDevKit) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fDevKit) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fDevKit) samna.speck2fBoards.DevKitPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fDevKit) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fDevKit) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fDevKit) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_usb_controller(self: samna.speck2fBoards.Speck2fDevKit) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

read_write(self: samna.speck2fBoards.Speck2fDevKit) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fDevKit, bootFromPc: bool, defaultConfig: samna.speck2fBoards.DevKitDefaultConfig = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fDevKit, arg0: bool) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:

bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

start_reader_writer(self: samna.speck2fBoards.Speck2fDevKit) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fDevKit) None#
class samna.speck2fBoards.Speck2fLcc84LoulanBoard#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f dev kit.

get_board_serial_number(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) str#

Get the serial number of the board.

Returns:

The board serial number.

get_dac(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.unifirm.dac.dac7678.Dac7678#
get_firmware_versions(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_module(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.speck2fBoards.Lcc84LoulanPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_testing_module(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.testingModule.TestingModule#

Get a handle for communicating with the underlying Unifirm testing module.

Returns:

TestingModule

get_testing_module_sink_node(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.DeviceSinkNode_testing_module_event_input_event#

Convenience function to get the sink node of the testing module directly.

get_testing_module_source_node(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.DeviceSourceNode_testing_module_event_output_event#

Convenience function to get the source node of the testing module directly

get_usb_controller(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

get_waveform_generator(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.unifirm.waveformGenerator.WaveformGenerator#
init(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard, bootFromFlash: bool | None = None) None#

Initialize the board.) :param bootFromFlash: Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken :type bootFromFlash: bool

make_unifirm_hook(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) samna.unifirm.UnifirmHook#

Make a unifirm hook instance appropriately configured to tap into packet traffic.

read_write(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard, bootFromFlash: bool | None = None, defaultConfig: samna.speck2fBoards.ZynqBoardDefaultConfig = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard, bootFromFlash: bool | None = None, skipIsReadyCheck: bool | None = None) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • skipIsReadyCheck (optional bool) – Specify whether to check the ready status of the Speck2f after reset. If not specified, the value specified in the default configuration provided during board initialization will be used instead, which defaults to False)

set_io_module_destination(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard, arg0: str) None#
start_reader_writer(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fLcc84LoulanBoard) None#
class samna.speck2fBoards.Speck2fModuleDevKit#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f module dev kit.

get_board_serial_number(self: samna.speck2fBoards.Speck2fModuleDevKit) str#

Get the serial number of the board.

Returns:

The board serial number.

get_dac(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.unifirm.dac.dac7678.Dac7678#
get_edge_detection_module(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.unifirm.modules.edgeDetection.EdgeDetectionModule#
Returns:

A handle to an EdgeDetectionModule object providing a source node to output pulse detection events.

get_firmware_versions(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_module(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.speck2fBoards.DevKitPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fModuleDevKit) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_usb_controller(self: samna.speck2fBoards.Speck2fModuleDevKit) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

read_write(self: samna.speck2fBoards.Speck2fModuleDevKit) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fModuleDevKit, bootFromPc: bool, defaultConfig: samna.speck2fBoards.DevKitDefaultConfig = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fModuleDevKit, arg0: bool) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:

bootFromPc (bool) – False if there is an external flash contains valid data, otherwise it has to be set to True.

start_reader_writer(self: samna.speck2fBoards.Speck2fModuleDevKit) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fModuleDevKit) None#
class samna.speck2fBoards.Speck2fModuleLoulanBoard#

Bases: pybind11_object

Composite object that allows access to all the board features of a Speck 2f dev kit.

get_board_serial_number(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) str#

Get the serial number of the board.

Returns:

The board serial number.

get_dac(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.unifirm.dac.dac7678.Dac7678#
get_firmware_versions(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.boards.common.FirmwareVersions#

Get the Fxtree and Unifirm versions of this board.

get_io_control_module(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.unifirm.modules.ioControl.IoControlModule#
Returns:

A handle to an IOControlModule object which is used to control the IO pins of the FPGA. It it mainly used for debugging.

get_io_module(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.speck2fBoards.UnifirmModule#
Returns:

A handle to the unifirm IO module. Useful in debug scenarios.

get_model(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.speck2f.Speck2fModel#

Get the model of the Speck 2f device on this board.

Returns:

Speck2fModel

get_model_sink_node(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.DeviceSinkNode_speck2f_event_input_event#

Convenience function to get the model sink node directly

get_model_source_node(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.DeviceSourceNode_speck2f_event_output_event#

Convenience function to get the model source node directly

get_power_module(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.speck2fBoards.Lcc84LoulanPowerModule#
Returns:

A handle to an PowerModule object which is used to control power trace voltage and measure power consumption.

get_power_monitor(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.boards.common.power.PowerMonitor#
Returns:

A handle to an PowerMonitor object which is used to read power.

get_reader_writer(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) unifirm::UnifirmReaderWriter#
get_stop_watch(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.unifirm.timestamp.StopWatch#
Returns:

A handle to the stopwatch object to control timestamp in events, for debug purpose. See StopWatch

get_testing_module(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.testingModule.TestingModule#

Get a handle for communicating with the underlying Unifirm testing module.

Returns:

TestingModule

get_testing_module_sink_node(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.DeviceSinkNode_testing_module_event_input_event#

Convenience function to get the sink node of the testing module directly.

get_testing_module_source_node(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.DeviceSourceNode_testing_module_event_output_event#

Convenience function to get the source node of the testing module directly

get_usb_controller(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.fxtree.FxTreeDevice#
Returns:

A handle to an FxTreeDevice object which is used to control the Cypress SuperSpeed USB 3.0 peripheral controller. It it mainly used for debugging.

init(self: samna.speck2fBoards.Speck2fModuleLoulanBoard, bootFromFlash: bool | None = None) None#

Initialize the board.) :param bootFromFlash: Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken :type bootFromFlash: bool

make_unifirm_hook(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) samna.unifirm.UnifirmHook#

Make a unifirm hook instance appropriately configured to tap into packet traffic.

read_write(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) None#
reset_board_soft(self: samna.speck2fBoards.Speck2fModuleLoulanBoard, bootFromFlash: bool | None = None, defaultConfig: samna.speck2fBoards.ZynqBoardDefaultConfig = None) None#

Reset the FPGA and reset the peripherals. Select where the configuration comes from for the Speck 2f chip (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • defaultConfig (Optional[DefaultConfig]) – replace default default config if set.

reset_model(self: samna.speck2fBoards.Speck2fModuleLoulanBoard, bootFromFlash: bool | None = None, skipIsReadyCheck: bool | None = None) None#

Reset the Speck 2f chip and select where the configuration comes from (External flash or PC).

Parameters:
  • bootFromFlash (bool) – Set to true if there is an external flash containing valid chip configuration data. If not provided, the value specified in the default configuration is taken

  • skipIsReadyCheck (optional bool) – Specify whether to check the ready status of the Speck2f after reset. If not specified, the value specified in the default configuration provided during board initialization will be used instead, which defaults to False)

set_io_module_destination(self: samna.speck2fBoards.Speck2fModuleLoulanBoard, arg0: str) None#
start_reader_writer(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) None#
stop_reader_writer(self: samna.speck2fBoards.Speck2fModuleLoulanBoard) None#
class samna.speck2fBoards.UnifirmModule#

Bases: pybind11_object

The control of the Speck 2f IO module inside the FPGA. The main clock, SPI clock, slow clock and JTAG clock can be controlled. You could also control the five powers individually and assert/deassert the Speck 2f chip.

assert_reset(self: samna.speck2fBoards.UnifirmModule) None#

Assert reset of the Speck 2f.

deassert_reset(self: samna.speck2fBoards.UnifirmModule) None#

Deassert reset of the Speck 2f.

enable_asi_interface(self: samna.speck2fBoards.UnifirmModule) None#

Enable the ASI interface. Internal debug only.

enable_jtag(self: samna.speck2fBoards.UnifirmModule, arg0: bool) None#

Enable JTAG interface, internal debug only. Default disabled.

Parameters:

enable (bool) – True to enable the JTAG interface, False disable it.

enable_power(self: samna.speck2fBoards.UnifirmModule, arg0: int) None#

Controls the enable/disable of the five power traces (VDD_IO, VDD_RAM, VDD_LOGIC, VDD_PIXEL_DIGITAL, VDD_PIXEL_ANALOG). These five channels are controlled by the lower five bits respectively, 1 means enable and 0 means disable. Default all enabled.

Parameters:

channel (int) – the channels to be enable/disabled.

pulse_in_out_interface_clk(self: samna.speck2fBoards.UnifirmModule) None#

Generate one pulse of the main clock. Internal debug only.

pulse_slow_clk(self: samna.speck2fBoards.UnifirmModule) None#

Generate one pulse on the external slow clock. This is useful if you want to manually control the computation of the READOUT block, CNN layer leakage block or DVS filter block. If you want those blocks to perform one computation, just invoke this method one time.

request_dropped_events_num(self: samna.speck2fBoards.UnifirmModule) None#

Request the number of events dropped from the IO module due to unable to accept more from the chip.

Internal debug only.

reset_through_registers(self: samna.speck2fBoards.UnifirmModule) None#

Reset the Speck 2f through registers. Internal debug only.

set_chip_stuck_check_delay(self: samna.speck2fBoards.UnifirmModule, check_delay_micro_sec: int = 500000) None#

Set the delay of checking chip stuck in microseconds. Default 5e5 microsecond.

Parameters:

delay (int) – delay in microsecond.

set_chip_stuck_check_enable(self: samna.speck2fBoards.UnifirmModule, arg0: bool) None#

When enabled, fpga keeps checking chip stuck. When chip stucks, fpga will enter packet dump state: all packets received by fifo will be dropped silently except the packet sent by samna.speck2fBoards.UnifirmModule.stop_packet_dump. Default disabled.

Parameters:

enable (bool) – True to enable this feature, False disable it.

set_dual_channel_output_enable(self: samna.speck2fBoards.UnifirmModule, arg0: bool) None#

Enable the dual channel output feature. This could improve the output bandwidth if you have extremely high output throughput. Otherwise it may decrease the performance. Default disabled. Note you should control this feature through the monitor_dual_channel, instead of invoking this method directly!

Parameters:

enable (bool) – True to enable this feature, False to disable it.

set_in_out_interface_clk(self: samna.speck2fBoards.UnifirmModule, arg0: bool) None#

Enable/disable the main clock (IO interface clock). Default enabled. The main clock is essential to Speck 2f, it must be enable otherwise you can’t use the chip.

Parameters:

onOff (bool) – True to enable the main clock, False to disable the main clock.

set_in_out_interface_clk_rate(self: samna.speck2fBoards.UnifirmModule, arg0: int) None#

Set the main clock (IO interface clock). Default is 25Mhz. Maximum 25Mhz.

Parameters:

clock (int) – clock in Hz.

set_jtag_clk_rate(self: samna.speck2fBoards.UnifirmModule, arg0: int) None#

Set the JTAG clock rate in Hz. Internal debug only.

Parameters:

frequency (int) – JTAG clock in Hz.

set_slow_clk(self: samna.speck2fBoards.UnifirmModule, arg0: bool) None#

Enable/disable the external slow clock. Default disabled. The slow clock can used with the Readout block, CNN layer leakage block and DVS filter block.

Parameters:

onOff (bool) – True to enable the slow clock, False to disable it.

set_slow_clk_rate(self: samna.speck2fBoards.UnifirmModule, arg0: int) None#

Set the external slow clock rate in Hz. Default 1000Hz.

Parameters:

frequency (int) – slow clock rate in Hz.

set_spi_clk_rate(self: samna.speck2fBoards.UnifirmModule, arg0: int) None#

Set CPI clock rate in Hz, which can not exceeds 1/16 of the main clock. Default 1.5625Mhz.

Parameters:

freq (int) – clock rate in Hz.

stop_packet_dump(self: samna.speck2fBoards.UnifirmModule) None#

Stop packet dump state.

write_config(self: samna.speck2fBoards.UnifirmModule, arg0: int, arg1: int) None#

Write raw configuration for IO module, internal debug only.

Parameters:
  • addr (int) – the IO module register address

  • value (int) – value to be written

class samna.speck2fBoards.ZynqBoardDefaultConfig#

Bases: DefaultConfigBase

Default configuration for Speck2f with Zynq fpga board. Used as optional argument for
property boot_from_flash#

Force the board to boot from flash or not if set to True/False, ignoring any other conditions.

from_json(self: samna.speck2fBoards.ZynqBoardDefaultConfig, arg0: str) None#
property init#

True.

Type:

Initialize the board on construction. Default

property io_voltage#

Voltage of io channel.

property logic_voltage#

Voltage of logic channel.

property pixel_analog_voltage#

Voltage of pixel analog channel.

property pixel_digital_voltage#

Voltage of pixel digital channel.

property ram_voltage#

Voltage of ram channel.

property skip_is_ready_check#

False.

Type:

Do not wait until Speck2f confirms it is ready. Default

to_json(self: samna.speck2fBoards.ZynqBoardDefaultConfig) str#
class samna.speck2fBoards.ZynqCharBoardDefaultConfig#

Bases: CharBoardDefaultConfig

Default configuration for Speck2f characterization with Qiuci fpga board. Used as optional argument for
from_json(self: samna.speck2fBoards.ZynqCharBoardDefaultConfig, arg0: str) None#
property init#

True.

Type:

Initialize the board on construction. Default

property skip_is_ready_check#

False.

Type:

Do not wait until Speck2f confirms it is ready. Default

to_json(self: samna.speck2fBoards.ZynqCharBoardDefaultConfig) str#