基于端口交换技术的用于提升布线速度的FPGA布线方法技术

技术编号:26846073 阅读:30 留言:0更新日期:2020-12-25 13:08
本发明专利技术公开了一种基于端口交换技术的用于提升布线速度的FPGA布线方法,涉及FPGA技术领域,该方法在常规的布线流程中构建布线网表之后、在进行全局布线之前加入了重新规划逻辑单元的过程,在重新规划逻辑单元的过程中,从可配置逻辑簇实例所连接的每个信号的负载点中选取种子端口,根据种子端口所在的逻辑单元端口组对该信号连接的其他负载点进行端口交换,利用逻辑单元端口等价交换技术,根据布线资源连接盒结构对用户设计网表中逻辑单元占用的端口进行重新规划,使规划后的逻辑单元连接更加符合布线资源架构,从而可以有效减少布线通道和布线开关的占用和协商探路算法中搜索节点的个数,缩减布线运行时间,提升布线效率。

【技术实现步骤摘要】
基于端口交换技术的用于提升布线速度的FPGA布线方法
本专利技术涉及FPGA
,尤其是一种基于端口交换技术的用于提升布线速度的FPGA布线方法。
技术介绍
FPGA布线是在芯片布局以后,利用器件的可编程互连资源把已经占用的逻辑单元连接起来的过程。FPGA布线的通常流程如下,请参考图1:(1)根据芯片结构构建计算机可识别的数据结构来描述可编程互连资源以及它们之间的连接关系;(2)加载布局后网表,确定每个逻辑单元在器件上都有一个合法的位置;(3)对布局后的网表进行处理,根据布线模块特点构建布线网表得到相应的数据结构;(4)进行全局布线,不考虑资源冲突,为布线网表中每一条信号寻找一条最优路径;(5)进行详细布线,为布线网表中每一条信号寻找一条有效路径,且没有可编程互连资源冲突(相同的点被不同的信号重复使用。可编程互连资源是FPGA中的各模块实现信号传递的桥梁,用于连接内部可配置逻辑簇(CLC,ConfigureLogicCluster)、可编程IO、BRAM等资源,通过该数据传递通道使大量可配置资源协同工作。可编程互连资源主要包括开关盒(SWB,SwitchBox)、连接盒(CB,ConnectionBox)和布线通道等,如图2所示,开关盒位于水平布线通道和垂直布线通道的交汇处,主要实现布线方向的切换和不同布线类型间的切换。连接盒位于可配置逻辑簇的四周,通过开关或者多路选择器实现可配置逻辑簇的输入和输出连接到任意一条水平或者垂直的线道上,连接盒内部提供丰富的布线资源,增加布线的灵活性。用可编程互连资源把已经占用的逻辑单元连接起来的过程本质就是要确定可编程连线资源实际的走线方式。布线器通常使用协商探路算法进行布线,但随着FPGA器件规模越来越大,用户设计越来越复杂,导致协商探路算法中搜索节点的个数较多,布线在FPGA应用开发流程中占用大量的运行时间,布线效率的优劣直接影响应用开发效率和用户使用体验,因此如何提高布线效率减少布线时间是FPGA设计流程中一个关键问题。
技术实现思路
本专利技术人针对上述问题及技术需求,提出了一种基于端口交换技术的用于提升布线速度的FPGA布线方法,本专利技术的技术方案如下:一种基于端口交换技术的用于提升布线速度的FPGA布线方法,在FPGA布线过程中,在构建布线网表之后、在进行全局布线之前,还包括:确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点,可配置逻辑簇实例中包括M个逻辑单元,每个逻辑单元分别包括若干个端口;可配置逻辑簇实例包含的所有端口共形成K个逻辑单元端口组,每个逻辑单元端口组包括分别包括M个逻辑单元中的一个端口,每个负载点分别为可配置逻辑簇实例中的一个端口;从可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口,i为参数且i的起始值为1;确定种子端口所在的逻辑单元端口组,并将第i个信号对应的除种子端口之外的其他各个负载点与逻辑单元端口组中的各个端口进行交换,交换的负载点与端口属于同一个逻辑单元;令i=i+1并再次执行从可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口的步骤,直至i=N时完成对可配置逻辑簇实例的端口重规划并更新对应的可配置逻辑簇实例网表以及逻辑表达式;遍历布线网表中的各个可配置逻辑簇实例,直至对所有可配置逻辑簇实例完成端口重规划。其进一步的技术方案为,从可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:当第i个信号对应的所有负载点中包括预设的特殊端口时,直接选取特殊端口作为种子端口;当第i个信号对应的所有负载点中不包括预设的特殊端口时,按照预定选取逻辑从第i个信号对应的所有负载点中选择一个负载点作为种子端口。其进一步的技术方案为,按照预定选取逻辑从第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:选择可用资源数量最少的一个负载点作为第i个信号的种子端口,负载点的可用资源数量是负载点所在的逻辑单元端口组中未被占用的端口的数量。其进一步的技术方案为,按照预定选取逻辑从第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:选择时延最短的一个负载点作为第i个信号的种子端口。其进一步的技术方案为,该方法还包括:根据连接盒结构建立逻辑簇数据模型,逻辑簇数据模型包括所有信号与可配置逻辑簇的所有端口之间的映射关系;则确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点,包括:获取可配置逻辑簇实例并根据可配置逻辑簇实例重置逻辑簇数据模型,根据重置后的逻辑簇数据模型确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点。其进一步的技术方案为,对于每个可配置逻辑簇实例,直至i=N时完成对可配置逻辑簇实例的端口重规划还包括:当i=N时,检查可配置逻辑簇实例中是否存在端口同时连接至少两个不同的信号;若存在端口同时连接至少两个不同的信号则确定端口存在重叠现象,则将其中一个信号连接至端口所在的逻辑单元中其他未被占用的端口上,完成对可配置逻辑簇实例的端口重规划;若不存在端口同时连接至少两个不同的信号的情况,则完成对可配置逻辑簇实例的端口重规划。其进一步的技术方案为,当可配置逻辑簇实例中存在至少两个逻辑单元包括存在重叠现象的端口时,按照逻辑单元包含的未被占用的端口数量由小到大的顺序依次对各个逻辑单元进行处理。其进一步的技术方案为,对于每个可配置逻辑簇实例所连接的N个信号,按照负载点的数量从大到小的顺序依次选择信号进行处理,并按随机顺序或预定顺序依次选择负载点数量相等的信号进行处理,则第i+1个信号的对应的负载点的数量小于等于第i个信号的对应的负载点。其进一步的技术方案为,对于每个可配置逻辑簇实例所连接的N个信号,按照信号在网表的总扇出数量从大到小的顺序依次选择信号进行处理,并按随机顺序或预定顺序依次选择总扇出数量相等的信号进行处理,则第i+1个信号的对应的总扇出数量小于等于第i个信号的总扇出数量。其进一步的技术方案为,对于每个可配置逻辑簇实例所连接的N个信号,按照信号的边界框从大到小的顺序依次选择信号进行处理,并按随机顺序或预定顺序依次选择边界框相等的信号进行处理,则第i+1个信号的边界框小于等于第i个信号的边界框。其进一步的技术方案为,对于每个可配置逻辑簇实例所连接的N个信号,按照信号的时序余量从小到大的顺序依次选择信号进行处理,并按随机顺序或预定顺序依次选择时序余量相等的信号进行处理,则第i+1个信号的时序余量大于等于第i个信号的时序余量。其进一步的技术方案为,同一个可配置逻辑簇实例在端口重规划前后的功能保持一致。其进一步的技术方案为,可配置逻辑簇实例所连接的N个信号包括可配置逻辑簇实例所连接的所有信号,或者可配置逻辑簇实例所连接的其中部分信号。其进一步的技术方案为,当N个信号是可配置逻辑簇实例所连接的部分信号时,N个信号是可配置逻辑簇实例所连接的所有信号中在网表本文档来自技高网
...

【技术保护点】
1.一种基于端口交换技术的用于提升布线速度的FPGA布线方法,其特征在于,在FPGA布线过程中,在构建布线网表之后、在进行全局布线之前,还包括:/n确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点,所述可配置逻辑簇实例中包括M个逻辑单元,每个逻辑单元分别包括若干个端口;所述可配置逻辑簇实例包含的所有端口共形成K个逻辑单元端口组,每个逻辑单元端口组包括分别包括M个逻辑单元中的一个端口,每个负载点分别为所述可配置逻辑簇实例中的一个端口;/n从所述可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口,i为参数且i的起始值为1;/n确定所述种子端口所在的逻辑单元端口组,并将所述第i个信号对应的除所述种子端口之外的其他各个负载点与所述逻辑单元端口组中的各个端口进行交换,交换的负载点与端口属于同一个逻辑单元;/n令i=i+1并再次执行所述从所述可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口的步骤,直至i=N时完成对所述可配置逻辑簇实例的端口重规划并更新对应的可配置逻辑簇实例网表以及逻辑表达式;/n遍历所述布线网表中的各个可配置逻辑簇实例,直至对所有可配置逻辑簇实例完成端口重规划。/n...

【技术特征摘要】
1.一种基于端口交换技术的用于提升布线速度的FPGA布线方法,其特征在于,在FPGA布线过程中,在构建布线网表之后、在进行全局布线之前,还包括:
确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点,所述可配置逻辑簇实例中包括M个逻辑单元,每个逻辑单元分别包括若干个端口;所述可配置逻辑簇实例包含的所有端口共形成K个逻辑单元端口组,每个逻辑单元端口组包括分别包括M个逻辑单元中的一个端口,每个负载点分别为所述可配置逻辑簇实例中的一个端口;
从所述可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口,i为参数且i的起始值为1;
确定所述种子端口所在的逻辑单元端口组,并将所述第i个信号对应的除所述种子端口之外的其他各个负载点与所述逻辑单元端口组中的各个端口进行交换,交换的负载点与端口属于同一个逻辑单元;
令i=i+1并再次执行所述从所述可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口的步骤,直至i=N时完成对所述可配置逻辑簇实例的端口重规划并更新对应的可配置逻辑簇实例网表以及逻辑表达式;
遍历所述布线网表中的各个可配置逻辑簇实例,直至对所有可配置逻辑簇实例完成端口重规划。


2.根据权利要求1所述的方法,其特征在于,所述从所述可配置逻辑簇实例的第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:
当所述第i个信号对应的所有负载点中包括预设的特殊端口时,直接选取所述特殊端口作为所述种子端口;
当所述第i个信号对应的所有负载点中不包括预设的特殊端口时,按照预定选取逻辑从所述第i个信号对应的所有负载点中选择一个负载点作为种子端口。


3.根据权利要求2所述的方法,其特征在于,所述按照预定选取逻辑从所述第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:
选择可用资源数量最少的一个负载点作为所述第i个信号的种子端口,负载点的可用资源数量是所述负载点所在的逻辑单元端口组中未被占用的端口的数量。


4.根据权利要求2所述的方法,其特征在于,所述按照预定选取逻辑从所述第i个信号对应的所有负载点中选择一个负载点作为种子端口,包括:
选择时延最短的一个负载点作为所述第i个信号的种子端口。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据连接盒结构建立逻辑簇数据模型,所述逻辑簇数据模型包括所有信号与可配置逻辑簇的所有端口之间的映射关系;
则所述确定可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点,包括:
获取所述可配置逻辑簇实例并根据所述可配置逻辑簇实例重置所述逻辑簇数据模型,根据重置后的逻辑簇数据模型确定所述可配置逻辑簇实例所连接的N个信号以及每个信号对应的负载点。


6.根据权利要求1所述的方法,其特征在于,对于每个...

【专利技术属性】
技术研发人员:惠锋虞健董志丹李卿季振凯
申请(专利权)人:无锡中微亿芯有限公司中国电子科技集团公司第五十八研究所
类型:发明
国别省市:江苏;32

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

1