13.【UPF】UPF Always On Networks(UPF常驻网络)

张开发
2026/4/21 13:45:16 15 分钟阅读

分享文章

13.【UPF】UPF Always On Networks(UPF常驻网络)
第一步UPF Always-On Networks 分析与知识整理1. 为什么学习Always-On Networks电源管理控制逻辑、隔离单元、保持电路必须在电源域关断时仍然工作。常开供电网络提供关键基础设施确保电源管理本身不失效。掌握常开网络策略对于可靠实现电源门控至关重要。2. 你将学到什么常开逻辑的概念和必要性在UPF中定义常开供电网络使用set_domain_supply_net进行常开控制分配使用常开电源实现电源管理控制器3. 理解常开网络定义始终保持供电的供电网络为必须独立于电源域状态而工作的关键基础设施提供电源。需要常开电源的内容电源管理控制器PMC控制电源开关、隔离、保持隔离单元源域关断时仍需钳位输出电平转换器通常由目标域常开供电保持单元需要常开保持电源VDD_RET唤醒逻辑中断控制器、定时器调试基础设施JTAG、扫描链常开传感器温度传感器、电压监测器、安全电路权衡常开网络持续消耗功耗漏电开关但能使其他域激进门控。关键是最小化常开逻辑至必要功能。4. 常开要求问题错误设计电源管理逻辑使用可开关电源 → 断电后无法控制隔离、电源开关、唤醒 → 系统死锁。正确设计电源管理逻辑由VDD_AON常开供电 → 始终可工作 → 可唤醒其他域。鸡和蛋问题需要电源管理来恢复电源但电源管理本身没电。必须在设计早期识别常开需求。5. 定义常开供电网络常开供电与其他供电类似但只有一个电源状态始终ON。示例create_power_domain PD_AON -include_scope create_supply_net VDD_AON -domain PD_AON create_supply_net VSS -domain PD_AON create_supply_set SS_AON -function {power VDD_AON} -function {ground VSS} associate_supply_set SS_AON -handle PD_AON add_power_state VDD_AON -state {ON 1.2} add_power_state VSS -state {ON 0.0}关键特征单一电源状态无OFF、无电源开关、直接连芯片引脚、用于电源管理基础设施。6. 使用常开网络进行控制电源开关控制控制信号必须来自常开域。create_power_switch PSW_CPU -domain PD_CPU \ -input_supply_port {vin VDD_AON} \ -output_supply_port {vout VDD_CPU} \ -control_port {ctrl cpu_pwr_enable} \ -on_state {on vin {ctrl}}隔离控制隔离单元电源和控制信号都来自常开域。set_isolation ISO_CPU -domain PD_CPU \ -isolation_supply_set SS_AON \ -clamp_value 0 \ -isolation_signal cpu_iso_enable \ -isolation_sense high \ -location parent7.set_domain_supply_net语法基本形式set_domain_supply_net domain_name \ -primary_power_net net_name \ [-primary_ground_net net_name]使用场景覆盖域的默认供电关联例如控制逻辑必须使用常开电源。通常associate_supply_set足够此命令用于特殊情况。8. 常开保持电源保持电源是常开网络的一种特殊类型用于状态保存。示例create_supply_net VDD_RET -domain PD_AON create_supply_set SS_RET -function {power VDD_RET} -function {ground VSS} add_power_state VDD_RET -state {RETENTION 0.6}保持电源VDD_RET常开但低电压~0.6V最小化漏电同时保留状态。9. 完整常开网络示例原教程给出了完整的常开网络设计包括常开域PD_AON包含VDD_AON1.2V和VDD_RET0.6VCPU域可门控保持电源开关、隔离、保持都使用常开供电和控制GPU域可门控无保持电源开关、隔离使用常开供电所有控制信号pwr_enable, iso_enable, ret_enable来自常开域10. 常开网络设计原则最小化常开逻辑只包含电源管理控制器、隔离单元、唤醒逻辑。目标常开域面积5%深度睡眠功耗10mW。尽可能使用单一常开电源VDD_AON主 VDD_RET保持通常足够避免多个常开电压域。确保所有关键基础设施使用常开电源PMC、电源开关控制、隔离单元、保持电源、唤醒中断控制器、调试/扫描若需睡眠工作、安全监测。11. 常开域的低功耗技术常开域并非全速运行可使用时钟门控门控空闲AON逻辑时钟减少动态功耗低电压以最小功能电压运行AON高Vth单元使用高阈值标准单元减少漏电最小逻辑保持AON尽可能小12. 常见初学者错误错误1电源开关控制逻辑来自门控域 → 无法唤醒。应放在常开域。错误2忘记为保持单元提供常开电源 → 保持电源可开关状态丢失。保持电源必须只有ON状态。错误3常开域过大 → 持续浪费功耗。只放必要逻辑。13. 实践练习要求设计电源管理系统常开域PD_AON1.2V共享保持电源VDD_RET0.6V两个门控域PD_MODEM1.0V有保持和PD_SENSOR0.9V无保持。确保所有电源管理基础设施使用常开电源。14. 总结常开网络为关键基础设施PMC、隔离、保持、唤醒逻辑持续供电。常开电源只有单一ON状态无电源开关。所有电源管理控制信号必须来自常开域。保持电源VDD_RET是常开低电压网络在所有门控域间共享。设计原则最小化常开逻辑使用单一常开电源应用低功耗技术。第二步用费曼学习法讲解UPF常开网络常开网络Always-On Network就是芯片的“生命维持系统”——不管其他模块怎么断电这个系统必须一直有电否则整个芯片就会“脑死亡”。电源管理控制器、隔离单元、唤醒逻辑都靠它供电。作为验证工程师我的任务是确保这个生命维持系统永不掉电并且没有把不该有的“耗电大户”挂在上面。本文用“医院ICU的备用电源”比喻帮你彻底搞懂为什么需要常开网络哪些东西必须常开如何定义常开电源以及如何避免“把控制开关放在被控房间里”这种低级错误。我们着重讲什么需要关注什么为什么这样做好处如何学习使用着重讲解常开网络的必要性电源管理本身不能断电否则无法唤醒系统。哪些必须常开PMC、隔离单元、保持电源、唤醒逻辑、调试接口可选。如何定义常开网络单一电源状态无OFF无电源开关直接连芯片引脚。控制信号的来源所有电源开关使能、隔离使能、保持使能都必须来自常开域。常开保持电源VDD_RET常开低电压用于保持触发器。为什么这样做没有常开网络电源门控会导致系统永久死锁无法唤醒。常开网络虽然持续耗电但换来了其他域可以完全断电整体待机功耗降低99%以上。好处安全可靠的电源门控快速唤醒唤醒逻辑常开调试和监测功能始终可用实现深度睡眠模式仅常开域工作如何学习使用先理解“鸡和蛋”问题电源管理不能依赖被管理的电源。手写一个常开域UPF只包含VDD_AON和VSS一个电源状态。为门控域的电源开关、隔离、保持添加常开控制和电源。检查所有控制信号是否来自常开域实例。分析一个真实SoC的低功耗架构图识别常开域范围。下面按知识点展开每个部分有通俗解释、代码示例和验证工程师的实战视角。一、常开网络芯片的“备用发电机”通俗解释想象一家大医院芯片有多个病房电源域。为了省电晚上可以把非紧急病房的电源关掉。但重症监护室ICU的呼吸机、监控设备必须一直开着而且控制整个医院电源的总控室也必须一直有电否则停电了就再也打不开其他病房。在芯片里常开网络就是给“总控室”和“ICU设备”供电的专用线路。它永远不断电负责管理其他域的电源开关、隔离单元、唤醒逻辑。技术定义常开供电网络只有一个电源状态ON没有OFF状态不受电源开关控制直接连接到芯片的电源引脚。验证工程师检查确认常开域没有关联任何电源开关且add_power_state中没有off状态。如果发现常开域有OFF状态就是严重错误。二、哪些必须常开最小化清单原教程列出需要常开电源的组件我们分类记忆类别具体内容为什么必须常开电源管理控制器状态机、控制寄存器需要它来开关其他域隔离单元钳位输出逻辑源域断电时仍需工作保持电源VDD_RET断电期间保存寄存器状态唤醒逻辑中断控制器、定时器检测唤醒事件并恢复电源调试接口JTAG、扫描链调试时可能需要唤醒安全监测温度/电压传感器防止芯片过热或过压关键原则常开域只放必须的不放“可有可无”的。例如不要将外设控制器、应用逻辑放入常开域否则会持续耗电。验证工程师检查审查常开域的-elements列表确认没有非必要模块。一个健康的常开域面积通常小于芯片总面积的5%。三、定义常开网络单一状态无开关UPF代码# 常开域 create_power_domain PD_AON -include_scope # 常开电源网络 create_supply_net VDD_AON -domain PD_AON create_supply_net VSS -domain PD_AON # 供电集 create_supply_set SS_AON -function {power VDD_AON} -function {ground VSS} associate_supply_set SS_AON -handle PD_AON # 只有一个状态ON add_power_state VDD_AON -state {ON 1.2} add_power_state VSS -state {ON 0.0}关键点没有-state {OFF off}只有ON。没有create_power_switch控制VDD_AON。电压可以是1.2V、1.0V或更低只要能满足常开逻辑的时序。常开域通常不需要高速可以用较低电压省电。验证检查使用report_power_state -net VDD_AON确认只有ON状态。检查物理实现中VDD_AON直接连接芯片引脚没有经过开关。四、控制信号必须来自常开域别把自己关在门外错误示例电源开关的控制信号cpu_pwr_enable来自CPU域本身。# 假设cpu_pwr_enable寄存器在CPU域内 create_power_domain PD_CPU -elements {cpu_inst} create_power_switch PSW_CPU -domain PD_CPU \ -control_port {ctrl cpu_pwr_enable} # 这个信号在CPU域内当CPU断电时cpu_pwr_enable信号消失无法再打开CPU → 系统死锁。正确做法所有控制信号寄存器放在常开域。# 常开域中有电源管理控制器实例 create_power_domain PD_AON -include_scope # pmc_inst在常开域内输出cpu_pwr_enable create_power_switch PSW_CPU -domain PD_CPU \ -control_port {ctrl pmc_inst/cpu_pwr_enable}同样的原则适用于隔离使能信号iso_enable保持使能信号retention_enable任何用于电源管理的控制信号验证检查对于每个电源开关、隔离策略、保持策略中的控制信号追踪其来源实例的电源域。如果来源域不是常开域且该域有OFF状态报错。五、常开保持电源低电压的“记忆电池”保持电源VDD_RET是常开网络的一个特殊分支。它始终保持供电但电压很低如0.6V只够维持保持触发器的数据不足以驱动逻辑。定义create_supply_net VDD_RET -domain PD_AON create_supply_set SS_RET -function {power VDD_RET} -function {ground VSS} add_power_state VDD_RET -state {RETENTION 0.6} # 单一状态使用在所有需要保持的域中保持策略引用SS_RET。set_retention RET_CPU -domain PD_CPU \ -retention_supply_set SS_RET # 常开保持电源验证工程师检查VDD_RET的电压值是否在库允许的保持电压范围内典型0.5-0.7VVDD_RET没有OFF状态。保持策略的-retention_supply_set确实指向常开保持集。六、完整示例带常开基础设施的双域系统原练习要求常开域1.2V共享保持电源0.6VPD_MODEM1.0V有保持PD_SENSOR0.9V无保持。确保所有控制来自常开域。答案框架关键部分# 常开域 create_power_domain PD_AON -include_scope create_supply_net VDD_AON -domain PD_AON create_supply_net VDD_RET -domain PD_AON create_supply_net VSS -domain PD_AON create_supply_set SS_AON -function {power VDD_AON} -function {ground VSS} create_supply_set SS_RET -function {power VDD_RET} -function {ground VSS} associate_supply_set SS_AON -handle PD_AON add_power_state VDD_AON -state {ON 1.2} add_power_state VDD_RET -state {RETENTION 0.6} add_power_state VSS -state {ON 0.0} # MODEM域有保持 create_power_domain PD_MODEM -elements {modem_inst} create_supply_net VDD_MODEM -domain PD_MODEM create_supply_net VSS -domain PD_MODEM create_supply_set SS_MODEM -function {power VDD_MODEM} -function {ground VSS} associate_supply_set SS_MODEM -handle PD_MODEM add_power_state VDD_MODEM -state {ACTIVE 1.0} -state {OFF off} # 电源开关输入来自VDD_AON控制来自常开域 create_power_switch PSW_MODEM -domain PD_MODEM \ -input_supply_port {in VDD_AON} \ -output_supply_port {out VDD_MODEM} \ -control_port {ctrl pmc_inst/modem_pwr_en} \ -on_state {on in {ctrl}} # 隔离常开供电常开控制 set_isolation ISO_MODEM -domain PD_MODEM \ -isolation_supply_set SS_AON \ -clamp_value 0 \ -isolation_signal pmc_inst/modem_iso_en \ -isolation_sense high \ -location parent # 保持使用常开保持电源常开控制 set_retention RET_MODEM -domain PD_MODEM \ -retention_supply_set SS_RET \ -retention_condition {pmc_inst/modem_ret_en} # SENSOR域无保持 create_power_domain PD_SENSOR -elements {sensor_inst} create_supply_net VDD_SENSOR -domain PD_SENSOR create_supply_net VSS -domain PD_SENSOR create_supply_set SS_SENSOR -function {power VDD_SENSOR} -function {ground VSS} associate_supply_set SS_SENSOR -handle PD_SENSOR add_power_state VDD_SENSOR -state {ACTIVE 0.9} -state {OFF off} create_power_switch PSW_SENSOR -domain PD_SENSOR \ -input_supply_port {in VDD_AON} \ -output_supply_port {out VDD_SENSOR} \ -control_port {ctrl pmc_inst/sensor_pwr_en} \ -on_state {on in {ctrl}} set_isolation ISO_SENSOR -domain PD_SENSOR \ -isolation_supply_set SS_AON \ -clamp_value 0 \ -isolation_signal pmc_inst/sensor_iso_en \ -isolation_sense high \ -location parent验证重点所有pmc_inst的实例是否在PD_AON中VDD_RET是否只有RETENTION状态没有OFF隔离和保持的供电集是否为常开SS_AON/SS_RET七、常开域的低功耗设计常开域虽然一直有电但可以优化功耗时钟门控常开域大部分逻辑空闲时门控时钟。低电压如果常开逻辑不需要高速可以用0.9V甚至0.8V代替1.2V。高Vth单元使用泄漏更低的高阈值标准单元。面积最小化只放必要逻辑。验证检查确认常开域的时钟门控策略已实现且电压选择符合时序要求。八、常见错误与避坑错误后果正确做法电源开关控制信号来自门控域断电后无法唤醒控制信号寄存器放在常开域常开电源定义了OFF状态工具可能认为可关断物理实现出错只定义ON/RETENTION状态隔离单元使用门控域供电断电后隔离失效隔离供电集用SS_AON保持电源使用可开关电源断电后状态丢失保持电源用常开VDD_RET常开域包含了大量非必要逻辑待机功耗过高最小化常开域只放必须模块九、学习路线图第1天理解“鸡和蛋”问题手写一个简单的常开域UPF。第2天为门控域添加电源开关确保控制信号来自常开域。第3天添加隔离和保持确认它们的电源和控制都来自常开。第4天练习常开保持电源的创建和使用。第5天分析一个真实SoC的常开域设计画出其电源架构图。推荐验证命令report_power_domain -always_on列出常开域。check_mv_design -always_on_supply检查常开电源是否正确配置。get_supply_net -of_objects [get_cells pmc_inst]确认PMC实例的电源网络。最终总结验证工程师的常开网络检查清单常开域PD_AON存在且没有关联任何电源开关。常开电源VDD_AON、VDD_RET只有ON/RETENTION状态没有OFF。所有电源开关的控制信号都来自常开域实例。所有隔离单元的-isolation_supply_set指向常开供电集。所有保持策略的-retention_supply_set指向常开保持供电集。隔离和保持的控制信号也来自常开域。常开域面积合理5%没有非必要逻辑。常开域应用了低功耗技术时钟门控、低电压、高Vth单元。常开网络是电源门控的“生命线”。没有它省电就是自杀。作为验证工程师你的职责是确保这条生命线永不中断。

更多文章