70 likes | 180 Vues
IP Provider: Creates IP source RTL+ constraints Creates low power implementation constraints. IP Licensee/User: Configures IP for context Validates configuration Freezes “ Golden Source ” Implements configuration Verifies implementation against “ Golden Source ”.
E N D
IP Provider: Creates IP source RTL+ constraints Creates low power implementation constraints IP Licensee/User: Configures IP for context Validates configuration Freezes “Golden Source” Implements configuration Verifies implementation against “Golden Source” Deployment of low power Soft IP IP Creation IP Configuration IP Implementation RTL RTL RTL Constr’nt UPF Soft IP Golden Source Config’n UPF + + + Constraint UPF Constraint UPF + Impl’tion UPF + Configuration UPF Synthesis Simulation, Logical Equivalence Checking, … Impl’tion UPF Netlist P&R Impl’tion UPF Netlist
Need a cumulative approach to UPF: • UPF Constraints • IP provider needs to "identify" what is to be isolated with out prescribing how: set_isolation my_iso -domain my_pd \ -clamp 0 • UPF Configuration • System Level simulation guy needs to configure the logical power controls with out having to specify the power supplies: set_isolation -refine my_iso -domain my_pd \ -isolation_signal CLAMP -isolation_sense high • UPF Implementation • Finally the details of power supplies are then added during implementation set_isolation –refine my_iso -domain my_pd \ -isolation_power_net VDDG -location parent • Or specify it all at the same time: set_isolation -refine my_iso -domain my_pd \ -clamp 0 \ -isolation_signal CLAMP -isolation_sense high \ -isolation_power_net VDDG -location parent
PST Data Objects System PST Substates State 1 Legal next states … … … State X X, Core1.Foo State N State1, …, StateN Object X Object Type State Value CORE1 PST Y Foo Foo … … … State Y Object Y Object Type State Value
Sample PSTs CORE PST Core1.CPU PST System PST • Requirements • Need ability to specify a generic ON when you do not yet know a domain’s primary supply nets, switches, or related control logic signals • Perhaps OFF and not OFF? • Need ability to specify any subset of states that a domain can be • Need instances of PSTs for each instance of a core • Any state can be refined with more details. Refinements cannot conflict with previously specified details. • State details could be constraints (ranges, choices) with refinements narrowing those constraints further • States are defined as boolean expressions of other states (or supply net states)
State Tables • # Constraint • System.Turbo {uWD.On && uCore1.On && uCore2.On} • {Lazy} • System.Lazy {uWD.On && uCore1.On && uCore2.COREOFF} • {Turbo, Hibernate} • System.Hibernate {uWD.On && uCore1.Hib && uCore2.Hib} • {Lazy} • CORE.ON {uCPU.On && uRam.On && uSoC.On} • CORE.HIB {uCPU.RET && uRam.On && uSoC.On} • CORE.COREOFF {uCPU.Off && uRam.Off && uSoC.On} • CORE.ILLEGAL {uCPU.On && uRam.Off && uSoC.On} • # Configuration • CPU.On { {Primary.ON} && {Retention.ON}} • CPU.Ret {!{Primary.ON} && {Retention.ON}} • CPU.Off { {Primary.OFF} && {Retention.OFF}} • # implementation • Primary.ON {“((mySwitch.ON) && • ({Primary.Power.State==ON) && (Primary.Ground.State==ON) && (Primary.P-Well.State==ON) && (Primary.N-Well.State==ON) && (Primary.DP-Well.State==ON) && (Primary.DN-Well.State==ON)) && ((Retention.Power.State==ON) && (Retention.Ground.State==ON) && (Retention.P-Well.State==ON) && (Retention.N-Well.State==ON) && (Retention.DP-Well.State==ON) && (Retention.DN-Well.State==ON)))”) • create_power_switch mySwitch –domain CPU • mySwitch.ON {“(<logic-sig-exp-for-primary-on>)”} • uCORE2.uCPU.Primary.ON {{power=2v0} {ground=0v0}}
State Tables • # Constraint • System.Turbo {uWD.On && uCore1.On && uCore2.On} {Lazy} • System.Lazy {uWD.On && uCore1.On && uCore2.COREOFF} {Turbo, Hibernate} • System.Hibernate {uWD.On && uCore1.Hib && uCore2.Hib} {Lazy} • CORE.ON {uCPU.On && uRam.On && uSoC.On} • CORE.HIB {uCPU.RET && uRam.On && uSoC.On} • CORE.COREOFF {uCPU.Off && uRam.Off && uSoC.On} • CORE.ILLEGAL {uCPU.On && uRam.Off && uSoC.On} • # Configuration • CPU.On { {Primary.ON} && {Retention.ON}} • CPU.Ret {!{Primary.ON} && {Retention.ON}} • CPU.Off { {Primary.OFF} && {Retention.OFF}} • Primary.ON.logical {“(<logic-sig-exp-for-primary-on>)”} • # implementation • Primary.ON.physical ({Primary.Power.State==ON) && (Primary.Ground.State==ON) && (Primary.P-Well.State==ON) && (Primary.N-Well.State==ON) && (Primary.DP-Well.State==ON) && (Primary.DN-Well.State==ON)) && ((Retention.Power.State==ON) && (Retention.Ground.State==ON) && (Retention.P-Well.State==ON) && (Retention.N-Well.State==ON) && (Retention.DP-Well.State==ON) && (Retention.DN-Well.State==ON)))”) # Command or tool switch to select logical or physical Need a solution for being able to simulate with no implementation data but with UPF constraint & configuration information. (Verify PCN without Power Supply Network (PSN))
State Transitions • Add functionality to VHDL and SV packages to allow look-up of State tables and querying current state and transitions relative to a state table. • Usable in writing assertions or other verification code related to PA verification