Fpga可编程逻辑块通用装箱方法

文档序号:6353765阅读:536来源:国知局
专利名称:Fpga可编程逻辑块通用装箱方法
技术领域
本发明属于电子设计自动化(Electronic Design Automation, EDA)技术领域, 具体涉及一种现场可编程门阵列(FPGA,Field Programmable Gate Array)中可编程逻辑 块的通用装箱方法。
背景技术
现场可编程门阵列的芯片结构包括可编程逻辑块(Configurable Logic Block, CLB)、可编程输入输出(Input Output Block,IOB)和可编程互连,具有电路功能可重配置、 开发周期短、设计成本低等优点,因此在国防武器装备、民用通信、汽车电子和医疗等领域 具有广泛的应用。FPGA的软件设计流程主要包括逻辑综合,工艺映射,装箱,布局和布线。 其中装箱是根据目标芯片的功能配置对工艺映射后的逻辑电路进行划分,再将划分后的子 电路映射到芯片的可编程逻辑块中。目前FPGA芯片结构变得更加复杂,通过配置所能实现的功能越来越多。如

图1所 示的可编程逻辑块结构框图主要包含2个4输入查询表(LUT4)和2个可以配置成触发器 (DFF)或锁存器(Latch)的时序器件[1]。除此之外还包括加法逻辑,用于实现快速进位链 和乘法器功能;多路选择器,可以将单个CLB配置成一个LUT5或者2个CLB配置成LUT6 ; 存储器控制逻辑,能够将LUT配置成RAM和移位寄存器;以及一些输入选择器,可以将输入 信号拉成高低电平或者取反。当前被广泛应用的装箱工具是由Toronto大学开发的T-VPack[2],通过选取关键 路径上的可编程逻辑单元(Logic Cell, LC)作为种子进行装箱,然后再利用时序驱动成本 函数选取与该种子单元直接连接的LC继续装箱,从而获得良好的时序性能。然而T-VPack 只能将LUT和DFF简单组合在一起进行装箱,无法有效地利用现代FPGA提供的众多功能配 置,这样会造成对硬件资源的很大浪费。用户电路对互连资源要求很高的情况下,文献[3] 提出的Un/DoPack方法是通过控制CLB内的LC个数来提高布通率,而不是更加有效地利 用CLB内部各种逻辑资源来降低布线通道压力。文献[4]提出了针对Xilinx公司早期的 XC3000和)(C4000系列芯片的装箱方法FDUMap,但还是不能处理如快速进位链等相对复杂 的功能配置情况。参考文献[2]V. Betz. VPR and T-VPack User' s Manual
. http://www. eecg. utoronto/vpr/ )(倪刚,来金梅,童家榕。一种基于图模式匹配的逻辑单元映射算法[J]。计算机辅助 设计与图形学学报,2006,18 (12) 1850-1854).Quartus II University Interface Program
. http://www.altera.com.cn/ education/univ/quip/。

发明内容
本发明的目的在于提供一种能够应用于各种复杂FPGA的可编程逻辑块,高性能 的通用装箱方法。基于以上的发明目的,本发明提出一种新型的基于约束可满足性问题 (Constraint Satisfaction Problem,CSP)的图匹配的装箱方法 CSPack。即将 FPGA 装箱 问题转化为电路图的子图同构问题,利用约束可满足性问题的求解方法进行图匹配。具体 步骤为将FPGA的可编程逻辑块的芯片配置描述为一系列用于约束可满足性问题图匹配方法 的有向简单图,即将将用户电路和功能电路转换成有向简单图,分别作为约束可满足性问 题图匹配的目标图和样本图;构造约束可满足性问题的变量集合和值域;构造约束可满足 性问题的约束集合;求解约束可满足性问题,在用户电路中识别出芯片所支持的逻辑功能 子电路进行装箱操作。装箱问题实际上就是以FPGA的可编程逻辑块能够实现的功能电路为样本,在用 户电路中找到所有符合样本约束的子电路进行装箱。因此可以将装箱问题类比成图匹配问 题,再通过约束可满足性问题的求解方法[5]来求解。首先将用户电路和功能电路转换成 有向简单图,分别作为约束可满足性问题图匹配的目标图和样本图,然后再根据电路特性 如器件类型、连接关系等来构造约束可满足性问题的约束条件。具体介绍如下1.将电路图转换成有向简单图将电路图转换成有向简单图G,这个图有两部分构成顶点的集合V和边的集合E。一 个电路元件就对应有向图中的一个顶点,从一个元件的输出端到另一个元件的输入端只会 存在一个连接,这就对应一条边。在进行有向图转换时,电路的输入输出端口将被忽略。每 个顶点和边都有名称和类型两个属性,顶点的名称和类型与其所代表元件的名称和类型相 同,边的名称和类型由其连接两端的元件名称和类型共同决定。例如两位加法器电路如图 2所示,将其转换成的有向简单图如图3。2.构造约束可满足性问题的变量集合和值域用约束可满足性问题方法求解图匹配问题,就是将给定的样本图的各个部分抽象成变 量,从目标电路图中找出可能的值实例化这些变量,当这些实例化的值满足所有的变量约 束条件时,就完成了一次图匹配过程。将FPGA的可编程逻辑块进行划分后得到不同的功能电路,如图4为简单时序功能 配置电路,图5为由两个LUT4以及多路选择器构成的LUT5功能电路。将功能配置电路转换 成有向简单图作为约束可满足性问题图匹配方法的一个样本图,此约束可满足性问题中的 变量χ就是样本图中的顶点或者有向边。由于每个功能配置电路有许多元件和线网组成, 这些元件和线网都要抽象成各个变量,所以一个功能配置电路就对应了一组的变量集合X。 而约束可满足性问题的值域D对应于用户电路转换成的有向简单图。约束可满足性问题方 法的目标就是用值域里的值实例化样本电路中的变量,找出一组合适的组合。3.构造约束可满足性问题的约束集合将约束可满足性问题图匹配的方法思想应用于装箱问题,除了考虑有向简单图匹配时应 满足的约束条件外,还需要加入额外的约束条件使其能匹配电路。装箱问题的约束描述如下C恋 二 {d E £> I typeh) = type{d), χ, E Χ} Ctype指代类型约束,Xi指任意元件或线网变量,d指任意元件或线网值,D指元件和线网值的集合。变量和值都具有类型, 与电路相关的类型包括元件类型和线网的类型。元件类型就是电路特定的元器件种类,如 LUT、DFF等。线网类型则是与其相连接的起点和终点元件的类型有关,定义为type(VSKC)_ ARC_type (Vtae),Vsec指起点顶点,Vtae指终点顶点,type ()指代类型函数。类型约束实际上 是简单图上的顶点和有向边的标识,描述如图2(b)括号中的表示。2、起点约束
权利要求
1.一种FPGA可编程逻辑块通用装箱方法,其特征在于具体步骤为将FPGA的可编程 逻辑块的芯片配置描述为一系列用于约束可满足性问题图匹配方法的有向简单图,即将用 户电路和功能电路转换成有向简单图,分别作为约束可满足性问题图匹配的目标图和样本 图;构造约束可满足性问题的变量集合和值域;构造约束可满足性问题的约束集合;求解 约束可满足性问题,在用户电路中识别出芯片所支持的逻辑功能子电路进行装箱操作。
2.根据权利要求1所述的FPGA可编程逻辑块通用装箱方法,其特征在于所述将用户电 路和功能电路转换成有向简单图,有向简单图有两部分构成顶点的集合V和边的集合E ; 一个电路元件对应有向图中的一个顶点,从一个元件的输出端到另一个元件的输入端存在 一个连接,即对应一条边;在进行有向简单图转换时,电路的输入输出端口被忽略,每个顶 点和边都有名称和类型两个属性,顶点的名称和类型与其所代表元件的名称和类型相同, 边的名称和类型由其连接两端的元件名称和类型共同决定。
3.根据权利要求2所述的FPGA可编程逻辑块通用装箱方法,其特征在于所述构造约束 可满足性问题的变量集合和值域,当将功能配置电路转换成有向简单图作为约束可满足性 问题图匹配方法的一个样本图时,此约束可满足性问题中的变量χ就是样本图中的顶点或 者有向边;每个功能配置电路有许多元件和线网组成,这些元件和线网都被抽象成各个变 量,一个功能配置电路就对应了一组的变量集合X ;而约束可满足性问题的值域D对应于用 户电路转换成的有向简单图。
4.根据权利要求3所述的FPGA可编程逻辑块通用装箱方法,其特征在于所述构造约束 可满足性问题的约束集合,具体描述如下(1)、类型约束
5.根据权利要求4所述的FPGA可编程逻辑块通用装箱方法,其特征在于所述求解约 束可满足性问题采用通用的回溯方法。
6.根据权利要求5所述的FPGA可编程逻辑块通用装箱方法,其特征在于具体操作步骤 如下(1)、读入用户电路网表和FPGA可编程逻辑块的功能描述文件;(2)、将用户网表转化为用户电路有向简单图;(3)、将功能描述文件转换为样本电路有向简单图;(4 )、从样本电路图中提取出约束可满足性问题变量集合和约束集合; (5 )、利用回溯方法求解约束可满足性问题问题进行图匹配;(6)、将所有找到的子图转化为基本逻辑块(LogicCell, LC);(7)、将所有的基本逻辑块进行时序驱动的装箱操作,覆盖整个用户网表;(8)、结束;其中第(2)步和第(3)步将电路图转化为有向简单图的具体步骤为 2. 1、忽略电路的输入输出端口 ; 2. 2、提取电路元件转成顶点;·2. 3、将多输出的线网拆成对应sink数目输出的线网; 2. 4、提取电路线网转成有向边; 2. 5、结束;其中第(5)步回溯方法具体步骤为 5.1、变量排序;·5. 2、实例化当前变量&,成功实例化后转至步骤5. 3 ;当无法继续实例化变量时,如果Xc是第一个变量,转至步骤5. 6,否则转至步骤5. 5 ;-5. 3、通过与当前变量xc有关的约束条件C,找到下一个变量%,转至步骤5. 4 ;如果已 经实例化完所有变量,转至步骤5. 6 ;-5. 4、对&实例化,在可能的值域中找到实例化值,如果满足约束条件C,将此变量&定 义为xc,转至步骤5. 3 ;如果不满足约束条件C,如果可以继续实例化,继续当前步骤5. 4,否 则转至步骤5. 5 ;-5. 5、撤销上一个变量的实例化,转至5. 2 ; 5. 6、结束;其中第(7)步进行时序驱动装箱操作的具体步骤为 7. 1、计算所有找出的LC的时间关键度因子; 7. 2、选取时间关键度因子最高的LC作为种子; 7. 3、新建一个可编程逻辑块CLB,添加入当前作为种子的LC ; 7. 4、如果当前CLB未满,选取与种子LC关系最为紧密的LC添加入CLB中,否则转至步 骤 7. 3 ;-7. 5、将当前CLB添加入网表;-7. 6、判断LC集合是否为空,不为空则转至步骤7. 2 ;-7. 7、整个用户电路装箱完成,结束。
全文摘要
本发明属于电子技术领域,具体为一种面向复杂FPGA可编程逻辑块通用装箱方法。本发明是将FPGA的可编程逻辑块的芯片配置描述为一系列用于约束可满足性问题图匹配方法的有向简单图,然后利用约束可满足性问题图匹配方法在用户电路中识别出芯片所支持的逻辑功能子电路进行装箱操作。本发明只要预先定义好描述目标FPGA逻辑功能电路的库文件,就能够支持对不同结构的FPGA芯片进行装箱,如能够对快速进位链,分布式存储器,移位寄存器,LUT5,LUT6等FPGA的各种功能配置进行装箱,有效提高芯片逻辑资源利用率,改善电路时序性能。本发明能够按照指定要求对电路进行优化,同时实现各种模块化电路的映射,在系统架构设计和可重构系统中都有重要的应用。
文档编号G06F17/50GK102054110SQ20111002880
公开日2011年5月11日 申请日期2011年1月27日 优先权日2011年1月27日
发明者周学功, 梁绍池, 王伶俐, 陈志辉, 龚爱慧 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1