Mapping Algorithm for Large-scale Field Programmable Analog Array (FPAA) Faik Baskaya, Sasank Reddy, Sung Kyu Lim, Tyson Hall, and David Anderson School of Electrical and Computer Engineering Georgia Institute of Technology Atlanta, GA 30332 {baskaya, sreddy, limsk, tyson, dva}@ece.gatech.edu ISPD’2005, San Francisco April 5, 2005 2 Motivation: Gene’s law* Gene's Law DSP Power CADSP Power 100W Power / MMAC 1W Power consumption trends 10mW 0.1mW Programmable Analog Power Savings in DSP microprocessors >20 Year Leap in Technology 1W Contribution of analog design 10nW 1980 1990 2000 2010 Year 2020 2030 Signal processing systems require low power Analog devices are preferred for low power operation * Gene Frantz, “Digital Signal Processor Trends”, IEEE Micro, Nov 2000 ISPD’2005, San Francisco April 5, 2005 3 Field Programmable Analog Arrays (FPAA) Array of Computational Analog Blocks (CAB) Discrete time and continuous time versions Not LUT based => heterogeneous resources Interconnect lines not segmented => less routing options Device/interconnect constraints different from FPGA => existing methods do not easily apply! ISPD’2005, San Francisco April 5, 2005 4 Previous Work Discrete Time (switched capacitor based) FPAA Continuous Time CMOS/Bipolar FPAA Former IMP EPAC: 150 kHz Former Motorola MPAA *: 200 kHz Lee-Gulak’1995: 125 kHz Fast Analog Solutions TRAC: 4 MHz Floating-gate based RASP: 11 MHz CAD tools Ganesan-Vemuri: DAC’2001 Wang-Vrudhula: Mixed Design of Integrated Circuits and Systems, 2001 *Now distributed by Anadigm ISPD’2005, San Francisco April 5, 2005 5 Floating gate based FPAA Vtun Vfg Computational Analog Block (CAB) components 2D array of CABs Floating gate PFET switch ISPD’2005, San Francisco April 5, 2005 6 Interconnect Analysis Three types of interconnects: type1: intra-CAB type2: inter-CAB, intra-column type3: inter-CAB, inter-column Clustering determines type1 vs. types 2&3 Clustering maximizes type1 use Vertical/horizontal wires are not segmented (unlike FPGA) R ~ 10 kW (switch on resistance) Cx = S (all switch C’s on a line) ISPD’2005, San Francisco April 5, 2005 7 Layout of a single CAB in FPAA switch matrix components ISPD’2005, San Francisco April 5, 2005 8 Advantages of floating-gate based FPAA Larger scale More components per CAB More CABs per chip More component variety Floating gate PFET switch technology Non-volatile memory unit Programmable on resistance Linear Voltage-Current characteristics ISPD’2005, San Francisco April 5, 2005 9 Analog Circuit Modeling In1 + max - min 4*4 Vector Multiplier C4 (SOS) In max Out min Out1 In2 In1 Out1 op1 cg1 ps1 mm1 ca1 ps5 ps3 vm1 vcc cf1 pf1 mm2 ps4 ps2 ps6 Out2 nf1 In2 gnd Out2 *netlist description .device fpaa1.dev vcc 1 0 in1 2 0 in2 3 0 out1 4 0 out2 5 0 op1 2 6 7 cg1 6 0 nf1 3 10 0 cf1 10 11 mm2 11 12 13 vm1 8 9 12 13 x x x x 4 5 x x .l2constraints op1 ca1 cg1… .end Extracting a directed graph from an analog circuit ISPD’2005, San Francisco April 5, 2005 10 FPAA device modeling 8*8 FPAA and its graph based representation Small circles => routing switches Large circles => CABs ISPD’2005, San Francisco April 5, 2005 11 Problem Formulation Objective Minimum number of CABs Minimum number of inter-CAB connections Constraints User constraints: certain components have to be in the same CAB Device constraints: each CAB can accommodate certain number of components of each type Net constraints: each CAB can have a maximum number of nets for intra-CAB and inter-CAB connections ISPD’2005, San Francisco April 5, 2005 12 Overview of FPAA Clustering Simple (but effective) greedy heuristic 1. Pre-cluster user-defined components 2. Order circuit components 3. For each component in order 1. Find the best CAB 2. Merge the component & CAB 3. If no CAB available 1. allow constraint violation 2. fix it by adding more neighbors 4. Compute utilization ISPD’2005, San Francisco April 5, 2005 13 FPAA Clustering Algorithm 1. Determine constrained groups 2. Modified Hyper Edge Coarsening (MHEC) ordering 3. Assign groups/components to the best available CABs i. High priority (scarce) components ii. User defined groups iii. Remaining components in MHEC ascending order CAB1 CAB1 ps5 ps5 ps5 ps6 ps6 ps6 vm1 vm1 vm1 CAB3 CAB3 op1 op1 CAB2 CAB4 pf1 nf1 ca1 cg1 mm1 mm2 cf1 ISPD’2005, San Francisco April 5, 2005 14 How to select the best CAB? Check availability of the CAB If available, rank the CAB in favor of: Device constrains Net constraints Resulting CAB occupancy Net increase in intra-CAB connections Net decrease in inter-CAB connections Select CAB with highest rank ISPD’2005, San Francisco April 5, 2005 15 Inter-CAB Interconnect Reduction cutsize: before => 6 nets after => 5 nets If a component has too many connections to fit in “ANY” CAB: Select CAB with smallest violation Look for components to reduce inter-CAB interconnects pkey: number of nets NOT between component and CAB skey: number of nets between component and CAB Pick the lowest pkey & break ties with higher skey ISPD’2005, San Francisco April 5, 2005 16 Recent Progress FPAA clustering has been improved to include netdriven, path-driven and a hybrid of net/path-driven approaches Net-driven minimizes inter-CAB connections Path-driven considers path length balance FPAA Placement has been implemented ISPD’2005, San Francisco April 5, 2005 17 Experimental Setup architecture dimension local wires vertical global wires horizontal global wires fpaa1 4*4 16*10 4*6 4*8 fpaa2 8*8 64*10 8*15 8*8 fpaa3 12*12 144*10 12*33 12*8 FPAA Architectures ckt c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 arch fpaa1 fpaa1 fpaa1 fpaa2 fpaa2 fpaa1 fpaa2 fpaa2 fpaa2 fpaa2 #cells #nets cabs_opt ckt 10 16 2 c11 21 27 3 c12 20 27 3 c13 32 45 5 c14 44 55 7 c15 42 48 8 c16 110 147 17 c17 112 122 14 c18 118 143 19 c19 220 242 27 c20 arch #cells #nets cabs_opt fpaa2 217 245 32 fpaa2 199 226 23 fpaa2 326 356 37 fpaa2 328 366 39 fpaa3 395 482 57 fpaa3 440 471 50 fpaa3 438 484 52 fpaa3 444 487 52 fpaa3 534 602 72 fpaa3 525 564 60 benchmarks We cluster each circuit w/ four different cell ordering methods: random, net-driven, net-path driven & path-driven ISPD’2005, San Francisco April 5, 2005 18 Results number of cabs/optimum number of cabs 1.19 1.18 1.17 1.16 1.15 1.14 1.13 1.12 1.11 1.1 1.09 % cab utilization 68 67.5 67 66.5 66 65.5 65 64.5 64 random net-driven net/pathdriven path-driven random %intra-CAB interconnect utilization 40 35 30 25 20 15 10 5 0 net-driven net/pathdriven path-driven %inter-CAB interconnect utilization 60 50 40 30 20 10 0 random net-driven net/pathdriven path-driven random net-driven net/pathdriven path-driven ISPD’2005, San Francisco April 5, 2005 19 Conclusion We require low power reconfigurable analog devices for signal processing applications Floating gate based FPAA provides a large-scale solution We developed an algorithm for clustering targeting floating gate based FPAA ISPD’2005, San Francisco April 5, 2005 20 Future Work Complete FPAA Physical Synthesis Tool including: Clustering Placement Routing Synthesize circuits => measurements Elaborate FPAA switch vs wire analysis Optimal FPAA Architecture Selection ISPD’2005, San Francisco April 5, 2005 21 Thank you ISPD’2005, San Francisco April 5, 2005