一种基于现场可编程门阵列芯片的工艺映射方法与流程

文档序号:11134265阅读:537来源:国知局
一种基于现场可编程门阵列芯片的工艺映射方法与制造工艺

本发明涉及集成电路技术领域,尤其涉及一种基于现场可编程门阵列芯片的工艺映射方法



背景技术:

现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。

然而,在现有的FPGA芯片的工艺映射过程中,总存在着一些问题,如一些FPGA芯片由于对应用的各种算法过于通用,从而失去了针对每款FPGA芯片架构进行订制化支持的能力;一些FPGA芯片由于过于针对FPGA芯片架构的细节进行优化,而当FPGA芯片架构发生变化时,为了支持新的架构,需要花费大量时间对该架构下的算法进行重新编写。

由此可知,现有的工艺映射过程不能针对不同的FPGA芯片架构进行及时、相应的处理,从而导致耗时长,或不能完成映射流程等问题。



技术实现要素:

为了解决上述问题,以实现最大限度的保留工艺映射算法的通用性,同时可以快速支持多款FPGA芯片新架构的不同特性,由此本申请提供了一种基于现场可编程门阵列芯片的工艺映射方法。该方法包括:对用户电路进行逻辑综合处理,获取结构级电路,结构级电路包括宏单元。宏单元是至少具有运算逻辑行为和选择逻辑行为的功能单元。当现场可编程门阵列芯片架构中包括与宏单元相对应的功能模块时,将宏单元映射到功能模块上。

在一个可选的实现中,该方法还包括:当现场可编程门阵列芯片架构中不包括与宏单元相对应的功能模块时,将宏单元进行逻辑单元拆分,获取第一门级单元和第一寄存器,第一门级单元和所述第一寄存器构成的逻辑结构与宏单元有相同的逻辑行为。

在一个可选的实现中,该结构级电路还包括门级电路,门级电路包括第二门级单元,根据结构级电路的逻辑行为,对第二门级单元进行查找表映射,获取相应查找表。

在一个可选的实现中,该结构级电路还包括第二寄存器,根据现场可编程门阵列芯片架构,将宏单元映射到芯片对应的功能模块上之后,该方法还包括:将查找表、第一寄存器和第二寄存器,统一映射到现场可编程门阵列芯片架构中对应的查找表和寄存器上。

通过本申请提供的方法可以降低时间成本与空间(软件内存)成本,从而提高FPGA整体芯片的最高工作频率fmax。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种基于现场可编程门阵列芯片的工艺映射方法的流程图;

图2为现有技术逻辑综合过程中加法器由行为级向结构级的转变过程;

图3为本发明实施例提供的一种宏单元的结构示意图;

图4为本发明实施例提供的另一种宏单元的结构示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明提供的基于现场可编程门阵列FPGA芯片的工艺映射方法应用在FPGA芯片的工艺流程中逻辑综合流程后的映射流程中,该方法可以最大限度的保留工艺映射算法的通用性,同时可以快速支持多款新FPGA芯片架构各自不同的特性。下面将通过实施例进行详细介绍。

图1为本发明实施例提供的一种基于现场可编程门阵列芯片的工艺映射方法的流程图,如图1所示,该方法可以包括:

步骤110、对用户电路进行逻辑综合处理,获取结构级电路,该结构级电路可以包括宏单元,宏单元可以是至少具有运算逻辑行为和选择逻辑行为的功能单元。

用户电路是使用硬件描述语言(verilog或VHDL)编译而成的电路,将使用高层次的硬件描述语言编译而成的行为级用户电路,经逻辑综合处理后,成为结构化的结构级电路。该结构级电路可以包括宏单元、门级电路。其中,宏单元可以是具有运算逻辑行为和选择逻辑行为的功能单元,也可以是具有译码逻辑行为和解码逻辑行为的功能单元。宏单元可以是加法器、减法器、乘法器、除法器、求余器、比较器、多路选择器、选择器、解码器、存储器,也可以是上述器件的任意组合。门级电路可以包括第二门级单元、寄存器和三态门等等,第二门级单元可以是与门、或门、非门,也可以是与门、或门、非门的任意组合。

根据行为级硬件描述语言中的逻辑行为,综合成具有相应功能的结构级宏单元。以宏单元为加法器为例进行说明。图2为现有技术逻辑综合过程中加法器由行为级向结构级的转变过程。如图2所示,根据输入信号A和B的加法逻辑行为,经逻辑综合处理后,将该加法逻辑行为转变为结构化的加法器。

在一个例子中,用户在寄存器转换级电路(register transfer level,RTL)中写了一个乘法逻辑运算,输入信号分别为A和B,其中,输入信号A和B都是35位信号,即要实现35位与35位的乘法,将逻辑电路中完成上述运算的部分电路封装成一个宏单元,即该宏单元可以是完成乘法运算功能的乘法器,如图3所示,乘法器的输入端A、B为该宏单元的输入端,乘法器的输出端mult为该宏单元的输出端。

在一个例子中,宏单元可以是除法器与求余器的组合,如在图4中,宏单元的输入端为除法器的输入端,该输入端分别接入20位的输入信号A和B,除法器的输出端C连接至求余器的一个输入端,求余器的另一个输入端接入20位的输入信号D,求余器的输出端O为宏单元的输出端。

由此可知,在实际FPGA芯片架构中,对较大的乘法器或多路选择器而言,对应的门级电路的规模较大,运算时耗时较长,而经过获取的宏单元处理后的门级电路,简化了结构级电路的结构。同时宏单元是与实际的具体器件无关的通用单元,对于同一个宏单元可以支持不同的FPGA芯片架构,也就是说,宏单元结构中的功能单元是完全可以复用的。

步骤120、当现场可编程门阵列芯片架构中包括与宏单元相对应的功能模块时,将宏单元映射到功能模块上。

若在实际的FPGA芯片架构中包含进位链模块或DSP模块,则加法器、比较器、除法器等宏单元通常会被映射到进位链上,乘法器构成的宏单元通常会被映射到DSP模块上。若实际架构中没有对应的DSP模块而存在进位链,那么乘法器、除法器等宏单元会被映射到进位链上。

可选地,该方法还包括:当现场可编程门阵列芯片架构中不包括与宏单元相对应的功能模块时,将宏单元进行逻辑单元拆分,获取第一门级单元和第一寄存器。其中,第一门级单元和第一寄存器构成的逻辑结构与宏单元有相同的逻辑行为。第一门级单元可以是与门、或门、非门,也可以是与门、或门、非门的任意组合。

若在实际的FPGA芯片中没有对应处理获取的宏单元的功能模块时,该宏单元会转化为标准库单元,标准库单元可以包括门级单元(如与门、或门)和寄存器等,并对标准库单元中的门级单元进行查找表映射,获取相应查找表,以及对标准库单元中的寄存器进行寄存器映射,获取相应物理层的寄存器。

图2中的35位*35位的乘法运算要对应几万甚至几十万的逻辑门电路,然而对于有DSP模块的FPGA芯片架构来说,上述庞大的逻辑门数量是没有意义的,因为乘法运算可以直接通过DSP模块来实现。根据FPGA芯片架构的实际情况,若FPGA芯片架构上有与宏单元功能对应的DSP模块,则将获取的乘法宏单元映射在硬件DSP上;若FPGA芯片架构中没有与宏单元功能对应的DSP模块,但是有进位链,则将获取的乘法宏单元映射在进位链上;若FPGA芯片架构中既没有相对应的DSP模块,也没有进位链,则此时将获取的乘法宏单元转化为标准库单元,经过查找表映射后转化为查找表。

可以理解的是,当映射到FPGA芯片架构中对应的功能模块时,通常映射结果已经是最优或是接近最优的结构,因此往往不需要后续的步骤再进行优化;同时这些功能模块都是从宏单元提取产生的,不需要从门级电路中提取这些功能模块。

进一步的,当FPGA芯片架构中包括与宏单元相对应的功能模块时,根据结构级电路的逻辑行为,对第二门级单元进行查找表映射,获取相应查找表。

当FPGA芯片架构中不包括与宏单元相对应的功能模块时,根据结构级电路的逻辑行为,对第一门级单元和第二门级单元共同进行查找表映射,获取相应查找表。

最后将获取的所有查找表和所有寄存器,统一映射到所述现场可编程门阵列芯片架构中对应的查找表和寄存器上,从而完成FPGA芯片的整体映射流程。

本发明实施例提供的基于现场可编程门阵列芯片的工艺映射方法,该方法可以通过对用户电路进行逻辑综合处理,获取结构级电路,该结构级电路包括宏单元。宏单元是至少具有运算逻辑行为和选择逻辑行为的功能单元。当现场可编程门阵列芯片架构中包括与宏单元相对应的功能模块时,将宏单元映射到功能模块上。该方法不仅可以最大限度的保留工艺映射算法的通用性,也可以快速支持多款新FPGA芯片架构各自不同的特性,从而降低了时间成本与空间(软件内存)成本,提高了FPGA整体芯片的最高工作频率fmax。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器、闪存、只读存储器、可擦除可编程只读寄存器(英文:erasable programmable read-only memory,EPROM)存储器、电可擦可编程只读存储器存储器(英文:electrically erasable programmable read-only memory,EEPROM)、硬盘、只读光盘(英文:compact disc read-only memory,CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1