Armaan Gomes, I Think, Maybe
AGI-INDEXREV A

Supermic+more: PDM Bitstream ASICs for Audio Signal Processing

August 31, 2024

← Blog

Supermic+more: PDM Bitstream ASICs to Accelerate Audio Signal Processing

Summary

PDM microphones are commonly used in cellphones, and most microprocessors include hardware support to convert the PDM bitstreams into standard PCM format, typically supporting two channels. While it is possible to source specialized hardware to support more channels and convert PDM to PCM, native PDM bitstreams have remarkable properties that benefit beamforming (and other signal processing) applications.

Compared to PCM, directly manipulating the PDM bitstream offers significant advantages for beamforming. PCM is typically sampled at 48 kHz, requiring complex fractional delay techniques for effective beamforming. In contrast, the PDM bitstream operates at a 3072 kHz rate, providing much higher time resolution, which makes delay implementation simpler and more precise, allowing for better beamforming performance and efficiency.

Similarly, other operations like cross-correlation, pitch detection, and null steering can be applied directly to the PDM bitstream. Since these operations are typically 1-bit wide but occur at much higher rates than audio frequencies, they are best implemented in silicon rather than through software.

This project implements these operations as ASICs using the Skywater 130nm CMOS process. Eight designs of subsystems useful for hearing aids were submitted for fabrication in September 2024 via Tiny Tapeout 8.

Individual Chips

  • SuperMic — An 8-microphone delay-and-sum beamformer with programmable delays and a 3rd-order CIC filter for PDM-to-PCM conversion. Includes I2S output for Raspberry Pi. Implemented in Verilog, taped out on TT08 (8x2 slices). GDSII · Docs

  • 16-Microphone Beamformer — 16-channel PDM beamformer with DDR input, SDR conversion, 3-stage CIC filter, and I2S output. GDSII · Docs

  • Programmable PDM Pitch Filter — Narrowband notch filter exploiting PDM time resolution to remove a specific frequency from an audio stream. 1x2 slices. GDSII · Docs

  • Programmable PDM Cross and Auto Correlator — Computes delay via the correlation operator; useful for direction-of-arrival estimation and pitch identification. 1x2 slices. GDSII · Docs

  • Digital to Digital Converter (two channel) — Converts 16-bit stereo PCM to a 64x oversampled PDM bitstream. 2x2 slices. GDSII · Docs

  • I2S to PWM Converter — Converts I2S to PWM for analog output via a simple low-pass filter. 1x1 slices. GDSII · Docs

  • Dual Mixer Time Difference Converter — Measures similarity between two PDM bitstreams with a programmable 128-bit delay for path compensation. 1x1 slices. GDSII · Docs

  • Clock Divider — 7-bit programmable divider with variable delay shift for alignment. 1x1 slices. GDSII · Docs

More Coming Soon...

None of this would have been possible without the amazing instructors, TAs, and people at BWSI and MIT Lincoln Labs.