Axilog: Language Support for Approximate Hardware Design

Similar documents
Axilog: Abstractions for Approximate Hardware Design and Reuse

Bridging Analog Neuromorphic and Digital von Neumann Computing

AxBench: A Multiplatform Benchmark Suite for Approximate Computing

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

AxBench: A Benchmark Suite for Approximate Computing Across the System Stack

101-1 Under-Graduate Project Digital IC Design Flow

Module 2.1 Gate-Level/Structural Modeling. UNIT 2: Modeling in Verilog

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design

Nikhil Gupta. FPGA Challenge Takneek 2012

EEL 4783: HDL in Digital System Design

Digital Design with FPGAs. By Neeraj Kulkarni

An overview of standard cell based digital VLSI design

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation

CSE140 L. Instructor: Thomas Y. P. Lee January 18,2006. CSE140L Course Info

Logic Verification 13-1

CAD for VLSI Design - I. Lecture 21 V. Kamakoti and Shankar Balachandran

EECS150 - Digital Design Lecture 10 Logic Synthesis

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Verilog for High Performance

Lecture 11 Logic Synthesis, Part 2

Synthesizable FPGA Fabrics Targetable by the VTR CAD Tool

Field Programmable Gate Array (FPGA)

Image Courtesy CS250 Section 2. Yunsup Lee 9/4/09

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

ECE Digital Engineering Laboratory. Designing for Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis

Synthesis of Combinational and Sequential Circuits with Verilog

Chap 6 Introduction to HDL (d)

Instructions on creating CTL files for PAL pin placement

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Evolutionary Approximation of Edge Detection Circuits

Announcements. Midterm 2 next Thursday, 6-7:30pm, 277 Cory Review session on Tuesday, 6-7:30pm, 277 Cory Homework 8 due next Tuesday Labs: project

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Hardware Description Language VHDL (1) Introduction

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

VLSI Programming 2016: Lecture 3

Chapter 2 Using Hardware Description Language Verilog. Overview

Verilog Hardware Description Language ROOM: B405

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

VHDL VS VERILOG.

CS/EE 6710 Digital VLSI Design Tutorial on Cadence to Synopsys Interface (CSI)

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Post-Synthesis Simulation. VITAL Models, SDF Files, Timing Simulation

Introduction to Verilog HDL. Verilog 1

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

A Brief Introduction to Verilog Hardware Definition Language (HDL)

VHDL for Synthesis. Course Description. Course Duration. Goals

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

Local Memory-Aware Kernel Perforation

Synthesizable Verilog

Implementing Tile-based Chip Multiprocessors with GALS Clocking Styles

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

P-1/26. Samir Palnitkar. Prentice-Hall, Inc. INSTRUCTOR : CHING-LUNG SU.

Lecture 15: System Modeling and Verilog

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Unit 2: High-Level Synthesis

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

VHDL. Chapter 1 Introduction to VHDL. Course Objectives Affected. Outline

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1

תכן חומרה בשפת VERILOG הפקולטה להנדסה

A Proposal for a More Generic, More Accountable, Verilog DCC 2010

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

Introduction to Verilog

Interconnect Delay Aware RTL Verilog Bus Architecture Generation for an SoC

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Design of Embedded DSP Processors

Approximate implementation of DCT unit and analyzing its effect on the JPEG encoder unit

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

VeriLogger Tutorial: Basic Verilog Simulation

Introduction to Verilog/System Verilog

VLSI Design 13. Introduction to Verilog

Hardware Description Languages (HDLs) Verilog

Lecture 32: SystemVerilog

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

LSN 1 Digital Design Flow for PLDs

Amir Yazdanbakhsh. (608)

A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy

Digital Design using HDLs EE 4755 Midterm Examination

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis

OPTIMIZING COARSE- GRAINED UNITS IN FLOATING POINT HYBRID FPGA

Tutorial on Verilog HDL

L3: Introduction to Verilog (Combinational Logic)

CSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008

Kyoung Hwan Lim and Taewhan Kim Seoul National University

Synthesis. Other key files. Standard cell (NAND, NOR, Flip-Flop, etc.) FPGA CLB

Transcription:

Axilog: Language Support for Approximate Hardware Design Amir Yazdanbakhsh Divya Mahajan Bradley Thwaites Jongse Park Anandhavel Nagendrakumar Sindhuja Sethuraman Kar,k Ramkrishnan Nishanthi Ravindran Rudra Jariwala Abbas Rahimi Hadi Esmaeilzadeh Kia Bazargan Georgia Ins,tute of Technology University of Minnesota UC San Diego Georgia Ins,tute of Technology Alterna,ve Compu,ng Technologies (ACT) Lab DATE 2015

Approximate compu,ng Embracing error Relax the abstrac,on of near- perfect accuracy in general- purpose compu,ng/communica,on/storage Allow errors to happen during computa,on/ communica,on/storage Improve resource u,liza,on efficiency Energy, bandwidth, capacity, Improve performance Build acceptable systems from inten2onally- made unreliable souware and hardware components Avoid overkill and worst- case design 2

Avoiding Worst- Case Design Approximate Compu,ng Generality Applica,on Efficiency Performance Programming Language Compiler Architecutre Microarchitecture Cost Precision Reliability Determinism Cost Circuit Physical Device 3

Goals Criteria Design the first HDL for: 1) Approximate HW Design 2) Approximate HW Reuse 3) Approximate Synthesis Approximate HDL: 1) High- level 2) Automated 3) Backward compakble 4) Safety 4

Safety in Hardware Approximate Precise Precise Controller Clock Datapath 5

Axilog Annota,ons Design Annota,ons relax (relax_local) restrict (restrict_global) Reuse Annota,ons approximate crikcal bridge 6

Design AnnotaKons 7

Relaxing Accuracy Requirements module ripple_carry_adder(a, b, c_in, c_out, s) full_adder f0(a[0], b[0], c_in, w0, s[0]) full_adder f1(a[1], b[1], w0, c_out, s[1]) relax (s); b[1] a[1] b[0] a[0] c_in c_out s[1] w0 s[0] 8

Relaxing Accuracy Requirements module ripple_carry_adder(a, b, c_in, c_out, s) full_adder f0(a[0], b[0], c_in, w0, s[0]) full_adder f1(a[1], b[1], w0, c_out, s[1]) relax (s); b[1] a[1] b[0] a[0] c_in c_out s[1] w0 s[0] 9

Scoping Approxima,on (relax_local) module full_adder (a, b, c_in, c_out, s) relax_local (s); b[1] a[1] full_adder f0 () full_adder f1() relax (s[0]); b[0] a[0] c_in c_out s[1] w0 s[0] 10

Scoping Approxima,on (relax_local) module full_adder (a, b, c_in, c_out, s) relax_local (s); b[1] a[1] full_adder f0 () full_adder f1() relax (s[0]); b[0] a[0] c_in c_out s[1] w0 s[0] 11

Restric,ng Approxima,on clk rst x d0 d1 d2 d3 b0 b1 b2 b3 m0 m1 m2 m3 * * * * + + + a1 a2 a3 relax(y) y 12

Restric,ng Approxima,on clk rst x d0 d1 d2 d3 b0 b1 b2 b3 m0 m1 m2 m3 * * * * + a1 a2 a3 + restrict (w3) + relax(y) y 13

Restricting Approximation clk rst x d0 d1 d2 d3 b0 b1 b2 b3 m0 m1 m2 m3 * * * * restrict (w1) + restrict (w2) a1 a2 a3 + restrict (w3) + relax(y) y 14

Restric,ng Approxima,on Globally module full_adder(a, b, c_in, c_out, s); approximate output s; relax (s); endmodule restrict_global(s[31:0]); b[31] a[31] b[2] a[2] b[1] a[1] c_out a b c_in s b[0] a[0] c_in c_out s[31] s[2] s[1] s[0] 15

Restric,ng Approxima,on Globally module full_adder(a, b, c_in, c_out, s); approximate output s; relax (s); endmodule restrict_global(s[31:0]); b[31] a[31] b[2] a[2] b[1] a[1] c_out a b c_in s b[0] a[0] c_in c_out s[31] s[2] s[1] s[0] 16

Reuse AnnotaKons 17

Outputs Carrying Approximate Seman,cs p0 [7:0] p1 [7:0] p2 [7:0] p3 [7:0] p4 [7:0] p5 [7:0] p6 [7:0] p7 [7:0] sobel_filter approximate output r [4:0] r [7:5] 18

Cri,cal Inputs critical input reset; critical input clock; Next State Logic reset clock State Register Output Logic 19

Bridging Approximate Wires to Cri,cal Inputs and a1(s, a0, a1); relax (s); bridge (s); multiplexer m0(s, a0, a1, out); x0 critical input s a0 a1 a1 relax(s) bridge(s) x1 mux out m0 out 20

Bridging Approximate Wires to Cri,cal Inputs and a1(s, a0, a1); relax (s); bridge (s); multiplexer m0(s, a0, a1, out); x0 critical input s a0 a1 a1 relax(s) bridge(s) x1 mux out m0 out 21

Baseline Synthesis Flow Verilog Code Strict Timing Constraints yes Design Compiler Synthesized Netlist PrimeTime VX Timing Violation Baseline Netlist Highest frequency with minimum power and area 22

Relaxability Inference Analysis Circuit under analysis with Axilog annotakons IdenKfy the wires which are driving unannotated wires or annotated with restrict within the module under analysis IdenKfy the relaxed outputs of the instankated submodules Marks any wire that affects a globally restricted wire as precise Safe to approximate gates 23

Approximate Synthesis Flow Axilog Code Axilog Compiler Safe to Approximate Gates Strict & Relaxed Timing Constraints Design Compiler Synthesized Approximate Netlist SDF File Timing Simulation Input Data Set Quality Measurement Quality Requirement Satisfied yes no Final Approximate Netlist Synthesis Phase Quality Observation Phase 24

Measurements Tools for Synthesis and Energy Analysis Synopsys Design Compiler Synopsys Prime,me Timing SimulaKon with SDF back annotakons Cadence NC- Verilog Standard Cell Library TSMC 45- nm mul,- V t Slowest PVT corner (SS, 0.81V, 0C) for baseline results 25

Benchmarks Arithme,c Computa,on, Signal Processing, Robo,cs, Machine Learning, Image Processing FIR # lines: 113 Signal Processing # Annota,ons Design: 6 Reuse: 5 Sobel # lines: 143 Image Processing # Annota,ons Design: 6 Reuse: 3 Brent- Kung # lines: 352 Arithme,c Computa,on # Annota,ons Design: 1 Reuse: 1 Kogge- Stone # lines: 353 Arithme,c Computa,on # Annota,ons Design: 1 Reuse: 1 K- means # lines: 10,985 Machine Learning # Annota,ons Design: 7 Reuse: 3 Wallace Tree # lines: 13,928 Arithme,c Computa,on # Annota,ons Design: 5 Reuse: 3 ForwardK # lines: 18,282 Robo,cs # Annota,ons Design: 5 Reuse: 4 Neural Network # lines: 21,053 Machine Learning # Annota,ons Design: 4 Reuse: 3 InverseK # lines: 22,407 Robo,cs # Annota,ons Design: 8 Reuse: 4 26

Energy Reduc,on Energy Reduction 2.0 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0 Error 5% Error 10% 27

Area Reduc,on 2.6 2.4 Error 5% Error 10% Area Reduction 2.2 2.0 1.8 1.6 1.4 1.2 1.0 28

Output Quality Degrada,on in Sobel 0% Quality Loss 5% Quality Loss 10% Quality Loss 10% Quality loss is nearly indiscernible to the eye yet provides 57% energy savings 29

Energy Reduc,on for Different PVT Corners 100% 90% 80% (SS, 0.81V, 0 C) (SS, 0.81V, 125 C) Energy Reduction 70% 60% 50% 40% 30% 20% 10% 0% 30

Axilog First HDL for Approxima,on Design Reuse Automa,on High- level Backward- compa,bility Safety Energy Savings 54% Area ReducKon 1.9 Code AnnotaKons 2-12 hpp://www.act- lab.org/ar,facts/axilog 31