1Kazi Spring 2008 CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi.

Slides:



Advertisements
Similar presentations
CMOS Logic Circuits.
Advertisements

Selected Design Topics. Integrated Circuits Integrated circuit (informally, a chip) is a semiconductor crystal (most often silicon) containing the electronic.
Traditional SOC Design Flow
OCV-Aware Top-Level Clock Tree Optimization
Copyright 2001, Agrawal & BushnellLecture 12: DFT and Scan1 VLSI Testing Lecture 10: DFT and Scan n Definitions n Ad-hoc methods n Scan design  Design.
Circuit Extraction 1 Outline –What is Circuit Extraction? –Why Circuit Extraction? –Circuit Extraction Algorithms Goal –Understand Extraction problem –Understand.
Cadence Design Systems, Inc. Why Interconnect Prediction Doesn’t Work.
Synthesis Methodology at Tundra Seniconductors
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
Ch.3 Overview of Standard Cell Design
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Programmable Logic Devices
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
The Design Process Outline Goal Reading Design Domain Design Flow
Modern VLSI Design 2e: Chapter4 Copyright  1998 Prentice Hall PTR.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi.
Power-Aware Placement
1 COMP541 Combinational Logic and Design Montek Singh Jan 25, 2007.
Vishwani D. Agrawal James J. Danaher Professor
CMPE222 Project Synthesis Optimization analysis of DC & DW Zhenrong Wang, Mingcui Instructor: Prof. Wakefield.
An Introduction to Synopsys Design Automation Jeremy Lee November 7, 2007.
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
TAP (Test Access Port) JTAG course June 2006 Avraham Pinto.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
From Concept to Silicon How an idea becomes a part of a new chip at ATI Richard Huddy ATI Research.
03/30/031 ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing 9.2: Optimization (In separate file)
Hierarchical Physical Design Methodology for Multi-Million Gate Chips Session 11 Wei-Jin Dai.
INTEGRATED CIRCUIT LOGIC FAMILY
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 11 – Design Concepts.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi* Lecture 10 Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth (*Mostly.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
CAD for Physical Design of VLSI Circuits
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
ASIC Design Flow – An Overview Ing. Pullini Antonio
1 H ardware D escription L anguages Modeling Digital Systems.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Fully Pipelined FPU for OR1200
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
정 용 군 ( 전자공학과 대학원 ) 대상 : VLSI 설계 연구회 1,2,3 학년 기간 : ~ Synopsys Tool 교육 Synopsys 교육 1.
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
ECO Timing Optimization Using Spare Cells Yen-Pin Chen, Jia-Wei Fang, and Yao-Wen Chang ICCAD2007, Pages ICCAD2007, Pages
Synopsys Custom Designer Tutorial for a chip integration using the University of Utah Standard Cell Libraries In ON Semiconductor 0.5u C5 CMOS Version.
An Unobtrusive Debugging Methodology for Actel AX and RTAX-S FPGAs Jonathan Alexander Applications Consulting Manager Actel Corporation MAPLD 2004.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
Programmable Logic Training Course HDL Editor
Cadence tools Brandon Rumberg.
04/06/031 ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing (In separate file) 9.2: Optimization - Part 1 9.3: Optimization.
CHAPTER 8 Developing Hard Macros The topics are: Overview Hard macro design issues Hard macro design process Physical design for hard macros Block integration.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
DEVICES AND DESIGN : ASIC. DEFINITION Any IC other than a general purpose IC which contains the functionality of thousands of gates is usually called.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth (most of the material.
George Mason University ECE 545 – Introduction to VHDL Logic Synthesis with Synopsys ECE 545 Lecture 11.
Static Timing Analysis
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Written by Whitney J. Wadlow
Introduction to ASICs ASIC - Application Specific Integrated Circuit
Structural style Modular design and hierarchy Part 1
ASIC Design Methodology
Library Characterization
Timing Analysis 11/21/2018.
Structural style Modular design and hierarchy Part 1
FPGA Tools Course Answers
Chapter 3 – Combinational Logic Design
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

1Kazi Spring 2008 CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi

2Kazi Spring 2008 CSCI 660 Selecting a Semiconductor vendor One of the first things that needs to be done when designing a chip is to select the semiconductor vendor and technology one wants to use. The following issues need to be considered during the selection process Maximum frequency of operation Power restrictions Packageing restrictions Clock tree implementation Floor planning Back-annotationsupport Design support for libraries, megacells, and RAMs Available cores Available test methods and scans

3Kazi Spring 2008 CSCI 660 Understanding the library Design Compiler (DC) uses these libraries Technology libraries Symbol libraries DesignWare libraries

4Kazi Spring 2008 CSCI 660 Technology libraries Contain information about the characteristics and functions of each cell provided in a semiconductor vendor’s library. The manufacturers maintain and distribute the technology libraries Cell characteristics include information such as cell name, pin names, area, delay arcs and pin loading. The technology library also defines the conditions that must be met for a functional design (e.g., the maximum transition time for nets). These conditions are called design rule constraints. Also specify the operating conditions and wire load models specific to that technology DC requires the technology libraries to be in “.db” format. These libraries are typically provided by the semiconductor manufacturer

5Kazi Spring 2008 CSCI 660 Symbol libraries Symbol libraries contain definitions of the graphic symbols that represent library cells in the design schematics. Semiconductor vendors maintain and distribute the symbol libraries. Design Compiler uses symbol libraries to generate the design schematic. You must use Design Vision to view the design schematic. When you generate the design schematic, Design Compiler performs a one-to-one mapping of cells in the netlist to cells in the symbol library.

6Kazi Spring 2008 CSCI 660 DesignWare Library A DesignWare library is a collection of reusable circuit- design building blocks (components) that are tightly integrated into the Synopsys synthesis environment. DesignWare components that implement many of the built- in HDL operators are provided by Synopsys. These operators include +, -, *,, =, and the operations defined by if and case statements. You can develop additional DesignWare libraries at your site by using DesignWare Developer, or you can license DesignWare libraries from Synopsys or from third parties.

7Kazi Spring 2008 CSCI 660 Specifying Libraries Use dc_shell variables to specify the libraries used by the Design Compiler as shown in the table below

8Kazi Spring 2008 CSCI 660 Target Library Design Compiler uses the target library to build a circuit. During mapping, Design Compiler selects functionally correct gates from the target library. It also calculates the timing of the circuit, using the vendor-supplied timing data for these gates. Use the target_library variable to specify the target library. The syntax is set target_library my_tech.db

9Kazi Spring 2008 CSCI 660 Link Library Design Compiler uses the link library to resolve references. For a design to be complete, it must connect to all the library components and designs it references. This process is called linking the design or resolving references. During the linking process, Design Compiler uses the link_library system variable, the local_link_library attribute, and the search_path system variable to resolve references The syntax is set link_library {* my_tech.db}

10Kazi Spring 2008 CSCI 660 Specifying DesignWare Library You do not need to specify the standard synthetic library, standard.sldb, that implements the built-in HDL operators. The software automatically uses this library. If you are using additional DesignWare libraries, you must specify these libraries by using the synthetic_library variable (for optimization purposes) and the link_library variable (for cell resolution purposes).

11Kazi Spring 2008 CSCI 660 Describing environmental attributes set_max_capacitance Set_max_transition & set_max_fanout on Inputs and Output ports or current design set_operating_conditions on the whole design

12Kazi Spring 2008 CSCI 660 Environmental attributes Design environment consists of defining the process parameters, I/O port attributes, and statistical wire load models. Set_min_library -min_version dc_shell> set_min_library “ex25_worst.db” \ -min_version “ex25_best.db” This command allows the users to simultaneously specify the best case and worst case libraries. Can be used to fix set up and hold violation. The user should set both the min and the max values for the operating conditions

13Kazi Spring 2008 CSCI 660 Setting operating conditions set_operating_conditions Specifies the process, voltage and temperature conditions of the design. Synopsys library consists of WORST, TYPICAL and BEST cases. Each vendor has their own naming convention for the libraries! Changing the value of the operating condition command, full range of process variations are covered.

14Kazi Spring 2008 CSCI 660 Setting operating conditions set_operating_conditions WORST is generally used during pre-layout synthesis phase to optimize the maximum set-up time. BEST is normally used to fix any hold violations. TYPICAL is generally not used since it is covered when both WORST and BEST cases are used.

15Kazi Spring 2008 CSCI 660 Setting operating conditions set_operating_conditions It is possible to optimize the design with both WORST and BEST cases simultaneously dc_shell> set_operating_conditions WORST dc_shell> set_operating_conditions –min BEST -max WORST

16Kazi Spring 2008 CSCI 660 Operating conditions

17Kazi Spring 2008 CSCI 660 Modeling wire loads DC uses wire loads models to estimate capacitance, resistance and the area of the nets prior to floor planning or layout. The wire load model is based upon a statistically average length of a net for a given fan out for a given area “10 x 10” “20 x 20”

18Kazi Spring 2008 CSCI 660 Wire load command DC uses wire load information to model the delay which is a function of loading Synopsys provides wire load models in the technology library, each representing a particular size. Designer can create their own wire load models for better accuracy set_wire_load_model –name dc_shell>set_wire_load_model –name MEDIUM

19Kazi Spring 2008 CSCI 660 Wire load mode There are 3 modes associated with the set_wire_load_mode: top, enclosed and segmented top Defines that all nets in the hierarchy will inherit the same wire load model as the top level block. Use it if when the plan is to flatten the design later for layout. enclosed Specifies all the nets (of the sub-blocks) inherit the wire load model of the block that completely encloses the sub-blocks. For example, if blocks X and Y are enclosed within block Z, then the blocks X and Y will inherit the wire load models defined for block Z.

20Kazi Spring 2008 CSCI 660 Wire load mode segmented Used when wires are crossing hierarchical boundaries. From the previous example, the sub-blocks X and Y will inherit the wire load models specific to them, while nets between sub-blocks X and Y(which are contained within Z) will inherit wire-load model specified for block Z Not used often, as the wire load models are specific to the net segments set_wire_load_mode dc_shell>set_wire_load_mode top Accurately using wire load models is highly recommended as this directly affects the synthesis runs. Wrong model can generate undesired results. Use slightly pessimistic wire load models. This will provide extra time margin that may be absorbed later in the test circuit insertion or layout

21Kazi Spring 2008 CSCI 660 Wire load models across hierarchy 50x50 20x20 40x40 30x30 50x50 20x20 40x40 50x50 30x30 50x50 20x20 40x40 30x30 mode = top: (ignores lower level wire loads) mode = enclosed: (uses best fitting wire loads) mode = segmented: (uses several wire loads) 30x3020x20

22Kazi Spring 2008 CSCI 660 set_drive set_drive is used at the input ports of the block. It is used to specify the drive strength at the input port. Is typically used to model the external drive resistance to the ports of the block or chip. 0 signifies highest strength and is normally used for clock or reset ports. set_drive dc_shell> set_drive 0 {clk rst}

23Kazi Spring 2008 CSCI 660 set_driving_cell set_driving_cell is used to model the drive resistance of the driving cell to the input ports. set_driving_cell –cell -pin dc_shell>set_driving_cell –cell BUFF1 –pin Z [all_inputs]

24Kazi Spring 2008 CSCI 660 set_load set_load sets the capacitive load in the units defined in the technology library (pf), to the specified ports or nets of the design. It typically sets capacitive loading on output ports of the blocks during pre-layout synthesis, and on nets, for back annotating the extracted post layout capacitive information set load dc_shell>set_load 1.5 [all_outputs] dc_shell> set_load 0.3 [get_nets blockA/n1234]

25Kazi Spring 2008 CSCI 660 Design rule constraints Design rule constraints consist of set_max_transition, set_max_fanout and set_max_capacitance. These rules are technology dependent and are generally set in the technology library. The DRC commands are applied to input ports, output ports or on the current_design. It can be useful if the technology library is not adequate of is too optimistic, then these commands can be used to control the buffering in the design set_max_transition set_max_capacitance object list> set_max_fanout,value> dc_shell –t>set_max_transition 0.3 current_design dc_shell –t>set_max_capacitance 1.5 [get_ports out1] dc_shell –t>set_max_fanout 3.0 [all_outputs] (dc_shell –t> corresponds to DC operating in tcl mode)

26Kazi Spring 2008 CSCI 660 Some more design constraints dc_shell –t >create_clock –period 40 -waveform [list 0 20] CLK set_dont_touch_network is a very useful command and is usually used for clock and reset. It is used to set_dont_touch property on a port, or a net. This prevents DC from buffering the net in order to meet DRCs. dc_shell –t>set_dont_touch_network {clk, rst}

27Kazi Spring 2008 CSCI 660 Some more design constraints If a block generates a secondary clock from the primary, e.g. byte clock from the serial clock, in this apply set_dont_touch_network on the generated clock output port of the block. Helps prevent DC from buffering it up. Clock trees can later be inserted to balance the clock skew.

28Kazi Spring 2008 CSCI 660 Some more design constraints set_dont_touch is used to set a dont_touch property on the current design, cells, references or net. This is frequently used during hierarchical compilations of the block. dc_shell –t>set_dont_touch current_design Useful in telling DC not to touch the current design if it has been optimized to designer’s satisfaction. For example, if some spare gates block is instantiated, DC will not touch it or optimize it.