Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

11
Table of Contents 1 Introduction 1 1.1 CAD Tool Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Custom VLSI and Cell Design Flow . . . . . . . . . . . . . . . . 3 1.1.2 Hierarchical Cell/Block ASIC Flow . . . . . . . . . . . . . . . . 3 1.2 What This Book Is and Isn’t . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Bugs in the Tools? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Tool Setup and Execution Scripts . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Cadence DFII and ICFB 9 2.1 Cadence Design Framework . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Starting Cadence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3 Composer Schematic Capture 17 3.1 Starting Cadence and Making a New Working Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Creating a New Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 Creating the Schematic View of a Full Adder . . . . . . . . . . . 19 3.2.2 Creating the Symbol View of a Full Adder . . . . . . . . . . . . . 26 3.2.3 Creating a Two-Bit Adder Using the FullAdder Bit . . . . . . . . 28 3.3 Schematics that Use

Transcript of Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

Page 1: Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

Table of Contents1 Introduction 11.1 CAD Tool Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.1 Custom VLSI and Cell Design Flow . . . . . . . . . . . . . . . . 31.1.2 Hierarchical Cell/Block ASIC Flow . . . . . . . . . . . . . . . . 31.2 What This Book Is and Isn’t . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Bugs in the Tools? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Tool Setup and Execution Scripts . . . . . . . . . . . . . . . . . . . . . . 61.5 Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 72 Cadence DFII and ICFB 92.1 Cadence Design Framework . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Starting Cadence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Composer Schematic Capture 173.1 Starting Cadence and Making a NewWorking Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Creating a New Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2.1 Creating the Schematic View of a Full Adder . . . . . . . . . . . 193.2.2 Creating the Symbol View of a Full Adder . . . . . . . . . . . . . 263.2.3 Creating a Two-Bit Adder Using the FullAdder Bit . . . . . . . . 283.3 Schematics that Use Transistors . . . . . . . . . . . . . . . . . . . . . . 313.4 Printing Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.4.1 Modifying PostScript Plot Files . . . . . . . . . . . . . . . . . . 383.5 Variable, Pin, and Cell Naming Restrictions . . . . . . . . . . . . . . . . 393.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Verilog Simulation 414.1 Verilog Simulation of Composer Schematics . . . . . . . . . . . . . . . . 444.1.1 Verilog-XL: Simulating a Schematic . . . . . . . . . . . . . . . . 454.1.2 NC Verilog: Simulating a Schematic . . . . . . . . . . . . . . . . 654.2 Behavioral Verilog Code in Composer . . . . . . . . . . . . . . . . . . . 694.2.1 Generating a Behavioral View . . . . . . . . . . . . . . . . . . . 724.2.2 Simulating a Behavioral View . . . . . . . . . . . . . . . . . . . 754.3 Stand-Alone Verilog Simulation . . . . . . . . . . . . . . . . . . . . . . 764.3.1 Verilog-XL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.3.2 NC Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.3.3 VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874.4 Timing in Verilog Simulations . . . . . . . . . . . . . . . . . . . . . . . 904.4.1 Behavioral Versus Transistor Switch Simulation . . . . . . . . . . 944.4.2 Behavioral Gate Timing . . . . . . . . . . . . . . . . . . . . . . 964.4.3 Standard Delay Format (SDF) Timing . . . . . . . . . . . . . . . 994.4.4 Transistor Timing . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 Virtuoso Layout Editor 1095.1 An Inverter Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 2: Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

5.1.1 Starting Cadence icfb . . . . . . . . . . . . . . . . . . . . . . . . 1115.1.2 Making an Inverter Schematic . . . . . . . . . . . . . . . . . . . 1115.1.3 Making an Inverter Symbol . . . . . . . . . . . . . . . . . . . . 1125.2 Layout for an Inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135.2.1 Creating a New layout View . . . . . . . . . . . . . . . . . . . . 1135.2.2 Drawing an nmos Transistor . . . . . . . . . . . . . . . . . . . . 1135.2.3 Drawing a pmos Transistor . . . . . . . . . . . . . . . . . . . . . 1185.2.4 Assembling the Inverter from the Transistor Layouts . . . . . . . 1225.2.5 Using Hierarchy in Layout . . . . . . . . . . . . . . . . . . . . . 1285.2.6 Virtuoso Command Overview . . . . . . . . . . . . . . . . . . . 1305.3 Printing Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345.4 Design Rule Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345.4.1 DIVA Design Rule Checking . . . . . . . . . . . . . . . . . . . . 1345.5 Generating an Extracted View . . . . . . . . . . . . . . . . . . . . . . . 1405.6 Layout Versus Schematic Checking (LVS) . . . . . . . . . . . . . . . . . 1415.6.1 Generating an analog-extracted View . . . . . . . . . . . . . . . 1525.7 Overall Cell Design Flow (So Far...) . . . . . . . . . . . . . . . . . . . . 1535.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1536 Standard Cell Design Template 1556.1 Standard Cell Geometry Specification . . . . . . . . . . . . . . . . . . . 1566.2 Standard Cell I/O Pin Placement . . . . . . . . . . . . . . . . . . . . . . 1586.3 Standard Cell Transistor Sizing . . . . . . . . . . . . . . . . . . . . . . . 1616.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627 Spectre Analog Simulator 1677.1 Simulating a Schematic (Transient Simulation) . . . . . . . . . . . . . . 1697.2 Simulation with the Spectre Analog Environment . . . . . . . . . . . . . 1717.3 Simulating with a Config View . . . . . . . . . . . . . . . . . . . . . . . 1767.4 Mixed Analog/Digital Simulation . . . . . . . . . . . . . . . . . . . . . 1827.4.1 Final Words about Mixed-Mode Simulation . . . . . . . . . . . . 1947.5 DC Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1987.5.1 Parametric Simulation . . . . . . . . . . . . . . . . . . . . . . . 2047.6 Power Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2057.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2138 Cell Characterization 2158.1 Liberty File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2158.1.1 Combinational Cell Definition . . . . . . . . . . . . . . . . . . . 2198.1.2 Sequential Cell Definition . . . . . . . . . . . . . . . . . . . . . 2218.1.3 Tristate Cell Definition . . . . . . . . . . . . . . . . . . . . . . . 2288.2 Cell Characterization with ELC . . . . . . . . . . . . . . . . . . . . . . 2308.2.1 Generating the ELC Netlist . . . . . . . . . . . . . . . . . . . . . 2308.2.2 Cell Naming and Encounter Library Characterizer . . . . . . . . 2438.2.3 Best, Typical, and Worst Case Characterization . . . . . . . . . . 2448.3 Cell Characterization with Spectre . . . . . . . . . . . . . . . . . . . . . 2448.4 Converting Liberty to Synopsys Database (db) Format . . . . . . . . . . 250

Page 3: Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

8.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 Verilog Synthesis 2539.1 Synopsys Design Compiler Synthesis with dc shell . . . . . . 2539.1.1 Basic Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549.1.2 Scripted Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . 2589.1.3 Synopsys Design Vision GUI . . . . . . . . . . . . . . . . . . . . 2679.1.4 DesignWare Building Blocks . . . . . . . . . . . . . . . . . . . . 2769.2 Cadence RTL Compiler Synthesis . . . . . . . . . . . . . . . . . . . . . 2779.2.1 Scripted Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . 2779.2.2 Cadence RTL Compiler GUI . . . . . . . . . . . . . . . . . . . . 2809.3 Importing Structural Verilog into Cadence DFII . . . . . . . . . . . . . . 2859.4 Post-Synthesis Verilog Simulation . . . . . . . . . . . . . . . . . . . . . 2889.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29510 Abstract Generation 29910.1 Reading Your Library into Abstract . . . . . . . . . . . . . . . . . . . . 30010.2 Finding Pins in Your Cells . . . . . . . . . . . . . . . . . . . . . . . . . 30310.3 The Extract Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30610.4 The Abstract Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30610.5 LEF File Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30610.6 Modifying the LEF File . . . . . . . . . . . . . . . . . . . . . . . . . . 30910.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31111 SOC Encounter Place and Route 31311.1 Encounter GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31511.1.1 Reading In the Design . . . . . . . . . . . . . . . . . . . . . . . 31811.1.2 Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32311.1.3 Power Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . 32711.1.4 Placing the Standard Cells . . . . . . . . . . . . . . . . . . . . . 33311.1.5 First Optimization Phase . . . . . . . . . . . . . . . . . . . . . . 33311.1.6 Clock Tree Synthesis . . . . . . . . . . . . . . . . . . . . . . . . 33611.1.7 Post-CTS Optimization . . . . . . . . . . . . . . . . . . . . . . . 33811.1.8 Final Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33811.1.9 Post-Route Optimization . . . . . . . . . . . . . . . . . . . . . . 34311.1.10 Adding Filler Cells . . . . . . . . . . . . . . . . . . . . . . . . . 34511.1.11 Checking the Result . . . . . . . . . . . . . . . . . . . . . . . . 34511.1.12 Saving and Exporting the Placed and Routed Cell . . . . . . . . . 34911.1.13 Reading the Cell Back into Virtuoso . . . . . . . . . . . . . . . . 35211.2 Design Import with Configuration Files . . . . . . . . . . . . . . . . . . 35811.2.1 Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36111.3 SOC Encounter Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . 36111.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36412 Chip Assembly 36712.1 Module Routing with ccar . . . . . . . . . . . . . . . . . . . . . . . . . 36712.1.1 Preparing a Placement with Virtuoso-XL . . . . . . . . . . . . . . 36912.1.2 Invoking the ccar Router . . . . . . . . . . . . . . . . . . . . . . 374

Page 4: Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

12.2 Core to Pad Frame Routing with ccar . . . . . . . . . . . . . . . . . . . 38212.2.1 Copy the Pad Frame . . . . . . . . . . . . . . . . . . . . . . . . 38312.2.2 Modify the Frame schematic View . . . . . . . . . . . . . . . . 38512.2.3 Modify the Frame layout View . . . . . . . . . . . . . . . . . . 39012.2.4 Routing the Core to Frame with ccar . . . . . . . . . . . . . . . 39112.2.5 Metal Density Issues . . . . . . . . . . . . . . . . . . . . . . . . 39912.3 Final GDSII Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 39912.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40513 Design Example 40913.1 Tiny MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41013.2 Tiny MIPS: Flat Tool Flow . . . . . . . . . . . . . . . . . . . . . . . . . 41613.2.1 Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41613.2.2 Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . 42013.2.3 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43213.2.4 Final Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . 44313.3 Tiny MIPS: Hierarchical Tool Flow . . . . . . . . . . . . . . . . . . . . 44613.3.1 Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44913.3.2 Place and Route into a Macro Block . . . . . . . . . . . . . . . . 44913.3.3 Preparing Custom Circuits for Hierarchy . . . . . . . . . . . . . 45113.3.4 Generating Abstract Views for Blocks . . . . . . . . . . . . . . . 45413.3.5 Place and Route with Macro Blocks . . . . . . . . . . . . . . . . 45613.3.6 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47013.3.7 Final Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . 47013.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470A Tool and Setup Scripts 475A.1 Cadence Tool Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 476A.2 Cadence Setup Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 478A.2.1 setup-cadence: Basic Cadence Setup . . . . . . . . . . . . . . . 478A.2.2 setup-ncsu: Cadence Setup with NCSU Extensions . . . . . . . . 481A.3 Shell Scripts for Cadence Tools . . . . . . . . . . . . . . . . . . . . . . . 482A.3.1 syn-abstract: Start the Abstract Tool . . . . . . . . . . . . . . . 482A.3.2 cad-alf2lib: Convert the alf Notation from Encounter Library Characterizer to lib Notation . . . . . . . . . 482A.3.3 cad-elc: Start the Encounter Library Characterizer . . . . . . . . 483A.3.4 cad-ncsu: Start the DFII (icfb) Environment . . . . . . . . . . . 484A.3.5 cad-soc: Start the SOC Encounter Place and Route Tool . . . . . 484A.3.6 sim-ncg: Startup Script for the NC Verilog Simulator, with GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485A.3.7 sim-xlg: Startup Script for the Verilog-XL simulator, with GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485A.3.8 sptr2elc: Perl Script for Converting Spectre Netlists to Encounter Library Characterizer Netlists . .  . 486A.3.9 syn-rtlg: Start the RTL Compiler Synthesis Tool, with GUI . . . 487A.4 Synopsys Tool Installation . . . . . . . . . . . . . . . . . . . . . . . . . 488

Page 5: Digital VLSI Chip Design With Cadence and Synopsys Cad Tools Table of Contents

A.5 Synopsys Setup Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 489A.5.1 setup-synopsys: Basic Synopsys Setup . . . . . . . . . . . . . . 489A.6 Shell Scripts for Synopsys Tools . . . . . . . . . . . . . . . . . . . . . . 492A.6.1 sim-vcs: Startup Script for the VCS Verilog Simulator . . . . . . 492A.6.2 sim-simv: Startup Script for the simv Simulator Resulting from VCS Execution  . . . . . . . . . . . . . . 493A.6.3 syn-dc: Startup Script for Design Compiler Synthesis . . . . . . 494A.6.4 syn-dv: Startup Script for Design Compiler using the Design Vision GUI . .. . . . . . . . . 494A.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495B Scripts to Drive the Tools 497B.1 Tcl Script Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497B.2 Cadence Tool Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499B.2.1 Encounter Library Characterizer Cell Characterization . . . . . . 500B.2.2 Cell Characterization with Spectre . . . . . . . . . . . . . . . . . 504B.2.3 SOC Encounter Place and Route . . . . . . . . . . . . . . . . . . 509B.2.4 RTL Compiler Synthesis . . . . . . . . . . . . . . . . . . . . . . 516B.2.5 ccar Chip Assembly Tool . . . . . . . . . . . . . . . . . . . . . 517B.3 Synopsys Tool Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519B.3.1 Synopsys Design Compiler Script Files . . . . . . . . . . . . . . 519B.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524C Technology and Cell Libraries 525C.1 NCSU Cadence Design Kit CDK1.5 Installation . . . . . . . . . . . . . . 525C.1.1 .cdsinit: Local Modifications . . . . . . . . . . . . . . . . . . . 526C.1.2 .cdsenv: Local Modifications . . . . . . . . . . . . . . . . . . . 529C.1.3 UofU TechLib ami06: Local Modifications . . . . . . . . . . . 530C.2 Example Standard Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . 535C.2.1 Example Liberty File . . . . . . . . . . . . . . . . . . . . . . . 536C.2.2 LEF File Technology Header . . . . . . . . . . . . . . . . . . . . 551C.2.3 LEF File MACRO Examples . . . . . . . . . . . . . . . . . . . . 554C.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563