公开/公告号CN105634468A
专利类型发明专利
公开/公告日2016-06-01
原文格式PDF
申请/专利权人 京微雅格(北京)科技有限公司;
申请/专利号CN201410597252.7
申请日2014-10-30
分类号H03K19/177;
代理机构北京亿腾知识产权代理事务所;
代理人陈霁
地址 100083 北京市海淀区学院路30号天工大厦B座20层
入库时间 2023-12-18 15:33:46
法律状态公告日
法律状态信息
法律状态
2018-11-06
授权
授权
2016-06-29
实质审查的生效 IPC(主分类):H03K19/177 申请日:20141030
实质审查的生效
2016-06-01
公开
公开
技术领域
本发明涉及微电子领域中的集成电路设计技术领域,特别是一种FPGA的 布线方法和宏单元。
背景技术
现场可编程逻辑门阵列(FieldProgrammableGateArray,FPGA)是一 种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。 这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广 泛应用。
FPGA的设计流程包括:设计输入、调试、功能仿真、综合、布局布线、 时序仿真、配置下载等步骤。其中布局是指从映射取出定义的逻辑和输入输 出块,并把它们分配到FPGA内部的物理位置,往往需要在速度最优和面积最 优之间做出选择。布线是根据布局的拓扑结构,利用自动布线软件,使用布 线资源选择时序最短路径,试着完成所有的逻辑连接。
目前,在很多FPGA设计中都使用了多路复用器,多路复用器的多级级联 可以形成输入交叉开关矩阵(ixbar)结构,可以实现对输入数据的选择输出 的逻辑,也就是说在输入和输出之间具有唯一确定的路径。多级多路复用器 根据现有自动布线软件,对于多级多路复用器的布线需要将每个多路复用器 的输入和输出都作为布图模型中的结点来处理,因此对于FPGA中用作ixbar 的多级多路复用器的模块越多、级数越多的情况来说,对布图模型中在多级 多路复用器内部的结点进行布线需要消耗大量的内存并增加了很多布线时 间。
发明内容
本发明提供了一种FPGA的布线方法和宏单元,能够减少布图模型中 ixbar的结点数,从而在布线过程中有效降低内存消耗,并降低布线时间。
第一方面,本发明实施例提供了一种FPGA的布线方法,包括:
确定在第一级输入和最后一级输出之间具有唯一确定路径的多级多路复 用器;其中,所述多级多路复用器包括至少两级多路复用器,每级多路复用 器包括一个或多个多路复用器;
将所述多级多路复用器封装为一个宏单元;所述宏单元的输入为所述第 一级输入,所述宏单元的输出为所述最后一级输出;
根据所述宏单元的输入和输出建立结点,进行布图建模,并根据所述布 图建模进行布线。
优选的,所述多级多路复用器为输入交叉开关矩阵ixbar结构。
第二方面,本发明实施例提供了一种宏单元,包括:
第一数量个输入和第二数量个输出;其中,每个所述输入到输出之间, 具有唯一确定的路径;
在进行布线时,根据所述宏单元的输入和输出建立结点,根据所述结点 进行布图建模;并根据所述布图建模进行布线。
优选的,所述宏单元还包括:至少两级多路复用器,每级多路复用器包 括一个或多个多路复用器;
所述宏单元的输入为所述至少两级多路复用器的第一级输入;所述宏单 元的输出为所述至少两级多路复用器的最后一级输出。
进一步优选的,所述至少两级多路复用器为输入交叉开关矩阵ixbar结 构。
优选的,所述第一数量为所述第二数量的两倍。
本发明提供的FPGA的布线方法,通过将第一级输入和最后一级输出之间 具有唯一确定路径的多级多路复用器封装成宏单元,在布图建模时仅对宏单 元的输入、输出进行结点建模,从而减少了布图建模的结点数,降低了内存 消耗,减少了布线器在布线过程需要搜索的结点,从而有效降低了布线器的 布线时间。
附图说明
图1为本发明实施例提供的布线方法流程图;
图2为本发明实施例提供的多级多路复用器的结构示意图;
图3为本发明实施例提供的宏单元的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种FPGA的布线方法,所述方法包括:
步骤110,确定在第一级输入和最后一级输出之间具有唯一确定路径 (PATH)的多级多路复用器;
其中,所述多级多路复用器包括至少两级多路复用器,每级多路复用器 包括一个或多个多路复用器;
多级多路复用器在第一级输入和最后一级输出之间具有唯一确定路径的 情况可以是多路复用器构成的输入交叉开关矩阵(ixbar)结构。
图2所示的为两级多路复用器构成的输入交叉开关矩阵(ixbar)结构的 具体例子。
其中,ixbar第一级是由图中左边四列4选1的选择器(mux)组成的,其 输入为64比特位的数据,每一列的8个mux为1组,每1组中8个mux的均 为16比特位的输入,每个mux实现一个16输入4输出的数据处理。进一步 的,16选4的mux可以由4个4选1的mux组成(图中未示出)。
图中,ixbar的第二级由八行16选1的mux组成,其中每行包括4个16 选1的mux,也就是说每一行输出4个比特位,第二级一共输出32个比特位。
在64比特位的输入与32比特位的输出之间,路径是唯一确定的。
步骤120,将所述多级多路复用器封装为一个宏单元;
具体的,因为在如图2所示的例子中,在64比特位的输入与32比特位 的输出之间,路径是唯一确定的。因此,在布线的时候可以不考虑在64比特 位输入到32比特位输出之间的连线。
所以,可以对输入和输出之间的多级多路复用器进行“封装”,将其封 装为一个宏单元,忽略其中的连线,也就是说在布线这一步骤中不考虑宏单 元内部的布线。封装后,宏单元的输入为多级多路复用器的第一级输入,所 述宏单元的输出为多级多路复用器的最后一级输出。图2中的ixbar在“封 装”后的宏单元可以如图3所示。
步骤130,根据所述宏单元的输入和输出建立结点,进行布图建模,并根 据所述布图建模进行布线。
具体的,在封装成宏单元后,可以在布线过程中仅针对宏单元的输入输 出建立ixbar模型的结点,建立布图模型。这样可以大大减少布图建模中的 结点数。
以上述图2所示为例。如果按照多级多路复用器进行布图建模,则每一 级中每个多路复用器的输入需要建立为一个结点,每个输出要建立一个结点。 因此,对于第一级输入,布图建模的结点数为16×4×8=512个;对于第一级 输出,布图建模的结点数为4×4×8=128个;对于第二级输入,布图建模结 点数与第一级输出相同,为128个;对于第二级输出,布图建模结点数为4 ×8=32个。因此在通常情况下,对图2所示的多级多路复用器进行布线时需 要考虑的结点为512+128+128+32=800个。
如果按照本发明提供的方法,对多级多路复用器封装成如图3所示的宏 单元,然后再进行布图建模,则进行布线时需要考虑的结点数仅为64+32=96 个。
相比不采用本发明的技术方案来说,采用本发明实施例提供的方法,能 够减少88%的结点数,也就是说在布线时,相比现有技术可以减少处理88%的 结点,从而有效地降低了布线器的布线时间。
由此可知,根据本发明实施例提供了一种基于路径的布图模型的建立方 法和基于该布图模型的布线方法。通过采用宏单元对在第一级输入和最后一 级输出之间具有唯一确定路径的多级多路复用器进行封装的方法,可以在布 图建模时仅对宏单元的输入、输出进行结点建模,用路径代替多级多路复用 器中间结点的建模,从而减少了布图建模的结点数,降低了内存消耗,并可 以大大降低布线的时间。
相应的,本发明实施例提供了一种宏单元,应用于FPGA布图建模时。再 如图3所示,宏单元包括:
M个输入和N个输出;其中,每个输入到输出之间,具有唯一确定的路径; M,N均为自然数。优选的,M=2N。
在进行布线时,可以根据所述宏单元的输入和输出建立结点,然后根据 结点进行布图建模,再根据布图建模进行布线。
在宏单元内部封装有至少两级多路复用器,为ixbar结构,每级多路复 用器包括一个或多个多路复用器。
宏单元的输入为其内部至少两级多路复用器的第一级输入;宏单元的输 出为至少两级多路复用器的最后一级输出。
采用本实施例提供的宏单元对在第一级输入和最后一级输出之间具有唯 一确定路径的多级多路复用器进行封装,可以在布图建模时仅对宏单元的输 入、输出进行结点建模,从而减少了布图建模的结点数,降低了内存消耗, 并可以大大降低布线的时间。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的 各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为 超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理 器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、 寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式 的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而 已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做 的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 分布式微处理器系统与基于宏单元的设计相接口,该设计实现为ASIC或FPGA面包板以及相关的通用总线协议
机译: 分布式微处理器系统与基于宏单元的设计相接口,该设计实现为ASIC或FPGA面包板以及相关的通用总线协议
机译: 分布式微处理器系统与基于宏单元的设计接口,实现为ASIC或FPGA面包板以及相关的COMMON BUS协议