- •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
Optimizing After Place and Route
Other fields can be added to the format as desired. Unexpected large capacitances may be annotated to nets. When this happens, it’s helpful to analyze whether the capacitance can be defrayed by reducing the fanout and how much timing improvement can be made by correcting slew rates.
To enhance timing analysis using report_timing, it is recommended that the -net switch be used to separate the wire RC delay from the cell I/O delay. Wire delays are noted on a cell’s input pins and cell I/O delays are noted on a cell’s output pins.
Backannotating
After place and route of the design, extraction tools calculate the capacitance and resistance information for individual nets. This net RC information may be used by a delay calculator (external to the BuildGates synthesis tool) to create a new timing view of the design. Timing information is conventionally stored in a Standard Delay Format (SDF) file. Individual net RC and design SDF timing information is annotated to the design within the BuildGates synthesis software to provide an accurate timing and design rule violation view of the design.
It may seem redundant to annotate both RC and SDF timing information, but both annotation types are needed. Timing arcs and cell timing checks annotated with SDF override the delay calculator within the software for the same parameters. Some SDF generators do not annotate all necessary arcs and timing checks, in which case the net RCs are useful for proper delay calculation. Also, SDF annotation does not cover important design rule considerations such as signal slew (or ramp) times and capacitance information. Furthermore, the BuildGates synthesis software accepts only lumped net RC information. Delay calculators that use distributed RC information can calculate unique wire delays for each receiver on a common net and store the parameters with SDF INTERCONNECT statements.
A Script Showing the Backannotation of a Design
The following example script shows the reading and backannotation of a design.
# Read timing libraries
set TargetTech [read_alf stdcell_wccom.alf] set_global target_technology $TargetTech set_operating_conditions WORST_CASE
# load design read_verilog chip.v do_build_generic
September 2000 |
186 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Optimizing After Place and Route
set_top_timing_module chip set_current_module chip
#Set up timing constraints on the design source TimingConstraints.tcl
#Annotate Capacitance Information source WireLoadAnnotation.tcl
#Annotate Resistance Information
source WireResistanceAnnotation.tcl
#Annotate SDF information - Worst Case Timing read_sdf chip_wc.SDF
#Annotate SDF information - Best Case Timing read_sdf -min -store_as_min chip_bc.SDF
The list below provides file descriptions for the above example:
■TimingConstraints.tcl
Contains timing information to set clocks, data arrival and required times, and timing exceptions, such as false and multicycle paths on the design. The TimingConstraints.tcl file is also useful for annotating wire-load models for the design.
■WireLoadAnnotation.tcl
Contains wire capacitance settings for every interconnect in the design. The following syntax is used for annotating wire capacitance:
set_wire_capacitance capacitance_value path_to_net
■WireResistanceAnnotation.tcl
Contains wire resistance settings for every interconnect in the design. The following syntax is used for annotating wire resistance:
set_wire_resistance resistance_value path_to_net
■set_operating_conditions WORST_CASE
Loads the worst case timing library.
■read_sdf -max -store_as_max chip_wc.SDF
Stores the worst case timing information.
■read_sdf -min -store_as_min chip_bc.SDF
Stores the best case timing information.
September 2000 |
187 |
Product Version 4.0 |