一种基于FPGA的多输入LUT的布局方法与流程

文档序号:31023886发布日期:2022-08-05 23:04阅读:334来源:国知局
一种基于fpga的多输入lut的布局方法
技术领域
:1.本技术涉及集成电路应用领域,尤其涉及一种基于fpga的多输入lut的布局方法。
背景技术
::2.在fpga(fieldprogrammablegatearray)芯片设计过程的综合实现阶段中,综合布局阶段会将硬件描述语言设计的电路编译为由基本逻辑单元连接而成的逻辑网表,网表的基本组成部分主要是各类寄存器reg(register)和多输入查找表lut(lookuptable)。在之后的实现布线阶段中,程序会将这些网表分配到芯片上实际存在的门电路上,并确定它们的连接路径。3.通常,fpga芯片包括多个可编程逻辑模块(programmablelogicblock,plb),基于不同的型号,每个plb包含一定数量的逻辑区lp(logicparcel),每个lp包括一定数量的查找表lut、寄存器reg、加法器add和多路选择器mux等,在布局阶段,以plb为一个独立的单元,实现逻辑映射的信号除了来自于plb内部,还有来自于plb外部的输入信号,由于每个lp中对外部输入信号进行布线的资源是有限的,往往需要再重新寻找新的lp进行布局,这样会造成新的lp中主体资源lut、reg等的浪费。技术实现要素:4.本发明的目的是针对现有技术的缺陷,提供了一种基于fpga的多输入lut的布局方法,能够充分利用plb内部的端口资源。在寄存器reg有外部信号驱动,且外部信号的输入端发生布线冲突时,判断lut实际使用的输入端口数的个数。在至少一个lut的输入端口和输出端口都有悬空的情况下,将lut任一悬空的输入端口和任一悬空的输出端口转化为寄存器reg外部信号的布线资源使用。从而减少需要重新布局的lp的数量,使布局结果更加紧凑,使用面积更小。5.本发明提供了一种基于fpga的多输入lut的布局方法,所述布局方法实现在fpga的一个逻辑区lp内增加至少一根外部信号输入端口,所述lp中包括多输入查找表lut,至少两个寄存器reg;所述外部信号输入端口用于所述寄存器接入外部输入信号时使用,所述布局方法包括:6.对fpga进行布局,所述fpga包含plb,所述plb包含lp,使用所述lp中lut的输入端口和输出端口实现逻辑功能;所述lp中包括lut,至少两个寄存器;7.当所述寄存器有外部信号驱动时,判断所述外部信号的输入端是否发生布线冲突;当所述外部信号的输入端发生布线冲突时,判断所述lp中lut使用的输入端口数量和输出端口数量;8.当所述lp中至少一个lut的输入端口和输出端口都有悬空时,选择所述至少一个lut中的一个特定lut;将所述特定lut的任意一个悬空输入端口结合特定lut的任意一个悬空输出端口布局成一个单输入单输出的选通器;所述选通器的输入端用于给所述寄存器接入外部输入信号时使用;所述特定lut除所述任意一个悬空端口和所述任意一个输出端口之外的其他输入端口和输出端口的所述逻辑功能保持不变。9.所述多输入lut具有两个输出端口,所述输出端口为x、xy。10.优选的在所述输出端的xy端口通过选通规则输出任意需要的功能信号,将输出端x端口悬空。所述选通规则在所述lut查找表中进行设置。11.优选的,将所述lut没有使用的输入端口悬空。12.优选的,在所述特定lut查找表控制数据的开头写b0表示所述特定lut布局不变,写b1表示将所述特定lut的任意一个悬空输入端口结合特定lut的任意一个悬空输出端口布局成一个所述单输入单输出的选通器。13.优选的,fpga为hmec1/p1fpga芯片。14.本发明实施例提供的一种基于fpga的多输入lut的布局方法,基于hmec1/p1的lp结构,相比现有技术,在lut的输入端口和输出端口有悬空的情况下,通过对查找表lut控制数据的模式选择,将lut的任意一个悬空输入端口结合任意一个悬空输出端口布局成一个单输入单输出的选通器,将悬空的端口转化为布线资源使用。可以在lp中寄存器由外部驱动且发生布线冲突时,减少需要重新布局的lp的数量,使相关线网的门电路元件实际布局位置更加接近,减少布线所用时间,缩短布线路径长度,由此可以减小fpga芯片延时,提高fpga芯片的关键频率。附图说明15.为了更简单说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。16.图1为本发明实施例中基于hmec1/p1fpga器件的lut,在现有技术中设置为六输入单输出的电路图;17.图2为本发明实施例中基于hmec1/p1fpga器件的lut,其悬空输入和输出端口设置成单输入单输出选通器的电路图;18.图3为本发明实施例中基于hmec1/p1fpga器件的一个lp的内部结构图。具体实施方式19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。20.本发明下述实施例中的方法是基于hmec1/p1fpga器件实现的,为更好的理解本发明实施例提供的技术方案,首先对hmec1/p1fpga器件的逻辑结构进行简单说明。21.在hmec1/p1fpga的硬件架构中,fpga芯片中包括多个可编程逻辑模块(programmablelogicblock,plb),一般为n×m的矩形阵列,每一个plb包括4个逻辑区lp(logicparcel),每个lp包括两个六输出单输出查找表lut6和四个寄存器reg,两个加法器add和八个多路选择器。22.在图1中,实际的芯片中使用的lut是六端口输入,布局算法将门电路网表中的多输入门电路放置到计算出来的lut位置上。23.lut6布局完成后,输入端口为f[5:0],输出端口为x、xy,在输入端接入至少一个输入信号,分布在f0-f5中的任意位置;在输出端xy端口通过选通规则输出任意需要的功能信号,输出端x端口限定为悬空状态,没有信号输出。选通规则在查找表中进行设置。[0024]在lut6输入端f[5:0]任意端口接入输入信号个数为k(0≤k≤6),当k>0时,表示lut6功能没有闲置,输入信号占用端口位置为f:k(0≤k≤5),占用端口个数为k个,通过修改查找表可以在xy端口输出需要的功能信号。[0025]将lut6的输入端中除接入f:k(0≤k≤5)位置的k个端口之外的其他输入端口悬空。[0026]在图2中,当寄存器有外部信号驱动时,判断外部信号的输入端是否发生布线冲突。当外部信号的输入端发生布线冲突时,判断lut6使用的输入端口数量。[0027]在一个实施例中,当lut6使用的输入端口数量小于5时,至少有两个输入端口悬空,通过对查找表lut6控制数据的模式选择设置,将lut6的任意一个悬空输入端口和任意一个悬空输出端口布局成一个单输入单输出选通器。此时,lut6的布局包括新增外部接口模块lut5_1和原有功能模块lut5_2。因为hmec1/p1fpga器件内部结构特点,在转变后的布局中,输入端口f5被直接空置,无信号连接,不能再用于布局布线。[0028]优选的,新增外部接口模块lut5_1功能上等同于一个单输入单输出的选择器,用来给寄存器提供一个输入端,作为外部输入信号的布线资源使用。[0029]优选的,原有功能模块lut5_2用于实现lut6原有的逻辑功能,其使用的输入端和输出端位置和顺序是否改变不做限定。[0030]优选的,在一个lp中能找到的符合上述布局条件的lut6的个数,就是该lp内可增加外部信号输入端口的根数。[0031]优选的,模式选择设置通过写查找表内部的控制数据的时候实现,比如在查找表数据的开头写b0表示lut6布局不变,写b1表示将lut6的任意一个悬空输入端口和任意一个悬空输出端口布局成一个单输入单输出选通器。[0032]优选的,将lut没有使用的输入端口悬空。[0033]lut6本来的一个悬空的输入端口与一个悬空的输出端口用于此lp中其他门电路的布线。于是同一lp中的门电路在后续的drc检查中由于多出一条布线路径,所能放下的不发生路径冲突的寄存器等各类门电路数量也随之变多,在详细布局过程中,此类门电路也就不用再重新寻找位置进行布局。[0034]在一个实施例中,布局转变生成的新增外部接口模块lut5_1输入端口为f1[4:0],输出端口为x,原有功能模块lut5_2输入端口为f2[4:0],输出端口为xy,将lut5_1的输入端f1[4:0]与lut5-2的输入端f2[4:0]通过一一对应的关系连接在一起,比如端口f1:0连接f2:0,逐次对应。[0035]在lut5_1输入端f1[4∶0]任意一个悬空的位置接入一个外部驱动输入信号,占用端口位置为f1:n(0≤n≤4),通过修改查找表可以在x端口选通输出f1:n端口的外部驱动输入信号。此时,lut5_1功能上等同于一个单输入单输出的选择器。[0036]在lut5_2输入端f2[4∶0]接入输入信号个数为m(0≤m<5),当m>0时,表示lut5-2功能没有闲置,输入信号占用端口号为f2:m(0≤m≤4,,m≠n),占用端口数为m个,通过修改查找表可以在xy端口输出需要的功能信号。lut5_2用于实现原有lut6的逻辑功能,所使用的输入端和输出端位置和顺序是否改变不做限定。[0037]图2中,因为fpga芯片内部结构原因,lut5_1的输出端口x虽然和lut5_2的输出端口xy连接到一个mux,但可以通过对mux的选通设置,使mux忽略来自x端口的输入信号,从而不影响原有功能模块lut5-2的逻辑功能。[0038]优选的,将lut中没有使用的输入端悬空。[0039]图3中,基于hmec1/p1fpga的lp的内部结构如图所示,一个lp中有两个lut,四个reg,两个加法器add和八个多路选择器,为便于讨论,忽略加法器add与多余的多路选择器,给出一个简要的连接方式,其中lut6_1、lut6_2均为六输入单输出的多输入查找表。除此之外,还有两个外部输入连接线bypass0,bypass1。[0040]基于图3中的连接方式,同一个lp中的某一对reg(如reg0和reg8,reg1和reg9)都由此plb外部的器件驱动的情况下,假设plb中的一对reg(假定为reg0和reg8),两者的输入都来自当前lp所在的plb的外部,由于布线资源有限,也就是一对reg的bypass线只有一根。如图3所示的外部输入连接线bypass0虽然同时连接reg0和reg8前端的多路选择器,但可以通过写查找表的方式,保证bypass0只能同时被reg0和reg8中的一个使用而不产生相互干扰。[0041]此时现有技术lut6的布局情况下,布局时reg0和reg8都被使用,且各自对应有一个不相同的来自于外界的输入信号,可用的布线资源只有bypass0一根连线,此时会因为布线资源不够而发生冲突,于是系统将其中一个reg的位置判断为非法,需要为此reg再寻找另一个合法的布局位置。[0042]在本实施例中,对于使用的lut,检查其在现有技术lut6布局下使用的输入端口数量,如果使用的输入端口数量不超过4,则在布局时对lut的使用模式进行选择,将其转变为两个lut5功能模块。[0043]此时有两个lut5,将xy端口对应的lut5的输入设置为原lut的输入,称这个lut5为lut5_2。因为有悬空的端口,所以lut5的端口是足够用的,可以将悬空的输入端口始终设置为从f4往下走,称另一个lut5为lut5_1。此时,输入端口f5因为内部结构原因被直接空置,无信号连接,不能再用于布局布线。将lut5_2的查找表写成原来布局的lut6一样的查找结果,保证lut5_2的逻辑功能与原来布局的lut6逻辑功能一致。[0044]从图2中的lut5布局的结构图可知,此时lut5_1的输入与lut5_2相同,上文已经提到,只有使用的输入端口数量在5以下时才进行这种优化,因此此时lut5_1的输入端口会存在至少一个悬空的端口,其位置也是从f4往下走。[0045]选择悬空端口之中的任意一个进行使用,修改lut5_1的查找表使得其输出端口x的值设置为选择悬空端口的输入值。此时,lut5_1可以视为一个单输入单输出的选择器,且其输入输出相同。于是可以近似的看成是一根延迟比常规的连接线略高的连接线。对于reg0和reg8而言,此时lp可以提供两根外部输入的导线,一根由bypass0接入,通过mux2选择输出用于reg0的外部输入,一根由lut5_1的输入端口接入,由lut5_1的输出端口x输出后,通过mux1选择输出用于reg8的外部输入,于是不会发生bypass冲突,这两者都处在合法位置上,后续也不用再寻找新的位置。[0046]相对来说,为reg寻找新的位置势必会跨plb寻找,通常plb间连接的时延相比于单个lut的时延来说更大,因此此优化可以有效的降低逻辑时延,并将有关连的器件尽可能的放在相邻位置,因此芯片面积需求也更小。[0047]需要说明的是,虽然本发明的具体实施方案是基于hmec1/p1fpga芯片实现的,但是,本领域技术人员不难理解,本发明所提供的布局方法可以同样或者稍加变化应用与其他架构的fpga芯片中。本发明实施例以六输入作为示例进行说明,并不构成具体输入数限定,lut输入端口的数量具体可结合实际需求确定。按照本发明示例涉及原理和技术说明,关于其他数量输入端口lut的布局转变以此类推。[0048]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0049]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。[0050]在此处所提供的说明书中,说明了大量的具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下完成实现。在一些示例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0051]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1