一种精确的块进位链的时序分析方法
技术领域
本发明涉及微电子领域中的集成电路设计技术领域,特别是一种精确的块进位链的时序分析方法。
背景技术
现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
FPGA的设计流程包括:设计输入、调试、功能仿真、综合、布局布线、时序仿真、配置下载等步骤。其中布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置,往往需要在速度最优和面积最优之间做出选择。布线是根据布局的拓扑结构,利用自动布线软件,使用布线资源选择时序最短路径,试着完成所有的逻辑连接。
目前,在布线的过程中需要建立时序模型,然后进行时序分析找到关键路径,也就是最长路径,进而给时序驱动布线器指出正确的优化方向。
现有技术的时序模型是以基本逻辑单元,比如加法器等,建立起来;并将每一个时序模型的延迟累加得到最长路径,然后对最长路径进行优化。
目前工业界还没有找出可以进行更加精确的时序分析的方法。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种精确的块进位链的时序分析方法,能够对FPGA中跳跃进位加法器的进位链以及整个芯片设计给出精确的时序分析,能够考虑到跳跃进位加法器中进位逻辑的时序功能。本发明在进行时序分析时,将一个PLB里的整个进位链及跳跃逻辑作为一个整体进行分析,可以获得准确完整的时序信息,给时序驱动布线器指出正确的优化方向。
本发明提供一种精确的块进位链的时序分析方法,所述方法包括:将FPGA芯片布局后的原始层面中进位链及跳跃逻辑进行打包,构成块进位链;以所述块进位链作为基本单元构建时序模型,并使用所述时序模型进行时序分析;将所述进行时序分析后的块进位链展开成所述原始层面,然后在所述原始层面进行布线。
优选地,FPGA芯片的所述原始层面和所述时序模型灵活切换,来分别完成所述FPGA芯片的进位链时序分析和布线流程。
优选地,在FPGA芯片中可编程逻辑块PLB内,将进位链以及跳跃逻辑进行打包,简化时序模型,然后以所述块进位链为整体构建时序模型。
优选地,在FPGA芯片中,上下相邻的可编程逻辑块PLB,将可编程逻辑块PLB的跳跃输入逻辑和与所述跳跃输入逻辑相邻的跳跃输出逻辑,以及所述跳跃输出逻辑所在的可编程逻辑块PLB内的进位链进行打包,减少块进位链的端口数量,然后以所述块进位链为整体构建时序模型。
优选地,将所述块进位链为整体构建成时序模型后,进行时序分析,进而找出关键路径。
本发明将芯片中,PLB的进位链及跳跃逻辑进行打包,并对块进位链进行整体建模,能够充分的考虑到跳跃进位加法器中进位逻辑的时序功能,对整个设计给出精确的时序分析。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种精确的块进位链的时序分析方法流程示意图;
图2为本发明实施例提供的一种FPGA芯片中可编程逻辑块PLB的示意图;
图3为本发明实施例提供的一种在PLB内将进位链和跳跃逻辑打包的示意图;
图4a为本发明实施例提供的一种上下相邻的PLB间将进位链和跳跃逻辑打包的示意图;
图4b为本发明实施例提供的一种上下相邻的PLB间进位链和跳跃逻辑打包后的示意图;
图5为本发明实施例提供的一种以块进位链为基本单元建立的时序模型示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明实施例在进行时序分析时,将一个PLB里的整个进位链及跳跃逻辑作为一个整体进行分析,可以获得准确完整的时序信息,给时序驱动布线器指出正确的优化方向。
图1为本发明实施例提供的一种精确的块进位链的时序分析方法流程示意图。如图1所示,一种精确的块进位链的时序分析方法包括步骤S101-S103:
步骤S101:将FPGA芯片布局后的原始层面中进位链及跳跃逻辑进行打包,构成块进位链;
具体地,做为本发明实施例的一种优选方式,在FPGA芯片中可编程逻辑块PLB内,将进位链以及跳跃逻辑进行打包,然后以所述块进位链为整体构建时序模型。
需要说明的是,FPGA芯片布局后的原始层面是指FPGA芯片布局后,以查找表、寄存器以及加法器构成的基本逻辑单元;和各基本逻辑单元的端口信息以及连线信息;也就是FPGA芯片布局后的网表信息。
下面以图2为例进行说明,图2为本发明实施例提供的一种FPGA芯片中可编程逻辑块PLB的示意图。CME-C1型号FPGA芯片中分为可编程逻辑模块PLB(Programmable LogicBlock)和带本地存储器的可编程逻辑模块PLBR(Programmable Logic BlockLocal memorylram)。
图中有8个加法器,分别为S0、S1、S2、S3、S4、S5、S6、S7;进位链的跳跃逻辑包括一个跳跃输入逻辑CARRY_SKIP_IN,一个跳跃输出逻辑CARRY_SKIP_OUT。图中并没有将加法器构成的进位链和跳跃逻辑进行打包;在进行时序分析时,以单个的加法器为单位进行时序分析,然后将进行时序分析后的加法器进行布线。
以图2为例,将图2中的加法器和跳跃逻辑进行打包。图3为本发明实施例提供的一种在PLB内将进位链和跳跃逻辑打包的示意图。
如图3所示,打包之后,块进位链做为时序模型分析的基本单位,然后对整个网表进行时序分析。在进行时序分析时,分析出块进位链的每一条可能的时序路径,以及时序路径所对应的真实的延迟,得到最长的路径所对应的最大延迟,也就是得到关键路径的延迟。由于使用了复杂的跳跃逻辑,可以保证得到的最长路径延迟优于,现有技术中以加法器为基本单元进行时序分析的得到进位链延迟的累加。
也就是说,对块进位链进行时序分析后得到的关键路径更为精确;故,根据关键路径算出的延时也更为准确,给时序驱动布线器指出更为准确的优化方向。
具体地,作为本发明实施例的另一种可能是实现的方式,在FPGA芯片中,上下相邻的可编程逻辑块PLB,将可编程逻辑块PLB的跳跃输入逻辑和与所述跳跃输入逻辑相邻的跳跃输出逻辑,以及所述跳跃输出逻辑所在的可编程逻辑块PLB内的进位链进行打包,然后以所述块进位链为整体构建时序模型。
下面以图4进行说明,图4a为本发明实施例提供的一种上下相邻的PLB间将进位链和跳跃逻辑打包的示意图。如图所示,将位于图中下方PLB的进位链和跳跃输出逻辑以及位于图中上方的PLB中的跳跃输入逻辑进行打包。块进位链与上述实施例中的作用相同,在此不再赘述。
需要说明的是,将相邻的PLB中进位链以及跳跃逻辑进行打包后,整个块进位链为基本单元建立时序模型;此时的基本单元中的输出输入端口数相对于上述实施例中大为减少。以此建立时序模型后,芯片中最终形成了以块进位链为基本单元的时序模型,由于输入输出的端口数减少,在进行时序分析时,所得到的最长路径更为简便。
下面对此进行说明,块进位链如图4所示,图4b为本发明实施例提供的一种上下相邻的PLB间进位链和跳跃逻辑打包后的示意图。在图3中位于下方的跳跃输入逻辑的位置增加了一个2选1的多路复用器mux,一端接收进位输入信号,一端接收信号co_alt;并输出信号到加法器C0的进位输入端口。
步骤S102:以所述块进位链作为基本单元构建时序模型,并使用所述时序模型进行时序分析;
具体地,将所述块进位链为整体构建成时序模型后,使用该时序模型进行时序分析,进而找出关键路径。
以图5进行说明,图5为本发明实施例提供的一种以块进位链为基本单元建立的时序模型示意图。图中所示,基本单元在进行时序分析时,在进行时序分析时,能够更加精确的得到关键路径。同时减少了时序模型的端口数,简化了时序模型。
步骤S103:将所述进行时序分析后的块进位链展开成所述原始层面,然后在所述原始层面进行布线。
具体地,FPGA芯片的所述原始层面和所述时序模型灵活切换,来分别完成所述FPGA芯片的进位链时序分析和布线流程。
芯片中对块进位链进行时序分析,找到关键路径后,然后对关键路径优化;在这样的流程中,原始层面的加法器和时序模型可以灵活切换。以块加法链建立时序模型,由此便形成了包含块加法链的网表,进行时序分析后将输出的结果反标到原始的网表中去,完成时序驱动的布线流程。
本发明将芯片中,PLB的进位链及跳跃逻辑进行打包构成块进位链,并对块进位链进行整体建模,能够充分的考虑到跳跃进位加法器中跳跃逻辑的时序功能,对整个设计给出精确的时序分析。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。