Automatic Application-Specific Calibration to Enable Dynamic Voltage Scaling in FPGAs

Dynamic voltage scaling (DVS) is one of the most effective ways to reduce integrated circuit power. However, the programmability of field programmable gate arrays (FPGAs) means that the critical paths depend on the application configured into the FPGA and this makes DVS more difficult. We propose a DVS technique that is able to determine the minimum safe <inline-formula> <tex-math notation="LaTeX">${V_{\text {dd}}}$ </tex-math></inline-formula> of any application for each FPGA chip. For each application, we create multiple calibration bit-streams that are used to generate a calibration table (CT), which stores the actual failing points of that application on a specific FPGA, under various operating conditions. This CT is used to scale <inline-formula> <tex-math notation="LaTeX">${ V_{\text {dd}}}$ </tex-math></inline-formula> while the application is running to guarantee safe operation with minimal power consumption. We develop an automated tool (FRoC) that ensures a fast-robust-calibration of the FPGA to any application using it. FRoC makes the calibration process invisible to FPGA users, does not add any extra manual steps to the design process, and uses novel algorithms to minimize the extra flash storage requirements for calibration. Our results show that across a large suite of benchmarks the calibration process requires a geomean of less than four bit-streams and our DVS technique achieves a 33% total power reduction on two large applications.

[1]  Wayne Luk,et al.  Dynamic voltage scaling for commercial FPGAs , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[2]  Vaughn Betz,et al.  The stratixπ routing and logic architecture , 2003, FPGA '03.

[3]  Peter Y. K. Cheung,et al.  Online Measurement of Timing in Circuits: For Health Monitoring and Dynamic Voltage & Frequency Scaling , 2012, 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines.

[4]  Charles E. Stroud,et al.  BIST-Based Delay-Fault Testing in FPGAs , 2003, J. Electron. Test..

[5]  Peter Y. K. Cheung,et al.  Timing Fault Detection in FPGA-Based Circuits , 2014, FCCM 2014.

[6]  André DeHon,et al.  GROK-LAB: Generating Real On-chip Knowledge for Intra-cluster Delays Using Timing Extraction , 2015, TRETS.

[7]  Sani R. Nassif,et al.  Characterizing Process Variation in Nanometer CMOS , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[8]  André DeHon,et al.  GROK-INT: Generating Real On-Chip Knowledge for Interconnect Delays Using Timing Extraction , 2014, 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines.

[9]  Vaughn Betz,et al.  A universal self-calibrating Dynamic Voltage and Frequency Scaling (DVFS) scheme with thermal compensation for energy savings in FPGAs , 2016, 2016 IEEE Applied Power Electronics Conference and Exposition (APEC).

[10]  Premachandran R. Menon,et al.  BIST-based delay path testing in FPGA architectures , 2001, Proceedings International Test Conference 2001 (Cat. No.01CH37260).

[11]  Vaughn Betz,et al.  Should FPGAS abandon the pass-gate? , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[12]  Steven Trimberger,et al.  Analysis of within-die process variation in 65nm FPGAs , 2011, 2011 12th International Symposium on Quality Electronic Design.

[13]  Shiy Xu,et al.  A new way of detecting reconvergent fanout branch pairs in logic circuits , 2004, 13th Asian Test Symposium.

[14]  Peter Y. K. Cheung,et al.  Dynamic voltage & frequency scaling with online slack measurement , 2014, FPGA.

[15]  Soraya Ghiasi,et al.  A Distributed Critical-Path Timing Monitor for a 65nm High-Performance Microprocessor , 2007, 2007 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[16]  Jonathan Rose,et al.  The effect of LUT and cluster size on deep-submicron FPGA performance and density , 2004 .

[17]  Sen Wang,et al.  VTR 7.0: Next Generation Architecture and CAD System for FPGAs , 2014, TRETS.

[18]  Premachandran R. Menon,et al.  Design-specific path delay testing in lookup-table-based FPGAs , 2006, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Peter Y. K. Cheung,et al.  SMI: Slack Measurement Insertion for online timing monitoring in FPGAs , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[20]  Vaughn Betz,et al.  Measure twice and cut once: Robust dynamic voltage scaling for FPGAs , 2016, 2016 26th International Conference on Field Programmable Logic and Applications (FPL).

[21]  José Luis Núñez-Yáñez,et al.  Adaptive Voltage Scaling in a Dynamically Reconfigurable FPGA-Based Platform , 2012, TRETS.

[22]  P. K. Lala,et al.  Algorithm to detect reconvergent fanouts in logic circuits , 1987 .

[23]  Trevor Mudge,et al.  Razor: a low-power pipeline based on circuit-level timing speculation , 2003, Proceedings. 36th Annual IEEE/ACM International Symposium on Microarchitecture, 2003. MICRO-36..

[24]  José Núñez-Yáñez,et al.  Adaptive voltage scaling in a heterogeneous FPGA device with memory and logic in-situ detectors , 2017, Microprocess. Microsystems.

[25]  Abdulazim Amouri,et al.  Investigation of aging effects in different implementations and structures of programmable routing resources of FPGAs , 2012, 2012 International Conference on Field-Programmable Technology.

[26]  E. Chmelaf Fpga interconnect delay fault testing , 2003, International Test Conference, 2003. Proceedings. ITC 2003..

[27]  Mehdi Baradaran Tahoori,et al.  Application-Dependent Delay Testing of FPGAs , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[28]  Jose Nunez-Yanez Energy proportional computing in commercial FPGAs with adaptive voltage scaling , 2013 .

[29]  David Lewis,et al.  Using Sparse Crossbars within LUT Clusters , 2001 .