一种fpga元构件布局区域分配方法

文档序号:6337048阅读:272来源:国知局
专利名称:一种fpga元构件布局区域分配方法
技术领域
本发明涉及计算机网络技术领域,更具体地说,涉及一种FPGA元构件布局区域分 配方法。
背景技术
随着IP (Internet Protocol,网络之间互连的协议)网络的蓬勃发展、新的应用 不断涌现,用户对网络带宽的要求也越来越高。运营商采用OC — 192 (IO(^bps)接口的光纤 传输大大提高了光传输网络的容量,而路由器作为网络的主要节点设备,其处理速度就成 为网络通信的主要瓶颈之一。
在核心路由器设计中,转发引擎往往成为限制路由器性能提高的瓶颈,这不仅 是因为其功能的复杂性,更重要的是因为数据包的可用时间单元(ATU,available time unit)不断地减少。例如网络接口速率为10(ibp时,对40字节IP包而言,IP包的ATU仅 为32ns,而当速率为40(ibpS时,ATU仅为8ns。ATU指的是路由器处理单个任务的最大允许 时间,在进行各种任务的处理时,要求每一任务必须在ATU时间内完成,否则将导致数据包 阻塞和丢弃。要在这么短的时间里完成复杂的IP报文处理,必须采用流水线设计。考虑到 FPGA (Field Programmable Gate Array,现场可编程阵列)不仅有可编程能力,而且具有较 高的灵活性,便于实现多业务支持。同时,由于其可编程性是通过硬件实现的,因此可以提 供较高的处理速度,所以核心路由器一般选择了 FPGA作为转发引擎的核心器件。
传统的FPGA电路设计需要经过如图1所示的处理流程。其中,逻辑综合把描述 FPGA功能的硬件描述语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束 条件)优化生成门级网表。
映射的主要作用是将门级网表映射到具体型号FPGA内部的器件上(例如查找表 (LUT)、触发器(FF)等),生成基本元件级网表。
装箱的目标就是把LUT和FF等电路功能元件进行组合,尽可能地放到具体型号 FPGA内部的逻辑块中(逻辑块由若干LUT、FF组成),生成逻辑块网表。
布局布线根据用户约束和物理约束,对逻辑块进行实际的布局,并根据设计连接, 对布局后的模块进行布线。最后生成可直接下载到FPGA中的配置信息文件。
传统对FPGA上的硬件构件开发时,将用户编写的针对整个硬件构件的硬件描述 语言统一进行逻辑综合、映射、装箱和布局布线处理。用户开发每个构件时都要将针对每个 构件的硬件描述语言统一进行FPGA电路设计流程处理。
由于专业领域的差异,目前市场上各设备制造商针对不同的网络环境(如电信网、 互联网或广电网)设计不同的网络设备。而基于技术垄断和商业利益的考虑,即使对于同 一网络环境的设备制造商来说,其设备的内部接口一般也是不公开的。各厂家生产的网络 设备对于用户和其他厂商来说是封闭的,没有开放的操作接口。除了生产厂家外,用户和其 他厂家均无法了解该网络设备的底层构成如硬件构件的具体情况。用户无法对设备进行修 改、扩展或升级,这种工作只能由原厂家才能完成。
上述现象使得用户无法根据设备工作的具体网络环境和功能需求对设备底层的 硬件构件进行修改,从而导致在不同的网络环境下需要配备不同的设备。对于设备中的可 重构硬件体来说,其无法通过下载不同的硬件构件来适应不同的网络环境或同一网络环境 下的不同业务应用,带来资源的浪费,限制了硬件体的可重构应用范围。
为了避免上述情形的出现,现有技术中提出一种基于硬件元构件的硬件构件开发 装置(专利申请号200810149346. 2),通过该装置用户可以有效开发出适应不同网络环境、 不同业务应用的硬件构件,充分利用网络设备底层可重构硬件体资源,降低网络设备的成 本,增强其灵活性和扩展性。该硬件构件生成装置向外提供规范开放的统一操作接口,屏 蔽了设备底层不同可重构硬件体操作接口的差异性。用户通过该装置开发构件时,不必考 虑设备底层可重构硬件体的不同操作接口,只需向该装置开放的统一操作接口发送标准指 令,从而大幅度减轻了开发硬件构件的难度。
然而,描述硬件构件的硬件描述语言映射到硬件电路要经过逻辑综合、映射、装箱 和布局布线阶段的处理,传统方案不考虑元构件的组成而将整个硬件构件设计进行统一处 理。而可重构设备要经常以元构件为基本单位进行硬件构件开发,不考虑元构件的组成而 将整个硬件构件设计进行统一处理效率低下。
为了提高构件的开发效率,现有技术中提出一种FPGA硬件构件的生成方法及装 置(专利申请号201010002017. 2)。该方法流程如图2所示。该方法首先对元构件单独进 行逻辑综合、映射、装箱后再直接调用,这样硬件构件开发时直接调用的是元构件的逻辑块 网表,根据元构件的逻辑块级网表来生成针对整个硬件构件的逻辑块网表,然后对该逻辑 块网表进行布局布线阶段的处理最终生成可下载到FPGA的硬件构件配置信息文件。该方 法可省略FPGA逻辑综合、映射、装箱阶段处理,从而加快整个硬件构件的开发进程。
该技术同时为了提高整个布局算法的运算速度,提出了二次布局方法。初始布局 时改变原有算法的任意逻辑块的初始布局,以元构件之间的流水线特性为出发点,结合输 入输出元构件与可编程器件输入、输出接口的互联关系以及中间元构件与外部存储单元的 互联关系,将逻辑块初始布局到各自的元构件初始位置。接着采用模拟退火算法对布局到 相应元构件的初始位置的逻辑块进行二次布局。
上述元构件之间以及元构件和外部端口之间的连接关系比较简单,初始布局可采 用人工手段进行,而当元构件之间以及和外部端口之间的连接关系比较复杂时就难以根据 经验判断元构件的合理布局位置。并且各个元构件所占布局区域的大小是由其所占的逻辑 块资源决定的,给各个元构件手工分配布局区域存在较大的难度。发明内容
本发明针对现有技术不足,提出一种FPGA元构件布局区域分配方法,以便加快整 个FPGA硬件构件的布局进程,克服了原有技术利用经验采用手工分配布局区域的局限性。
本发明所采用的技术方案一种FPGA元构件布局区域分配方法,首先获取对应FPGA硬件构件的元构件(301);并 对所述FPGA元构件进行预处理,计算其所占逻辑块资源(302);所述FPGA元构件布局区域 分配方法,还包括下述步骤根据FPGA元构件之间以及和外部端口之间的连接关系利用二次解析法求得FPGA元构件的最佳理论位置(303);根据目标布局区域内各个FPGA元构件的理论位置坐标和其占用资源对布局区域进行 理论分割(304);根据理论分割资源比值与各物理分割点物理分割资源比值,确定分割线(305); 根据分割线对FPGA元构件集合分配布局区域(306); 选择任一分配给多元构件集合的布局区域为新的目标布局区域(307); 继续对新的目标布局区域进行分割,直到所有FPGA元构件都被分配到相应的布局区 域(308)。
所述的FPGA元构件布局区域分配方法,根据FPGA元构件之间以及FPGA元构件 和外部端口之间的连接关系,利用二次解析法求得FPGA元构件的最佳理论位置,其步骤包 括构造有向图,将元构件和外部端口看作是图中的节点,它们之间的连线看作是图中的边;使用二次解析法将所有连线的欧氏距离平方和作为目标函数; 求得使目标函数最小的元构件节点理论坐标。
所述的FPGA元构件布局区域分配方法,根据目标布局区域内各个FPGA元构件的 理论位置坐标和其占用资源,对布局区域进行理论分割,其采用的步骤包括根据目标布局区域内各个元构件的理论位置坐标和其占用资源,分别从横竖方向两端 建立两个元构件集合;计算拟分割后长宽比最不平衡区域的长宽比值; 选择长宽比较平衡的方向对目标布局区域进行分割。
所述的FPGA元构件布局区域分配方法,根据理论分割资源比值与各物理分割点 物理分割资源比值,确定分割线比较实际元构件集合分割资源比值与各物理分割点物理分割资源比值,选择物理分割 点,在该分割点上建立分割线;计算各个集合所占资源是否大于有效分割点分配给其布局区域的资源,判断分割点是 否有效;对于有效分割点,直接采用该分割点上的分割线; 对于无效分割点,借用相邻空余资源,对该分割点上分割线进行修正。
所述的FPGA元构件布局区域分配方法,对于无效分割点,借用相邻空余资源,对 该分割点上分割线进行修正计算无效分割点两边集合节点理论平均坐标; 根据集合节点平均坐标比值决定预借区域; 根据预借区域对该分割点上分割线进行修正。
所述的FPGA元构件布局区域分配方法,对FPGA元构件进行预处理,包括对所述元构件的硬件描述语言进行逻辑综合、映射、装箱处理,生成对应所述元构件的 逻辑块网表;计算所述元构件的逻辑块网表所占逻辑块资源。
本发明的有益积极效果1、本发明FPGA元构件布局区域分配方法,能够根据元构件之间以及和外部端口之间 的连接关系结合其占用资源对布局区域自动进行合理分配,克服原有技术利用经验采用手 工分配布局区域的局限性。
2、通过本发明FPGA元构件布局区域分配方法,可以最大程度的保障元构件布局 区域的长宽比平衡,提高后续布局布线的布通率,并且能保障元构件与其外部端口连接紧 密,有效降低路径时延,从而提高在FPGA上运行电路的整体性能。


图1为现有技术中FPGA电路设计流程示意图;图2为现有技术中一种FPGA硬件构件的生成方法步骤流程示意图; 图3为本发明FPGA元构件布局区域分配方法步骤流程示意图; 图4为本发明对所述FPGA元构件进行预处理的流程示意图; 图5为本发明利用二次解析法求得元构件的最佳理论位置流程示意图; 图6为本发明根据目标布局区域内各个元构件的理论位置坐标和其占用资源对布局 区域进行理论分割的流程示意图;图7为本发明对布局区域进行理论分割的具体实例图中,(a)分别从水平和垂直两个 方向选择两个集合,(b)扩充容量小的集合,(c)计算分割后长宽比最不平衡区域的长宽比 值,(d)选择长宽比较平衡的方向进行分割,(e)对多模块集合继续分别从水平和垂直两个 方向进行分割判断,(f)选择长宽比较平衡的方向进行分割;图8为本发明根据理论分割资源比值与各物理分割点物理分割资源比值确定分割线 的流程示意图;图9为本发明确定分割线具体实例图中,(a)原始物理分割比值,(b)有效物理分割, (c)非有效物理分割;图10为本发明对于无效分割点借用相邻空余资源,对该分割点上分割线进行修正的 流程示意图;图11为本发明对无效分割点上分割线进行修正具体实例图中,(a)计算两个集合节 点理论平均纵坐标,(b)根据集合节点平均纵坐标比值决定预借区域,(c)根据预借区域对 该分割点上分割线进行修正,(d)选择分配给多元构件集合的布局区域为新的目标布局区 域,(e)对新的目标布局区域继续分割,(f)为各元构件最终分配布局区域。
具体实施方式
下面结合附图,对本发明的技术方案进行清楚、完整地描述。
首先对本文出现的技术名词或术语进行解释,以方便本领域技术人员对本文技术 方案的理解。
硬件元构件指示进行一种或几种基本功能的硬件编程程序,例如查表程序。在 FPGA中,硬件元构件有如下几种状态用户设计的描述元构件功能的硬件描述语言、经过 FPGA开发工具各阶段(逻辑综合、映射、装箱)处理后的各级网表(门级网表、基本元件级网 表、逻辑块网表)。本发明直接利用的是逻辑块网表。
硬件构件针对整个FPGA的硬件编程程序,由硬件元构件组成。硬件构件有如下几种状态用户设计的描述整个硬件构件功能的硬件描述语言、经过FPGA开发工具各阶段 (逻辑综合、映射、装箱)处理后的各级网表(门级网表、基本元件级网表、逻辑块级网表)以及 经过布局布线阶段处理后生成的可下载到FPGA的硬件构件配置信息文件。
实施例一参照图3所示,本实施例FPGA元构件布局区域分配方法,包括如下流 程步骤301、获取对应FPGA硬件构件的元构件; 步骤302、对所述元构件进行预处理,计算其所占逻辑块资源; 步骤303、根据元构件之间以及和外部端口之间的连接关系利用二次解析法求得元构 件的最佳理论位置;步骤304、根据目标布局区域内各个元构件的理论位置坐标和其占用资源对布局区域 进行理论分割;步骤305、根据理论分割资源比值与各物理分割点物理分割资源比值,确定分割线; 步骤306、根据分割线对元构件集合分配布局区域; 步骤307、选择任一分配给多元构件集合的布局区域为新的目标布局区域; 步骤308、继续对新的目标布局区域进行分割,直到所有元构件都被分配到相应的布局 区域。
实施例二 参见图3、图4。本实施例的技术方案相对于实施例一,进一步公开了对 所述元构件进行预处理的过程。如图4所示,对所述元构件进行预处理的过程包括以下步 骤步骤401、生成针对所述元构件的硬件描述语言; 通常,使用VHDL语言或者Verilog语言对各种元构件的功能进行描述; 步骤402、对所述元构件对应的硬件描述语言进行逻辑综合、映射、装箱处理,生成对应 所述元构件的逻辑块网表网表;该步骤中,逻辑综合处理把描述FPGA功能的硬件描述语言翻译成最基本的与或非门 的连接关系,即网表,并根据具体的要求(约束条件)优化生成门级网表;映射处理将门级网 表映射到FPGA内部的器件上,例如查找表、触发器,生成基本元件级网表;装箱处理对所述 基本元件级网表进行组合,尽可能地放到FPGA内部的逻辑块中,生成对应所述元构件的逻 辑块网表。
步骤403、计算所述元构件的逻辑块网表所占逻辑块资源。
实施例三参见图3 图5,本实施例的技术方案,与实施例二不同的是,采用如图 5所示的步骤流程,根据元构件之间以及和外部端口之间的连接关系,利用二次解析法求得 元构件的最佳理论位置。
该开发过程可以包括步骤501、构造有向图,将元构件和外部端口看作是图中的节点,它们之间的连线看作 是图中的边;步骤502、使用二次解析法将所有连线的欧氏距离平方和作为目标函数; 步骤503、求得使目标函数最小的元构件节点理论坐标。
该步骤流程的主要目的是使元构件之间以及和元构件和端口之间的连线长度尽 量短,以尽可能减少后续布线过程中连线占用的FPGA布线资源。
实施例四如图6所示,本实施例的技术方案与前述各实施例不同的是根据目标 布局区域内各个元构件的理论位置坐标和其占用资源对布局区域进行理论分割。该分割的 步骤流程包括步骤601、根据目标布局区域内各个元构件的理论位置坐标和其占用资源,分别从横竖 方向两端建立两个元构件集合;如图7 (a) (b)所示,根据各个元构件的理论位置坐标,分别从横竖方向两端各选择最 靠边的节点组成两个集合,然后依次对占用资源小的集合向逆方向选择该方向垂直距离最 近的元构件加入该集合,如果两个集合占用资源相同,则选择离剩余元构件最近的集合,如 果两个集合离剩余元构件的最近距离也相等,则任意选择其中一个集合,直到所有元构件 加入到两个集合。
步骤602、计算拟分割后长宽比最不平衡区域的长宽比值;如图7 (c)所示,首先计算两个集合占用资源的比值,然后根据目标布局区域的长宽比 按照两个集合占用资源的比值和方向计算对目标区域进行分割后两个区域中长宽比的最 大值。
步骤603、选择长宽比较平衡的方向对目标布局区域进行分割。
如图7 (d)所示,比较上述分别按横竖方向计算的分割后长宽比最不平衡区域的 长宽比值,选择比值小的方向进行分割。
该步骤流程主要是为了避免出现元构件布局区域重合的现象,要根据各元构件的 理论位置和占用资源大小对各元构件分配合理的布局区域。因为布局区域长宽比均衡的布 局区域能比布局区域长宽比不均衡的布局区域提供更多的布线通道,因此尽量保证各个元 构件布局区域长宽比均衡是上述步骤流程的重要目标。
实施例五本发明的技术方案,与前述各实施例不同的是,采用如图8所示的步骤 流程,根据理论分割资源比值与各物理分割点物理分割资源比值,确定分割线,该开发过程 可以包括步骤701,比较实际元构件集合分割资源比值与各物理分割点物理分割资源比值,选择 物理分割点,在该分割点上建立分割线;如图9 (a)所示,一个6X6 CLB布局区域从水平和垂直方向都只有3个物理分割点, 其物理分割资源比值分别为0. 2,0. 5、1、2、5。根据步骤2计算的实际模块集合分割资源比 值可能为任意值。根据以下准则确定实际有效物理分割点。首先比较实际模块集合分割资 源比值与各物理分割点物理分割资源比值,选择最近的为该集合分割点。如图9 (b)所示, 两个集合分别占用15和16个CLB资源,其实际分割资源比值为0. 9375,离物理分割资源比 值为1的分割点最进,因此选择该分割点为该集合的分割点。
步骤702,计算各个集合所占资源是否大于有效分割点分配给其布局区域的资源, 判断分割点是否有效;计算各个集合所占资源是否大于有效分割点分配给其布局区域的资源,如果大于,则 该分割点无效;如果小于,则该分割点有效。如图9 (b)所示,两个集合所占资源小于分配 给其布局区域的资源,因此分割点有效;而图9 (c)所示的右边集合所占资源为20,大于分 配给其布局区域的资源18,因此物理分割点无效。
步骤703,对于有效分割点,直接采用该分割点上的分割线;图9 (b)所示分割点有效,直接采用其上的分割线;步骤704,对于无效分割点,借用相邻空余资源,对该分割点上分割线进行修正。
实施例六本实施例的技术方案,与前述各实施例不同的是,对于无效分割点,借 用相邻空余资源,对该分割点上分割线进行修正,其步骤流程如图10所示步骤801,计算无效分割点两边集合节点理论平均坐标;如图11(a)所示,由于集合一所占逻辑块单元为20,大于分配给其布局区域的资源18, 故物理分割点无效。无效分割点右边集合二的平均纵坐标高于无效分割点左边集合一的平 均纵坐标。
步骤802,根据集合节点平均坐标比值决定预借区域;如图11 (b)所示,由于集合一平均纵坐标(为其包括的两个元构件平均纵坐标)位于集 合二平均纵坐标(其包括的一个元构件的纵坐标)下方,故从集合二所分配的无效分割点右 边布局区域下方借两个逻辑单元给集合一。
步骤803,根据预借区域对该分割点上分割线进行修正。
如图11 (C)所示,将物理分割点上的分割线沿着借给集合一的逻辑单元与集合二 的边界进行修正。
本实施例技术方案的实现过程中,根据分割线对元构件集合分配布局区域有如下 两种情况如果为有效分割点,则将该分割点上的分割线两端的布局区域分配给相应元构 件集合;如果为无效分割点,则将修正后的分割线两端的布局区域分配给相应元构件集合。
选择任一分配给多元构件集合的布局区域为新的目标布局区域,继续对新的目标 布局区域进行分割,直到所有元构件都被分配到相应的布局区域。
如图11 (d)所示,由于集合一由两个元构件组成,故选择分配给其的布局区域为 新的目标布局区域。
对上一步骤选择的目标布局区域继续重复步骤304、305、306,直到所有元构件都 被分配到相应的布局区域。
如图11 (e)所示,对分配给集合一的目标布局区域继续进行步骤304、305、306,对 两个元构件接着进行布局区域的划分。该过程结束后,所有的元构件都被分配了相应的布 局区域,如图11 (f)所示。
对于与本发明方法相应的装置而言,实现其中所述各步骤的分离部件或单元可以 是物理上分开的(也可以不是),作为单元显示的部件可以是或者也可以不是物理单元,可 以位于一个地方,或者分布到多个网络单元上。
权利要求
1.一种FPGA元构件布局区域分配方法,首先获取对应FPGA硬件构件的元构件(301); 并对所述FPGA元构件进行预处理,计算其所占逻辑块资源(302);其特征在于,所述FPGA元 构件布局区域分配方法,还包括下述步骤根据FPGA元构件之间以及和外部端口之间的连接关系利用二次解析法求得FPGA元构 件的理论位置(303);根据目标布局区域内各个FPGA元构件的理论位置坐标和其占用资源对布局区域进行 理论分割(304);根据理论分割资源比值与各物理分割点物理分割资源比值,确定分割线(305); 根据分割线对FPGA元构件集合分配布局区域(306); 选择任一分配给多元构件集合的布局区域为新的目标布局区域(307); 继续对新的目标布局区域进行分割,直到所有FPGA元构件都被分配到相应的布局区 域(308)。
2.根据权利要求1所述的FPGA元构件布局区域分配方法,其特征在于,根据FPGA元构 件之间以及FPGA元构件和外部端口之间的连接关系,利用二次解析法求得FPGA元构件的 理论位置,其步骤包括构造有向图,将元构件和外部端口看作是图中的节点,它们之间的连线看作是图中的边;使用二次解析法将所有连线的欧氏距离平方和作为目标函数; 求得使目标函数最小的元构件节点理论坐标。
3.根据权利要求2所述的FPGA元构件布局区域分配方法,其特征在于,根据目标布局 区域内各个FPGA元构件的理论位置坐标和其占用资源,对布局区域进行理论分割,其采用 的步骤包括根据目标布局区域内各个元构件的理论位置坐标和其占用资源,分别从横竖方向两端 建立两个元构件集合;计算拟分割后长宽比最不平衡区域的长宽比值; 选择长宽比较平衡的方向对目标布局区域进行分割。
4.根据权利要求3所述的FPGA元构件布局区域分配方法,其特征在于,根据理论分割 资源比值与各物理分割点物理分割资源比值,确定分割线比较实际元构件集合分割资源比值与各物理分割点物理分割资源比值,选择物理分割 点,在该分割点上建立分割线;计算各个集合所占资源是否大于有效分割点分配给其布局区域的资源,判断分割点是 否有效;对于有效分割点,直接采用该分割点上的分割线; 对于无效分割点,借用相邻空余资源,对该分割点上分割线进行修正。
5.根据权利要求4所述的FPGA元构件布局区域分配方法,其特征在于,对于无效分割 点,借用相邻空余资源,对该分割点上分割线进行修正计算无效分割点两边集合节点理论平均坐标; 根据集合节点平均坐标比值决定预借区域; 根据预借区域对该分割点上分割线进行修正。
6.根据权利要求1 5任一项所述的FPGA元构件布局区域分配方法,其特征在于,对 FPGA元构件进行预处理,包括对所述元构件的硬件描述语言进行逻辑综合、映射、装箱处理,生成对应所述元构件的 逻辑块网表;计算所述元构件的逻辑块网表所占逻辑块资源。
全文摘要
本发明涉及一种FPGA元构件布局区域分配方法。所述FPGA元构件布局区域分配方法,首先获取对应FPGA硬件构件的元构件;并对所述FPGA元构件进行预处理,计算其所占逻辑块资源;然后根据FPGA元构件之间以及和外部端口之间的连接关系利用二次解析法求得FPGA元构件的最佳理论位置;根据目标布局区域内各个FPGA元构件的理论位置坐标和其占用资源对布局区域进行理论分割;根据理论分割资源比值与各物理分割点物理分割资源比值,确定分割线;根据分割线对FPGA元构件集合分配布局区域;选择任一分配给多元构件集合的布局区域为新的目标布局区域;继续对新的目标布局区域进行分割,直到所有FPGA元构件都被分配到相应的布局区域。
文档编号G06F17/50GK102033987SQ201010565069
公开日2011年4月27日 申请日期2010年11月30日 优先权日2010年11月30日
发明者兰巨龙, 李鹏, 王保进, 王婷, 王志明, 赵靓, 邬钧霆, 韩晓亚, 黄万伟 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1