ECE 551 Digital System Design Synthesis Lecture Set

  • Slides: 28
Download presentation
ECE 551: Digital System Design & Synthesis Lecture Set 9 9. 1: Constraints and

ECE 551: Digital System Design & Synthesis Lecture Set 9 9. 1: Constraints and Timing 9. 2: Optimization (In separate file) 03/30/03 1

ECE 551 - Digital System Design & Synthesis Lecture 9. 1 - Constraints and

ECE 551 - Digital System Design & Synthesis Lecture 9. 1 - Constraints and Timing Overview q Constraint Concepts q Constraint Classification • • Design Rule Constraints Optimization Constraints Defining timing paths and path delays Setting Constraints 03/31/03 2

Overview (continued) q. Signal Interface Constraints • Drive characteristics for input ports • Load

Overview (continued) q. Signal Interface Constraints • Drive characteristics for input ports • Load characteristics on output ports • Input delays and output delays 03/31/03 3

Constraint Concepts q Constraints are used to: • Define limitations required for the target

Constraint Concepts q Constraints are used to: • Define limitations required for the target technology to function properly • Specify the environment in which the design must function in terms of input drive, output loading, temperature, power supply voltage, etc. • Specify the design goals (other than functionality) in terms of bounds on input loading, output drive, area, performance, and power consumption. 03/31/03 4

References q. Design Compiler User Guide (DCUG) q. Design Compiler Reference Manual: Constraints and

References q. Design Compiler User Guide (DCUG) q. Design Compiler Reference Manual: Constraints and Timing (DCRM) q. Design Compiler Reference Manual: Optimization and Timing Analysis (DCRMO) 03/31/03 5

Classification of Constraints q. Design rule constraints • Implicit constraints defined by the technology

Classification of Constraints q. Design rule constraints • Implicit constraints defined by the technology library • Required for the design to function correctly • Apply to any design using the library q. Optimization constraints • Explicit constraints defined by the user • Represent design goals 03/31/03 6

Design Constraints q Figure 1 -1 RMCT (See Next Slide) q Constraints: • •

Design Constraints q Figure 1 -1 RMCT (See Next Slide) q Constraints: • • Maximum Transition Time Maximum Fanout Maximum and minimum capacitance Cell degradation q Cannot remove default values from tech lib q Can make more restrictive than tech lib values 03/31/03 7

03/31/03 8

03/31/03 8

Maximum Transition Time q. Maximum transition time for a net is the longest time

Maximum Transition Time q. Maximum transition time for a net is the longest time required for its driving pin to change logical values. • Implies that slow transitions are to be avoided. • What’s wrong with slow transitions? q. Can be made more restrictive using set_max_transition 03/31/03 9

Maximum Fanout q Places fanout restrictions on driving pins q Each driven input or

Maximum Fanout q Places fanout restrictions on driving pins q Each driven input or driven output port has a fanout_load value q Each driving output has a max_fanout value q Sum of driven fanout_loads must be no more than max_fanout of driver q Fanout_load is dimensionless, typically a value normalized to some unit capacitance q Can be made more restrictive by using set_max_fanout and set_fanout_load 03/31/03 10

Maximum and Minimum Capacitance q. Permits limiting capacitance directly rather than implicitly using max_fanout

Maximum and Minimum Capacitance q. Permits limiting capacitance directly rather than implicitly using max_fanout and max_transition q. Can make more restrictive by using set_max_capacitance q. Similar for minimum capacitance which is more of a modeling constraint and has lower priority in terms of being met. 03/31/03 11

Cell Degradation q Delays are often determined with an “ideal” input transition time on

Cell Degradation q Delays are often determined with an “ideal” input transition time on a cell q As the input transition time increases, delay increases for a given capacitive load increase q Cell degradation tables that list maximum capacitance that can be driven by a cell as a function of transition times at the inputs of a cell. q compile_fix_cell_degradation to fix table and set_cell_degradation to specify degradation. 03/31/03 12

Precedence for Design Rule Constraints q Default higher priority than optimization constraints q Descending

Precedence for Design Rule Constraints q Default higher priority than optimization constraints q Descending order of priority • • • Minimum capacitance* Maximum transition Maximum fanout Maximum capacitance Cell degradation q Try not to apply multiple constraints from list * Contradicts another statement in DCRM! 03/31/03 13

Transition Time Calculation q CMOS delay model: • Transition Time = Drive R X

Transition Time Calculation q CMOS delay model: • Transition Time = Drive R X Load C q Non-linear delay model: • Transition Time from table lookup and interpolation q Set_driving_cell and set_drive give different behavior • If R-C model, same • If Nonlinear model, § set_driving_cell calculates transition time dynamically § set_drive picks a value from midrange in table 03/31/03 14

Design Rule Constraints Summary set_max_fanout Input ports or designs set_fanout_load Output ports set_load Ports

Design Rule Constraints Summary set_max_fanout Input ports or designs set_fanout_load Output ports set_load Ports or nets set_maximum_transition Ports or designs set_cell_degradation Input ports set_min_capacitance Input ports 03/31/03 15

Optimization Constraints q. Timing constraints (performance & speed) • • Timing paths Constraint violations

Optimization Constraints q. Timing constraints (performance & speed) • • Timing paths Constraint violations Input and output delays (synchronous paths) minimum and maximum delays (asynchronous paths) q. Maximum area (# of gates) q. Minimum porosity (routability) 03/31/03 16

Timing Paths q. Timing path structure: FF IN Primary input to register Register to

Timing Paths q. Timing path structure: FF IN Primary input to register Register to register 03/31/03 Primary input to primary output Register to to primary output OUT CLK 17

Constraint Violations q. Synchronous clock period Maximum FF, combinational and wiring delay slack setup

Constraint Violations q. Synchronous clock period Maximum FF, combinational and wiring delay slack setup q. Slack - the extra time available for signals to propagate from the clock to the input of a flip-flop (FF) qslack = clock period - path delay - setup 03/31/03 18

Constraint Violations (continued) CORRECTED q. Synchronous hold clock period slack Minimum FF, combinational and

Constraint Violations (continued) CORRECTED q. Synchronous hold clock period slack Minimum FF, combinational and wiring delay q“Hold” Slack - the extra delay present for signals to propagate from the clock to the input of a flip-flop (FF) qslack = path delay - clock period - hold 03/31/03 19

Constraint Violations (continued) q. Synchronous Timing Violations • Setup Time § Uses maximum path

Constraint Violations (continued) q. Synchronous Timing Violations • Setup Time § Uses maximum path delay (worst case model) § Violation if slack < 0 • Hold Time § Uses minimum path delay (best case model) § Violation if slack < 0 03/31/03 20

Constraint Violations q. Asynchronous maximum delay combinational and wiring delay slack q. Constraint Violation

Constraint Violations q. Asynchronous maximum delay combinational and wiring delay slack q. Constraint Violation if • slack < 0 03/31/03 21

Constraint Violations q. Asynchronous combinational and wiring delay minimum delay slack q. Constraint Violation

Constraint Violations q. Asynchronous combinational and wiring delay minimum delay slack q. Constraint Violation if • slack < 0 03/31/03 22

Clock, Input Delay and Output Delay Primary input to primary output_delay input_delay IN FF

Clock, Input Delay and Output Delay Primary input to primary output_delay input_delay IN FF Primary input to register OUT CLK CLK 03/31/03 23 The two clock signals are the same signal drawn to different scales.

Clocks, Input Delay and Output Delay (continued) q Examples: • create_clock -period 3. 3

Clocks, Input Delay and Output Delay (continued) q Examples: • create_clock -period 3. 3 CLK § Establishes a clock CLK with period 3. 3 ns • create_clock -period 3. 3 -waveform (10, 25) -name SYS_CLK § Establishes virtual clock for system without a clock • set_input_delay 0. 3 -clock CLK IN § Value on IN is available 0. 3 ns after CLK • set_output_delay 1. 0 -clock CLK OUT § Value on OUT must be available 1. 0 ns before CLK 03/31/03 24

Maximum Delay and Minimum Delay max_delay min_delay Primary input to primary output IN FF

Maximum Delay and Minimum Delay max_delay min_delay Primary input to primary output IN FF Primary input to register OUT CLK max_delay min_delay 03/31/03 25

Maximum Delay and Minimum Delay (continued) q. Examples: • set_maximum_delay 2. 5 -from IN

Maximum Delay and Minimum Delay (continued) q. Examples: • set_maximum_delay 2. 5 -from IN -to OUT § Specifies that the delay from IN to OUT is to be no more than 2. 5 ns • set_minimum_delay 1. 0 -from IN -to OUT § Specifies that the delay from IN to OUT is to be no less than 1. 0 ns • set_maximum_delay 1. 5 -from IN -to FF 1/D 03/31/03 26

Maximum Area qset_max_area • Specifies the maximum allowable area of the design in area

Maximum Area qset_max_area • Specifies the maximum allowable area of the design in area units of the technology 03/31/03 27

Minimum Porosity q. Effective only for two-layer metal technology (therefore not used in our

Minimum Porosity q. Effective only for two-layer metal technology (therefore not used in our work) qset_min_porosity [design list] • Specifies the part of the total cell area to be used for over the cell routing • porosity - a percentage ratio of routing track area over cells to cell area; from 0 to 90. 03/31/03 28