Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Similar documents
EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

COE 561 Digital System Design & Synthesis Introduction

Design Methodologies

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

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder

PINE TRAINING ACADEMY

The Xilinx XC6200 chip, the software tools and the board development tools

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

FPGA: What? Why? Marco D. Santambrogio

ECE 331 Digital System Design

Spiral 2-8. Cell Layout

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

Lecture #1: Introduction

EEL 4783: HDL in Digital System Design

Design Methodologies. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic.

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

discrete logic do not

Music. Numbers correspond to course weeks EULA ESE150 Spring click OK Based on slides DeHon 1. !

RTL Coding General Concepts

INTRODUCTION TO FPGA ARCHITECTURE

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

TSEA44 - Design for FPGAs

Introduction to Field Programmable Gate Arrays

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

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

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Field Programmable Gate Array (FPGA)

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton

Chapter 5: ASICs Vs. PLDs

FPGAs: Instant Access

ECEN 449 Microprocessor System Design. FPGAs and Reconfigurable Computing

Very Large Scale Integration (VLSI)

Verilog for High Performance

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Digital Design Methodology (Revisited) Design Methodology: Big Picture

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Lecture 41: Introduction to Reconfigurable Computing

Digital Design Methodology

CAD for VLSI. Debdeep Mukhopadhyay IIT Madras

L2: Design Representations

VHDL for Synthesis. Course Description. Course Duration. Goals

Chapter 1 Overview of Digital Systems Design

The QR code here provides a shortcut to go to the course webpage.

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

Workspace for '4-FPGA' Page 1 (row 1, column 1)

CSE140L: Components and Design Techniques for Digital Systems Lab

FPGA architecture and design technology

Don t expect to be able to write and debug your code during the lab session.

CHAPTER 3 METHODOLOGY. 3.1 Analysis of the Conventional High Speed 8-bits x 8-bits Wallace Tree Multiplier

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

: : (91-44) (Office) (91-44) (Residence)

Hardware Software Codesign of Embedded Systems

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

CSE140L: Components and Design

CMPE 415 Programmable Logic Devices Introduction

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

CS429: Computer Organization and Architecture

Design Methodologies and Tools. Full-Custom Design

Electronic Design Automation Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne

Digital Systems Laboratory

Programmable Logic Devices FPGA Architectures II CMPE 415. Overview This set of notes introduces many of the features available in the FPGAs of today.

CS310 Embedded Computer Systems. Maeng

Topics. FPGA Design EECE 277. Interconnect and Logic Elements Part 2. Laboratory Assignment #1 Save Everything!!! Guest Lecture

EE 434 ASIC & Digital Systems

Digital Design with FPGAs. By Neeraj Kulkarni

Lecture 8: Synthesis, Implementation Constraints and High-Level Planning

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Digital Logic Design Lab

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

EEL 4783: HDL in Digital System Design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Model EXAM Question Bank

Lab 3 Verilog Simulation Mapping

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


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

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay

What is Xilinx Design Language?

EECS150 - Digital Design Lecture 10 Logic Synthesis

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

RTL Power Estimation and Optimization

ECE 3060 VLSI and Advanced Digital Design

FPGAs & Multi-FPGA Systems. FPGA Abstract Model. Logic cells imbedded in a general routing structure. Logic cells usually contain:

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

Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas

Research Challenges for FPGAs

Topics. Midterm Finish Chapter 7

Synthesis at different abstraction levels

An Introduction to Programmable Logic

EEL 4783: Hardware/Software Co-design with FPGAs

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

A Brief Introduction to Verilog Hardware Definition Language (HDL)

Introduction. Sungho Kang. Yonsei University

Review. EECS Components and Design Techniques for Digital Systems. Lec 03 Field Programmable Gate Arrays

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

Transcription:

Overview CSE372 Digital Systems Organization and Design Lab Prof. Milo Martin Unit 5: Hardware Synthesis CAD (Computer Aided Design) Use computers to design computers Virtuous cycle Architectural-level, logical-level, physical-level Goal: simplify the design of efficient hardware Much like high-level languages Source: Synthesis and Optimization of Digital Circuits Giovanni De Micheli, 1994 Somewhat dated, but an important guide Some pictures from his slides Active area of research 1 2 Hardware CAD Our focus Digital, synchronous systems Synthesis Convert code into logic blocks Logic blocks is implementation technology specific Reduce logic delays and area Place & Route Physical-level layout of circuits on chip Reduce wire delays and area Two Types of Chips General-purpose processors Design for specific domains, but still general-purpose Program using a traditional programming language Special-purpose chips ASICs (application-specific integrated circuits) Hard-code logic Example domains: media encoding, decoding, signal processing General purpose chips slow take over ASICs ASICs find new niche (bleeding edge applications) Aside: hardware/software co-design (or co-synthesis) Given a software algorithm, make a processor for running it Advanced hardware synthesis and compiler optimizations 3 4

Design Implementation Approaches Full-custom Designs specify every transistor Used for performance-critical parts of high-volume designs Semi-custom Mixture of full-custom and synthesis design flows Use of macro-cells: special highly-optimized components Examples: memory arrays, adders, multipliers, etc. Standard cells (all synthesis) Synthesis and place & route does everything Much like our FPGA design flow Our project Verilog + $$$$ = actual chip Standard Cell Example Standard cell libraries Blocks of logic primitives AOI gates Any and/or/invert operations Might include all three-input gates Also includes flip-flops, etc. Much like a FPGA design flow Faster Not programmable A A B B 3-input NAND cell (from ST Microelectronics): 5 Giovanni De Micheli All rights reserved 6 Aside: Transistor Physical Layout Vd Vs Cell-based Design (or standard cells) Feedthrough cell Logic cell oxide n+ n+ p- Top-down view: Routing channel Functional module (RAM, multiplier, ) Routing channel requirements are reduced by presence of more interconnect layers UC Regents Fall 2005 - CS 152 L11: VLSI 7 Giovanni De Micheli All rights reserved 8

Combinational Logic Optimizations Cell-based Layout Constant propagation Any hard-coded value pre-computed Cell-structure hidden under interconnect layers Common sub-expression elimination Avoid redundant re-computation of signals Strength reduction Transform harder operations into simpler operations Example: x * 2 into x << 1 Resource sharing Reduce logic by reuse Mux and adder example Giovanni De Micheli All rights reserved 9 Heterogeneous Programmable Platforms FPGA Fabric Embedded memories 10 CAD Tool Goals Maximize performance Minimize area Minimize power Embedded PowerPC Always a trade off Hardwired multipliers Xilinx Vertex-II Pro Courtesy Xilinx High-speed I/O Giovanni De Micheli All rights reserved 11 Giovanni De Micheli All rights reserved 12

Combinational Logic Minimization Given a truth table Create fast and small logic to compute it Example: may be faster to calculate inverse of function, then just invert the output Two types Two-level Calculate truth table from HDL code PLA-like, simple Not practical for large number of inputs Multi-level Keep structure from code Transform it to improve it 13 State Machine Optimization State minimization Reduce number of states by coalescing identical states State encoding Encoding of state affects combinational logic Next-state logic and output logic Assign binary encoding to each unique state Common approach: one-hot encoding Pro: simple logic Con: One state bit per state Combinational optimization As before 14 State Minimization Example Sequential Logic Optimizations Retiming Moving logic and/or registers Balance stages (move logic from one stage to another) Which is better? (a) or (b)? Find states than can be combined Register insertion Give tool combinational logic, ask for n-pipeline stages Tool breaks the logic into stages Xilinx will do this, actually Example: memory arrays Giovanni De Micheli All rights reserved 15 16

Technology Mapping Map abstract logic to actual hardware primitives Standard cells or FPGA lookup tables Which is better? Another opportunity: late arriving signals FPGA mapping LUTs of any four-inputs Many possible coverings Note: 4-input P37X opcode, single LUT per output control signal Place and Route Placing the primitives on the chip (or FPGA) Possible algorithm: Start with guess of reasonable placement Pick two elements, evaluate swapping them If better, perform the swap If worse, don t swap Evaluation metrics: Average wire length (cheap to recalculate) Re-evaluate circuit critical path (expensive to recalculate) Routing Connecting the parts with wires The fuller the FPGA, the harder the problem 17 18 Synthesis Under Constraints Fast enough Given a delay goal, make it small (or low power) Small enough Given an area (or power) budget, make it fast Why? No point in over-optimizing parts not on critical path Example: pipelined processor Once you know your slowest stage s delay Re-optimize the other stages to save area Example: top-down floor planning Your design group has an area budget, can t exceed it High-Level Synthesis Give the tool an algorithm Tool creates logic to implement algorithm Including cyclic computations Examples: apply a low-pass filter to a stream of values More abstract than HDL Not gate-level or cycle-level design Sometimes Matlab s input language is used Xilinx has a Matlab DSP (digital signal processing) design flow SystemC A way to specify hardware using C++ library Works like an HDL for hardware/software designs Research: C-code in, custom chip out 19 20

Miscellaneous Issues All synthesis and place & route phases interact A decision later could make an earlier decision less good Fundamentally hard problem Iterative approaches can help Sometimes manual intervention is needed Non-repeatable in some cases Small design change, larger synthesis output change CAD tools are buggy Lots of effort on synthesis verification Take the output, verify it matches the input Random or exhaustive test cases Symbolic equivalence testing 21