- •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
Setting Constraints
Figure 6-4 Associating a Negative Clock Signal to an Ideal Clock
0 |
30 |
90 100 |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c1, c2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
negative clock |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 1
Data Arrival Time
Signal changes arrive at input ports of a design at certain times. In general, the arrival of a signal change at an input port of a block is controlled by the output port of another block which is eventually driven by a register or primary input to the design. Therefore, the arrival time of a signal for an input port (also called a data port) is associated with the clock edge that causes the signal change, as shown schematically in Figure 6-5.
Figure 6-5 Associating Input Delay at Input Port with Ideal Clock
Logic
Reg |
D |
|
|
|
Q |
clock
ck
Previous Block
Current Module
The command set_input_delay is used to specify the signal input delay at input port(s); the sample syntax is as follows:
set_input_delay [-lead|-trail] [-rise|-fall] [late|-early] [-clock clock_name] time pinlist
where:
■clock is the name of the ideal clock associated with the register causing change.
■time is the input delay, an integer or real constant.
September 2000 |
141 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Setting Constraints
■pinlist is the list of pins for which the arrival time is specified.
The lead/trail options refer to the pertinent edge of the ideal clock with which the signal arrival time is specified. If omitted, it defaults to lead.
The rise/fall options indicate whether the arrival time refers to a rising edge at the input port or the falling edge. If omitted, the data arrival time applies to both the edges at the input port.
For example,
set_input_delay -clock master -lead -fall 6.4 D
Here, the falling edge transition of the data signal arrives at input port D at 6.4 ns after the leading edge of the clock master. It is associated with the leading transition of the ideal clock master. Since the rising edge transition is not specified, it is not considered in the timing analysis.
The clock specification is not necessary when the signal arriving at the output port is generated through purely combinational logic.
The early/late options refer to the changing of the signal at the input port. The early option indicates the earliest time the signal can arrive (change) at the input port. This implies that the signal at the input port will remain stable with its value in the previous clock cycle at least as long as the specified time. The late option indicates the latest time the signal can arrive (change) at the input port. This implies that the signal at the input port will not have a change after the specified time. If this option is omitted, the default is both early and late time.
The signal at the input port may change between the early and late times. When an input port is driven from multiple paths, it is common to have a fast path and a slow path that cause the change in the signal at the input port. The early and late options allow you to specify the earliest time at which the fast path can change the signal and the latest time that the slow path can change the signal. Refer to Figure 6-6.
September 2000 |
142 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Setting Constraints
Figure 6-6 Early and Late Arrivals of a Signal
|
Data changes here |
data stable |
data stable |
early time |
late time |
Current |
|
|
|
previous block |
path1 |
Module |
R1 |
|
|
|
|
|
|
Dout |
D |
R2 |
|
|
Logic |
|
|
|
path2 |
|
The example in Figure 6-6 shows two paths for input port D. The signal at D can change (rising or falling) as early as 5.3 ns due to change on path labeled path1 and a falling edge as late as 6.4 ns due to change on path labeled path2. In this example, both paths are associated with the leading edge of the ideal clock master. The resulting commands for these paths are as follows:
set_input_delay -clock master -lead -early 5.3 D set_input_delay -clock master -lead -late -fall 6.4 D
The arrival time at all input ports can be specified using the find command instead of listing individual ports. As shown below, the find command evaluates to a list of all the input ports of a given block.
set_input_delay -clock master 1.6 [find -port -input *]
If an input port is already identified as a clock port using the set_clock_root command, then the set_input_delay command for that port is ignored. Conversely, if set_input_delay command was applied to set arrival time on an input port and later the same port was used to set clock signal delay using set_clock_root command, the clock delay is ignored on the input port.
September 2000 |
143 |
Product Version 4.0 |
Ambit BuildGates Synthesis User Guide
Setting Constraints
External Delay
An alternate way to specify the data required time at the output port is to consider the timing requirement of the configuration of the downstream block to which the output port is connected. If you know the critical path from the output port of your block to the register of the downstream block, then you can describe the configuration and the required time using set_external_delay command. See Figure 6-7.
Figure 6-7 Specifying External Delay at an Output Port
|
pout |
Logic |
|
External |
|
|
|
|
|
|
Register |
|
extdly |
|
|
|
clock |
Current |
|
Downstream Block |
Module |
|
|
|
|
The sample syntax is as follows:
set_external_delay [-rise|-fall] [-late|-early] [-lead|-trail] [sig | ref][-clock clock] [-arrival float] external_delay portlist
where:
■clock is the name of the ideal clock controlling the external register.
■float is the actual arrival time of the edge of the clock being used to determine external delay.
■external_delay is the external delay, including setup. (integer or real constant).
■portlist is the list of ports.
The lead or trail options refer to the pertinent edge of the ideal clock controlling the external register. If omitted, it defaults to lead.
The rise or fall options indicate whether the external delay refers to a rising edge at the output port or the falling edge. If omitted, the external delay applies to both edges at the output port.
The required time at the output port is computed as if the output port is driving a register external to the design. The data signal must arrive at the input of the external register
September 2000 |
144 |
Product Version 4.0 |
