最近听了很多FPGA厂商的在线研讨,现在FPGA面临的最大的问题就是功耗控制。随着FPGA的处理时钟已经上百兆,加上其内迁的PPC-405s,PPC-450s已经接近500MHz的处理能力,,使得FPGA功耗问题日益严峻。而ASIC由于其设计起步的层次很低,前端设计已经面向门极(甚至TTL级),因此其功耗比较容易控制,而且只需要比FPGA低得多的电压驱动电路工作。
集成电路总功耗来自如下三个方面
a.开关功率(动态功率):对输出电容负载充电
b.内部功率(动态功率):短路功率
c.漏电功率(静态功率):稳定态功率
动态功耗
基本原理
CMOS电路功耗的主要来源是电路的开关状态转换,XPower功耗仿真器为每个开关元件(LUT,FF,BRAM)建立电容模型,根据下式计算FPGA功耗:
P=C*V2*E*F*1000
其中,C:电容量,法拉。V,工作电压。E翻转率(每周期跳变次数)。F为频率。P为功耗。
优化优先级
一般来说,功耗是和设计目标,如时钟,面积密切相关的。一般集成电路设计工程师按如下顺序考虑功耗的优先级。
开销类型 约束
a.设计原则(工艺) 最大信号翻转率、最大器件扇出
b.时延 全局时钟周期、最大时延、最小时延
c.总功率 最大总功率
d.动态功率 最大动态功率
e.漏电功率 最大漏电功率
f.面积 最大面积
RTL设计
在RTL设计时候(同样适用于ASIC),在做层次(Hierarchical)划分,模块设计的时候,尽量避免胶合逻辑(Glue Logic)。胶合逻辑是连接到模块的组合逻辑,或者通过组合逻辑将模块相连的设计。这种设计对于保留层次设计,十分不利,他会被EDA工具作为一个单独例化的单元,不被其他模块所吸收,优化受到限制。无法得到全局的优化结果。
门控时钟
采用门控时钟设计,对于暂时不使用的模块单元,关闭时钟和供电电源,进入休眠模式,节省功耗。
门级设计
1.修改单元的驱动能力 (Cell Sizeing)
2.技术映射(Technology Mapping):把高翻转率的连线放入单元内,减少开关功耗
3.交换引脚(Pin Swapping):把高翻转率的连线分配到电容值小的引脚
4.相位分配(Phase Assignment):增加面积,降低功耗
5.因式分解(Factoring):减少物理门数量
6.插入缓冲器(Buffer Insertion):降低处理频率,降低功耗
静态功耗CMOS工艺
因此,随着处理时钟的增加,FPGA静态功耗将超负荷。现在Xilinx公司提出一种CMOS设计,简述其原理就是,它将Gate级氧化层厚度加大,在保证其工作线形区击穿电流(电压)的同时,降低漏电流,使得功耗降低。还有一种作法是对于休眠状态的开关元件,由不工作,转换为高阻状态,从而使其输出电路噪声降低,减少无用的功耗。
阈值电压
随着纳米工艺的先进,半导体器件的几何尺寸越来越小,此时阈值电压越来越小,但是阈值电压对于功率的减少是十分不利的。如下是阈值电压,功率,门延迟的关系:
阈值电压越高——〉漏电功率越低 ——〉门延迟越长
阈值电压越低——〉漏电功率越高 ——〉门延迟越短
因此我们可以利用多阈值电压工艺库的这种特点,进行漏电功率的优化,设计静态功耗低,性能高(满足需求)的电路。
多供电电压(Multi-VDD)
对于高处理频率的区域选择高电压,低处理频率使用低电压驱动。
文章评论(0条评论)
登录后参与讨论