Common Power Format Tutorial December 6, 2007 Qi Wang Cadence Design Systems, Inc. LPC Architect, LPC, Si2 Innovation Through Collaboration Outline ● Where Was It Started? ● CPF Basics ● Digest CPF Using A Simple Example ● CPF Based Low Power Design Flow ● Where Is CPF Headed? Innovation Through Collaboration – Low Power Coalition –2– Low Power Design Without A Power Format •Domains •Level shifters •Isolation •SRPG •Domains Command file •Domains •Level shifters •Isolation •SRPG Constraint Generation Synthesis Design for Test SVP Iterate RTL Coding Constraints Command file Simulation Acceleration & Emulation Netlist Chip Integration Prototyping Sign-off Innovation Through Collaboration – Low Power Coalition GDSII ATPG Routing Command file Analysis Physical Synthesis DFT •Domains •Level shifters •Isolation •SRPG Equivalence LVS/DRC/Ext checking Which one of these is “golden”? Command file Formal Analysis Physical Implementation Constraint Validation •Domains •Level shifters •Isolation •SRPG How do you verify power functionality without changing RTL? Verification Iterate Constraint Validation Command file Design Creation Equivalence Checking •Domains •Level shifters •Isolation •SRPG ? Verification Coverage Command file MSV SRPG PSO DVFS Specification Function, timing, power Testbench Automation Command file •Domains •Modes for ATPG Does the power shutoff really going to work? –3– What Was the Problem? Logic is “Connected” Power is Not “Connected” Formal Analysis Simulation Hardware Formal Analysis Simulation Hardware Parser Parser Parser Parser Parser Parser Synthesis Management Synthesis Parser Parser Parser Parser Equivalence Checking (Verilog) Parser P+R IP SVP Power Power Information Information (CPF) (no consistency) Parser Test Libraries Can be Automated Innovation Through Collaboration – Low Power Coalition Equivalence Checking Parser Parser Parser Parser Logic Information Parser SVP Parser Management P+R IP Test Libraries Very Difficult to Automate –4– Common Power Format (CPF) Single file format to automate low power holistically Power is “Connected” Formal Analysis Simulation Hardware Parser Parser Parser Management Synthesis Parser Parser Parser SVP Power Information (CPF) Parser Parser Parser Equivalence Checking P+R IP Test Libraries Is Automated Innovation Through Collaboration – Low Power Coalition –5– Rallying Industry Support System Semi A new method of capturing design and constraint information IP De n io t a c i f ri e V n sig CPF Libs EDA Facilitates holistic methodology across design, verification, and implementation Implementation Mfg Equip Innovation Through Collaboration – Low Power Coalition Enables automation and what-if exploration –6– Common Power Format Progress 2005 Q22006 CPF V 0.8 CPF V 0.5 CPF V 0.0 300 Man Years Q32006 > 400 Inputs Innovation Through Collaboration – Low Power Coalition Q42006 CPF V 1.0 ~ 100 Inputs –7– Si2 CPF Standardization ● Dec 4, 2006 Cadence contributed CPF v1.0 to Si2 ● January 12, 2007 LPC members unanimously voted and approved CPF v1.0 as Si2 Specification for low power standard ● January 17, 2007 Cadence contributed CPF v1.0 parser source code to Si2 ● March 5, 2007 CPF 1.0 available to everyone at no cost as a Si2 standard Innovation Through Collaboration – Low Power Coalition –8– Outline ● Where Was It Started? ● CPF Basics ● Digest CPF Using A Simple Example ● CPF Based Low Power Design Flow ● Where Is CPF Headed? Innovation Through Collaboration – Low Power Coalition –9– Common Power File ASCII file to capture ● Design intent and constraints Power domain ¾ Logical: instances as domain members ¾ Physical: power/ground nets and connectivity ¾ Analysis view: timing library sets for power domains Power Logic ¾ Level Shifter Logic ¾ Isolation Logic ¾ State-Retention logic ¾ Switch Logic & Control Signals Power mode ¾ Mode definitions ¾ Mode transition definitions ● Technology information Level Shifter Cells, Isolation Cells, State-Retention Cells, Switch Cells, Always On Cells Innovation Through Collaboration – Low Power Coalition – 10 – CPF Language ● CPF is TCL-based. ● CPF Language = TCL commands + CPF objects + Design objects ¾ Power domain ¾ Analysis view ¾ Delay corner ¾ Library set ¾ Operating condition ● Design objects: objects that already exist in the RTL/gate netlist ¾ Module, Instance, Net, Pin, Port ● Commands – 42 commands ¾ set_* commands [version, scope, and general commands] ¾ define_*_cell commands [library cell description] ¾ create_*_rule commands [design intent] ¾ update_*_rules commands [implementation directives] Innovation Through Collaboration – Low Power Coalition – 11 – Minimal Command Set For Different Design Stages create_power_domain create_nominal_condition create_power_mode create_state_retention_rule Specify power intents verification and simulation design exploration early power estimation create_isolation_rule create_level_shifter_rule define_library_set update_nominal_condition update_power_mode More implementation details synthesis formal verification DFT, ATPG, gate level power estimation create_ground_nets create_power_nets update_power_domain create_power_switch_rule create_analysis_view create_operating_corner Innovation Through Collaboration – Low Power Coalition Complete physical implementation details silicon virtual prototyping power planning physical synthesis structural verification sign-off power analysis – 12 – Outline ● Where Was It Started? ● CPF Basics ● Digest CPF Using A Simple Example ● CPF Based Low Power Design Flow ● Where Is CPF Headed? Innovation Through Collaboration – Low Power Coalition – 13 – Nano CPU ● 32 bit RISC processor 5 power domains with 4 independent switchable domains 2 supply voltages: simple DVFS Clock Control Address CPU Control Bus I/O controller Program Counter Address register State Sequencer Address Bus Power Control Unit Always ON power domain ALU Instruction register Data IN Data-in register Arithmetic Unit Register file Logical Unit Power Control Bus Data OUT Data-out register Innovation Through Collaboration – Low Power Coalition Switched power domains Data Bus – 14 – Set Up Power Domains create_power_domain -name PDcore -default create_power_domain -name PDau -instances alu_inst/aui \ -shutoff_condition pcu_inst/pau[2] create_power_domain -name PDlu -instances alu_inst/lui \ -shutoff_condition pcu_inst/plu[2] create_power_domain -name PDalu -instances alu_inst \ -shutoff_condition pcu_inst/palu[2] create_power_domain -name PDrf -instances rf_inst \ -shutoff_condition pcu_inst/prf[2] Innovation Through Collaboration – Low Power Coalition – 15 – Complete create_power_domain Command create_power_domain -name power_domain { -default [-instances instance_list] [-boundary_ports pin_list] | -instances instance_list [-boundary_ports pin_list] | -boundary_ports pin_list } [ -shutoff_condition expression ] [ -default_restore_edge expression ] [ -default_save_edge expression ] [ -power_up_states {high|low|random} ] ● Power domain definition ● Pure abstract model of a power domain at RTL ● Power domain inheritance and precedence ● Default power domain concept ● Wildcard characters are allowed for design objects Innovation Through Collaboration – Low Power Coalition – 16 – Specify Power Logic: Retention Strategy create_state_retention_rule –name sr_rule –domain PDrf \ -restore_edge { !pcu_inst/prf[1] } Single control for state retention ¾ ¾ pcr_inst/prf[1] going high starts the retention mode pcr_inst/prf[1] going low ends the retention mode with saved data restored to the flop output All registers and only registers in power domain PDrf are modeled as retention registers Innovation Through Collaboration – Low Power Coalition – 17 – Complete create_state_retention_rule Command create_state_retention_rule -name string { -domain power_domain | -instances instance_list } [-restore_edge expression [ -save_edge expression ]] ● For RTL verification tools, the command models a retention cell behavior at RTL The register need to have save signal come before its parent power domain is switched off The register will restore the saved value after the parent domain is switched on again when there restore signal comes ● For Implementation tools, the command specifies a list of registers to be mapped into retention cells. ● The option –instances takes a list of RTL register names There are other commands to specify the format of mapping RTL register names into gate level flops names so the same CPF file can be used by both RTL and post RTL tools ● Wildcard characters are allowed for design objects Innovation Through Collaboration – Low Power Coalition – 18 – Specify Power Logic: Isolation Strategy create_isolation_rule -name iso_rule1 -from PDau \ -isolation_condition {!pcu_inst/pau[0]} -isolation_output low create_isolation_rule -name iso_rule2 -from PDlu \ -isolation_condition {!pcu_inst/plu[0]} -isolation_output high create_isolation_rule -name iso_rule3 -from PDalu \ -isolation_condition {!pcu_inst/palu[0]} -isolation_output low create_isolation_rule -name iso_rule4 -from PDrf \ -isolation_condition {!pcu_inst/prf[0]} -isolation_output low Innovation Through Collaboration – Low Power Coalition – 19 – Complete create_isolation_rule Command create_isolation_rule -name string -isolation_condition expression {-pins pin_list | -from power_domain_list | -to power_domain_list}... [-isolation_target {from|to}] [-isolation_output {high|low|hold}] [-exclude pin_list] ● It specifies a list of signals require isolation when the driving or receiving power domains of these signals are switched off ● -pins/-from/-to/-exclude are filters for selecting the signals ● -isolation_condition specifies under what condition the isolation rule is activated For RTL verification tool, this is the condition when the behavior specified by –isolation_output should be imposed to the normal functional behavior For implementation tool, isolation condition should be synthesized to drive the enable pin of the special isolation cell ● In most cases, isolation is needed when the driver of a signal is switched off but the receivers of the signal are still on. In some cases, isolation may be required when the driver signal is on but the receivers of the signal are off. -isolation_target specifies which power domain is switched off when this rule is activated Innovation Through Collaboration – Low Power Coalition – 20 – Power Modes PDcore PDau PDlu PDalu PDrf PM1 1.2v 1.2v 1.2v 1.2v 1.2v PM2 0.8v off 1.2v 1.2v 1.2v PM3 0.8v off off off 1.2 PM4 0.8v 1.2v 1.2v 1.2v off Innovation Through Collaboration – Low Power Coalition – 21 – Specify Power Modes PDcore PDau PDlu PDalu PDrf PM1 1.2v 1.2v 1.2v 1.2v 1.2v PM2 0.8v off 1.2v 1.2v 1.2v PM3 0.8v off off off 1.2 PM4 0.8v 1.2v 1.2v 1.2v off create_nominal_condition -name high -voltage 1.20 create_nominal_condition -name low -voltage 0.8 create_power_mode -name PM1 –default \ -domain_conditions {PDcore@high PDau@high PDlu@high PDalu@high PDrf@high} create_power_mode -name PM2 \ -domain_conditions {PDcore@low PDlu@high PDalu@high PDrf@high} create_power_mode -name PM3 \ -domain_conditions {PDcore@low PDrf@high} create_power_mode -name PM4 \ -domain_conditions {PDcore@low PDau@high PDlu@high PDalu@high Innovation Through Collaboration – Low Power Coalition } – 22 – Complete create_power_mode Command create_nominal_condition –name string –voltage float create_power_mode -name string [-default] -domain_conditions domain_condition_list ● The create_power_mode commands specify a list of valid operating modes for a design ● Each mode include the operating conditions for each power domain off or on if on at what voltage Innovation Through Collaboration – Low Power Coalition – 23 – Specify Power Mode Transitions PM2 PDcore PDau PDlu PDalu PDrf PM1 1.2v 1.2v 1.2v 1.2v 1.2v PM2 0.8v off 1.2v 1.2v 1.2v PM3 0.8v off off off 1.2 PM4 0.8v 1.2v 1.2v 1.2v off PM1 PM3 PM4 create_mode_transition -name PM1toPM2 –from_mode PM1 –to_mode PM2 \ -start_condition { pcu_inst/ctrl[0] & pcu_inst/ctrl[1] } -clock_pin { pcu_inst/clk } –cycles 100 create_mode_transition -name PM2toPM3 –from_mode PM2 –to_mode PM3 \ -start_condition { pcu_inst/ctrl[0] & !pcu_inst/ctrl[1] } -clock_pin { pcu_inst/clk } –cycles 1000 create_mode_transition -name PM3toPM4 –from_mode PM2 –to_mode PM3 \ -start_condition { !pcu_inst/ctrl[0] & pcu_inst/ctrl[1] } -clock_pin { pcu_inst/clk } –cycles 1000 create_mode_transition -name PM4toPM1 –from_mode PM2 –to_mode PM3 \ -start_condition { !pcu_inst/ctrl[0] & !pcu_inst/ctrl[1] } -clock_pin { pcu_inst/clk } –cycles 200 Innovation Through Collaboration – Low Power Coalition – 24 – Complete create_mode_transition Command create_mode_transition -name string -from_mode power_mode -to_mode power_mode -start_condition expression [-end_condition expression] [-clock_pin clock_pin [-cycles number | -latency float]] ● Specify a single mode transition ● Each mode transition involves a series of power domain changes ● The start condition and end condition can be used by verification tools to trace the mode transition and record coverage on modes and mode transitions ● The transition time can be used to simulate the latency of each mode transition Innovation Through Collaboration – Low Power Coalition – 25 – Put Everything Together For Design Specification set_design nano_cpu create_power_domain -name PDcore -default create_power_domain -name PDau -instances alu_inst/aui -shutoff_condition pcu_inst/pau[2] create_power_domain -name PDlu -instances alu_inst/lui -shutoff_condition pcu_inst/plu[2] create_power_domain -name PDalu -instances alu_inst -shutoff_condition pcu_inst/palu[2] create_power_domain -name PDrf -instances rf_inst -shutoff_condition pcu_inst/prf[2] create_state_retention_rule –name sr_rule –domain PDrf -restore_edge { ! pcu_inst/prf[1] } create_isolation_rule -name iso_rule1 -from PDau -isolation_condition {!pcu_inst/pau[0]} -isolation_output low create_isolation_rule -name iso_rule2 -from PDlu -isolation_condition {!pcu_inst/plu[0]} -isolation_output low create_isolation_rule -name iso_rule3 -from PDalu -isolation_condition {!pcu_inst/palu[0]} -isolation_output low create_isolation_rule -name iso_rule4 -from PDrf -isolation_condition {!pcu_inst/prf[0]} -isolation_output low create_nominal_condition -name high -voltage 1.20 create_nominal_condition -name low -voltage 0.8 create_power_mode -name PM1 \ –default -domain_conditions {PDcore@high PDau@high PDlu@high PDalu@high PDrf@high} create_power_mode -name PM2 -domain_conditions {PDcore@low PDlu@high PDalu@high PDrf@high} create_power_mode -name PM3 -domain_conditions {PDcore@low PDrf@high} create_power_mode -name PM4 -domain_conditions {PDcore@low PDau@high PDlu@high PDalu@high } end_design Innovation Through Collaboration – Low Power Coalition – 26 – Low Power Design Verification Using CPF ● No need to specify power or ground nets at RTL stage ● No need to specify implementation related constraints at this stage such as library, timing constraints etc ● Minimal set of CPF commands for front-end designers to use Simulation tools ¾ to simulation power domain on and off ¾ to simulate power mode transitions for DVFS Coverage tools ¾ to check power mode coverage ¾ to check power mode transition coverage Assertion tools ¾ to generate power domain and mode aware assertions Verification tools ¾ to check for the correctness and completeness of CPF Innovation Through Collaboration – Low Power Coalition – 27 – What About Implementation? ● For synthesis Need to specify the libraries Need to link the libraries to each power domain in each power mode Need to associate timing constraints for each power mode to perform DVFS synthesis ● For physical implementation and verification Need to specify power and ground net work Need to specify how power switch network should be implemented ● Additional CPF commands are needed update_nominal_condition update_power_domain update_power_mode Innovation Through Collaboration – Low Power Coalition – 28 – Specify Technology Libraries And Special Low Power Cells #Libraries for implementation, file name tech.cpf set libdir ../../../libs set 08v_list "$libdir/130e_sp_tt_0p8v_25c.lib … " set 120v_list "$libdir/13sp_tt_0p8v_1p2v_25c.lib …" define_library_set -name 08v -libraries $08v_list define_library_set -name 120v -libraries $120v_list define_level_shifter_cell -cells LVLHLEHX* -input_voltage_range 1.2 \ -output_voltage_range 0.8 -direction down –valid_location to define_level_shifter_cell -cells LVLHLX* -input_voltage_range 1.2 \ -output_voltage_range 0.8 -direction down –valid_location to define_level_shifter_cell -cells LVLLHEHX* -input_voltage_range 0.8 \ -output_voltage_range 1.2 -direction up –valid_location to define_level_shifter_cell -cells LVLLHX* -input_voltage_range 0.8 \ -output_voltage_range 1.2 -direction up –valid_location to define_isolation_cell -cells ISOLN* -enable EN -valid_location from define_isolation_cell -cells "LVLHLEHX* LVLLHEHX* LVLHLELX*" -enable EN define_always_on_cell -cells "BUFGX2M BUFGX8M INVGX2M INVGX8M" define_state_retention_cell -cells *DRFF* -restore_function RETN define_power_switch_cell -cells "HEAD8DM HEAD16DM HEAD32DM HEAD64DM“ –ground VSS \ -power_switchable VDD -power VDDG –stage_1_enable SLEEP –stage_1_out SLEEPOUT –type header Innovation Through Collaboration – Low Power Coalition – 29 – Link Technology Libraries And Timing Constraints PDcore PDau PDlu PDalu PDrf PM1 1.2v 1.2v 1.2v 1.2v 1.2v PM2 0.8v off 1.2v 1.2v 1.2v PM3 0.8v off off off 1.2 PM4 0.8v 1.2v 1.2v 1.2v off #file name syn.cpf update_nominal_condition -name high -library_set 120v update_nominal_condition -name low -library_set 08v update_power_mode –name PM1 –sdc_files ../../../sdc/PM1.sdc update_power_mode –name PM4 –sdc_files ../../../sdc/PM4.sdc ● The synthesis libraries are automatically linked to each power domain for each power domain ● Associate timing constraints to each power mode for DVFS synthesis Innovation Through Collaboration – Low Power Coalition – 30 – Complete Command Syntax update_nominal_condition -name nominal_condition -library_set library_set update_power_mode -name mode { -activity_file file -activity_file_weight weight | -sdc_files sdc_file_list | -peak_ir_drop_limit domain_voltage_list | -average_ir_drop_limit domain_voltage_list | -leakage_power_limit float | -dynamic_power_limit float}... Innovation Through Collaboration – Low Power Coalition – 31 – Put Everything Together For Logic Implementation include tech.cpf set_design nano_cpu create_power_domain -name PDcore -default create_power_domain -name PDau -instances alu_inst/aui -shutoff_condition pcu_inst/pau[2] create_power_domain -name PDlu -instances alu_inst/lui -shutoff_condition pcu_inst/plu[2] create_power_domain -name PDalu -instances alu_inst -shutoff_condition pcu_inst/palu[2] create_power_domain -name PDrf -instances rf_inst -shutoff_condition pcu_inst/prf[2] create_state_retention_rule –name sr_rule –domain PDrf -restore_edge { ! pcu_inst/prf[1] } create_isolation_rule -name iso_rule1 -from PDau -isolation_condition {!pcu_inst/pau[0]} -isolation_output low create_isolation_rule -name iso_rule2 -from PDlu -isolation_condition {!pcu_inst/plu[0]} -isolation_output low create_isolation_rule -name iso_rule3 -from PDalu -isolation_condition {!pcu_inst/palu[0]} -isolation_output low create_isolation_rule -name iso_rule4 -from PDrf -isolation_condition {!pcu_inst/prf[0]} -isolation_output low create_nominal_condition -name high -voltage 1.20 create_nominal_condition -name low -voltage 0.8 create_power_mode -name PM1 \ –default -domain_conditions {PDcore@high PDau@high PDlu@high PDalu@high PDrf@high} create_power_mode -name PM2 -domain_conditions {PDcore@low PDlu@high PDalu@high PDrf@high} create_power_mode -name PM3 -domain_conditions {PDcore@low PDrf@high} create_power_mode -name PM4 -domain_conditions {PDcore@low PDau@high PDlu@high PDalu@high } source syn.cpf end_design Innovation Through Collaboration – Low Power Coalition – 32 – Low Power Logic Implementation and Verification Using CPF ● Still, no need to specify power or ground nets at this design stage ● Minimal set of CPF commands for designers to use Logic synthesis tools ¾ to synthesize isolation, level shifter and state retention logic ¾ to perform power domain aware logic synthesis ¾ to perform power mode aware (DVFS) synthesis Test synthesis tools ¾ to perform power domain and power mode aware DFT synthesis ¾ to generate power domain aware test control logic Formal Verification tools ¾ to check the correctness of low power structural implemented by synthesis tools ¾ to perform low power equivalency checking (RTL+CPF vs Netlist) Simulation tools ¾ to perform power aware gate level simulation ¾ to generate additional assertions for gate level simulation Analysis tools ¾ to perform power domain aware and power mode aware power analysis Innovation Through Collaboration – Low Power Coalition – 33 – Specify Power/Ground Nets for Physical Implementation #file name phy_pg.cpf #power/ground net specification create_power_nets –nets VDD1 –voltage 1.2 create_power_nets –nets VDD2 –voltage 0.8 create_power_nets –nets { VDD_core VDD1_au_sw VDD1_lu_sw VDD1_alu_sw VDD1_rf_sw} –internal create_ground_nets –nets VSS update_power_domain –name PDcore –internal_power_net VDD_core –internal_ground_net VSS update_power_domain –name PDau –internal_power_net VDD1_au_sw –internal_ground_net VSS update_power_domain –name PDlu –internal_power_net VDD1_lu_sw –internal_ground_net VSS update_power_domain –name PDalu –internal_power_net VDD1_alu_sw –internal_ground_net VSS update_power_domain –name PDrf –internal_power_net VDD1_rf_sw –internal_ground_net VSS #power switch specification for power shutoff create_power_switch_rule –name PDau_sw –domain PDau –external_power_net VDD1 create_power_switch_rule –name PDlu_sw –domain PDlu –external_power_net VDD1 create_power_switch_rule –name PDalu_sw –domain PDalu –external_power_net VDD1 create_power_switch_rule –name PDrf_sw –domain PDrf –external_power_net VDD1 #power switch specification for DVFS control create_power_switch_rule –name PDcore_1 –domain PDcore –external_power_net VDD1 update_power_switch_rule –name PDcore_1 –enable_condition_1 {pcu_inst/pcore[2]} create_power_switch_rule –name PDcore_2 –domain PDcore –external_power_net VDD2 update_power_switch_rule –name PDcore_2 –enable_condition_1 {!pcu_inst/pcore[2]} Innovation Through Collaboration – Low Power Coalition – 34 – Complete Command Syntax for Power/Ground Nets Specification create_power_nets -nets net_list [-voltage string] [-external_shutoff_condition expression | -internal] [-user_attributes string_list] [-peak_ir_drop_limit float] [-average_ir_drop_limit float] create_ground_nets -nets net_list [-voltage string] [-internal] [-user_attributes string_list] [-peak_ir_drop_limit float] [-average_ir_drop_limit float] update_power_domain -name domain { -internal_power_net net | -internal_ground_net net | -min_power_up_time float | -max_power_up_time float | -pmos_bias_net net | -nmos_bias_net net | -user_attributes string_list | -rail_mapping rail_mapping_list -library_set library_set} ... Innovation Through Collaboration – Low Power Coalition – 35 – Complete Command Syntax for Power Switch Specification create_power_switch_rule -name string -domain power_domain {-external_power_net net | -external_ground_net net} update_power_switch_rule -name string { -enable_condition_1 expression [-enable_condition_2 expression] | -acknowledge_receiver pin | -cells cell_list -library_set library_set | -prefix string | -peak_ir_drop_limit float | -average_ir_drop_limit float }... Innovation Through Collaboration – Low Power Coalition – 36 – Specify MMMC Constraints for Physical Timing Closure & Analysis PDcore PDau PDlu PDalu PDrf PM1 1.2v 1.2v 1.2v 1.2v 1.2v PM2 0.8v off 1.2v 1.2v 1.2v PM3 0.8v off off off 1.2 PM4 0.8v 1.2v 1.2v 1.2v off Need to analysis 2 corners for this mode, fast and slow Need to analysis 2 corners for this mode, fast and slow #file name phy_mmmc.cpf to setup Multi-Mode-Multi-Corner (MMMC) timing closure constraints create_operating_corner –name 120v_fast –voltage 1.3 –library_set 120v create_operating_corner –name 120v_slow –voltage –library_set 120v create_operating_corner –name 08v_fast –voltage 0.9 –library_set 08v create_operating_corner –name 08v_slow –voltage 0.7 –library_set 07v create_analysis_view –name view1 –mode PM1 –domain_corners \ { PDcore@120v_fast PDau@120v_fast PDlu@120v_fast PDalu@120v_fast PDrf@120v_fast} create_analysis_view –name view2 –mode PM1 –domain_corners \ { PDcore@120v_slow PDau@120v_slow PDlu@120v_slow PDalu@120v_slow PDrf@120v_slow} create_analysis_view –name view3 –mode PM4 –domain_corners \ { PDcore@08v_fast PDau@120v_fast PDlu@120v_fast PDalu@120v_fast } create_analysis_view –name view4 –mode PM4 –domain_corners \ { PDcore@080v_slow PDau@120v_slow PDlu@120v_slow PDalu@120v_slow } Innovation Through Collaboration – Low Power Coalition – 37 – Command Syntax for MMMC Setup create_operating_corner -name string -voltage float [-process float] [-temperature float] -library_set library_set create_analysis_view -name string -mode mode -domain_corners domain_corner_list Innovation Through Collaboration – Low Power Coalition – 38 – Overview of CPF Support for DVFS & MMMC create_analysis_view -name <string> MMMC -mode <mode_name> -domain_corners { list_of_operating_corners_by_domain } create_power_mode -name <string> DVFS -domain_conditions { list_of_nominal_condition_by_domains } update_power_mode -name <mode_name> [ -activity_file file -activity_file_weight weight ] [ -sdc_files sdc_file_list ] create_nominal_condition -name <string> -voltage <float> update_nominal_condition -name <nominal_condition> -library_set <name> Innovation Through Collaboration – Low Power Coalition create_operating_corner -name <string> -voltage <float> [-process <float>] [-temperature <float>] -library_set <name> define_library_set -name <library_set> -timing <library_list> create_power_domain -name <string> {-default [-instances instance_list] [-boundary_ports pin_list] | -instances instance_list [-boundary_ports pin_lust] [-boundary_ports pin_list } [-shoutoff_condition expression] – 39 – Put Everything Together For Physical Implementation include tech.cpf set_design nano_cpu create_power_domain -name PDcore -default create_power_domain -name PDau -instances alu_inst/aui -shutoff_condition pcu_inst/pau[2] create_power_domain -name PDlu -instances alu_inst/lui -shutoff_condition pcu_inst/plu[2] create_power_domain -name PDalu -instances alu_inst -shutoff_condition pcu_inst/palu[2] create_power_domain -name PDrf -instances rf_inst -shutoff_condition pcu_inst/prf[2] create_state_retention_rule –name sr_rule –domain PDrf -restore_edge { ! pcu_inst/prf[1] } create_isolation_rule -name iso_rule1 -from PDau -isolation_condition {!pcu_inst/pau[0]} -isolation_output low create_isolation_rule -name iso_rule2 -from PDlu -isolation_condition {!pcu_inst/plu[0]} -isolation_output low create_isolation_rule -name iso_rule3 -from PDalu -isolation_condition {!pcu_inst/palu[0]} -isolation_output low create_isolation_rule -name iso_rule4 -from PDrf -isolation_condition {!pcu_inst/prf[0]} -isolation_output low create_nominal_condition -name high -voltage 1.20 create_nominal_condition -name low -voltage 0.8 create_power_mode -name PM1 \ –default -domain_conditions {PDcore@high PDau@high PDlu@high PDalu@high PDrf@high} create_power_mode -name PM2 -domain_conditions {PDcore@low PDlu@high PDalu@high PDrf@high} create_power_mode -name PM3 -domain_conditions {PDcore@low PDrf@high} create_power_mode -name PM4 -domain_conditions {PDcore@low PDau@high PDlu@high PDalu@high } source syn.cpf source phy_pg.cpf source phy_mmmc.cpf end_design Innovation Through Collaboration – Low Power Coalition – 40 – Low Power Physical Implementation and Verification Using CPF ● At this stage The power and ground nets for each power domain are fully specified The power switch logic is specified for each domain ● Complete set of CPF commands for back-end designers to use Physical implementation tools ¾ to perform power domain aware placement and routing ¾ to insert and optimize power switch network ¾ to connect the power and ground nets ¾ to insert additional low power logic due to netlist change if needed ¾ to perform Multi-Mode-Multi-Corner timing and power optimization and analysis Verification tools ¾ to check the correctness of low power physical structural Analysis tools ¾ to perform dynamic analysis power switch network ¾ to perform sign-off power and timing analysis Innovation Through Collaboration – Low Power Coalition – 41 – Other Implementation related commands Optional implementation constraints to provide designers more flexibility in logical and physical implementation update_isolation_rules -names rule_list { -location {from | to} | -cells cell_list -library_set library_set | -prefix string | -combine_level_shifting | -open_source_pins_only}... update_level_shifter_rules -names rule_list { -location {from | to} | -cells cell_list -library_set library_set | -prefix string }... update_state_retention_rules -names rule_list {-cell_type string | -cell libcell -library_set library_set} … Innovation Through Collaboration – Low Power Coalition – 42 – Other Commands ● Hierarchical Flow set_instance [hier_instance [-merge_default_domains] [-port_mapping port_mapping_list]] set_hierarchy_separator string ● RTL to Netlist Name Mapping set_register_naming_style set_array_naming_style ● General Commands set_cpf_version set_power_target set_power_unit set_switching_activity set_time_unit Innovation Through Collaboration – Low Power Coalition – 43 – Outline ● Where Was It Started? ● CPF Basics ● Digest CPF Using A Simple Example ● CPF Based Low Power Design Flow ● Where Is CPF Headed? Innovation Through Collaboration – Low Power Coalition – 44 – CPF Enabled Low Power Design Flow ? Design for Test SVP Coding Constraints Sign-off Innovation Through Collaboration – Low Power Coalition GDSII ATPG Routing Analysis Physical Synthesis Structural & Funct. Checks Simulation Acceleration & Emulation Functionally verify advanced power implementation techniques Hand off to drive physical implementation Chip Integration Prototyping DFT Equivalence LVS/DRC/Ext checking Single power specification used from specification to GDSII Netlist Physical Implementation Constraint Validation Golden specification eliminates assumptions and miscommunications CPF Formal Analysis Testbench Automation Synthesis Verification Iterate RTLRTL + CPF Iterate Constraint Validation Equivalence Checking Design Creation b Constraint Generation Quick architectural exploration Verification Coverage Instantiate single RTL with different power profiles Specification Function, timing, power Re-use preverified IP Automatic partitioning of power domains Automatic scheduling of test modes – 45 – Continued Industry Wide Adoption of CPF 1Q2007 2Q2007 Reference Flow 8.0 PRIDE Flow 2H2007 EnergyPro Technology Joins PFI Joins PFI • CPF becomes Si2 standard • Cadence Low Power Solution production released V 1.0 Common Platform Flow Joins PFI PowerPro CG DDR PHY Innovation Through Collaboration – Low Power Coalition Joins PFI • > 100 customer adopting CPF-based advanced low power solution • ~ 50 tapeouts Freescale, Fujitsu, NEC, NXP.. – 46 – Ecosystem Support for CPF Based Low Power Solution Early Adopters Foundry IP Vendor ASIC / Design Service EDA www.powerforward.org Innovation Through Collaboration – Low Power Coalition – 47 – TSMC 8.0 Low Power Reference Flow CPF CPF Quality Quality Check Check Conformal Low Conformal Low Power Power CPF-Enabled CPF-Enabled Functional Functional simulation simulation Incisive Design Team Simulator Incisive Design Team Simulator Incisive Incisive Design Design Team Team Manager Manager CPF-Enabled CPF-Enabled Logic Logic Synthesis Synthesis & & DFT DFT Encounter RTL Compiler Encounter RTL Compiler CPF-Enabled CPF-Enabled LEC LEC ++ Power Power Checks Checks Conformal Conformal Low Low Power Power CPF CPF-Enabled CPF-Enabled Logic Logic simulation simulation Incisive Design Team Incisive Design Team Simulator Simulator CPF-Enabled CPF-Enabled Physical Physical implementation implementation SoC Encounter SoC Encounter CPF-Enabled CPF-Enabled LEC LEC ++ Power Power Checks Checks Conformal Low Power Conformal Low Power CPF-Enabled CPF-Enabled ATPG ATPG Encounter Test Encounter Test CPF-Enabled CPF-Enabled Timing Timing & & SI SI signoff signoff Encounter Timing System Encounter Timing System CPF-Enabled CPF-Enabled Leakage Leakage & & Thermal Thermal Analysis Analysis Encounter Timing System Encounter Timing System CPF-Enabled CPF-Enabled IR IR drop drop & & Power Power signoff signoff VoltageStorm-DG VoltageStorm-DG 48 Innovation Through Collaboration – Low Power Coalition www.tsmc.com – 48 – ARC Proof Point Project Using CPF Based Low Power Solution ARC700 with SIMD Co-Processor SIMD SDM I$ ARC700 D$ SCQ SCQ SCM I$ problems that you will not otherwise identify ● CPF aids communication of power intent across team boundaries, ensuring accurate implementation at all flow stages ● Significant power savings results using these techniques 49 Innovation Through Collaboration – Low Power Coalition SCQ SCQ SCM SCQ SDM Always On Power Forward low-power implementation & verification project results ● Simulation with CPF identifies D$ Functional Blocks Power Domains Clock Gating Domains • • • For high bit-rate data streams, both the ARC and the SIMD run flat out For lower bit-rate data stream, the subsystem can be run at a lower frequency For generic processing, the SIMD can be inactive – 49 – Fujitsu Proof Point Project Using CPF Based Low Power Solution 90nm 940K instances 11 Power Domains 19 Power Modes DVFS ● Verified with test design PSO functional verification with simulation Low power structural and physical check (Shifters/Isolators/Power switches) Domain aware place and route ● Conclusion Functional verification is necessary for complex PSO design for design bugs Structural check with CPF could verify LP design Fujitsu will support CPF-based ASIC flow for their customers 50 Innovation Through Collaboration – Low Power Coalition CPU1 Power Switch peripherals CPU2 Power Domains Silicon SiliconProven Proven September September‘07 ‘07 – 50 – NEC Proof Point Project Using CPF Based Low Power Solution 65nm 6 Power Domains 5 Power Modes 2 Supply Voltage NEC Electronics Corporation PD0: 1.2V (Default, Always On) Driver PD1:1.2V PD4:0.74V PD2:1.2V PSOcntl Validated CPF and CPF-based flow for major low power methodologies in NEC Electronics 9 9 9 9 9 9 9 386 checkpoints evaluated successfully CPF describe-ability Multi-Supply-Voltage (MSV) Power Shut Off (PSO) State Retention Logic (SRL) Variable Voltage Library (VVL) Clock Tree Gating (CTG) CPF based flow will be in use from Q3/2007 51 PD3:0.74V PSGcntl PD5:0.74V ISOcntl Power Mode Power Domain PD0 PD1 PD2 PD3 PD4 PD5 PM1 1.2V 1.2V 1.2V 0.74V 0.74V 0.74V PM2 1.2V PSO 1.2V 0.74V 0.74V 0.74V PM3 1.2V 1.2V PSO 0.74V 0.74V 0.74V PM4 1.2V 1.2V 1.2V PSO 0.74V 0.74V PM5 1.2V PSO PSO PSO 0.74V PSO Innovation Through Collaboration – Low Power Coalition – 51 – NXP Proof Point Project Using CPF Based Low Power Solution Power Forward low-power platform SoC results ● CPF-based functional verification (using simulation) catches system level power issues early in the flow ● Use of CPF ensured what implementation built was what was verified 52 Innovation Through Collaboration – Low Power Coalition • • • SoC consists of 11 islands 3 major power consumers -RISC CPU, VLIW DSP & L2 System Cache are controlled using DVFS High bandwidth expansion ports enable extension, with graphics or cellular modem subsystems – 52 – Outline ● Where Was It Started? ● CPF Basics ● Digest CPF Using A Simple Example ● CPF Based Low Power Design Flow ● Where Is CPF Headed? Innovation Through Collaboration – Low Power Coalition – 53 – Si2 LPC Progress ● Three Working Groups Data API ¾ Design Flow ¾ Common Glossary Low Power Design Flow Document Format Requirement ● Format Requirement Working Group Clarification on CPF 1.0 semantics Collect new requirements for format improvements ¾ Custom macro modeling ¾ More flexibility on IP reuse ¾ Complete hierarchical flow ¾ … Innovation Through Collaboration – Low Power Coalition – 54 – CPF Related Information ● CPF 1.0 Documents & Parser http://www.si2.org/openeda.si2.org/projects/si2cpf/ ● Si2 LPC http://www.si2.org ● Power Forward Initiative http://www.powerforward.org ● Power Format Comparison http://www.si2.org/?page=866 Innovation Through Collaboration – Low Power Coalition – 55 –