一种fpga可编程互连线的延时分析方法

文档序号:6438560阅读:508来源:国知局
专利名称:一种fpga可编程互连线的延时分析方法
技术领域
本发明属于超大规模集成电路技术领域,尤其涉及一种FPGA可编程互连线延时分析的方法。
背景技术
自1984年问世以来,FPGA (现场可编程门阵列)已经成为数字电路设计领域中的一种最普遍的模块。FPGA主要由输入/输出模块(I/O Block, Ι0Β)、可编程逻辑模块(Configurable Logic Block, CLB可编禾呈互连资源(Programmable Interconnect Resource,PI)以及存储器模块等几大部分所构成,用户可以通过编程的方式将这些模块连接成具有所需功能的数字系统。其中,可编程互连资源占据了 FPGA的多半的面积,互连线上的路径延时直接制约着FPGA的时钟频率,影响着整个FPGA芯片的性能。因此,FPGA可编程互连线的延时数据, 是评估整个FPGA性能的一个重要参数。

发明内容
为了解决上述问题,本发明实施例的目的在于提供一种FPGA可编程互连线延时分析的方法。本发明实施例是这样实现的,一种FPGA可编程互连线延时分析方法,所述方法包括以下步骤
提取FPGA可编程互连线中的基本延时单元,并建立每种基本延时单元的等效RC模
型;
划分FPGA中所包含的可编程基本互连单元,并分析各可编程基本互连单元所包括的基本延时单元以及各基本延时单元的连接关系;
分析FPGA芯片中各可编程基本互连单元的连接关系;
根据所选取的路径,分析该路径所包括的可编程基本互连单元,根据可编程基本互连单元相互之间的连接关系、各可编程基本互连单元所包括的基本延时单元、各基本延时单元的连接关系以及基本延时单元所对应的RC模型的延时,计算该路径的总延时。进一步地,所述基本延时单元包括多路选择器、反相器以及连线。进一步地,FPGA可编程基本互连单元根据它所在的逻辑单元来划分为CLB内部的互连单元、IOB内部的互连单元。进一步地,其特征在于,所述分析FPGA芯片中各可编程基本互连单元的连接关系的步骤具体为
描述可编程互连线资源中,各基本互连单元中MUX的基本配置点、输入输出、功能配置信息、坐标信息、相互之间的连接关系。进一步地,连线的RC模型的建立方法包括按照基于版图走线层次的互连线种类来划分,每一层定义一种互连线模型;以LO作为线载模型的单位长度,构建单位长度的线载RC模型;软件模型中单位的坐标距离与相应的版图中连线的真实长度这两者之间存在一个固定的折算比例,在计算线载延时的时候,基于此折算比例和软件模型中所需要运算连线的虚拟长度,即可换算出所需要运算连线在物理版图上的真实长度,从而依据相应的线载RC模型,来换算出该段连线相应的RC延时模型结构。在本发明的实施例中,将整个FPGA芯片的可编程互连线网络构建成了一个RC延时网络,并且在计算出所有路径的延时后,将每条路径的延时保存在该路径终端的节点上, 这样在计算路径延时的时候,可以大大提高计算速度,降低了时序分析的复杂度。


图1是本发明实施例提供的FPGA可编程互连线延时分析的方法的流程图; 图2是本发明实施例提供的互连线延时路径的示意图3是本发明实施例提供的多路选择器电路结构示意图; 图4是本发明实施例提供的MOS管的RC模型图; 图5是本发明实施例提供的反相器的RC模型图; 图6是本发明实施例提供的导线的RC模型图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。根据FPGA可编程互连线资源的结构,对互连线进行合理有效的切割,同时定义合适的语法格式来描述分割后的FPGA可编程互连线的逻辑连接结构,构建出FPGA可编程互连线的层次式RC网络模型,最后采用自行研发的配套时序分析软件可以计算整个FPGA内部任意一条路径的延时。图1示出了本发明实施例提供的FPGA可编程互连线延时分析的方法的流程,详述如下
在步骤SlOl中,提取FPGA可编程互连线中的基本延时单元,并建立每种基本延时单元的等效RC模型。在FPGA的互联线资源中,基本延时单元可分为三种a、开关多路选择器MUX,可通过配置点来控制选通某条路径;b、反相器,可用来改变相位及增大下级驱动;C、连线,连接各个单元器件。对于开关多路选择器MUX的延时模型,在FPGA的互连线资源中,开关多路选择器 MUX是作为配置点控制的选通某条路径的开关,如图2所示。而开关多路选择器MUX—般是由2级晶体管开关组成,如图3所示晶体管(NM0S或PM0S)作为配置点选通的开关来控制互连线是否导通。所以,首先需要对单个的MOS管建立延时模型。(1)在晶体管的延时模型中,我们采用典型的Π型RC网络建模,这种模型已经被证明它具有很好效果。NMOS管的RC模型如图4所示,R、C分别表示晶体管的导通时的电阻和电容。在此基础上,我们可以用2级MOS管的延时模型来描述开关多路选择器的延时模MUX型。不同的MOS管子尺寸,就有不同的模型,一个开关多路选择器MUX里面又有2种尺寸的管子,所以可以得到许多种的开关多路选择器MUX延时模型。为了便于使用,可以将各种不同开关多路选择器MUX的延时模型以单元库的形式放在一起,记载如下 MUX_NAME :mux_l resistancel Rl resistance2 R2 capacitancel Cl capacitance2 C2 格式中关键字和语法说明如下
1 MUX_NAME关键字表示多路选择器的名称,这个可根据MUX中MOS管的尺寸来区分不同类型的MUX,其后mux_l表示一个MUX的名字,两者中间由“”隔开。1 resistancel和resistance2表示这个MUX的第一级和第二级MOS管的等效 RC电阻,Rl和R2表示电阻值,两者之间用空格隔开;capacitancel和capacitance2表示这个MUX的第一级和第二级MOS管的等效RC电容,Cl和C2表示电容值,两者之间用空格隔开。这样,在利用分析软件来分析某条路径延时的时候,在已知用到的MUX类型的情况下,就可以调用单元库里面对应等效电路的电阻、电容的参数。(2)反相器的RC延时模型如图5所示。为了便于使用,以软件代码描述如下 INV_NAME :inv_l
resistance R
capacitance C
格式中关键字和语法说明如下
1 INV_NAME关键字表示反相器的类型,可根据反相器中MOS管的尺寸来区分,inv_l 是实际的反相器的名字,两者中间用“”隔开。1 resistance表示反相器的等效RC电阻,R表示电阻值;capacitance表示反相器的RC等效电容,C表示电容值。(3)导线的RC延时模型如图6所示。在FPGA的互连资源中,导线用来连接各部分可配置开关资源和可编程逻辑模块。 一般在小规模的电路中,导线的延时是可以忽略的,但是在高集成度的FPGA内部,这部分延时是不能忽略的。因此,我们也可以采用单位长度(0. Ium)的RC模型来描述导线的延时。 简单点的话,可以采用集总RC模型,但是研究结果表明,这种模型的精确度不高,因此我们采用改进的分布式RC模型T3型模型,如图6所示。为了便于使用,以软件代码描述如下
LINE_NAME :cs_line_l Resistance R capacitance C 格式中关键字和语法说明如下
1 LINE_NAME关键字表示连线的类型,可根据实际版图中不同种类的走线来划分不同的连线模型,cS_line_l表示连线的名字,两者中间用“”隔开。1 resistance表示连线的等效RC电阻,R表示电阻值;capacitance表示连线的RC等效电容,C表示电容值。在步骤S102 中,划分FPGA中所包含的可编程基本互连单元,并分析各可编程基本互连单元所包括的基本延时单元以及各基本延时单元的连接关系。主要描述FPGA互连线资源中,各基本互连单元中MUX的基本配置点、输入输出、功能配置信息、坐标信息、相互之间的连接关系。由于FPGA内部都是许多可重复性的单元,像CLB、IOB等,因此在对它们周边的互连线块建模的时候就可基于这些基本的单元。每类基本逻辑单元对应的互连线块可以作为互连线的一个基本单元来描述,在描述这些互联基本单元的时候,需要描述这些互连单元内部MUX的输入输出、配置点对应的功能描述以及MUX的输出通过那些反相器连接到下一级输入端,我们可以定义类似的一些语法格式
CELL INC_CLB
Il描述一个8选1的选择器的输入输出 MUX_1 (Al, A2, A3, A4, A5, A6, A7, A8 ——> Zl)
Il对应配置点的功能描述
if(cfg_l=8,bOOOOOOOl;cfg_2=4,bOOOl)Zl:=Alif(cfg_l=8,bOOOOOOlO;cfg_2=4,b0010)Zl:=A2if(cfg_l=8,bOOOOOlOO;cfg_2=4’ b0100)Zl:=A3if(cfg_l=8,b00001000;cfg_2=4,blOOO)Zl:=A4if(cfg_l=8,b00010000;cfg_2=4,bOOOl)Zl:=A5if(cfg_l=8,b00100000;cfg_2=4,b0010)Zl:=A6if(cfg_l=8,b01000000;cfg_2=4’ b0100)Zl:=A7if(cfg_l=8,blOOOOOOO;cfg_2=4,blOOO)Zl:=A8
INV_1 INV_2 (Zl);
格式中关键字和语法说明如下
1 CELL关键字,指示互连线基本单元的名称,INC_CLB就是单元的名字,两者之间以空格隔开;
1 MUX_1 (Al,A2,A3,A4,A5,A6,A7,A8 —> Zl)表示对一个 MUX 的种类及其输入输出的描述。MUX_1表示这个MUX的类型,它对应步骤SlOl中的一种MUX延时模型,Al到 A8表示MUX的输入,中间用“,”隔开;Zl表示输出,输入与输出之间用“一>”隔开。1 if (cfg_l=8,b00000001 ;cfg_2=4,b0001) Zl=Al ;表示各个配置点对应的输入到输出的功能描述。以if开头,括号内cfg_l的值表示MUX中第一级MOS管开关的值, cfg_2表示第二级MOS管开关的值,对应位的值为1表示开关导通,0表示开关关闭。1 INV_1 INV_2 (Zl);表示MUX的输出Zl通过两级反相器INV_1和INV_2输出到下一级。这里反相器的级数可以是任意的,反相器INV_1和反相器INV_2对应步骤SlOl 中所说的反相器的延时模型。通过上面定义的一些语法格式的描述,我们可以知道在一个互连单元内部一个输入通过MUX的哪些配置点可以到达输出以及输出端的负载。
在步骤S103中,分析FPGA芯片中各可编程基本互连单元的连接关系。在以上这些互连单元的基础上,我们可以通过对这些单元的坐标标识、连线种类及其连接关系的描述来构建起整个FPGA芯片的互连线延时网络。在步骤S104中,根据所选取的路径,分析该路径所包括的可编程基本互连单元, 根据可编程基本互连单元相互之间的连接关系、各可编程基本互连单元所包括的基本延时单元、各基本延时单元的连接关系以及基本延时单元所对应的RC模型的延时,计算该路径的总延时。在布局布线后,就可以利用构建的互连线延时网络来计算所有的路径延时了。在选取路径的时候,我们以较大尺寸的反相器作为两条路径的分开点,在计算反相器之前的路径的延时的时候,就只需要把这个反相器当作它的负载就可以了 ;而在计算反相器之后的路径的延时的时候,就需要把这个反相器当作它的前级驱动就行了。另外,在计算旁边支路的影响的时候,只需考虑这条支路的有效电容即可。这样,在所有分割出来的路径中,都可以根据步骤SlOl中提取出来的基本延时单元的模型,来建立一个RC树形延时网络,然后通过Elmore延时方法来计算每条路径的延时。在计算出所有路径的延时后,将每条路径的延时保存在该路径终端的节点上,便于软件在后续时序分析过程中对某一条或一些路径进行快速的延迟分析计算。为了便于理解,我们针对Virtex- II系列的)(C2V1000芯片对其内部的互连线RC 网络延时建模过程进行详细的说明,具体请参阅图
XC2V1000芯片内部有8中MUX单元,4中反相器单元,6中连线单元种类,分别对这些单元提取他们对应的RC延时模型的RC参数。(一 )可编程互连线网络的建模描述
提取出)(C2V1000芯片内部所有的互连线单元种类,有INC_CLB、INC_I0L、INC_I0B、 INC_BRAM、INC_MUL、INC_DMI等基本单元,对这些所有的互连线单元进行描述。然后,以坐标的形式,基于这些基本互连线单元来描述整个互联线延时网络。( 二)计算路径延时
根据布局布线后的结果,抽象出每条路径的RC树形网络,就可以来计算任意一条路径的延时。利用Elmore延时公式计算路径的延时,将计算所得到的延时保存在路径源端的节点上,便于后续时序分析使用。在时序分析的时候,可以把具体某条分析的路径上各条路径的延时加起来乘以一个比例系数K(一般取0. 69),就可以得到一个比较准确的路径延时了。以下是本方法计算结果与SPICE仿真比较结果。
权利要求
1.一种FPGA可编程互连线延时分析方法,其特征在于,所述方法包括以下步骤提取FPGA可编程互连线中的基本延时单元,并建立每种基本延时单元的等效RC模型;划分FPGA中所包含的可编程基本互连单元,并分析各可编程基本互连单元所包括的基本延时单元以及各基本延时单元的连接关系;分析FPGA芯片中各可编程基本互连单元的连接关系;根据所选取的路径,分析该路径所包括的可编程基本互连单元,根据可编程基本互连单元相互之间的连接关系、各可编程基本互连单元所包括的基本延时单元、各基本延时单元的连接关系以及基本延时单元所对应的RC模型的延时,计算该路径的总延时。
2.根据权利要求1所述的FPGA可编程互连线延时分析方法,其特征在于,所述基本延时单元包括多路选择器、反相器以及连线。
3.根据权利要求1所述的FPGA可编程互连线延时分析方法,其特征在于,FPGA可编程基本互连单元根据它所在的逻辑单元来划分为CLB内部的互连单元、IOB内部的互连单元。
4.根据权利要求1所述的FPGA可编程互连线延时分析方法,其特征在于,所述分析 FPGA芯片中各可编程基本互连单元的连接关系的步骤具体为描述可编程互连线资源中,各基本互连单元中MUX的基本配置点、输入输出、功能配置信息、坐标信息、相互之间的连接关系。
5.根据权利要求2所述的FPGA可编程互连线延时分析方法,其特征在于,连线的RC模型的建立方法包括按照基于版图走线层次的互连线种类来划分,每一层定义一种互连线模型;以LO作为线载模型的单位长度,构建单位长度的线载RC模型;软件模型中单位的坐标距离与相应的版图中连线的真实长度这两者之间存在一个固定的折算比例,在计算线载延时的时候,基于此折算比例和软件模型中所需要运算连线的虚拟长度,即可换算出所需要运算连线在物理版图上的真实长度,从而依据相应的线载RC模型,来换算出该段连线相应的RC延时模型结构。
全文摘要
本发明适用于超大规模集成电路技术领域,提供了一种FPGA可编程互连线延时分析的方法。在本发明的实施例中,将整个FPGA芯片的可编程互连线网络构建成了一个RC延时网络,并且在计算出所有路径的延时后,将每条路径的延时保存在该路径终端的节点上,这样在计算路径延时的时候,可以大大提高计算速度,降低了时序分析的复杂度。
文档编号G06F13/40GK102495821SQ20111036340
公开日2012年6月13日 申请日期2011年11月16日 优先权日2011年11月16日
发明者包朝伟, 唐峰峰 申请人:深圳市国微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1