发明内容
本发明提供了一种逻辑簇的布局方法,目的在于能解决非对称逻辑簇的布局问题。
为了达到上述目的,本发明提供一种逻辑簇的布局方法,其特征在于,所述方法包括以下步骤:读入综合后的门级网表,将所述门级网表映射为电路网表;从所述电路网表读取模块信息,所述模块信息包括查找表、寄存器;根据所述查找表和所述寄存器的连接关系,将所述查找表和所述寄存器打包,用以建立多个基本单元;根据延时值信息和关键度信息,选择所述多个基本单元中的一个基本单元作为逻辑簇的第一元素;根据所述多个基本单元中的除所述第一元素之外的其他基本单元的增益,以及所述其他基本单元是否满足约束条件,对所述第一元素进行扩张处理,用以建立逻辑簇;所述约束条件包括所述逻辑簇中的查找表或寄存器是否满足指定的坐标约束和容量约束;根据所述逻辑簇中的基本单元的坐标约束,对所述逻辑簇中的所述基本单元进行布局的步骤。
优选地,所述约束条件包括的坐标约束具体包括:不同类型的查找表位于坐标系的不同的坐标向量位置,以及寄存器位于所述坐标系的指定的坐标向量位置。
优选地,所述约束条件包括的容量约束具体包括:逻辑簇中的查找表的数目和寄存器的数目不能超过限定值。
优选地,所述逻辑簇中的所有寄存器被同一个信号驱动,所述信号为时钟信号,或使能信号,或设置/重置信号。
优选地,所述根据延时值信息和关键度信息,选择所述多个基本单元中的一个基本单元作为逻辑簇的第一元素具体为:选择延时值信息最大和关键度信息最大的一个基本单元作为逻辑簇的第一元素。
优选地,所述根据所述多个基本单元中的除所述第一元素之外的其他基本单元的增益,以及所述其他基本单元是否满足约束条件,对所述第一元素进行扩张处理,用以建立逻辑簇具体为:所述其他基本单元按照增益从大到小的顺序,依次判断所述其他基本单元是否满足所述约束条件,使用满足所述约束条件的所述其他基本单元按照增益从大到小的顺序对所述第一元素进行扩张处理,用以建立逻辑簇。
优选地,所述约束条件包括:所述查找表为进位链上的查找表,并且所述进位链上的查找表被外部信号网驱动时,减少一个所述逻辑簇中的寄存器。
优选地,所述约束条件包括:查找表有5路输入信号,并且比所述查找表的坐标向量大1的查找表为由非CO端口驱动的进位链上的查找表时,,减少一个所述逻辑簇中的寄存器,用以解决冲突。
优选地,所述约束条件包括:所述查找表为五位输入查找表时,所述五位输入查找表占用连续的两个坐标向量位置。
优选地,所述约束条件包括:所述寄存器输出的反馈信息被用来驱动进位链上的查找表时,所述寄存器和所述进位链上的查找表的坐标向量相同;若寄存器输出的反馈信息被用来驱动查找表,所述寄存器的坐标向量比所述查找表的坐标向量大1。
优选地,所述基本单元最多只包括一个查找表,并且包括以下至少一种:查找表、寄存器。
优选地,所述根据所述逻辑簇中的基本单元的的坐标约束,对所述逻辑簇中的所述基本单元进行布局具体为:布局外围的输入/输出单元;布局由非CO驱动的进位链上的查找表及其所在的基本单元;布局由CO驱动的进位链上的查找表及其所在的基本单元;若寄存器输出的反馈信息被用于驱动进位链上的查找表,布局所述寄存器与所述进位链上的查找表所在的基本单元;若寄存器输出的反馈信息被用于驱动查找表,布局所述寄存器与所述查找表所在的基本单元;布局包含查找表和寄存器的基本单元;布局所述逻辑簇中的其他模块或基本单元。
本发明的上述实施例针对非对称逻辑簇结构采用了非对称坐标体系的思想,在新的坐标体系下,将基本的模块信息进行打包为基本单元,然后将基本单元打包为逻辑簇,在将基本单元打包为逻辑簇的过程中,要考虑不同类型的基本单元所能放置的坐标向量位置。然后按照基本单元的指定位置,对逻辑簇中的模块或单元进行详细布局。与对称结构的逻辑簇的布局方法相比,本实施例提供的坐标体系和布局方法可以支持非对称逻辑簇的布局。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种逻辑簇的布局方法的流程图。如图1所示,本发明实施例包括以下步骤:
步骤11,读入综合后的门级网表,将所述门级网表映射为电路网表。
读入综合后的门级网表,将设计文件综合成门级电路后并对其进行解析,得到电路网表。
步骤12,从所述电路网表读取模块信息,所述模块信息包括查找表、寄存器。
所述查找表可以为:四输入的逻辑查找表、五输入的逻辑查找表、四输入的进位链上的查找表。其中五输入的查找表相当于两个四输入的查找表,两个四输入的查找表通过一个多路选择器即可生成一个五输入的查找表。
四输入的进位链上的查找表可以生成一个进位链,具有进位关系的基本单元之间通过一些多路选择器进行连接,用来实现相应的运算。
步骤13,根据所述查找表和所述寄存器的连接关系,将所述查找表和所述寄存器打包,用以建立多个基本单元。
查找表相当于一个RAM,每当输入一个信号就相当于输入一个地址进行查表,找出地址对应的内容,然后输出。输入查找表的信号可以来自寄存器,查找表输出的信息也可以经过多路选择器输出至寄存器。查找表的输入/输出信号与寄存器的输入/输出信号存在一些关系,这些关系便形成了查找表和寄存器的连接关系,如果某个寄存器和某个查找表存在连接关系,则把它们打包为一个基本单元。
例如,如果寄存器的QS端口输出的反馈信息被用来驱动普通的查找表LUT4,则将该寄存器与该LUT4打包为一个基本单元;如果寄存器的QS端口输出的反馈信息被用来驱动进位链上的查找表LUT4C,则将该寄存器与该LUT4C打包为一个基本单元。
步骤14,根据延时值信息和关键度信息,选择所述多个基本单元中的一个基本单元作为逻辑簇的第一元素。
将基本单元组织为一个逻辑簇,首先要选出一个种子单元,即逻辑簇的第一个元素。选择逻辑簇的方法为:对电路时序分析,算出关键路径,也就是最长路径,关键路径决定信号延时,选关键路径上的对延时影响最大的基本单元做种子单元。
种子单元是逻辑簇中的延时值最大、关键值最大的一个基本单元。
步骤15,根据所述多个基本单元中的除所述第一元素之外的其他基本单元的增益,以及所述其他基本单元是否满足约束条件,对所述第一元素进行扩张处理,用以建立逻辑簇;所述约束条件包括所述逻辑簇中的查找表或寄存器是否满足指定的坐标约束和容量约束。
选出种子单元后,按照其他基本单元包含的模块的坐标向量、增益,将其他基本单元加入逻辑簇中。
在非对称结构中,基本单元不具有等价性,基本单元包含的模块的坐标向量有限定性,即不同类型的基本单元的坐标向量不同。
图2为一种3∶2逻辑簇结构的坐标体系示意图。在图2中,查找表和寄存器的数目比为3∶2,一个逻辑簇LE中包含4个逻辑包(英文全称:Logicparcel,缩写:LP),每个LP中包含3个查找表、2个寄存器。为了比较好地在现有非对称架构上处理约束,本发明约定一个坐标系,LE中最多可以容纳12个LUT,坐标向量分别为0,1,...,11。任何一个单独的查找表可以选择0-11中任意一个位置,寄存器位置有8个,只能放在坐标向量为1,2,4,5,7,8,10,11的位置上。如果有查找表和寄存器组成的基本单元,那么这些基本单元只能放在坐标向量为1,2,4,5,7,8,10,11的位置上。进位链上的查找表LUT4C只能放在坐标向量为1,4,7,10的位置上,LUT5只能放在坐标向量为1,4,7,10的位置上,并且一个LUT5占用两个位置,它占用它实际给的坐标向量位置以及上面的一个坐标向量位置。例如,一个LUT5放在坐标向量为1的位置上,则坐标向量2处不能放LUT了。
在将其他基本单元扩张到逻辑簇中时,要考虑所述其他基本单元的坐标向量。例如,在3∶2逻辑簇架构中,根据上述查找表和寄存器的坐标向量的限定性,查找表和寄存器组成的基本单元的坐标向量也具有相应的限定性。
相比于对称结构,非对称结构在打包和布局的过程中存在以下约束:
在非对称结构中,逻辑簇中的所有寄存器最多被一个信号驱动,所述信号为时钟信号,或使能信号,或设置/重置信号。
在非对称结构中,如果一个进位链上的查找表LUT4C的CA端口被一个外部信号网Net驱动,则它与一个不是被它驱动的寄存器放在一起时,存在布线时将无法绕通的问题。因此在非对称架构中,如果一个进位链上的查找表LUT4C的CA端口被一个外部信号网Net驱动,则逻辑簇中的寄存器将减少一个。
在非对称结构中,一个逻辑簇中可以包含两个或者两个以上的进位链,但是最多只能有一个进位链是被非CO端口驱动。这个非CO端口驱动的进位链的CI端口的链不能与其他的跨逻辑簇的进位链放在同一个逻辑簇中。
在非对称结构中,如果查找表LUT40有五输入,并且由非CO端口驱动进位链上的查找表LUT4C的CI端口,则逻辑簇中的寄存器减少一个,用以解决冲突。
在非对称结构中,一个LUT5查找表可以看做两个LUT4查找表,在布局时,一个LUT5查找表占用两个坐标向量位置,即占用LUT4_40和LUT4_41所占用的两个坐标向量位置。
在非对称结构中,如果寄存器的QS所在的Net信号驱动LUT,则将该寄存器和该LUT打包在一个基本单元中。在布局时,如果寄存器的QS端口输出的反馈信息被用来驱动LUT4C,则该寄存器与该LUT4C被放置在同一个坐标向量上;如果寄存器的QS端口输出的反馈信息被用来驱动LUT4,则该LUT4的坐标向量比该寄存器的坐标向量小1。
在将其他基本单元加入逻辑簇中时,还要考虑所述其他基本单元的增益,增益是指基本单元与逻辑簇中的所有连线的相连关系,根据基本单元与逻辑簇中的连线的连接方式的不同,定义不同的值,逻辑簇和基本单元所有相连的值的和就是增益。基本单元的增益越大,说明逻辑簇越能很好地接受该基本单元,即将该基本单元加入逻辑簇后,增加的输入线和输出线越少。因此,在对种子单元进行扩张时,首先选择增益大的基本单元。
在将其他基本单元加入逻辑簇中时,还要考虑其他基本单元的连接度,连接度是指基本单元与逻辑簇之外的基本单元的连接关系,基本单元的连接度越小,说明该基本单元加入逻辑簇之后,增加的输入线和输出线越小。因此,在对种子单元进行扩张时,首先选择连接度小的基本单元。
需要说明的是,本实施例中给出的3∶2逻辑簇结构的坐标体系经过扩展后还可以支持其他非对称结构的坐标体系,图5∶3,7∶4,等等。本实施例只是以3∶2非对称结构进行举例说明,但是本发明的技术方案不仅局限于该3∶2非对称结构。
步骤16,根据所述逻辑簇中的基本单元的坐标约束,对所述逻辑簇中的所述基本单元进行布局。
由于不同类型的基本单元的坐标向量具有限定性,因此在对逻辑簇中的基本单元进行布局时,对各个类型的基本单元的布局顺序不同。具体布局顺序如下:首先布局逻辑簇的输入/输出单元;其次,由于非对称逻辑簇中允许有一个进位链上的查找表被非CO端口驱动,如果逻辑簇中有一个由非CO驱动的进位链上的查找表,则在布局完输入/输出单元后,布局由非CO驱动的进位链上的查找表及其所在的基本单元;接下来,布局普通的进位链上的查找表及其所在的基本单元;如果寄存器的QS端口输出的反馈信息被用来驱动LUT4C,则再布局该寄存器与该LUT4C打包生成的基本单元;如果寄存器的QS端口输出的反馈信息被用来驱动LUT4,则再布局该寄存器与该LUT打包生成的基本单元;再布局查找表和寄存器打包生成的普通的基本单元;最后,布局其他没有布局的模块。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。