PicoRV32 in use at ALS
Updated: Dec 20, 2019
I recently spoke to engineer Michael Betz about his work with particle accelerators and Open Source hardware and software. With 7 years of experience at CERN and another 3 at ALS in California he has some great experience with building big science infrastructure.
In the old days, a particle accelerator was linear, and the electrons were accelerated with a huge electric field. Today, we run electrons in bunches around huge rings, steered by massive electromagnets, and accelerated with precisely timed electric fields. With many bunches of electrons hurtling around the ring 5 million times per second, these fields end up in the 500MHz range, which is why Michael calls himself an RF engineer.
If you’re pushing a child on a swing, you need to time your impulses to get them going faster. In an accelerator, controlling the phase, amplitude and timing are critical to increase the speed of the bunches of electrons. Michael’s group work on a closed loop RF system that uses sensors, fast ADCs and FPGAs to get this control system to work.
The group recently presented their work at the Low Level Radio Frequency Workshop. Reasons given for publishing their software and hardware as Open Source were a general dislike of black boxes, and to make their work reproducible as possible. Their software library (called Bedrock) includes their DSP work for the RF control system and includes all test benches and unit tests. Their new hardware (called Marble) was designed using Kicad.
One reason I wanted to talk with Michael was to understand why they chose to use Clifford Wolf’s PicoRV32 processor in their safety systems. The RF energy involved in these systems is at such a high level that it can damage the equipment if things go wrong. The equipment safety system monitors arcing in the waveguides, temperatures and RF power levels. They need to switch the system off in less than a microsecond if a fault is detected. To guarantee low latency they use an FPGA running at 125MHz. This works great for the ADCs used for power levels, but the temperature information is collected using industrial PLCs communicating over modbus.
Ideally they wanted a Formally Verified processor that could run in the same clock domain as the ADCs, while being able to run some C firmware that could interface with the PLCs over modbus. PicoRV32 fit the bill perfectly and is now an integrated part of their equipment safety system.
While a lot of their software and hardware is Open Source, they are still using proprietary IP blocks for fast communication on the Xilinx FPGAs. To this end they are experimenting with the Lattice ECP5, now supported experimentally by nextpnr.
We’d like to thank Michael again for his time in explaining why Open Source tools and software are important in this fascinating field.