1
Firmware / Re: Firmware features ?
« on: April 26, 2024, 09:54:16 AM »
Hi!
Yes, you could modify FPGA firmware (image) to implement a digital filter. For example, take a look on how the signal averaging is implemented in the 'mavg' component and integrated in the firmware. If the filter will always be enabled, then this would be all that is required to make it work. Vivado can be used for compiling the FPGA image.
If you want the ability for this filter to be switched on or off through the software GUI, then you would need to add a new setting option to the hardware control registers . These registers are modified through the GUI software (or Python API) and transferred from software to the hardware. After choosing a reserved (unused) register, you woud need to write a new C function in the software to control this register (again, for example, take a look at the sfSetAverage and sfGetAverage) functions in scopefunapi.c . Then a new wxwidgets check-box would be added to the GUI and it would be used to call these hardware register modifying functions through wxWidgets.
Another option is to implement this digital filter on the host (PC), after samples are retrieved from the board. This could most trivially be implemented in Python, using scopefun Python API to connect to the board and read the samples.
Yes, you could modify FPGA firmware (image) to implement a digital filter. For example, take a look on how the signal averaging is implemented in the 'mavg' component and integrated in the firmware. If the filter will always be enabled, then this would be all that is required to make it work. Vivado can be used for compiling the FPGA image.
If you want the ability for this filter to be switched on or off through the software GUI, then you would need to add a new setting option to the hardware control registers . These registers are modified through the GUI software (or Python API) and transferred from software to the hardware. After choosing a reserved (unused) register, you woud need to write a new C function in the software to control this register (again, for example, take a look at the sfSetAverage and sfGetAverage) functions in scopefunapi.c . Then a new wxwidgets check-box would be added to the GUI and it would be used to call these hardware register modifying functions through wxWidgets.
Another option is to implement this digital filter on the host (PC), after samples are retrieved from the board. This could most trivially be implemented in Python, using scopefun Python API to connect to the board and read the samples.