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

Similar documents
Introduction to HW design flows

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

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

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Digital Design with FPGAs. By Neeraj Kulkarni

COE 561 Digital System Design & Synthesis Introduction

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

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

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

Design Methodologies and Tools. Full-Custom Design

Spiral 2-8. Cell Layout

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

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

LSN 1 Digital Design Flow for PLDs

PINE TRAINING ACADEMY

FABRICATION TECHNOLOGIES

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

ECE 459/559 Secure & Trustworthy Computer Hardware Design

PrimeTime: Introduction to Static Timing Analysis Workshop

EE-382M VLSI II. Early Design Planning: Front End

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

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

101-1 Under-Graduate Project Digital IC Design Flow

EECS150 - Digital Design Lecture 10 Logic Synthesis

ASIC Physical Design Top-Level Chip Layout

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Synthesis of Combinational and Sequential Circuits with Verilog

Nikhil Gupta. FPGA Challenge Takneek 2012

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

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

An Introduction to Programmable Logic

EECS150 - Digital Design Lecture 10 Logic Synthesis

CSE140L: Components and Design Techniques for Digital Systems Lab

Design Methodologies. Full-Custom Design

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

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.

EE 330 Laboratory Experiment Number 11

Lecture #1: Introduction

CSE140L: Components and Design

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

Register Transfer Level in Verilog: Part I

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

Verilog Hardware Description Language ROOM: B405

Field Programmable Gate Array

Memory and Programmable Logic

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Implementing Tile-based Chip Multiprocessors with GALS Clocking Styles

Asynchronous FIFO Design

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

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

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.

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

ASIC Design Flow. P.Radhakrishnan, Senior ASIC-Core Development Engineer, Toshiba, 1060, Rincon Circle, San Jose, CA (USA) Jan 2000 (Issue-3)

Introduction to Verilog HDL. Verilog 1

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Chapter 4 Implementation of a Test Circuit

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Brief Introduction of Cell-based Design. Ching-Da Chan CIC/DSD

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Field Programmable Gate Array (FPGA)

Power Management Techniques for Design Closure. Jyothi Jujare Rishi Chawla

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27,

Cell-Based Design Flow. TA : 吳廸優

Programmable Logic Devices HDL-Based Design Flows CMPE 415

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

Chapter 5: ASICs Vs. PLDs

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

Advanced High-level HDL Design Techniques for Programmable Logic

Embedded Controller Design. CompE 270 Digital Systems - 5. Objective. Application Specific Chips. User Programmable Logic. Copyright 1998 Ken Arnold 1

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

VHDL for Logic Synthesis

Topics. Midterm Finish Chapter 7

Outline. SoC Encounter Flow. Typical Backend Design Flow. Digital IC-Project and Verification. Place and Route. Backend ASIC Design flow

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

ENEE245 Digital Circuits and Systems Lab Manual


CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

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

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

ALTERA M9K EMBEDDED MEMORY BLOCKS

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

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Lecture #2: Verilog HDL

EE595. Part VII VHDL Synthesis Techniques and Recommendations. EE 595 EDA / ASIC Design Lab

Digital Design with SystemVerilog

Digital Design Methodology

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

An overview of standard cell based digital VLSI design

ENEE245 Digital Circuits and Systems Lab Manual

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

ARM 64-bit Register File

VHDL: RTL Synthesis Basics. 1 of 59

RTL Coding General Concepts

DE2 Board & Quartus II Software

RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8)

Introduction to Field Programmable Gate Arrays

Overview of Digital Design Methodologies

Digital Signal Processor Core Technology

Transcription:

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

Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All registers specified Use to simulate design so as to verify correctness Pass through Synthesis tool to obtain reasonably optimal gate-level design that meets timing Design productivity Automatic synthesis Capture design as RTL instead of schematic Reduces time to create gate level design by an order of magnitude Synthesis FOCUS OF THIS LECTURE Basically, a Boolean Combinational Logic optimizer that is timing aware

Hardware Implementations HDLs can be compiled to semi-custom and programmable hardware implementations Full Custom Semi- Custom Programmable Manual VLSI Standard Cell Gate Array FPGA less work, faster time to market implementation efficiency PLD 3

ASIC Application Specific Integrated Circuit A chip designed to perform a particular operation as opposed to General Purpose integrated circuits An ASIC is generally NOT software programmable to perform a wide variety of different tasks An ASIC will often have an embedded CPU to manage suitable tasks An ASIC may be implemented as an FPGA Sometimes considered a separate category

Examples of ASICs Video processor to decode or encode MPEG-2 digital TV signals Low power dedicated DSP/controller /convergence device for mobile phones Encryption processor for security Many examples of graphics chips Network processor for managing packets, traffic flow, etc.

ASIC Styles Full Custom ASICs Every transistor is designed and drawn by hand Typically only way to design analog portions of ASICs Gives the highest performance but the longest design time Full set of masks required for fabrication

ASIC Styles (Contd.) Standard-Cell-Based ASICs or Cell Based IC (CBIC) or semi-custom Standard Cells are custom designed and then inserted into a library These cells are then used in the design by being placed in rows and wired together using place and route CAD tools Some standard cells, such as RAM and ROM cells, and some datapath cells (e.g. a multiplier) are tiled together to create macrocells D-flip-flop: NOR gate:

Standard Cell ASICs Sample ASIC floorplan: Standard Cell designs are usually synthesized from an RTL (Register Transfer Language) description of the design Intellectual Property Blocks (IPs) are often used to decrease Time to Market Hard IP (like SRAM): Technology Dependent, GDSII and libs Soft IP (DW library): Tech independent, delivered as RTL, with synthesis and verification scripts Standard-cell area (Soft Macro) Fixed blocks (Hard Macros) I/O cells

Standard Cell ASICs 3D view 2D view

Standard Cell ASICs

Logic Synthesis Automatic synthesis is used to turn the RTL into a gatelevel description ie. AND, OR gates, etc. Chip-test features are usually inserted at this point Gate level design verified for correctness Output of synthesis is a net-list i.e. List of logic gates and their implied connections NOR2 U36 (.Y(n107),.A0(n109),.A1(\value[2] ) ); NAND2 U37 (.Y(n109),.A0(n105),.A1(n103) ); NAND2 U38 (.Y(n114),.A0(\value[1] ),.A1(\value[0] ) ); NOR2 U39 (.Y(n115),.A0(\value[3] ),.A1(\value[2] ) );

Logic Synthesis Timing/Logic Library IP Library(DW) Physical Library RTL Timing Constraints Floorplan Synthesis (DC, DCT) residue = 16 h0000; if (high_bits == 2 b10) else residue = state_table[index]; state_table[index] = 16 h0000; Hardware Description Language (HDL) Synthesis HDL Translation Mapping Static Timing (DC/DCT/PC/PT) Formal Equivalence (FM) Power Analysis (DC/DCT/PC/PT-PX) Static Timing Placement Routing Estimation Meets Spec? No Optimization Design Rule Fixing Scan-Ready Netlist DFT Yes Target Technology (standard cells)

Floorplanning Corner cell I/O cell P/G buses Pad Die edge Bonding wire SOFT Macro Digital core Std Cell PLL RAM Leadframe Die Bonding Wire Core Area Resin mould Leadframe

Placement Physical Design tools used to turn the gate-level design into a set of chip masks (for photolithography) or a configuration file for downloading to an FPGA Floorplanning and Power Planning Positioning of major functions Placement of the Standard cells Gates arranged in rows

Clock Tree Synthesis (CTS) Clock and buffer Insertion Distribute clocks to cells and locate buffers for use as amplifiers in long wires

Routing Routing Logic Cells wired together Clock Routing Global Routing Detailed routing

Signoff & Chip Finishing Route Database Timing/Logic Library Hard Macro Library Physical Library Chip Finishing (Astro) Metal Fill Chip Finishing Double Via Insertion Filler Cell Insertion Critical Area Optimization Route Optimization STA with SI and SSTA for variations Antenna Fixing Route DRC Fixing IR drop and EM Analysis Design Rule Fixing Static Timing (PT/Star-RCXT) Formal Equiv (FM) Power Analysis (PTPX/PrimeRail) Route DRC (Hercules) LVS (Hercules) GDSII Meets Spec? Yes Mask Synthesis No GDSII

Synthesis/Mapping/Optimization Synthesis Converting the RTL into a generic logic netlist Mapping Mapping the generic netlist into standard cells from the core library Optimisation Optimising the logic to meet timing, area and power constraints RTL module counter( input clk, rstn, load, input [1:0] in, output reg [1:0] out); always @(posedge clk) if (!rstn) out <= 2'b0; else if (load) out <= in; else out <= out + 1; endmodule Constraints Synthesis Netlist module counter ( clk, rstn, load, in, out ); input [1:0] in; output [1:0] out; input clk, rstn, load; wire N6, N7, n5, n6, n7, n8; HDDFFPQ1 out_reg_1 (.D(N7),.CK(clk),.Q(out[1])); HDDFFPQ1 out_reg_0 (.D(N6),.CK(clk),.Q(out[0])); HDNAN2DL U8 (.A1(out[0]),.A2(n5),.Z(n8)); HDNAN2DL U9 (.A1(n5),.A2(n7),.Z(n6)); HDINVDL U10 (.A(load),.Z(n5)); HDOA211DL U11 (.A1(in[0]),.A2(n5),.B(rstn),.C(n8),.Z(N6)); HDOA211DL U12 (.A1(in[1]),.A2(n5),.B(rstn),.C(n6),.Z(N7)); HDEXNOR2DL U13 (.A1(out[1]),.A2(out[0]),.Z(n7)); endmodule 19

Synchronous RTL design Pseudo outputs Pseudo inputs Primary outputs Primary inputs

RTL Synthesis RTL file Gate level select always @(select,a,b) Sel begin if(select= 1 ) a Xor pin1 q q<= a xor b; b else MUX q<=a and b; end And pin0

always @(posedge clk, posedge reset) begin if(reset== 1 b1) q<= 0; else q<=a or b; end Sequential parts

Synthesis Recap The RTL The Register Transfer Level code can be written in VHDL, Verilog, SystemVerilog, or even SystemC RTL is a particular coding style, which defines io s, clocked sequential statements, and combinational logic RTL module counter( input clk, rstn, load, input [1:0] in, output reg [1:0] out); always @(posedge clk) if (!rstn) out <= 2'b0; else if (load) out <= in; else out <= out + 1; endmodule Constraints Synthesis Netlist module counter ( clk, rstn, load, in, out ); input [1:0] in; output [1:0] out; input clk, rstn, load; wire N6, N7, n5, n6, n7, n8; HDDFFPQ1 out_reg_1 (.D(N7),.CK(clk),.Q(out[1])); HDDFFPQ1 out_reg_0 (.D(N6),.CK(clk),.Q(out[0])); HDNAN2DL U8 (.A1(out[0]),.A2(n5),.Z(n8)); HDNAN2DL U9 (.A1(n5),.A2(n7),.Z(n6)); HDINVDL U10 (.A(load),.Z(n5)); HDOA211DL U11 (.A1(in[0]),.A2(n5),.B(rstn),.C(n8),.Z(N6)); HDOA211DL U12 (.A1(in[1]),.A2(n5),.B(rstn),.C(n6),.Z(N7)); HDEXNOR2DL U13 (.A1(out[1]),.A2(out[0]),.Z(n7)); endmodule 23

Synthesis Recap The Netlist The netlistis always written in verilogformat Other languages are not supported by the tools, or only poorly supported by the tools. Specifying the top level interface, Connectivity between library instances and Logical hierarchy (Usually) RTL module counter( input clk, rstn, load, input [1:0] in, output reg [1:0] out); always @(posedge clk) if (!rstn) out <= 2'b0; else if (load) out <= in; else out <= out + 1; endmodule Constraints Synthesis Netlist module counter ( clk, rstn, load, in, out ); input [1:0] in; output [1:0] out; input clk, rstn, load; wire N6, N7, n5, n6, n7, n8; HDDFFPQ1 out_reg_1 (.D(N7),.CK(clk),.Q(out[1])); HDDFFPQ1 out_reg_0 (.D(N6),.CK(clk),.Q(out[0])); HDNAN2DL U8 (.A1(out[0]),.A2(n5),.Z(n8)); HDNAN2DL U9 (.A1(n5),.A2(n7),.Z(n6)); HDINVDL U10 (.A(load),.Z(n5)); HDOA211DL U11 (.A1(in[0]),.A2(n5),.B(rstn),.C(n8),.Z(N6)); HDOA211DL U12 (.A1(in[1]),.A2(n5),.B(rstn),.C(n6),.Z(N7)); HDEXNOR2DL U13 (.A1(out[1]),.A2(out[0]),.Z(n7)); endmodule 24

Clock Insertion delay T period T ck T d T su T id-launch T id-capture = Target clock period = Popagation delay of launching flip-flop = Propagation delay of combinational cells = Setup time of capture flip-flop = Clock insertion delay of launch path = Clock insertion delay of capture path T su T d T ck T id-launch T id-capture Setup Check T id-capture -T id-launch -T ck +T period -T d > T su Hold Check T id-launch -T id-capture +T ck +T d > T h Setup Slack SS = T id-capture -T id-launch -T ck +T period -T d - T su Hold Slack HS = T id-launch -T id-capture +T ck +T d - T h

Scan Test Illustrated Demonstrates two test vectors being applied. Test vector 1 = 101, test vector 2 = 001 Test Mode Shift Mode Capture Mode Shift Mode Shift in test vector with scan chain working as a shift register. Takes N clock cycles (N = # of scan cells) 1. Hold and let ScanEnable signal settle at 0 2. Capture responses into scan registers 3. Hold and let ScanEnable signal settle at 1 Shift out responses with scan chain working as a shift register. Takes N clock cycles (N = # of scan cells) Time Step 1 2 3 4 5 6 7 8 9 ScanEnable 01 Compare PO with expected output 1 DataIn ScanIn 0 0 1 Clk 1 0 SE D Si Q Combinational Logic Out1 Out2 Out3 SE D Si Q Combinational Logic SE D Si Q Combinational Logic SE D Si Q DataOut ScanOut 55 Mark Wilmott - STFC 55