FPGA芯片中多输入查找表的布局方法
技术领域
本发明涉及集成电路技术领域,特别是一种FPGA芯片中多输入查找表的布局方法。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
FPGA通常由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。其中,基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的。
目前以硬件描述语言(Verilog或VHDL)描述的逻辑电路,可以利用逻辑综合和布局、布线工具软件,快速地烧录至FPGA上进行测试。其中,布局所遵循的方法,对于布局面积,后续布线是否能够不通,和逻辑电路的时序都起着至关重要的作用。
发明内容
本发明提供了一种FPGA芯片中多输入查找表的布局方法,能够将实现N+1位查找表逻辑功能的LUT和选通器的物理位置设置在同一个逻辑单元(logic element,LE)中,从而保证布局的准确性,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
本发明实施例提供了一种FPGA芯片中多输入查找表的布局方法,所述FPGA芯片包括多个逻辑单元,每个逻辑单元包括多个n输入查找表;包括:
基于用户设计确定所述多输入查找表的输入信号位数m;其中m,n均为自然数,且m>n;
将m位输入信号中的n位,分别映射到2(m-n)个所述n输入查找表的信号输入端,将m位输入信号中的其余(m-n)位输入信号,映射到由(2(m-n)-1)个二选一选通器构成的选通模块的选通信号输入端上,用以选通模块根据所述(m-n)位输入信号选通输出所述2(m-n)个n输入查找表中的一个信号输出端的输出信号;
将所述2(m-n)个n输入查找表、所述选通模块和与所述选通模块相连接的寄存器封装为一个宏单元;
基于所述宏单元进行全局布局,确定每一个宏单元的布局区域,其中,所述确定每一个宏单元的布局区域的方法包括:在所述布局区域的一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的一个可用布局位置,根据可用布局位置,检查与(2(m-n)-1)个二选一选通器相连接的n输入查找表和寄存器的位置是否被其他逻辑占用,如果没有被其他逻辑占用,则基于所述可用布局位置,对2(m-n)个n输入查找表和所述寄存器进行布局;如果被其他逻辑占用,则在所述布局区域的一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的下一个可用布局位置,或者在所述布局区域的下一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的一个可用布局位置;
在所述布局区域内进行局部布局,确定所述宏单元内的2(m-n)个n输入查找表、(2(m -n)-1)个二选一选通器和所述寄存器的布局位置。
优选的,所述FPGA芯片包括多个所述布局区域,每个所述布局区域包括多个所述逻辑单元;所述在所述布局区域内进行局部布局,确定所述宏单元内的2(m-n)个n输入查找表、(2(m-n)-1)个二选一选通器和所述寄存器的布局位置具体为:
对布局区域的设计进行设计规则检查DRC,确定查找表、选通器和寄存器的放置位置是否合法,将所有DRC检测合法的位置作为可用位置,然后根据每个可用位置确定最优布局位置置。
进一步优选的,在所述基于所述可用布局位置,对所述2(m-n)个n输入查找表和所述寄存器进行布局之前,还包括:
判断所述寄存器是否满足所述逻辑单元的控制信号要求;
当所述寄存器满足所述逻辑单元的控制信号要求时,基于所述可用布局位置,对所述2(m-n)个n输入查找表和所述寄存器进行布局。
优选的,n=4或者n=6。
优选的,m-n≤2。
本发明实施例提供的FPGA芯片中多输入查找表的布局方法,将每个实现N+1位查找表逻辑功能的LUT和选通器打包成一个宏单元,在全局布局时,整体移动宏单元的布局位置,再在局部布局时对宏单元内部的LUT和选通器进行布局,使得宏单元内部的LUT和选通器的物理位置设置在同一个逻辑单元中,保证了布局的准确性,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
附图说明
图1为本发明实施例提供的FPGA芯片中多输入查找表的布局方法的流程图;
图2为本发明实施例提供的第一种宏单元结构示意图;
图3为本发明实施例提供的第二种宏单元结构示意图;
图4为本发明实施例提供的进行全局布局的示意图;
s1为第一输入信号,s2为第二输入信号,s3为第三输入信号,
s4为第四输入信号,s5为第五输入信号,s6为第六输入信号,
s7为第七输入信号,s8为第八输入信号。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它的实施例,都属于本发明保护的范围。
图1为本发明实施例提供了一种FPGA芯片中多输入查找表的布局方法的流程图。如图所示,所述方法包括如下步骤:
步骤110,基于用户设计确定所述多输入查找表的输入信号位数m;
具体的,在电子线路设计中,综合工具根据用户设计输入的硬件描述语言(Verilog或者VHDL),将用户设计转换为网表(netlist),利用网表来描述电路元件相互之间连接关系。
本发明实施例所针对的用户设计为m选1查找表。
其中,FPGA芯片的逻辑单元(LE)中,具有多个n选1的查找表,通常为4选1或者6选1。用户设计的m选1查找表,m的数量大于n,即该m选1查找表无法仅利用一个FPGA芯片所具有的n选1查找表实现。
步骤120,将m位输入信号中的n位,分别映射到2(m-n)个所述n输入查找表的信号输入端,将m位输入信号中的其余(m-n)位输入信号,映射到由(2(m-n)-1)个二选一选通器构成的选通模块的选通信号输入端上,用以选通模块根据所述(m-n)位输入信号选通输出所述2(m-n)个n输入查找表中的一个信号输出端的输出信号;
具体的,以图2为例,在如图2所示的例子中,FPGA中具有的查找表为6输入查找表,用户设计为8输入查找表。
根据本实施例的方法,将8位输入信号的其中6位,分别映射到4个(2(m-n)=2(6-4)=22=4)6输入查找表(lut a、lut b、lut c、lut d)的信号输入端,映射到4个6输入查找表输入端的6位信号,是相同的。其余2位输入信号中的1位,映射到与4个6输入查找表的输出端两两相连的两个二选一选通器mux1和mux2的选通信号输入端上,通过mux1选通lut a、lutb的输出,通过mux2选通lut c、lut d的输出。剩余1位输入信号,映射到前述两个二选一选通器mux1和mux2的输出端连接的二选一选通器mux3上,通过mux3选通mux1和mux2输出端的输出信号,即选通lut a、lut b、lut c、lut d的其中一个查找表输出的信号。
在本例中,mux1、mux2和mux3构成所述选通模块,根据2位(m-n=6-4=2)的输入信号选通输出4个6输入查找表中一个信号输出端的输出信号。
步骤130,将所述2(m-n)个n输入查找表、所述选通模块和与所述选通模块相连接的寄存器封装为一个宏单元;
具体的,此处的‘封装’并非是物理上的封装,而是指在全局布局过程中将2(m-n)个n输入查找表、选通模块和与选通模块相连接的寄存器(Reg)视为一个整体的宏单元(macro)进行处理。
对于不同的设计输入来说,宏单元的结构可以是不同的。
优选的,宏单元中,选通模块中包括的选通器的级数为1级或者2级,也就是说0<m-n≤2。
如图2中所示的宏单元结构,选通模块中的选通器级数为2级。其中第一级包括两个二选一选通器,第二级包括一个二选一选通器。通过第一级的二选一选通器,分别对4个查找表中的输出信号进行选择,输出其中两个查找表的输出信号,再利用第二级二选一选通器,对这两个输出信号进行选择,输出其中的一个信号。因此当图2所示的宏单元结构中,查找表为4输入查找表时(图2中仅示出了6输入查找表的情况),该宏单元结构实现的是LUT6的逻辑。当图2所示的宏单元结构中,查找表为6输入查找表时,该宏单元结构实现的是LUT8的逻辑。所述逻辑的输出,被存储到与最后一级二选一选通器相连接的寄存器中。
选通模块中的选通器级数为1级的情况可以如图3所示。在图3中所示的宏单元结构中,选通模块包括一个二选一选通器,用于对两个查找表的输出信号进行选择。当图3所示的宏单元结构中,查找表为4输入查找表时(图3中仅示出了6输入查找表的情况),该宏单元结构实现的是LUT5的逻辑;查找表为6输入查找表时,该宏单元结构实现的是LUT7的逻辑。
步骤140,基于所述宏单元进行全局布局,确定每一个宏单元的布局区域;
具体的,将宏单元作为一个整体在FPGA中进行布局,全局布局过程可以如图4所示。FPGA芯片包括多个布局区域,每个布局区域包括逻辑单元(Logic Element,LE),每个LE中包括多个n输入查找表、选通器和寄存器。将宏单元作为整体在全局布局中求取最优解,然后确定其布局区域。
确定宏单元的布局区域的具体过程可以如下:
首先,在所述布局区域的一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的一个可用布局位置;
然后,根据可用布局位置,检查与(2(m-n)-1)个二选一选通器相连接的n输入查找表和寄存器的位置是否被其他逻辑占用;
如果没有被其他逻辑占用,则
基于所述可用布局位置,对2(m-n)个n输入查找表和所述寄存器进行布局;
如果被其他逻辑占用,则
在所述布局区域的一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的下一个可用布局位置;或者
在所述布局区域的下一个逻辑单元中确定所述(2(m-n)-1)个二选一选通器的一个可用布局位置。
当然,在确定的布局区域中,选通模块驱动的寄存器需要能够满足逻辑单元的控制信号要求。
步骤150,在所述布局区域内进行局部布局,确定所述宏单元内的2(m-n)个n输入查找表、(2(m-n)-1)个二选一选通器和所述寄存器的布局位置。
具体的,在对宏单元进行全局布局后,在每个布局区域内的一个逻辑单元中对宏单元内的查找表、选通器和寄存器再进行局部布局。
具体可以是通过对布局区域的设计进行设计规则检查(design rule check,DRC),确定查找表、选通器和寄存器的放置位置是否合法,将所有DRC检测合法的位置作为可用位置。
然后,根据每个可用位置确定最优布局位置。
本发明实施例提供的FPGA芯片中多输入查找表的布局方法,将每个实现N+1位查找表逻辑功能的LUT和选通器打包成一个宏单元,在全局布局时,整体移动宏单元的布局位置,再在局部布局时对宏单元内部的LUT和选通器进行布局,使得宏单元内部的LUT和选通器的物理位置设置在同一个逻辑单元中,保证了布局的准确性,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。