- •Contents
- •Preface
- •About This Manual
- •Other Information Sources
- •Syntax Conventions
- •Text Command Syntax
- •About the Graphical User Interface
- •Using Menus
- •Using Forms
- •Introduction to Ambit BuildGates Synthesis
- •Separately Licensed Software Products
- •Low Power Synthesis
- •Physically Knowledgeable Synthesis
- •Datapath Synthesis
- •AC_Shell / DC_Shell Equivalencies
- •Getting Started
- •Invoking Ambit BuildGates Synthesis
- •Exiting Ambit BuildGates Synthesis
- •Files Used in Ambit BuildGates Synthesis Software
- •Key Bindings and Mouse Operations
- •Using the GUI
- •Main Menu Functions
- •File Menu Options
- •Edit Menu Options
- •View Menu Options
- •Commands Menu Options
- •Reports Menu Options
- •Window Menu Options
- •Help Menu Options
- •The Tool Bar
- •The Browsers
- •The Module Browser
- •The Variable Browser
- •Work Area Tools
- •HDL and Tcl Editors
- •Constraints Tool
- •The Schematic Viewer
- •Distributed Processing
- •Update Mode
- •The ac_shell Console
- •The Status Bar
- •Flow Procedures
- •Typical Synthesis Flow
- •Read the Libraries
- •Read the Design Data
- •Build Generic Netlist
- •Set Constraints
- •Optimize the Design
- •Generate Reports
- •Save Final Netlist
- •Viewing the Schematic Design
- •How to Use the Schematic Viewer
- •Keyboard Shortcuts
- •Mouse Operations
- •Objects in the Schematic Database
- •Accessing Context-Sensitive Pop-Up Menus
- •Highlighting Path Between Pins
- •Viewing Bus Properties
- •The Schematic Tool Bar
- •The Module Title Bar
- •Searching for an Object
- •Grouping Instances
- •Dissolving Instances
- •Creating a Unique Module
- •Displaying Logic Cones
- •Extracting Logic Cones
- •Displaying Port Constraints
- •Printing a Schematic
- •Setting Constraints
- •Setting a Hierarchical Context
- •Units in Constraints
- •Timing Constraints
- •Timing Analysis
- •Setting up Timing Context
- •Clock Insertion Delay Time
- •Data Arrival Time
- •External Delay
- •Multicycle Paths
- •Setting Drive Cell for Input Ports
- •Setting Drive Resistance
- •Slew Related Commands
- •Technology and Design Rule Constraints
- •Operating Conditions
- •Estimating Capacitance and Resistance
- •Port Capacitance
- •Capacitance Limit
- •Fanout
- •Fanout Limit
- •External Sources and Sinks
- •Wire Capacitance
- •Wire Resistance
- •Wire Load Model Selection
- •Optimizing Before Place and Route
- •Running do_optimize Command
- •Top-Down Optimization
- •Bottom-Up Optimization
- •Deriving Constraints from Context
- •Time Budgeting
- •Preserving Module Contents
- •Uniquifying Instances
- •Collapsing Hierarchy
- •Incremental Optimization
- •Applying Timing Corrections
- •Optimizing with Logic Transforms
- •Introduction to Transforms
- •Logic Optimization Steps
- •Optimizing Generic Logic
- •Mapping and Unmapping of Generic Logic
- •Constraint-Driven Optimizing
- •Summary Listing of Transform Commands
- •Optimizing After Place and Route
- •Timing Analysis
- •Backannotating
- •A Script Showing the Backannotation of a Design
- •Reading SDF Data
- •Optimizing to Correct Late and Early Slack
- •Report Generation
- •Report Header
- •Timing Reports
- •Area Reports
- •Sample Area Report
- •Library Reports
- •Hierarchy Reports
- •Sample Hierarchy Report
- •Design Rule Violations Reports
- •Sample Design Rule Violations Report
- •VHDL Library Reports
- •Sample VHDL Library Report
- •End Point Slack and Path Histogram Reports
- •Fanin and Fanout Reports
- •Sample Fanin Report
- •Finite State Machine Reports
- •Sample FSM Report
- •Customizing Report Column Width
- •Using Tcl within ac_shell and pks_shell
- •The Tcl Language
- •Procedures
- •Tcl Variables and Control Structures
- •Variables
- •Syntax
- •Tcl Commands
- •get_names Command
- •Abbreviating Commands
- •Searching for Commands
- •Accessing Environment Variables
- •Returning Unix Command Values
- •Error Handling
- •Quick Reference
Ambit BuildGates Synthesis User Guide
4
Flow Procedures
This chapter provides a high-level tutorial of the tasks of a typical synthesis flow. The tasks are presented in terms of both the command line instructions and the GUI procedures.
Refer to Key Bindings and Mouse Operations on page 31 for assistance in navigating the GUI editors and ac_shell console, and Syntax Conventions on page 10 in the Preface for command line syntax.
Typical Synthesis Flow
The typical high-level flow in BuildGates synthesis is shown in Figure 4-1 and consists of the following tasks.
■Read Libraries
■Read Design Data
■Build Generic Design
■Set Timing Constraints
■Optimize Design
■Generate Reports
■Save Final Netlist
The actual order of these tasks can vary and overlap. For example, you may want to generate reports both before and after optimizing the design. The following sections will expand and explain each of the tasks in the flow.
September 2000 |
93 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Flow Procedures
Figure 4-1 Typical Synthesis Flow
Chip Planning
Read Libraries
Read Design Data
Build Generic Design
Set Timing Constraints
Optimize Design
Generate Reports
Save Final Netlist
Synthesis Complete
September 2000 |
94 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Flow Procedures
Read the Libraries
Typically when running the Ambit BuildGates synthesis software, the first step is to load the timing and power libraries needed in the chip design. Cadence supports the following libraries.
■Ambit Library Format — ALF
■Cadence Timing Library Format 4.1 — TLF4.1
■IEEE 1481 Delay Calculation Language — DCL (a form of Delay and Power Calculation
System — DCPS)
■Open Library API — OLA v1.0.2
■Synopsys .lib format
■Graybox modeling
The BuildGates synthesis software accepts library file input in .alf and .ctlf formats.This section provides an overview of the libraries; libraries are explained in detail in the Envisia Timing Analysis User Guide, Using Timing Libraries chapter.
The DCL compiler, ndcl, compiles DCL into a binary Delay and Power Calculation Module (DPCM). The DPCM is an executable shared library that is linked to the BuildGates synthesis database at runtime. The DCL compiler is available through Cadence for library development purposes.
To use DCL libraries, a .alf library is loaded using the read_alf command, then a DCL library (or more accurately a DPCM) is loaded with the load_dcl_rule command followed by a read_library_update command. When the DPCM library is loaded after an .alf, all timing information is derived from the DPCM specified by the read_library_update file, and all cell function is derived from the .alf. If the DPCM contains cell properties (like area) and pin properties (like capacitance and wireloads), the DPCM takes precedence over the
.alf and will override any similar information provided by the .alf. If the DPCM does not contain this information, the cell and pin properties and wireloads from the .alf will be used. To map to multiple libraries, one library is loaded using the read_alf command and additional libraries are merged using the read_library_update command.
To enable communication between BuildGates synthesis and the DPCM, the following Unix environment variables must be set: DCMRULEPATH, DCMTABLEPATH, and LD_LIBRARY_PATH for Solaris (or the equivalent for other platforms). Refer to load_dcl_rule in the Envisia and Ambit Synthesis Command Reference and/or the
Using IEEE 1481 Delay and Power Calculation System (DCL) Libraries section in the Envisia Timing Analysis User Guide.
September 2000 |
95 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Flow Procedures
The OLA specification is an extension of the Delay and Power Calculation System and is loaded in the same manner as the DCL: with the load_dcl_rule command after read_alf. Some of the key extensions to OLA over DPCS are the addition of cell function information and properties equivalents to dont_use and dont_touch which can be used for synthesis.
The .lib format is the ASCII synthesis timing and power library format originally defined by
Synopsys™ and now licensed by Synopsys through the TAP-in™ program. Cadence is a
TAP-in licensee. The Cadence library compiler, libcompile, supports the .lib format and produces a binary .alf file. Run the libcompile command from the Unix prompt (not from ac_shell) to compile a .lib file as follows:
libcompile xy_cells.lib xy_cells.alf
For exact libcompile syntax, refer to the Envisia Timing Analysis User Guide.
Graybox modeling is a practical solution for incorporating standard functions in the form of commercially available cores. These reusable IP (Intellectual Property) cores are predesigned and pre-verified functional building blocks that enable a major productivity gain for ASIC and IC design. In addition, Graybox modeling is also used in design situations in which the chip designer does not want to pass the netlist to the synthesis tool due to IP reasons. For these IP blocks, no re-synthesis or optimization is performed but timing validity must be ensured. Graybox modeling is supported in the .lib format. Run the libcompile command with the -ipformat option from the Unix prompt to compile a .lib file with graybox modeling:
libcompile -ipformat xy_cells.lib xy_cells.alf
The following paragraphs list the GUI and command line steps to: read a library, update this library with additional information from the update file, and load the DCL rules.
Read Library — GUI Procedure
1.Select File – Open – Ambit Library.
2.Browse for or type-in the path and file name and click Ok.
3.On the ac_shell console type read_library_update libfile.alf and press
Return.
4.Select Commands – Load DCL Rules.
September 2000 |
96 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Flow Procedures
Read Library — Command Line Procedure
Note, the Unix environment variables DCMRULEPATH, DCMTABLEPATH, and
LD_LIBRARY_PATH (see Read the Libraries on page 95) must be loaded prior to these steps.
1.Type read_alf libfile.alf and press Return.
2.Type read_library_update libfile.alf and press Return.
3.Type load_dcl_rule and press Return.
September 2000 |
97 |
Product Version 4.0 |