FPGA Acceleration of CNN-BiLSTM for EEG-Based Sleep Staging Featuring FFT-Based Non-Unit Stride Fast Convolution
Deep learning (DL) models for real-time wearable sleep staging often rely on long-kernel temporal convolutions, a requirement that current accelerators struggle to support efficiently. To overcome this, we present an FPGA-based CNN-BiLSTM accelerator that incorporates several algorithm-hardware co-design techniques to enable efficient edge inference. Central to this design is an FFT-based non-unit stride fast convolution, which performs accumulation in the frequency domain to enable a single IFFT per block, reducing post-processing complexity to $O(N\log N)$. On the target long-kernel convolution layer, this yields a 20.5$\times$ reduction in arithmetic operations. Power-of-two quantization is applied across the pipeline, including FFT-based convolution and BiLSTM activations, with an average accuracy degradation of only 0.11% relative to the floating-point baseline across all subjects on the public MASS-SS3 dataset. Additional optimizations, including block convolution, depth-first execution, and hardware engine reuse minimize memory access and enhance resource utilization. The accelerator, implemented on a Xilinx Zynq-7000 FPGA, operates at 10 MHz and consumes 11 mW of dynamic power including data handling and configuration overhead from a microcontroller. The design achieves a DSP power efficiency of 0.91 GOPS/W/DSP using only 4 DSPs, demonstrating scalable and energy-efficient DL acceleration for sleep staging that can be extended to other wearable applications.