专利名称:Sram型fpga的低功耗设计方法
技术领域:
本发明涉及FPGA (现场可编程逻辑门阵列)电路的低功耗设计技术领域,具体地说,本发明涉及一种当前广泛应用的SRAM(静态随机存储单元)型FPGA的低功耗设计方法。
背景技术:
一直以来,FPGA电路由于其设计周期短,开发成本低等特点而受到电路设计者的广泛关注。伴随着芯片性能的不断提升,基于SRAM型FPGA的电路设计广泛应用于通信工程、工业控制、嵌入式开发等领域。但是,由于晶体管特征尺寸的缩小、阈值电压的不断降低,SRAM型FPGA的漏电功耗迅速增加,成为制约SRAM型FPGA进一步应用的瓶颈。功耗不但直接影响到芯片的封装形式与成本,而且过高的功耗导致了温度的增加,与此同时带来电流过大等一系列问题使得芯片的稳定性进一步恶化,反过来会给芯片的可靠性等诸多方面带来困难。SRAM型FPGA的漏电功耗主要由两部分组成,包括亚阈值漏电功耗和栅极漏电功耗。其中,亚阈值漏电功耗是由于在晶体管处于关断的状态下,晶体管的源极和漏极之间仍然存在一定的电流而产生的功耗。随着工艺的不断进步,FPGA芯片的电源电压不断降低, 为了在较低电压条件下保持晶体管的开关特性,晶体管的阈值电压也随着电源电压不断降低,导致亚阈值漏电功耗随着阈值电压的降低而呈指数级增长。栅极漏电功耗是由于晶体管氧化层沟道效应导致栅极到衬底之间存在微小电流而产生的功耗。为了提高晶体管的驱动能力,晶体管氧化层厚度不断减少,导致栅极漏电功耗急剧上升。资料显示,在当前主流 SRAM型FPGA中,大约60 % 70 %的漏电功耗发生在连线资源中。因此,针对SRAM型FPGA 连线资源的功耗优化变得越来越重要。当前国内外针对SRAM型FPGA的漏电功耗优化主要分为两类(I)修改SRAM型 FPGA的结构,和(2)修改FPGA内实现的电路设计。对于(I)类方法即进行SRAM型FPGA的结构优化,主要采用晶体管可编程电源电压,高阈值电压晶体管设计等等。晶体管可编程电源电压对电路设计的关键路径采用高电压设计,保证电路运行性能;对电路设计的非关键路径采用低电压设计,对电路漏电功耗和性能进行折衷JtFPGA芯片中未使用的部分,不提供电源电压,降低电路漏电功耗。对于高阈值电压晶体管设计,由于亚阈值漏电功耗与晶体管阈值电压呈指数增长关系,因此,高阈值电压晶体管电路设计能够有效降低电路漏电功耗。对于(2)类方法即修改FPGA上实现的电路设计,主要修改设计内查找表的配置比特。对 FPGA 内连线资源的 MUX 结构进行 SPICE (Simu lation Program with Integrated Circuit Emphasis,集成电路信号仿真程序)模拟发现,当MUX输出逻辑为I时的平均漏电功耗比输出逻辑为O时的平均漏电功耗低。因此,通过翻转设计中查找表内的配置比特,尽可能地从查找表输出逻辑I到连线MUX,可以降低连线资源中MUX的漏电功耗。但是,以上两类低功耗设计方案均存在一些不足,主要表现在以下四个方面
I、时序影响较大。第(I)类低功耗设计方法配置电路电源电压及晶体管阈值电压,会影响晶体管开关特性,进而影响电路时序性能。2、应用范围受到局限。第(I)类低功耗设计方法从FPGA芯片结构角度进行优化, 会对FPGA芯片的工艺制造过程产生影响,对现有FPGA芯片不适用。3、存在额外面积开销。第(I)类低功耗设计方法会引入额外的电源电压控制结构,高阈值电压晶体管设计需要修改晶体管尺寸,均会引入额外的面积开销。4、优化粒度较粗。第⑵类低功耗设计方法仅考虑了 MUX结构输出逻辑值与平均漏电功耗的关系,未进一步细化考虑MUX结构中漏电功耗与通路逻辑和旁路逻辑之间的关系,低功耗优化空间受限。
发明内容
本发明要解决的技术问题是提供一种SRAM型FPGA的低功耗设计方法,在有效降低电路漏电功耗的同时减少对电路时序性能产生影响。本发明一个实施例中,首先,在FPGA电路实现的布线阶段,提取电路漏电功耗的相关信息,抽象出电路漏电功耗信息图。所述漏电功耗信息图是指提取出FPGA内各线段之间的连接关系,并包含用于漏电功耗分析的连线逻辑概率信息的抽象图。然后,根据漏电功耗信息图,对电路布线过程的漏电功耗进行评估。最后,将评估得到的漏电功耗引入FPGA 的布线代价函数,最终得到综合考虑电路时延、连线拥塞和漏电功耗的电路设计。FPGA布线代价函数是指在布线过程的每一阶段,计算按该布线方式实现后的电路相应的开销。传统的布线过程考虑电路实现的时延开销和连线拥塞开销,因此代价函数也由这两部分组成。 在本实施例中,引入漏电功耗开销,因此布线代价函数同时包含电路时延、连线资源拥塞和漏电功耗三个因素,最终的FPGA电路实现也是综合考虑这三个因素后得到的最优实现方式。根据本发明的一个方面,提供一种SRAM型FPGA的低功耗设计方法,包括步骤一、 根据FPGA结构及电路信息,建立漏电功耗信息图;步骤二、在布线阶段对各MUX所对应的漏电功耗进行评估,得到漏电功耗;步骤三、将所述漏电功耗引入布线代价函数,从而在布线过程中降低电路漏电功耗。可选的,步骤一中的漏电功耗信息图包含两类信息第一类信息是电路布线实现过程中各线段之间的连接关系;第二类信息是电路网表中各连线的逻辑概率。可选的,步骤二包括根据MUX所有可能的输入向量,通过下述方式计算其对应的状态汉明距离SHD
权利要求
1.一种SRAM型FPGA的低功耗设计方法,包括步骤一、根据FPGA结构及电路信息,建立漏电功耗信息图;步骤二、在布线阶段对各MUX所对应的漏电功耗进行评估,得到漏电功耗;步骤三、将所述漏电功耗引入布线代价函数,从而在布线过程中降低电路漏电功耗。
2.根据权利要求I所述的低功耗设计方法,其中,步骤一中的漏电功耗信息图包含两类信息第一类信息是电路布线实现过程中各线段之间的连接关系;第二类信息是电路网表中各连线的逻辑概率。
3.根据权利要求I所述的低功耗设计方法,其中,步骤二包括根据MUX所有可能的输入向量,通过下述方式计算其对应的状态汉明距离SHD SHDv= H{Stateon_path, Stateioff^ath)i=0其中,SHDv表示在MUX的输入为V的情况下,通路输入的逻辑值Statem_path与各旁路输入i的逻辑值Stateit^path之间的汉明距离H的和At^path表示该MUX中旁路输入的数量; 汉明距离# _,表示当两个参数&表示为字符串时对应位置的不同字符的个数;通过分析每一个可能的状态汉明距离值所对应的MUX漏电功耗,并对MUX输入端所有可能的状态汉明距离取值i进行遍历,通过下述方式计算该MUX的漏电功耗Lmwc=YdPiSHD = IrL(SHD = I)1=0其中,Nsm为MUX输入端所有可能的SHD值的数量,P (SHD = i)为该MUX输入端状态汉明距离为SHD = i的概率,L(SHD = i)为MUX输入端状态汉明距离为i时所对应的漏电功耗。
4.根据权利要求3所述的低功耗设计方法,其中,P (SHD = i)为所有满足状态汉明距离为i的输入端向量V出现的概率的和,MUX输入端输入向量V出现的概率为MUX各输入端同时出现输入向量V所对应分量的联合概率; 对于各SHD值下所对应的漏电功耗L (SHD = i),通过建立MUX电路所对应的SPICE模型,进而对该模型在满足各SHD值的输入向量条件下进行SPICE模拟得到。
5.根据权利要求3所述的低功耗设计方法,其中,步骤三中使用的漏电相关布线函数为Cost (Sn) = Crit (i, j) *delay (Sn) +(1-Crit (i,j)) *b (Sn) *h (Sn) *p (Sn) *L (Sn)其中,线段Cost(Sn)包含时延开销和连线拥塞开销两部分;Crit (i,j)表示该线段所在连线时延与关键路径时延的相对关系;b(Sn)是该线段的基础开销,h(Sn)是历史拥塞开销,P(Sn)是当前线段拥塞开销;L(Sn)是漏电功耗开销。
6.根据权利要求5所述的低功耗设计方法,其中,线段Sn的漏电功耗的计算方法为 L(Sn) = Lmux (source-Sj+Lmux (Sn-Sink)当选择线段Sn进行布线时,连接已有连线和Sn的输入端的MUX上的漏电功耗记为Lmux(source-Sn);连接Sn的输出端到已有连线的MUX上的漏电功耗记为Lmux (Sn_sink)。
7.根据权利要求I所述的低功耗设计方法,步骤一之前还包括根据电路的概率偏移量,决定是否需要优化;其中,所述概率偏移量为电路中各个连线逻辑概率与O. 5之间平均距离。
全文摘要
本发明提供一种SRAM型FPGA的低功耗设计方法,包括步骤一、根据FPGA结构及电路信息,建立漏电功耗信息图;步骤二、在布线阶段对各MUX所对应的漏电功耗进行评估,得到漏电功耗;步骤三、将所述漏电功耗引入布线代价函数,从而在布线过程中降低电路漏电功耗。上述方法在布线阶段对电路进行低功耗设计,在布线过程中综合考虑电路时延开销、拥塞开销和漏电功耗开销,几乎不会对电路时序性能产生影响。通过修改电路连线实现方式进行低功耗设计,与FPGA芯片结构无关,不会对FPGA芯片的工艺制造产生影响,对当前主流FPGA均适用,而且不会引入额外的面积开销。
文档编号G06F17/50GK102609563SQ20121000736
公开日2012年7月25日 申请日期2012年1月11日 优先权日2012年1月11日
发明者李晓维, 胡瑜, 黄柯衡 申请人:中国科学院计算技术研究所