Contents
Preface
About This Manual
Additional References
How to Use the Documentation Set
Reporting Problems or Errors in Manuals
Customer Support
Cadence Online Support
Other Support Offerings
Messages
Man Pages
Command-Line Help
Getting the Syntax for a Command
Getting the Syntax for an Attribute
Searching for Attributes
Searching For Commands When You Are Unsure of the Name
Documentation Conventions
Text Command Syntax
Introduction
Overview
The CDN_SYNTH_ROOT Variable
Using the .synth_init Initialization File
Working in the RTL Compiler Shell
Navigation
Objects and Attributes
Output Redirection
Scripting
Using SDC Interactively
Getting Help
Help Command
The -help Option
RTL Compiler Messages: Errors, Warnings, and Information
RTL Compiler Design Information Hierarchy
Overview
Setting the Current Design
Specifying Hierarchy Names
Describing the Design Information Hierarchy
Working in the Top-Level (root) Directory
Working in the Designs Hierarchy
Working in the Library Directory
Working in the hdl_libraries Directory
Working in the object_types Directory
Manipulating Objects in the Design Information Hierarchy
Ungrouping Modules During and After Elaboration
Finding Information in the Design Information Hierarchy
Using the cd Command to Navigate the Design Information Hierarchy
Using the ls Command to List Directory Objects and Attributes
Using the find Command to Search for Information
Using the get_attribute Command to Search for Information
Navigating a Sample Design
Tips and Shortcuts
Accessing UNIX Environment Variables from RTL Compiler
Working with Tcl in RTL Compiler
Using Command Line Keyboard Shortcuts
Using Command Abbreviations
Using Command Completion with the Tab Key
Using Wildcards
Using Smart Searches
Saving the Design Information Hierarchy
Using the Libraries
Overview
Tasks
Specifying Explicit Search Paths
Specifying Implicit Search Paths
Setting the Target Technology Library
Preventing the Use of Specific Library Cells
Forcing the Use of Specific Library Cells
Working with Liberty Format Technology Libraries
Importing LEF Files
Specifying Capacitance Information
Loading Files
Overview
Tasks
Updating Scripts through Patching
Running Scripts
Reading HDL Files
Loading HDL Files
Specifying the HDL Language Mode
Specifying HDL Search Paths
Reading Verilog Files
Defining Verilog Macros
Reading VHDL Files
Specifying the VHDL Environment
Verifying VHDL Code Compliance with the LRM
Specifying Illegal Characters in VHDL
Showing the VHDL Logical Libraries
Using Arithmetic Packages From Other Vendors
Modifying the Case of VHDL Names
Reading Designs with Mixed Verilog and VHDL Files
Reading in Verilog Modules and VHDL Entities With Same Names
Using Case Sensitivity in Verilog/VHDL Mixed-Language Designs
Reading and Elaborating a Structural Netlist Design
Reading a Partially Structural Design
Keeping Track of Loaded HDL Files
Importing the Floorplan
Elaborating the Design
Overview
Tasks
Performing Elaboration
Specifying Top-Level Parameters or Generic Values
Specifying HDL Library Search Paths
Elaborating a Specified Module or Entity
Naming Individual Bits of Array and Record Ports and Registers
Naming Parameterized Modules
Keeping Track of the RTL Source Code
Grouping an Extra Level of Design Hierarchy
Applying Constraints
Overview
Tasks
Importing and Exporting SDC
Validating Timing Constraints
Applying Timing Constraints
Importing Physical Information
Applying Design Rule Constraints
Creating Ideal Objects
Defining Optimization Settings
Overview
Preserving Instances and Modules
Grouping and Ungrouping Objects
Grouping
Ungrouping
Partitioning
Setting Boundary Optimization
Mapping to Complex Sequential Cells
Deleting Unused Sequential Instances
Optimizing Total Negative Slack
Making DRC the Highest Priority
Creating Hard Regions
Deleting Buffers and Inverters Driven by Hard Regions
Preventing Boundary Optimization Through Hard Regions
Removing Assign Statements
Super-threading
Overview
Licensing Requirements
Tasks
Setting Super-threading Optimization
Performing Synthesis
Overview
RTL Optimization
Global Focus Mapping
Remapping
Incremental Optimization (IOPT)
Tasks
Synthesizing your Design
Synthesizing Submodules
Synthesizing Unresolved References
Re-synthesizing with a New Library (Technology Translation)
Setting Effort Levels
Writing a SDF File
Quality of Silicon Prediction
Generic Gates in a Generic Netlist
Generic Flop
Generic Latch
Generic Mux
Generic Dont-Care
Writing the Generic Netlist
Reading the Netlist
Retiming the Design
Overview
Retiming for Timing
Retiming for Area
Tasks
Retiming Using the Automatic Top-Down Retiming Flow
Manual Retiming (Block Level Retiming)
Incorporating Design for Test (DFT) and Low Power Features
Localizing Retiming Optimizations to Particular Subdesigns
Controlling Retiming Optimization
Retiming Registers with Asynchronous Set and Reset Signals
Identifying Retimed Logic
Retiming Multiple Clock Designs
Performing Functional Verification
Overview
Tasks
Writing Out dofiles for Formal Verification
Generating Reports
Overview
Tasks
Generating Timing Reports
Generating Area Reports
Summarizing Messages
Redirecting Reports
Customizing the report Command
Analyzing the Log File
Interfacing to Place and Route
Overview
Preparing the Netlist for Place and Route or Third-Party Tools
Changing Names
Naming Flops
Removing Assign Statements
Handling Bit Blasted Port Styles
Handling Bit-Blasted Constants
Generating Design and Session Information
Saving and Restoring a Session in RTL Compiler
Writing Out the Design Netlist
Writing SDC Constraints
Writing an SDF File
Modifying the Netlist
Overview
Connecting Pins, Ports, and Subports
Disconnecting Pins, Ports, and Subports
Creating New Instances
Overriding Preserved Modules
Creating Unique Parameter Names
Naming Generated Components
Changing the Instance Library Cell
IP Protection
Overview
NC-Protect Coupling
Protection Levels
Tasks
Encrypting Designs within RTL Compiler
Encrypting Designs outside RTL Compiler
Loading Encrypted Designs
Examining Protection Settings
Writing Encrypted Designs
Design Hierarchy and Uniquification
Simple Synthesis Template
Encrypting Libraries
Index