AdaCore: Build Software that Matters
AdaCore Hero Image

Adabmp

A Penn State Behrend capstone team built adabmp, an open-source JTAG programmer for Artix-7 FPGAs written end to end in Ada, using a low-cost Raspberry Pi Pico instead of a vendor cable to load bitstreams and flash a RISC-V soft core.

Adabmp penn state

Penn State Behrend

Programming an FPGA usually means a vendor cable and a multi-gigabyte toolchain. A Penn State Behrend capstone team, mentored by AdaCore through the GNAT Academic Program, built an alternative: adabmp, an open-source JTAG programmer for Artix-7 FPGAs that uses a ~$5 Raspberry Pi Pico as the hardware — with both the RP2040 firmware and the Linux host tool written in Ada.

adabmp loads bitstreams into the FPGA SRAM, writes them to external SPI flash for persistent boot, flashes the NEORV32 RISC-V firmware, and bridges the UART to the soft core's bootloader. Under the hood: PIO state machines clocking JTAG, a COBS-framed packet protocol over USB CDC, and a host CLI tested against stubbed serial and filesystem interfaces across six test suites.

Along the way, the team also produced stm32f0x0_hal, an Ada HAL for the low-cost STM32F0x0 family, including a USB device controller for the USB embedded stack.

Two repos, one capstone, and a low-cost open path from an Alire build to a running RISC-V soft core.