一种基于模式匹配的FPGA逻辑综合方法技术

技术编号:7242130 阅读:181 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于模式匹配的FPGA逻辑综合方法,该方法首先依据用户设定的RTL级电路生成待匹配模块的数据结构;然后加载预定义时序模块及预定义组合模块说明;再逐一选取中RTL级电路中每一待匹配模块及其相应数据结构,并判定该选取到的待匹配模块与每个预定义模块是否匹配;一旦该待匹配模块与所述预定义模块中的一个相匹配,则例化该预定义模块。本发明专利技术的逻辑综合方法使片上逻辑资源具有更小的占有量,且逻辑实现的时钟延迟更小,该方法能够广泛应用于FPGA逻辑综合中。

【技术实现步骤摘要】

本专利技术涉及集成电路,尤其涉及FPGA逻辑综合方法。
技术介绍
在IC设计流程中,逻辑综合是后端设计中一个非常重要的环节。逻辑综合就是根据芯片制造商提供的基本电路单元库,将硬件描述语言描述的RTL级(Register Transfer Level,寄存器传输级)电路转换为电路结构模型(电路网表)的过程。现有逻辑综合过程为从原始电路图出发,经过逻辑分析,得出电路的详细描述,然后再进行逻辑优化,得到简化的逻辑表达,通过逻辑映射得到与实际电路单元的映射关系, 最后基于这种映射关系给出电路分析。FPGA (Field Programmable Gate Array,现场可编程门阵列)是在 PAL、GAL、CPLD 等可编程器件基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,FPGA既克服了定制电路的不足,又解决了原有可编程器件门电路数有限的缺点。图1示出了一种基本FPGA逻辑单元(logic cell,下称LC),其包括查找表 (look-up table,即LUT)和D触发器(DFF)。4输入LUT被示出具有一组配置存储单元,共 16个,其可以被配置或编程以用于计算任何4输入的组合逻辑功能。LUT的输出不仅仅直接连接到LC的输出,而且还送入D触发器的D输入端,D触发器的Q输出可用作另一个LC 输出。在该逻辑单元内,可以提供多路选择器(multiplexer,即MUX)及其它逻辑以便允许将触发器的Q输出端连接到LUT的某些输入端。另外,逻辑单元的输出信号可以经由一些通用的互连网络路由到逻辑单元的输入端,以便构建任何给定的数字逻辑电路。改进逻辑单元是在图1基本逻辑单元基础上所作出的改进,图2示出了改进后的 FPGA逻辑单元。为了便于软件建模,将此改进后的逻辑单元分为两种,一种是组合型的改进逻辑单元fC_Comb,另一种是时序型的改进逻辑单元fC_reg。图3是组合型的改进逻辑单元fc_c0mb示意图,图4是时序型的改进逻辑单元fc_reg示意图。改进逻辑单元能够实现不同LUT之间的快速逻辑运算。组合型的改进逻辑单元 fc_comb包含wlut chain (串联链)和buddy chain (并联链,伙伴逻辑)。改进型逻辑单元能够完整地表示出符合芯片结构的功能特性和设计模式,通过逻辑综合工具直接将用户设计映射成满足改进型逻辑单元功能的结构化网表,保证面积和性能的最优。因此图2所示的改进逻辑单元在面积和时序方面能够得到更好的结果。对于包含改进逻辑单元的FPGA芯片架构,如果采用现有的逻辑综合方法对其进行逻辑综合,则不能得到最优解,即无法生成由原始FPGA逻辑资源表示的最优等价逻辑网表。
技术实现思路
本专利技术提供了一种能解决以上问题的基于模式匹配的FPGA逻辑综合方法。在第一方面,本专利技术提供了一种逻辑综合方法,该方法首先依据用户设定的RTL 级电路,生成待匹配模块的数据结构;然后加载预定义时序模块及预定义组合模块说明; 再逐一选取步骤a中RTL级电路中每一待匹配模块及其相应数据结构,然后判定该选取到的待匹配模块与步骤b中的每个预定义模块是否匹配;一旦该待匹配模块与所述预定义模块中的一个相匹配,则例化该预定义模块,以便得到映射后的FPGA逻辑资源,进而完成 FPGA的逻辑综合。进一步地,在判定待匹配模块与预定义模块是否匹配时,首先检测该待匹配模块所属类型;若该待匹配模块类型为组合逻辑模块,则判定该模块信号数量与所述预定义组合逻辑模块信号数量是否一致;若一致,则继续判定该模块的信号类型与所述预定义组合逻辑模块信号类型是否一致,若一致,则判定该模块与该组合逻辑模块相匹配。进一步地,在判定待匹配模块与预定义模块是否匹配时,首先检测该待匹配模块所属类型;若该待匹配模块类型为时序逻辑模块时,判定该模块信号数量与所述预定义时序逻辑模块信号数量是否一致;若一致,则继续判定该模块的信号类型是否与所述预定义时序逻辑模块信号类型是否一致,若一致,则说明该模块与该时序逻辑模块相匹配。进一步地,预定义时序模块包括支持异步清位和同步置位的寄存器(aClr_Sl0ad_ reg)、支持异步置位和同步置位的寄存器(aset_sl0ad_reg)中的一个或多个。进一步地,预定义组合逻辑模块包括条件加法逻辑运算(condtionaladder)、与常量进行相等比较的逻辑运算(cmp_eq)、与常量进行大于等于比较的逻辑运算(cmp_ge)、 查找表之间或运算(lut_or_lut)、查找表之间或非运算(lut_n0r_lut)、查找表之间多路选择运算(lut_mux_lut)中的一个或多个。进一步地,在预定义模块为条件加法器情况下,例化后的逻辑电路包括一条多路选择链及一条进位链(carry chain),并且该多路选择器的控制信号为条件信号,多路选择器的输出为进位链的输入。其中,多路选择链由多个多路选择器组成。进一步地,在预定义模块为条件加法器情况下,例化后的逻辑电路包括多个组合型改进逻辑单元(fC_Comb),且该组合型改进逻辑单元(fc_c0mb)通过吸收所述条件加法器中的常量而获得。进一步地,在预定义模块为查找表之间或运算(lut_0r_lut)情况下,例化后的逻辑电路为一个伙伴逻辑(buddy chain),且该伙伴逻辑(buddychain)由多个组合型改进逻辑单元(fc_comb)构成。本专利技术在传统逻辑综合过程中插入一个基于模式匹配的综合算法,从而得到从 RTL级电路到预定义模块之间的匹配。本专利技术的优势体现在片上逻辑资源占有量小,逻辑实现时钟延迟小,所支持时钟频率高,功耗低且能够在面积和性能之间达到平衡。附图说明下面将参照附图对本专利技术的具体实施方案进行更详细的说明,在附图中图1是基本FPGA逻辑单元结构示意图;图2是改进FPGA逻辑单元结构示意图;图3是组合型的改进逻辑单元示意图;图4是时序型的改进逻辑单元示意图5是本专利技术一个实施例的逻辑综合流程图;图6是本专利技术一个实施例的模式匹配算法流程图;图7是RTL级条件加法器的硬件结构示意图;图8是现有技术中对图7例化成的逻辑电路示意图;图9是本专利技术一个实施例的对图7映射后的逻辑电路示意图;图10是本专利技术另一个实施例的对图7映射后的逻辑电路示意图;图11是RTL级或操作的硬件结构示意图;图12是现有技术中对图11映射后的逻辑电路示意图;图13是本专利技术一个实施例的对图11映射后的逻辑电路示意图。 图14是图13的内部实现示意图。具体实施例方式图5是本专利技术一个实施例的逻辑综合流程图。在步骤510,该步骤是RTL级电路设计阶段。在该阶段中,用户通过硬件描述语言 (Verilog、VHDL等)描述出其想达到功能。在步骤520,对步骤510中的RTL级电路进行语法扫描,经语法扫描后生成语法树ParserTree,进而确立与细化过程Elaboration生成内部数据结构EDB(Elaborated Database)。所述语法扫描可以采用常规的任意一种语法扫描方式,如采用Flex、Flex++、 Flexc++等开源软件工具所生成的扫描程序进行语法扫描,以生成语法树及内部数据结构 EDB。在步骤530,遍历步骤520得到的语法树,并执行模式匹配综合算法(具体算本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:樊平王海力
申请(专利权)人:雅格罗技北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术