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.

Slides:



Advertisements
Similar presentations
Selected Design Topics. Integrated Circuits Integrated circuit (informally, a chip) is a semiconductor crystal (most often silicon) containing the electronic.
Advertisements

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.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 261 Lecture 26 Logic BIST Architectures n Motivation n Built-in Logic Block Observer (BILBO) n Test.
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.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Multiobjective VLSI Cell Placement Using Distributed Simulated Evolution Algorithm Sadiq M. Sait, Mustafa I. Ali, Ali Zaidi.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
The Design Process Outline Goal Reading Design Domain Design Flow
1Kazi Spring 2008 CSCI 660 CSCI-660 Introduction to VLSI Design Khurram Kazi.
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
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 12 - Timing, Project.
Institute of Digital and Computer Systems 1 Fabio Garzia / Finding Peak Performance in a Process23/06/2015 Chapter 5 Finding Peak Performance in a Process.
Vishwani D. Agrawal James J. Danaher Professor
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
Capacitance Sensor Project
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.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
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.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
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
ECE Advanced Digital Systems Design Lecture 12 – Timing Analysis Capt Michael Tanner Room 2F46A HQ U.S. Air Force Academy I n t e g r i.
1 5. Application Examples 5.1. Programmable compensation for analog circuits (Optimal tuning) 5.2. Programmable delays in high-speed digital circuits (Clock.
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.
Modern VLSI Design 3e: Chapter 4 Copyright  1998, 2002 Prentice Hall PTR Topics n Combinational network delay. n Logic optimization.
My Second FPGA for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTEMS
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.
An Unobtrusive Debugging Methodology for Actel AX and RTAX-S FPGAs Jonathan Alexander Applications Consulting Manager Actel Corporation MAPLD 2004.
Modern VLSI Design 4e: Chapter 3 Copyright  2008 Wayne Wolf Topics n Pseudo-nMOS gates. n DCVS logic. n Domino gates. n Design-for-yield. n Gates as IP.
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:
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth.
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi* Lecture 9 Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth *(lecture.
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.
ECE 260B – CSE 241A /UCB EECS Kahng/Keutzer/Newton Physical Design Flow Read Netlist Initial Placement Placement Improvement Cost Estimation Routing.
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 FPGA Tools
Physical Synthesis Buffer Insertion, Gate Sizing, Wire Sizing,
Kazi ECE 6811 ECE 681 VLSI Design Automation Khurram Kazi Lecture 8 Thanks to Automation press THE button outcomes the Chip !!! Reality or Myth.
George Mason University ECE 545 – Introduction to VHDL Logic Synthesis with Synopsys ECE 545 Lecture 11.
Modern VLSI Design 4e: Chapter 4 Copyright  2008 Wayne Wolf Topics n Combinational network delay. n Logic optimization.
Static Timing Analysis
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
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.
04/21/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Functional & Timing Verification 10.2: Faults & Testing.
Written by Whitney J. Wadlow
ASIC Design. ASIC Design Flow Hierarchy in DC The group and ungroup commands provide the designer with the capability of altering the partitions in DC,
Structural style Modular design and hierarchy Part 1
ASIC Design Methodology
An Unobtrusive Debugging Methodology for Actel AX and RTAX-S FPGAs
Chapter 7 – Specialized Routing
Timing Analysis 11/21/2018.
FPGA Tools Course Timing Analyzer
Lecture 26 Logic BIST Architectures
Presentation transcript:

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 in this lecture is taken from Bhatnager’s book)

Kazi ECE 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

Kazi ECE 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

Kazi ECE 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.

Kazi ECE 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.

Kazi ECE 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

Kazi ECE Operating conditions

Kazi ECE 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”

Kazi ECE 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 -t>set_wire_load_model –name MEDIUM

Kazi ECE 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.

Kazi ECE 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

Kazi ECE Wire load models across hierarchy 50x50 20x20 40x40 50x50 30x30 50x50 20x20 40x40 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

Kazi ECE 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}

Kazi ECE 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]

Kazi ECE 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]

Kazi ECE 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)

Kazi ECE 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}

Kazi ECE 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.

Kazi ECE 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.

Kazi ECE Some more design constraints set_dont_use command is normally set in.synopsys_dc.setup environment file. This command tells DC not to use certain types of cells during synthesis process. For example, one can specify not to use scan flip flops (they normally have built in Muxes) set_dont_use [list mylib/SDFF* mylib/RSFF]

Kazi ECE A simple schematic

Kazi ECE Schematic converted into a timing graph

Kazi ECE Calculating a path’s delay

Kazi ECE BIP Calculator Example: A B O F > = BIP1

Kazi ECE PRBS detector

Kazi ECE Assignment 1 must haves in the report (Due on Oct 9) Should have more than 1 block of code (multiple VHDL files) Show how you tested the sub blocks Show how you tested the top level block (framer ASIC) Should have a test plan (description of different test cases, verifying different conditions –Should show different frame states –Should show at least one BIP error condition and your circuit detected it Code must have comments and has to be readable Should have run synthesis on it and run at least one gate level simulation (assuming we have some gate level library) The report should be a comprehensive report, telling the reader what is the functionality of the ASIC, what are its features etc Describe your test environment, i.e. pattern generator, pattern detector (signal analyzer) or self checking mechanism of all the outputs from the ASIC. (waveform analysis is not good enough)

Kazi ECE Suggested ideas for the project IP Packet classification and forwarding Ethernet 10 or 100 mbps MAC or repeater Elaborate SONET framer Ethernet VLAN tagging function Some protocol mapping function (segmenting IP packets in ATM cells) Cryptography Image/video processing Bottom Line: have a system prospective in mind before delving into the functional description. FIRST cut of your project ideas are due on October 2. Should have a brief overview of what you are trying to achieve