ice40_power
1.0.0
这项练习的目的是从权力的角度来了解ICE40 FPGA中的各种权衡。这将使我们能够设计使用FPGA并估算电池寿命并提供设计时间指导的电池供电设备。
注意:表中的所有电流都在UA中。
| 描述 | PLL(1.219V) | 银行0(3.283V) | 银行1(3.283V) | 银行2(3.283V) | 核心(1.219V) |
|---|---|---|---|---|---|
| 未配置 | 4.4 | 1.29 | 1552 | 1.5 | 381.6 |
| 重置 | 4.4 | 1.29 | 82.9 | 1.5 | 188.3 |
| 空白设计 | 4.1 | 1.3 | 3.4 | 1.5 | 85.6 |
| 外部12 MHz + 28位计数器(32 LC) | 4.1 | 1.3 | 3.4 | 1.5 | 613.5 |
| 外部12 MHz + 28*2位计数器(60 LC) | 4.1 | 1.3 | 3.4 | 1.5 | 616.65 |
| 外部12 MHz + 28*4位计数器(116 LC) | 4.1 | 1.3 | 3.4 | 1.5 | 624.2 |
| 外部12 MHz + 28*8位计数器(228 LC) | 4.1 | 1.3 | 3.4 | 1.5 | 641.3 |
| HFOSC(48 MHz) + 24位计数器(28 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 2184 |
| HFOSC(24 MHz) + 24位计数器(28 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 1162 |
| HFOSC(12 MHz) + 24位计数器(28 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 645 |
| HFOSC(6 MHz) + 24位计数器(28 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 388.4 |
| LFOSC(10 kHz) + 24位计数器(28 LC) | 4.4 | 3.76 | 3.4 | 1.5 | 96.3 |
| 外部停止时钟(0 kHz) + 24位计数器(28 LC) | 4.4 | 3.76 | 3.4 | 1.5 | 92.1 |
| HFOSC(12 MHz) +数学(无DSP) + 24位计数器(208 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 996 |
| HFOSC(12 MHz) +数学(1 DSP) + 24位计数器(72 LC) | 4.1 | 3.76 | 3.4 | 1.5 | 882 |
| HFOSC + RGB(48 MHz时钟) | 4.4 | 321.9 | 3.4 | 1.5 | 2195 |
| PLL(12MHz,16MHz输出) | 138.6 | 1.29 | 3.42 | 1.4 | 1419 |
| PLL(12MHz,32MHz输出) | 138.9 | 1.29 | 3.42 | 1.4 | 2029 |
| PLL(12MHz,48MHz输出) | 103.6 | 1.29 | 3.42 | 1.4 | 2573 |
Flash的FPGA靴子通过低功率10kHz设计编程。 FPGA从Flash配置自身,并在Core和SPI Flash Bank(Bank 1)上汲取电源,如下所示。总能耗数量和启动时间对于可以关闭FPGA并要求其启动以节省的应用非常重要。如下图所示,从闪光灯启动的启动消耗了约46nah的能量,并且从头到尾都需要大约70毫秒。请注意,这不包括Flash芯片功耗!


好的,太好了,现在我们有了测量,如果我们不能使用它,那有什么好处!让我们从玩具设计开始,以便易于理解。
显然,当它睡着时,我们需要在FPGA上登机。切换10kHz和48MHz之间的设计需要特殊护理,以避免在两个时钟之间多重时钟上的故障。无故障时钟MUX是一个非常标准的组件,可以干净地进行操作。
10kHz振荡器不仅为GFCM提供了馈送,还为将时钟切换到完成工作的设计的计时器。计时器是一个简单的计数器,每3.2s选择较高的时钟速率。
在这种情况下进行工作的设计是一个简单的LED眨眼,可以用相当复杂的东西代替。
一个简单的测试板用于证明设计并摆脱错误...
完整的设计消耗了62个LC,3 SB_GB,1 LF_OSC,1 HF_OSC和RGB驱动程序。这是FPGA在核心电源导轨上的当前消耗。如您所见,这似乎已经实现了目标!
