Training Course of Design Compiler



Similar documents
Training Course of Design Compiler

University of Texas at Dallas. Department of Electrical Engineering. EEDG Application Specific Integrated Circuit Design

How To Design A Chip Layout

Implementation Details

Getting the Most Out of Synthesis

Training Course of SOC Encounter

Route Power 10 Connect Powerpin 10.1 Route Special Route 10.2 Net(s): VSS VDD

Digital IC Design Flow

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Chapter 13: Verification

A Verilog HDL Test Bench Primer Application Note

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

IL2225 Physical Design

HDL Simulation Framework

STA - Static Timing Analysis. STA Lecturer: Gil Rahav Semester B, EE Dept. BGU. Freescale Semiconductors Israel

VHDL GUIDELINES FOR SYNTHESIS

Testing of Digital System-on- Chip (SoC)

Fault Modeling. Why model faults? Some real defects in VLSI and PCB Common fault models Stuck-at faults. Transistor faults Summary

Timing Methodologies (cont d) Registers. Typical timing specifications. Synchronous System Model. Short Paths. System Clock Frequency

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path

IMPLEMENTATION OF BACKEND SYNTHESIS AND STATIC TIMING ANALYSIS OF PROCESSOR LOCAL BUS(PLB) PERFORMANCE MONITOR

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

ESP-CV Custom Design Formal Equivalence Checking Based on Symbolic Simulation

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

High Fanout Without High Stress: Synthesis and Optimization of High-fanout Nets Using Design Compiler

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. Basic Verilog

VHDL Test Bench Tutorial

Testing Low Power Designs with Power-Aware Test Manage Manufacturing Test Power Issues with DFTMAX and TetraMAX

Quartus II Introduction for VHDL Users

DIGITAL DESIGN FLOW OPTIONS

Digital Design Verification

CLOCK DOMAIN CROSSING CLOSING THE LOOP ON CLOCK DOMAIN FUNCTIONAL IMPLEMENTATION PROBLEMS

A HARDWARE IMPLEMENTATION OF THE ADVANCED ENCRYPTION STANDARD (AES) ALGORITHM USING SYSTEMVERILOG

VHDL-Testbench as Executable Specification

ModelSim-Altera Software Simulation User Guide

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

Engineering Change Order (ECO) Support in Programmable Logic Design

Digital Circuit Design Using Xilinx ISE Tools

Quartus Prime Standard Edition Handbook Volume 3: Verification

Asynchronous & Synchronous Reset Design Techniques - Part Deux

Digital Systems Design! Lecture 1 - Introduction!!

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

9/14/ :38

Reconfigurable ECO Cells for Timing Closure and IR Drop Minimization. TingTing Hwang Tsing Hua University, Hsin-Chu

EXPERIMENT 8. Flip-Flops and Sequential Circuits

Quartus II Handbook Volume 3: Verification

Power Reduction Techniques in the SoC Clock Network. Clock Power

Modeling Latches and Flip-flops

A New Paradigm for Synchronous State Machine Design in Verilog

ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)

16-bit ALU, Register File and Memory Write Interface

PCB Project (*.PrjPcb)

Topics of Chapter 5 Sequential Machines. Memory elements. Memory element terminology. Clock terminology

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

What is a System on a Chip?

RTL Low Power Techniques for System-On-Chip Designs

Lecture 7: Clocking of VLSI Systems

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Design-Kits, Libraries & IPs

Hunting Asynchronous CDC Violations in the Wild

Space product assurance

Latch Timing Parameters. Flip-flop Timing Parameters. Typical Clock System. Clocking Overhead

Altera Error Message Register Unloader IP Core User Guide

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics

Digital Design and Synthesis INTRODUCTION

ISE In-Depth Tutorial. UG695 (v14.1) April 24, 2012

Coding Guidelines for Datapath Synthesis

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division

At-Speed Test Considering Deep Submicron Effects. D. M. H. Walker Dept. of Computer Science Texas A&M University

VLSI Design Verification and Testing

Architectures and Platforms

System-on. on-chip Design Flow. Prof. Jouni Tomberg Tampere University of Technology Institute of Digital and Computer Systems.

Lab 1: Full Adder 0.0

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Lecture 5: Gate Logic Logic Optimization

Gate-Level Simulation Methodology

Combinational Controllability Controllability Formulas (Cont.)

A Mixed-Signal System-on-Chip Audio Decoder Design for Education

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

design Synopsys and LANcity

Design Methodology for Engineering Change Orders (ECOs) in a Flat Physical Standard Cells Based Design Environment

Working With Designs in Memory 6

Chapter 2 Verilog HDL for Design and Test

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 16 Timing and Clock Issues

Digital Electronics Detailed Outline

Jianjian Song LogicWorks 4 Tutorials (5/15/03) Page 1 of 14

After opening the Programs> Xilinx ISE 8.1i > Project Navigator, you will come to this screen as start-up.

EEC 118 Lecture #17: Implementation Strategies, Manufacturability, and Testing

7a. System-on-chip design and prototyping platforms

2003 IC/CAD Contest Problem 5: Clock Tree Optimization for Useful Skew

Software Version 10.0d Mentor Graphics Corporation All rights reserved.

Design Compiler Graphical Create a Better Starting Point for Faster Physical Implementation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

E158 Intro to CMOS VLSI Design. Alarm Clock

Modeling Registers and Counters

Transcription:

Training Course of Design Compiler T. W. Tseng, ARES Lab 2008 Summer Training Course of Design Compiler REF: CIC Training Manual Logic Synthesis with Design Compiler, July, 2006 TSMC 0.18um Process 1.8-Volt SAGE-X TM Stand Cell Library Databook, September, 2003 TPZ973G TSMC 0.18um Standard I/O Library Databook, Version 240a, December 10, 2003 Artisan User Manual Speaker: T. J. Chen Advanced Reliable Systems (ARES) Lab. 1

Outline Basic Concept of the Synthesis Synthesis Using Design Compiler Advanced Reliable Systems (ARES) Lab. 2

Basic Concept of the Synthesis Advanced Reliable Systems (ARES) Lab. 3

Cell-Based Design Flow Spec. System Level MATLAB/ C/ C++/ System C/ ADS/ Covergen (MaxSim) Memory Generator RTL Level Verilog/ VHDL NC-Verilog/ ModelSim Debussy (Verdi)/ VCS Syntest Logic Synthesis Design for Test Gate Level Layout Level Post-Layout Verification Conformal/ Formality Design/ Power Compiler DFT Compiler/ TetraMAX NC-Verilog/ ModelSim Debussy (Verdi)/ VCS SOC Encounter/ Astro GDS II DRC/ LVS (Calibre) mpiler/ Fusion hysical Com gma Blast Ph Mag PVS: Calibre xrc/ NanoSim (Time/ Power Mill) Advanced Reliable Systems (ARES) Lab. Tape Out 4

What is Synthesis Synthesis = translation + optimization + mapping if(high_bits == 2 b10)begin residue = state_ table[i]; []; end else begin residue = 16 h0000; end HDL Source (RTL) Translate (HDL Compiler) No Timing Info. Generic Boolean (GTECT) Optimize + Mapping (Design Compiler) Timing Info. The synthesis is constraint driven and technology independent!! Advanced Reliable Systems (ARES) Lab. Target Technology 5

Compile RTL code or netlist Attributes & Constraints Compile Optimized Design (Gate-Level Netlist) Schematic Reports (Timing, Area, Power,,, etc) Technology Library Flatten Structure (Can be set by the GUI interface or user-defined Script File!!) Logic Level Optimization Gate Level Optimization Technology Library Map Advanced Reliable Systems (ARES) Lab. 6

Synthesizable Verilog Verilog Basis parameter declarations wire, wand, wor declarations reg declarations input, output, inout declarations continuous assignments module instructions gate instructions always blocks task statements function definitions for, while loop Synthesizable Verilog primitives cells and, or, not, nand, nor, xor, xnor bufif0, bufif1, notif0, notif1 Advanced Reliable Systems (ARES) Lab. 7

Synthesizable Verilog (Cont ) Operators Binary bit-wise ( ~, &,, ^, ~^ ) Unary reduction ( &, ~&,, ~, ^, ~^ ) Logical (!, &&, ) 2 s 2s complement arithmetic ( +, -, *, /, % ) Relational ( >, <, >=, <= ) Equality ( ==,!= ) Logic shift ( >>, << ) Conditional (?: ) Concatenation ( {}) Advanced Reliable Systems (ARES) Lab. 8

Notice Before Synthesis Your RTL design Functional verification by some high-level language Area Better Cycle Time Also, the code coverage of your test benches should be verified (i.e. VN) Coding style checking (i.e. n-lint) Good coding style will reduce most hazards while synthesis Better optimization process results in better circuit performance Easy debugging after synthesis Constraints The area and timing of your circuit are mainly determined by your circuit architecture and coding style There is always a trade-off between the circuit timing and area In fact, a super tight timing constraint may be worked while synthesis, but failed in the Place & Route (P&R) procedure Advanced Reliable Systems (ARES) Lab. 9

Synthesis Using Design Compiler Advanced Reliable Systems (ARES) Lab. 10

Related Files Folder Name Description.synopsys y _ dc.setup Design compiler setup file GTL my_script.tcl Synthesis script file my_design.v Verilog files tmy_design.v Test bench tsmc18.v Verilog model of standard cells Ex: Advanced Reliable Systems (ARES) Lab. 11

<.synopsys_dc.setup> File link_library : the library used for interpreting input description Any cells instantiated in your HDL code Wire load or operating condition modules used during synthesis target_library : the ASIC technology which the design is mapped symbol_library library : used for schematic generation search_path : the path for unsolved reference library synthetic_path : designware library Advanced Reliable Systems (ARES) Lab. 12

Ex: <.synopsys_dc.setup> File (Cont ) MEMs libraries are also included in this file Add a search path MEM Libraries (.db file) (.synopsys_dc.setup y p File) Note that the MEM DB files are converted from the LIB files which are generated from the Artisan!! Advanced Reliable Systems (ARES) Lab. 13

Settings for Using Memory Convert *.lib to *.db %> dc_shell t any memory LIB file dc_shell-t> read_lib t13spsram512x32_slow_syn.lib dc_shell-t> write_lib t13spsram512x32 -output \ t13spsram512x32_slow_syn.db user library name, which should be the same as the library name Modify <.synopsys_dc.setup> File: in the Artisan set link_library * slow.db t13spsram512x32_slow.db memory DB file dw_foundation.sldb add to the file set target_library slow.db t13spsram512x32_slow.dbslow db add a search path to this file Before the synthesis, the memory HDL model should be blocked in your netlist Advanced Reliable Systems (ARES) Lab. 14

Synthesis Flow Design Import DFT Insertion Setting Design Environment Setting Clock Constraints Setting Design Rule Constraints Compile After DFT Assign Violation Avoidance Naming Rule Changing Compile the Design Save Design Advanced Reliable Systems (ARES) Lab. 15

Getting Started Prepare Files: *.v files *.db files (i.e. memory is used) Synthesis script file (i.e. described d later) linux %> dv& (XG Mode) Tool Bar Logic Hierarchy View Log Window Command Line (GUI view of the Design Vision) Advanced Reliable Systems (ARES) Lab. 16

Read File Design Import Read netlists or other design descriptions into Design Compiler File/Read Supported formats Verilog:.v VHDL:.vhd System Verilog:.sv EDIF PLA (Berkeley Espresso):.pla Synopsys internal formats: DB (binary):.db Enhance db file:.ddc Equation:.eqn State table:.st read_file format verilog file name { Command Line } Advanced Reliable Systems (ARES) Lab. 17

PAD Parameters Extraction Input PAD Input delay Input driving Output PAD Output t delay Output loading (delay, driving) CORE.v (delay, loading) (chip_const.tcl) CHIP.v { Command Line } current_design CHIP characterize [get_cells CORE] current_design CORE write_script format dctcl o o chip_const.tcl const.tcl Advanced Reliable Systems (ARES) Lab. 18

Uniquify Select the most top design of the hierarchy Hierarchy/Uniquify/Hierarchy (Design View) (Log Window) uniquify { Command Line } Advanced Reliable Systems (ARES) Lab. 19

Design Environment Setting Design Environment Setting Operating Environment Setting Input Driving Strength Setting Output Loading Setting Input/Output Delay Setting Wire Load Model Advanced Reliable Systems (ARES) Lab. 20

Setting Operating Condition Attributes/Operating Environment/Operating Conditions Setup/Hold time is evaluated { Command Line } set_operating_conditions max slow max_library slow min fast \ -min_library fast Advanced Reliable Systems (ARES) Lab. 21

Setting Drive Strength/Input Delay for PADs Assume that we use the input PAD PDIDGZ my design Input PAD b D FF Q PAD C (PDIDGZ) { Command Line } set_drive [expr 0.288001] [all_inputs] set_ input _ delay [expr 0.34] clock clk [all _ inputs] Advanced Reliable Systems (ARES) Lab. 22

Setting Load/Output Delay for PADs Assume that we use the output PAD PDO24CDG my design clk D FF Q d Output PAD I PAD OEN (PDO24CDG) { Command Line } set_load [expr 0.06132] [all_outputs] set_output_delay _ [expr 2] [all_outputs] Advanced Reliable Systems (ARES) Lab. 23

Setting Wire Load Model Attributes/Operating Environment/Wire Load (Worst Case) Recommend { Command Line } set_wire_load_model name tsmc18_wl10 library slow set_wire_lode_mode top Advanced Reliable Systems (ARES) Lab. 24

Clock Constraints Setting Clock Constraints Period Waveform Uncertainty Skew Latency Source latency Network latency Transition Input transition Clock transition Combination Circuit Maximum Delay Constraints Advanced Reliable Systems (ARES) Lab. 25

Sequential Circuit Specify Clock Select the clk pin on the symbol Attributes/Specify Clock set_fix_hold: respect the hold time requirement of all clocked flip-flops set_ dont_ touch_ network: do not re-buffer the clock network { Command Line } creat_clock period 10 [get_ports clk] set_dont_touch_network [get_clocks clk] set_fix_hold [get_clocks clk] Advanced Reliable Systems (ARES) Lab. 26

Setting Clock Skew Ex: Different clock arrival time clk FF FF FF FF experience Small circuit: 0.1 ns Large circuit: 0.3 ns (Timing i Report) { Command Line } set_clock_uncertainty 0.1 [get_clocks clk] Advanced Reliable Systems (ARES) Lab. 27

Setting Clock Latency Source latency is the propagation time from the actual clock origin to the clock definition point in the design This setting can be avoid if the design is without the clock generator Ex: Your Design Origin of Clock experience Small circuit: 1 ns Large circuit: 3 ns 3ns Source Latency set_clock_latency latency 1 [get_clocks clk] { Command Line } Advanced Reliable Systems (ARES) Lab. 28

Setting Ideal Clock Since we usually let the clock tree synthesis (CTS) procedure performed in the P&R (i.e. set_dont_touch_network), the clock source driving capability is poor Thus, we can set the clock tree as an ideal network without driving issues Avoid the hazard in the timing evaluation set_ideal_network [get_ports clk] { Command Line } Advanced Reliable Systems (ARES) Lab. 29

Setting Clock Transition create_clock set_clock_transition CLK experience < 0.5ns CICtester:05ns 0.5 { Command Line } set_ input_transition sto max a 0.5 [all _ inputs] Advanced Reliable Systems (ARES) Lab. 30

Combination Circuit Maximum Delay Constraints For combinational circuits primarily (i.e. design with no clock) Select the start & end points of the timing path Attributes/Optimization Constraints/Timing Constraints Ex: Maximum Delay Constraint (5ns = 200 MHz) Minimum Delay Constraint Advanced Reliable Systems (ARES) Lab. 31

Design Rule Constraints Setting Design Rule Constraints Area Constraint Fanout Constraint Advanced Reliable Systems (ARES) Lab. 32

Setting Area/Fanout Constraint Attributes/Optimization Constraints/Design Constraints If you only concern the circuit area, but don t care about the timing You can set the max area constraints to 0 { Command Line } set_max_area 0 set_max_fanout 50 [get_designs CORE] Advanced Reliable Systems (ARES) Lab. 33

Compile the Design Compile the Design Design/Compile Design { Command Line } compile map_effort high boundary_optimization Advanced Reliable Systems (ARES) Lab. 34

Assign Problem Assign Violation Avoidance The syntax of assign may cause problems in the LVS assign \A[19] = A[19]; assign \A[18] = A[18]; assign \A[17] = A[17]; assign \A[16] = A[16]; assign \A[15] = A[15]; assign ABSVAL[19] = \A[19]; assign ABSVAL[18] = \A[18]; assign ABSVAL[17] = \A[17]; assign ABSVAL[16] = \A[16]; assign ABSVAL[15] = \A[15]; BUFX1 X37X(.I(A[19]),.Z(ABSVAL[19]) ); BUFX1 X38X(.I(A[18]),.Z(ABSVAL[18]) ); BUFX1 X39X(.I(A[17]),.Z(ABSVAL[17]) ); BUFX1 X40X(.I(A[16]),.Z(ABSVAL[16]) ); BUFX1 X41X(.I(A[15]),.Z(ABSVAL[15]) ); { Command Line } set_fix_multiple_port_nets all constants buffer_constants [get_designs *] Advanced Reliable Systems (ARES) Lab. 35

Floating Port Removing Due to some ports in the standard cells are not used in your design { Command Line } remove_unconnected_ports blast_buses [get_cells hierarchical *] Advanced Reliable Systems (ARES) Lab. 36

Chang Naming Rule Script Naming Rule Changing Purpose: Let the naming-rule definitions in the gate-level netlist are the same as in the timing file (e.g. *.sdf file) Also, the wrong naming rules may cause problems in the LVS { Command Line } set bus_inference_style {%s[%d]} set bus_naming_style {%s[%d]} set hdlout_internal_busses true change_names -hierarchy -rule verilog define_name_rules name_rule -allowed "A-Z a-z 0-9 _" -max_length 255 -type cell define_name_rules name_rule -allowed "A-Z a-z 0-9 _[]" -max_length 255 -type net define_name_rules name name_rule -map {{"\\*cell\\*""cell"}} define_name_rules name_rule -case_insensitive change_names -hierarchy -rules name_rule Advanced Reliable Systems (ARES) Lab. 37

Save Design Save Design Five design files: *.spf: test protocol file for ATPG tools (i.e. TetraMax) *.sdc: timing constraint file for P&R *.vg: gate-level netlist for P&R *.sdf: timing file for Verilog simulation *.db: binary file (i.e. all the constraints and synthesis results are recorded) { Command Line } write_test_protocol -f stil -out "CHIP.spf" write_sdc CHIP.sdc write -format verilog -hierarchy -output "CHIP.vg" write_sdf -version 1.0 CHIP.sdf write -format db -hierarchy -output "CHIP.db" Advanced Reliable Systems (ARES) Lab. 38

Synthesis Report Report Design Hierarchy Report Area Design View Report Timing Critical Path Highlighting Timing Slack Histogram Advanced Reliable Systems (ARES) Lab. 39

Report Design Hierarchy Hierarchy report shows the component used in your each block & its hierarchy Design/Report Design Hierarchy Ex: Advanced Reliable Systems (ARES) Lab. 40

Report Area Ex: Design/Report Area (0.18um Cell-Library: 1 gate 10 um 2 ) (0.13um Cell-Library: 1 gate 5 um 2 ) (um 2 ) Advanced Reliable Systems (ARES) Lab. 41

Design View List/Design View Ex: All the block area are listed!! Advanced Reliable Systems (ARES) Lab. 42

Report Timing Timing/Report Timing Ex: setup time Critical Path max: setup time min: hold time Slack = Data Require Time Data Arrival Time Advanced Reliable Systems (ARES) Lab. 43

Critical Path Highlighting Ex: View/Highlight/Critical Path Advanced Reliable Systems (ARES) Lab. 44

Timing Slack Histogram Timing/Endpoint Slack Totally 190 paths are in the slack range between 0 to 1.78 Ex: Resolution Advanced Reliable Systems (ARES) Lab. 45

Edit Your Own Script File For convenient, you should edit your own synthesis script file. Whenever you want to synthesis a new design, you just only change some parameters in this file. Ex: Execute Script File File/Execute Script Or use source your_ script.dc in dc_ shell command line Advanced Reliable Systems (ARES) Lab. 46

Gate-Level Simulation Include the Verilog model of standard cell and gate-level netlist to your test bench Standard Cell Library Gate- Level Netlist Add the following Synopsys directives to the test bench *.sdf File Instance Name Delay Advanced Reliable Systems (ARES) Lab. 47

Lab. cp r f /usr2/grad97/tjchen/tutorial_of_dv/lab. Advanced Reliable Systems (ARES) Lab. 48