LightProbe - Frontend Firmware and Control Side Channel
In the LightProbe project, we are exploring the next generation of medical ultrasound imaging systems: The LightProbe is a programmable ultrasound transducer head, which incorporates the entire analog frontend and directly outputs the captured digital samples. This allows the LightProbe to be directly connected to any commodity hardware (phone, tablet, workstation) for post-processing over a standard digital link as simple as a standard peripheral, like a camera.
The LightProbe has two main challenges: The involved ten's of Gb/s data-rates produced by the frontend, which need to be processed and transported off-head, and the power/thermal constraints of such a high-performance handheld device.
The frontend consists out of about a dozen chips, which are mostly commercial ASICs providing special functions for medical ultrasound imaging. The two most complex chips are the transmit beamformer and a special A/D converter chip. The transmit beamformer generates the signal waveforms, which are later emitted into the tissue for imaging. The special ADC not only converts the received echos from the analog domain into the digital domain, but also amplifies the signal following a predefined curve to compensate for signal losses in the tissue. Configuring and controlling such a frontend properly is not a trivial task.
The main goal of this project is to implement the frontend firmware running on a soft-core microcontroller instantiated in the onboard-FPGA and to implement the control sidechannel interface to the backend system (a PC in our case).
You will work with our prototype custom FPGA board (see Picture), which incorporates part of the frontend. You will be given a running (and tested!) skeleton implementation, which includes the FPGA design with the soft-core microcontroller and some low-level C-functions to interface the frontend chips. Your tasks are
- Implement the firmware for the soft-core microcontroller
- Design an interface/API such that the firmware can talk to the backend system (UART based)
- Implement a simple software running on the backend system to talk with the firmware in order to control the frontend.
This is a system engineering project and ideal if you want to learn how different components in a complex system interact and if you want to get some experience in system design and high-level FPGA design.
- Basic C programming
- Microcontroller programming experience is a plus but not required
- VLSI I recommended, but not required
- Looking for Interested Students
- Supervision: Pascal Hager
- 10% Preparations: get to know the system & ultrasound imaging basics
- 50% Firmware programming
- 40% Interface & backend programming