关于IR Drop和Power的理解

文章讨论了使用RedHawk进行IRDrop分析时,如何通过TotalPower和SupplyVoltage计算电压降,以及在StaticIRDrop和DynamicIRDrop分析中设置适当的togglerate的重要性。由于VCD波形获取的延迟和局限性,正确设定togglerate对于vectorless分析的准确性至关重要。文中还提到RedHawk计算的power可能比其他工具如ptpx大2-3倍,且当差异过大时,应检查工具设置的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于用RedHawk做IR Drop分析的过程中,工具是转化成电流X电阻的方式计算电压降的。

电流是通过Total power/Supply Voltage得到

Static IR Drop分析的时候Total Power是静态Power和动态Power的总和。

Dynamic IR Drop和Static IR Drop如果设置同样的toggle rate,计算的功耗一样大

在实际项目中,我们一般很晚才拿到VCD波形,而且VCD波形不能cover所有场景,所以vectorless分析过程中如何设置合适的toggle rate非常重要!太大结果悲观,不容易收敛。太小结果太乐观,发现不了真实存在的问题。特别是对于一个新项目新工艺。

ReHawk在跑IR的时候会先计算power,这个power和ptpx计算的power会有部分差异,一般RedHawk的结果会大一些,2-3倍也属于正常情况。

如果差异特别大,可以debug两个工具间toggle rate设置,lib和spef corner等读入是否一致。

### 计算 MCU 外围器件电流的方法 对于 MCU 的外围器件电流计算,通常需要考虑以下几个方面: #### 1. **MCU 自身功耗** MCU 的静态功耗动态功耗直接影响整个系统的总功耗。可以通过查阅数据手册中的典型工作条件下的电流消耗参数来进行估算[^1]。 - 静态功耗:指 MCU 在待机模式下所需的最小功率。 - 动态功耗:指 MCU 正常运行时的平均电流消耗。 #### 2. **外设模块的功耗分析** 不同的外设模块(如定时器、UART、SPI、I²C 等)会增加额外的电流需求。具体数值可以从芯片的数据手册中找到对应的典型值或最大值[^2]。 例如,在配置某些外设时,可能需要调整其工作频率或者使能状态以优化整体能耗表现。 #### 3. **LCD 控制器/驱动器的影响** 如果设计中有 LCD 显示屏,则需特别注意 LCD 控制部分所带来的附加负载效应。特别是采用电容分压技术生成液晶显示所需偏置电压的情况,这种方案虽然能够有效降低漏失电量,但仍会产生一定量级的基础操作电流[^3]。 以下是简化版公式用于粗略估计某单一元件所贡献的部分: \[ I_{total} = I_{mcu\_static} + (f \times C_L \times V^2) / E_f + I_{peripherals} + I_{lcd} \] 其中各变量含义如下: - \( f \): CPU 或特定外设的工作频率; - \( C_L \): 负载电容容量; - \( V \): 工作供电电压等级; - \( Ef \): 效率因子(一般取经验值0.8~1之间); - 各项分别代表不同来源构成的整体用电情况。 实际应用过程中还需要综合考量环境温度变化等因素对最终结果产生的影响程度。 ```python def calculate_current(I_mcu_static, frequency, load_capacitance, voltage, efficiency_factor=0.9, peripherals_consumption=0, lcd_consumption=0): dynamic_power_component = (frequency * load_capacitance * pow(voltage, 2)) / efficiency_factor total_current = I_mcu_static + dynamic_power_component + peripherals_consumption + lcd_consumption return total_current # Example usage of the function with hypothetical values. example_total_current = calculate_current( I_mcu_static=5e-3, frequency=16_000_000, load_capacitance=10e-12, voltage=3.3, efficiency_factor=0.85, peripherals_consumption=2e-3, lcd_consumption=1e-3 ) print(f"Total Current Consumption: {example_total_current:.4f} A") ``` 以上代码片段展示了如何基于给定参数来模拟计算总的电流消耗过程。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯片后端工程师-ratel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值