可编程逻辑器件的连线结构以及布线布局系统和方法与流程

文档序号:11286821阅读:441来源:国知局
可编程逻辑器件的连线结构以及布线布局系统和方法与流程

本发明涉及可编程逻辑器件版图设计与软件系统,特别涉及可编程逻辑器件的连线结构以及布线布局系统和方法。



背景技术:

专用集成电路是用户定制的实现特定功能的集成电路,其中,所有的集成电路器件和器件连线都没有预先设定,可以根据实际电路需要进行布置。但是连线和功能一经设计完成,无法改变。可编程逻辑器件是芯片中的器件以及布线资源已经被预先布置,但器件功能可以通过编程被重新配置的集成电路。所有的集成电路芯片(包括可编程逻辑器件)的生产,是依靠光刻技术对晶圆和金属层的加工。不同的芯片有独立的一系列光刻掩模版(mask)。版图设计就是集成电路设计人员根据不同的电路结构和要求,确定出相应的掩模版的过程。当前的集成电路的光刻掩模版通常包含几十层数据,每层数据又由过亿的各种图形构成,非常复杂。

在可编程逻辑器件的版图设计中,不同连线之间的连接是通过可配置为断开或连通的传输门来实现的。这点与其他非可编程逻辑器件的集成电路器件是完全不同的,这些其他类集成电路器件又通常被称为专用集成电路。这种不同的连接实现方式如图1a和图1b所示。

在专用集成电路中,不同的连线(例如图1a中的连线a和连线b)是通过通孔来连接的。通孔所占的面积非常的小,而且几乎可以出现在任何位置,所以专用集成电路的优点包括连线连通度非常的高,带来的缺点是没有可修改性,两条连线一旦通过通孔连通,就无法断开它们了。在可编程逻辑器件中,不同连线(例如图1b中的连线a和连线b)是通过一个可编程的传输门来连接的。通过对该传输门栅极施加正/负电压,可以实现两条连线之间的连通和断开。这种连接方式,缺点是每个连接都要用面积非常大的传输门来实现,优点是该连接关系是可以编程的。所以这就造成了在可编程逻辑器件的版图设计中,考虑到芯片面积和功耗等限制,无法引入过多的传输门来实现所有连线之间彼此的连接。实际运用中,一根连线只能有选择地与周围部分连线实现连通。引入的传输门越多,连线的连通度就越大,布线难度降低,造成的问题是器件的面积也会变大,从而造价上升。反过来,如果设计的传输门越少,连线的连通度就会变小,布线难度提高,但是器件的面积也变小,制造成本也下降。



技术实现要素:

本发明的目的在于提供一种可编程逻辑器件的连线结构以及布线布局系统和方法,在保持各线轨组的连通度的同时减少芯片面积、功耗和造价。

为解决上述技术问题,本发明的实施方式公开了一种可编程逻辑器件的连线结构,预布线轨被划分为多个线轨组,仅同一个线轨组的相邻线轨通过可编程传输门连接;

可编程逻辑器件的至少一个逻辑单元包括多个多路选择器,多个多路选择器中的第一多路选择器的各输入端分别连接多个线轨组的线轨,第一多路选择器的输出端接入至少一个逻辑单元内的连线总线,连线总线与其他多路选择器中的每个多路选择器的一个输入端连接。

本发明的实施方式还公开了一种可编程逻辑器件的布局方法,在可编程逻辑器件中采用上述连线结构,布局方法包括以下步骤:

在详细布局前,对每条线网随机分配一个目标线轨组,每个线轨组对应于平均数量的线网;以及

对可编程逻辑器件进行详细布局,使得放置所有逻辑单元的费用总和最小;

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有端口的线轨对齐费用总和,

每个逻辑单元的端口的线轨对齐费用根据以下方式进行计算:

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与该线网所分配的目标线轨组一致,则端口的线轨对齐费用为零;

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与该线网所分配的目标线轨组不一致,则端口的线轨对齐费用为第一预定正数。

本发明的实施方式还公开了一种可编程逻辑器件的布局方法,在可编程逻辑器件中采用上述连线结构,布局方法包括以下步骤:

在对可编程逻辑器件进行详细布局后,通过移动和/或互换逻辑单元使得放置所有逻辑单元的费用总和最小;

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有输入端口的线轨对齐费用总和,

每个逻辑单元的输入端口的线轨对齐费用根据以下方式进行计算:

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于同一个线轨组,则输入端口的线轨对齐费用为零;

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于不同线轨组,则输入端口的线轨对齐费用为第二预定正数。

本发明的实施方式还公开了一种可编程逻辑器件的布线方法,在可编程逻辑器件中采用上述连线结构,可编程逻辑器件是现场可编程门阵列器件,布线方法包括以下步骤:

在布线前,通过重新配置可编程逻辑器件的可编程门内置的查找表和线网的连接信息来交换输入端口;

其中,根据以下方式交换输入端口:

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组、可编程门位置上的第二输入端口为空置端口并且与第一线网的驱动端口属于同一个线轨组,在可编程门内置的查找表中进行交换第一输入端口和第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口;

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组并且第二线网在可编程门位置上的第二输入端口与第一线网的驱动端口属于同一个线轨组,则判断第二线网在可编程门位置上的第二输入端口与第二线网的驱动端口是否属于同一个线轨组,如果不是,则在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口,在第二线网的连接信息中将第二线网在可编程门位置上的第二输入端口修改为第一输入端口,否则不进行交换。

本发明的实施方式还公开了一种可编程逻辑器件的布线方法,在可编程逻辑器件中采用上述连线结构,可编程逻辑器件是现场可编程门阵列器件,布线方法包括以下步骤:

如果进行布线的线网在可编程逻辑器件的相应可编程门位置上的目标输入端口与线网的驱动端口不属于同一个线轨组,判断相应可编程门位置上是否存在空置输入端口;

若相应可编程门位置上存在空置输入端口,虚拟相应可编程门位置上的所有空置输入端口到目标输入端口的连接,否则将线网连向目标输入端口;

判断相应可编程门位置上的所有空置输入端口中是否存在与线网的驱动端口属于同一个线轨组的第一空置输入端口,若存在,在相应可编程门内置的查找表中进行交换目标输入端口与第一空置输入端口所需的配置修改,并将线网连向第一空置输入端口,否则将线网连向目标输入端口。

本发明的实施方式还公开了一种可编程逻辑器件的布局系统,在可编程逻辑器件中采用上述连线结构,布局系统包括:

分配模块,用于在详细布局前,对每条线网随机分配一个目标线轨组,每个线轨组对应于平均数量的线网;以及

详细布局模块,用于对可编程逻辑器件进行详细布局,使得放置所有逻辑单元的费用总和最小;

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有端口的线轨对齐费用总和,

详细布局模块根据以下方式计算每个逻辑单元的端口的线轨对齐费用:

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与分配模块分配给该线网的目标线轨组一致,则端口的线轨对齐费用为零;

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与分配模块分配给该线网的目标线轨组不一致,则端口的线轨对齐费用为第一预定正数。

本发明的实施方式还公开了一种可编程逻辑器件的布局系统,在可编程逻辑器件中采用上述连线结构,布局系统包括:

移动互换模块,用于在对可编程逻辑器件进行详细布局后,通过移动和/或互换逻辑单元使得放置所有逻辑单元的费用总和最小;

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有输入端口的线轨对齐费用总和,

移动互换模块根据以下方式计算每个逻辑单元的输入端口的线轨对齐费用:

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于同一个线轨组,则输入端口的线轨对齐费用为零;

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于不同线轨组,则输入端口的线轨对齐费用为第二预定正数。

本发明的实施方式还公开了一种可编程逻辑器件的布线系统,在可编程逻辑器件中采用上述连线结构,可编程逻辑器件是现场可编程门阵列器件,布线系统包括:

交换模块,用于在布线前,通过重新配置可编程逻辑器件的可编程门内置的查找表和线网的连接信息来交换输入端口;以及

布线模块,用于对可编程逻辑器件进行布线;

其中,交换模块根据以下方式交换输入端口:

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组、可编程门位置上的第二输入端口为空置端口并且与第一线网的驱动端口属于同一个线轨组,在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口;

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组并且第二线网在可编程门位置上的第二输入端口与第一线网的驱动端口属于同一个线轨组,则判断第二线网在可编程门位置上的第二输入端口与第二线网的驱动端口是否属于同一个线轨组,如果不是,则在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口,在第二线网的连接信息中将第二线网在可编程门上的第二输入端口修改为第一输入端口,否则不进行交换。

本发明的实施方式还公开了一种可编程逻辑器件的布线系统,在可编程逻辑器件中采用上述连线结构,可编程逻辑器件是现场可编程门阵列器件,布线系统包括:

第一判断模块,用于当进行布线的线网在可编程逻辑器件的相应可编程门位置上的目标输入端口与线网的驱动端口不属于同一个线轨组时,判断相应可编程门位置上是否存在空置输入端口;

虚拟模块,用于若所述第一判断模块确定相应可编程门位置上存在空置输入端口,虚拟相应可编程门的所有空置输入端口到所述目标输入端口的连接;

第二判断模块,用于判断相应可编程门位置上的所有空置端口中是否存在与线网的驱动端口属于同一个线轨组的第一空置输入端口;

交换模块,用于若第二判断模块确定存在第一空置输入端口时,在相应可编程门内置的查找表中进行交换目标输入端口与第一空置输入端口所需的配置修改;以及

连接模块,用于在第一判断模块确定相应可编程门位置上不存在空置输入端口或第二判断模块确定不存在第一空置输入端口时将线网连向目标输入端口,以及在第一判断模块确定相应可编程门位置上存在空置输入端口并且第二判断模块确定存在第一空置输入端口时将线网连向第一空置输入端口。

本发明实施方式与现有技术相比,主要区别及其效果在于:

在本申请的可编程逻辑器件的连线结构中,仅同一个线轨组中的相邻线轨通过可编程传输门连接,省去了跨线轨组的可编程传输门,通过增加一个新的多路选择器作为线轨组选择器可以将不同线轨组的线轨接入逻辑单元,提供了所有线轨组的连通度,从而在保持各线轨组的连通度的同时减少芯片面积、功耗和造价。

在本申请的可编程逻辑器件的布局方法中,通过将线轨对齐费用加入到详细布局的费用总和中,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。

在本申请的可编程逻辑器件的布局方法中,在详细布局后,通过将线轨对齐费用加入到详细布局的费用总和来进一步调整逻辑单元,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。

在本申请的可编程逻辑器件的布线方法中,通过重新配置可编程门内置的查找表和线网的连接信息来交换输入端口,可以提高线网的线轨组对齐程度,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。

附图说明

图1a和1b是现有的专用集成电路和可编程逻辑器件的不同连线连接方式;

图2是现有的全连通结构;

图3是现有的一种预布线轨的连通结构;

图4a、图4c是本发明第一实施方式中一种可编程逻辑器件的连线结构的结构示意图;

图4b是现有的一种可编程逻辑器件的连线结构的结构示意图;

图5a-5d是现有的可编程逻辑器件的布局说明图;

图6是本发明第二实施方式中一种可编程逻辑器件的布局方法的流程示意图;

图7是本发明第三实施方式中一种可编程逻辑器件的布局方法的流程示意图;

图8a-8b是fpga的可编程门的输入交换特性;

图9是本发明第四实施方式中一种可编程逻辑器件的布线方法的流程示意图;

图10是本发明第五实施方式中一种可编程逻辑器件的布线方法的流程示意图;

图11a-11c是本发明第五实施方式中一种可编程逻辑器件的布线方法的示意图;

图12是本发明第六实施方式中一种可编程逻辑器件的布局系统的结构示意图;

图13是本发明第七实施方式中一种可编程逻辑器件的布局系统的结构示意图;

图14是本发明第八实施方式中一种可编程逻辑器件的布线系统的结构示意图;

图15是本发明第九实施方式中一种可编程逻辑器件的布线系统的结构示意图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。

可编程逻辑器件(例如现场可编程门阵列(fpga)器件)中包含着数量繁多的各类连线资源,而这些连线将按照一定规律分组放置于芯片上预置的线轨中。在fpga学术界的研究中,有一些高连通度的连线结构,每根预布线轨与它相邻的其它线轨形成全连通,这种结构的可布性非常好,但在实际应用中基本上没有fpga会采用。全连通规则如图2所示。

由于全连通规则会引入太多的连线传输门,造成过于复杂的电路设计,如何在保证相当程度的可布性的前提下,简化连通规则,成为了fpga布线资源研究设计的核心问题之一。在当前国际主流fpga中,比较通行的连线方法是将所有的预布线轨分组,属于同一组的相邻预布线轨之间有完全的连通度,而不同组的相邻预布线轨之间按照一定的规则来实现部分连通。一种方式如下:

在图3的例子中,预布线轨a1和a2属于a组,b1和b2属于b组,c1和c2属于c组,d1和d2属于d组。属于同组的相邻线网a1-〉a2、b1-〉b2、c1-〉c2、d1-〉d2之间可以通过可编程的传输门来连接、另外还设计了一些不同组之间的可编程连接,如a1-〉b2、b1-〉c2、c1-〉d2、d1-〉a2。在这样的连线设计中,信号就可以从任意一组预布线轨传输到另外任意一组预布线轨上。与图2的全连通结构相比,传输门从16个减少到8个,电路结构、面积和成本得到极大的简化。

由于在实际可编程逻辑器件应用中,用户线网总会出现输出驱动管脚和输入管脚不在同一个线轨组的情况,当前的预布线轨连线规则,都要求一根预布线轨不仅要连接同组的相邻线轨,还要连接一定数量的不同组相邻线轨。跨组的连接越多,布线资源的连通程度越好,但是引入的可编程传输门也越多。过多的可编程传输门将带来芯片面积增大,芯片功耗增加和制造成本上升的问题。所以可编程逻辑器件的厂商通常都会面临这样的取舍:是增加芯片面积、功耗、造价来换取好的布线连通度呢,还是牺牲布线连通度从而降低芯片面积、功耗和造价?事实上,布线连通度并不需要无限追求高的连通度,只须保证在用户电路密集使用器件逻辑资源的情况下仍然能保证布通率即可,在很多运用中图3所示的连通规则和它的一些变体就已经足够了。本发明继续简化图3的连通规则,将跨组的可编程传输门省去,通过增强设计可编程逻辑单元器件输入端口的连接、增强可编程逻辑器件的软件系统中布局、布线的实现方法,来保持原来连通规则下电路的连通程度。从而在降低可编程逻辑器件的造价、提高功耗性能的同时,通过增强布局布线软件,来保持原来结构的可布性。

本发明第一实施方式涉及一种可编程逻辑器件的连线结构。图4a、图4c是该可编程逻辑器件的连线结构的结构示意图。如图4a所示,在该可编程逻辑器件的连线结构中,预布线轨被划分为多个线轨组(例如线轨组a-d),仅同一个线轨组的相邻线轨通过可编程传输门连接,例如属于同组的相邻线网a1-a2、b1-b2、c1-c2、d1-d2可以通过可编程传输门连接,不同组的线网不能通过可编程传输门连接。图4a中示例性地示出预布线轨被划分为四个线轨组,可以理解,在本申请的其他实施方式中,也可以根据实际需要将预布线轨划分为其他数量的线轨组。

图4a中所示的连通规则,不能完成线网端口跨几个不同线轨组的连接。在当前可编程逻辑器件的基本单元设计中,输入端都是以多路选择器的形式来实现可编程的要求。一般的多路选择器设计,会有意识地让单元输入端连接一些不同组的线轨,从而提供组间选择的灵活性。但是由于多路选择器的面积是受限的,它能提供的选择通路也是有限的,在实际应用中我们不可能让每个单元输入端的多路选择器都接受全部线轨组的通路,只能选择性地容许部分线轨组。比如,如图4b所示(单元接入的改进前连接),一个单元输入端可以被线轨组a和b接入,另一个输入端可以被a和c接入,还有一个输入端被b和c接入等等。预布线轨连通规则的简化,无疑降低了整个系统的可布性,为此我们在每个基本单元中增加一些新的多路选择器,这些多路选择器的作用就是在不同的线轨组之间进行交换,如以下所述。

如图4c所示(单元接入的改进后连接),可编程逻辑器件的至少一个逻辑单元包括多个多路选择器,多个多路选择器中的第一多路选择器(例如图4c中所示的位于最下面的多路选择器)的各输入端分别连接多个线轨组的线轨(例如图4c中所示的线轨a-d),第一多路选择器的输出端接入至少一个逻辑单元内的连线总线(如图4c所示,该至少一个逻辑单元内的其他连线也可以连接到该连线总线),连线总线与其他多路选择器中的每个多路选择器的一个输入端连接。其他多路选择器的输出作为单元输入(例如单元输入1-4)。

图4c中示例性地示出了其他多路选择器中的每个多路选择器的一个输入端与连线总线连接,另两个输入端分别与属于不同组的两个线轨连接。可以理解,在本申请的其他实施方式中,也可以根据实际需要(例如根据各多路选择器的面积允许)设置各多路选择器的一个输入端、三个输入端甚至没有输入端与相应线轨进行连接。

上述连线结构可以应用于包括fpga的各种可编程逻辑器件中,在各种可编程逻辑器件中至少一个线网在至少一个逻辑单元上的输入端口与该至少一个线网的驱动端口不属于同一个线轨组。

在本实施方式的可编程逻辑器件的连线结构中,仅同一个线轨组中的相邻线轨通过可编程传输门连接,省去了跨线轨组的可编程传输门,通过增加一个新的多路选择器作为线轨组选择器可以将不同线轨组的线轨接入逻辑单元,提供了所有线轨组的连通度,从而在保持各线轨组的连通度的同时减少芯片面积、功耗和造价。

如图4b所示,在改进前,由于多路选择器的通路限制,单元的每一个输入都只能选择地引入部分线轨组的连线;如图4c所示,在改进后,我们增加了一个新的多路选择器(称为线轨组选择器),让不同线轨组的线轨接入单元内的连线总线,然后通过内部的连线总线再通过原来的多路选择器接入不同的单元输入。每一个这样增加的线轨组选择器都能为一个任选的单元输入提供所有线轨组的连通度,解决该单元输入的跨线轨组连接问题。所以

为了进一步减少芯片面积、功耗和造价,我们希望一个可编程逻辑器件的基础单元的连线输入尽可能和它的线网驱动输出属于同一个线轨组,以提高连线结构的布通率和减少多路选择器的使用数量。

可编程逻辑器件需要将不同的用户电路转化为自身逻辑器件的不同配置和布线资源的不同连接,来实现用户不同的设计需求。因此所有的可编程逻辑器件设计公司都会为客户提供基于自己器件的软件开发系统。按照最具有广泛意义的流程划分,可编程逻辑器件的软件系统可以划分为:综合系统、逻辑优化系统和物理实现系统。其中,综合系统是将用户的设计需求,从通用硬件描述语言转化为可编程逻辑器件可以支持的逻辑单元的软件工具;逻辑优化系统通过合并、拆分、重影射等手段将综合出来的逻辑单元再加工,以减少逻辑单元数目,提高电路的性能和降低电路的功耗;物理实现系统是将逻辑优化的最终结果配置到可编程逻辑器件中去,具体确定每一个编程位的逻辑状态。其又可进一步划分为布局系统和布线系统两大类。

布局系统将逻辑优化结果中的逻辑单元,根据芯片构架,放置到芯片具体位置中去,每个逻辑单元都将获得一个互不重叠的位置。该位置的配置,应该尽可能最优化用户系统的设计性能。布线系统根据逻辑优化电路互连关系,以及布局确定的逻辑单元位置,配置不同的连线开关,以实现逻辑单元之间的信号电学连接。该连线开关的配置,应该保证不同的电学信号不短路,并尽可能地优化用户系统的设计性能。在任意电路线网设计中,驱动端口和输入端口之间的线轨组分布是非常随机的。为提高本申请的可编程逻辑器件的连线结构的布通率,我们在以下实施方式中进一步改进了传统的可编程逻辑器件的软件系统(布局系统和布线系统),考虑了驱动端口和输入端口之间的线轨组匹配问题。

本发明第二实施方式涉及一种可编程逻辑器件的布局方法。图6是该可编程逻辑器件的布局方法的流程示意图。

第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布局方法中,通过将线轨对齐费用加入到详细布局的费用总和中,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

一个标准的布局系统的流程大致可分为总体布局和详细布局两步,其说明图如图5a-5d所示。其中,图5a示出了用户的电路设计;图5b示出了布局前用户逻辑已转化为可编程逻辑器件的逻辑单元(查找表lut1,lut2和lut3),如图5b所示,可编程逻辑器件上的物理单元(16个空位(slot))还未和逻辑单元对应;图5c示出了总体布局,即将用户逻辑单元根据用户的设计需要,放置到可编程逻辑器件的大致位置上;图5d示出了详细布局,即根据总体布局的位置信息,将用户逻辑单元准确地放置到可编程逻辑器件上。

在布局开始前,可编程逻辑器件的前端综合软件已经将用户的电路(如图5a所示)转化为可编程逻辑器件支持的各个逻辑门(如图5b所示),布局功能就是进一步将这些逻辑门放置到器件的合理位置,使用户电路的性能达到最优。总体布局(如图5c所示)通常采用数学优化的算法,确定每一个用户逻辑门在可编程逻辑器件上应该在的最佳区域,而详细布局(如图5d所示)将按照总体布局的结果,具体地将逻辑门准确地放置到可编程逻辑器件的可编程门处。也有少量的布局系统只有详细布局,没有总体布局,其代表为基于模拟退火方法的布局系统:先将每个用户逻辑门随即放置在可编程逻辑器件的可编程门上,然后再通过单元移动、单元互换等手段来优化用户电路性能。

本申请在简化了可编程逻辑器件的连线结构(例如第一实施方式中的连线结构)的同时,要改进详细布局系统来增加线网的可布性。各种各样不同的详细布局系统,都有一个共性,即系统会评估每个用户逻辑单元放置在不同的可编程逻辑器件的可编程门上的费用,然后在没有任何两个用户逻辑单元占用同一个可编程门的前提下,所有单元放置的费用总和最小。其表达如下:

f(布局)=min∑f(celli),st.任意celli和cellj的位置不重叠通常f(celli)定义为和总体布局的结果有关,单元celli与总体布局的结果差距越大,费用越高。本申请提出,为了改进连线连通度,在上述单元费用中,应当增加单元处于不同位置时,其连线线轨组的对齐费用。但由于所有的单元都处于移动状态,所以线轨的对齐费用是非常难于计算的。为此本申请提出以下处理方法:

在可编程逻辑器件中采用第一实施方式的连线结构,如图6所示,布局方法包括以下步骤:

在步骤601中,在详细布局前,对每条线网随机分配一个目标线轨组,每个线轨组对应于平均数量的线网,即每个线轨组都得到平均数量的线网(线网是逻辑单元与逻辑单元之间的端口连线,并且在)。例如,如果总共有100个线网,4个线轨组,则在对各线网随机分配目标线轨组后使得每个线轨组得到25条线网,以图4a中的4个线轨组为例,线轨组a、b、c、d中的每一个线轨组得到25条线网。可以理解,在本申请的其他实施方式中,也可以对各线轨组采用不同权重进行分配或是其他分配方式,只要有利于线轨对齐即可。

此后进入步骤602,对可编程逻辑器件进行详细布局,使得放置所有逻辑单元的费用总和最小。其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有端口的线轨对齐费用总和(例如,图5d中的逻辑单元lut1放置在slot10位置上时三个端口的线轨对齐费用总和),

每个逻辑单元的端口的线轨对齐费用根据以下方式进行计算:

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与该线网所分配的目标线轨组一致,则端口的线轨对齐费用为零(例如,图5d中的lut1的输出端口在lut1放置在slot10位置上时所属的线轨组为a,并且该输出端口上的线网在步骤601中所分配的线轨组也为a,则该输出端口的线轨对齐费用为零);

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与该线网所分配的目标线轨组不一致,则端口的线轨对齐费用为第一预定正数(例如,图5d中的lut1的输出端口在lut1放置在slot10位置上时所属的线轨组为a,并且该输出端口上的线网在步骤601中所分配的线轨组为b,则该输出端口的线轨对齐费用为5)。

如果lut1的三个端口的线轨对齐费用分别为5、0、5,则逻辑单元lut1的线轨对齐费用为10;如果lut1、lut2、lut3的线轨对齐费用分别为10、5、15,则在费用总和中添加30的线轨对齐费用。在上述的例子中,第一预定正数被示为5,可以理解,在本申请的其他实施例中第一预定正数也可以根据实际需要设定为其他正数值。

即如下式所示,将详细布局的目标修改为:

f(布局)=min∑(f(celli)+g(celli,st.任意celli和cellj的位置不重叠

其中:g(celli)=∑g(celli,netj)

每个单元增加的g(celli)就是该单元在某一器件可编程门位置上,其所有端口连线的线轨对齐费用的总和。而线轨的对齐费用设计如下:

其中,此处的某一合理正数对应于上述第一预定正数,第一预定正数可以根据实际需要进行设定。

由上可以看到,通过在详细布局时预分配线网到不同线轨,并将此信息加入到用户单元对于不同器件可编程门位置的费用计算中,对布局进行了优化。

本发明第三实施方式涉及一种可编程逻辑器件的布局方法。图7是该可编程逻辑器件的布局方法的流程示意图。

第三实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布局方法中,在详细布局后,通过将线轨对齐费用加入到详细布局的费用总和来进一步调整逻辑单元,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

在可编程逻辑器件中采用第一实施方式的连线结构,如图7所示,布局方法包括以下步骤:

在步骤701中,在对可编程逻辑器件进行详细布局后,通过移动和/或互换逻辑单元使得放置所有逻辑单元的费用总和最小。

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有输入端口的线轨对齐费用总和(例如,图5d中的逻辑单元lut1放置在slot10位置上时两个输入端口的线轨对齐费用总和),

每个逻辑单元的输入端口的线轨对齐费用根据以下方式进行计算:

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于同一个线轨组,则输入端口的线轨对齐费用为零(例如,图5d中的lut1的一个输入端口在lut1放置在slot10位置上时所属的线轨组为a,并且该一个输入端口上的线网的驱动端口所属的线轨组也为a,则该一个输入端口的线轨对齐费用为零);

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于不同线轨组,则输入端口的线轨对齐费用为第二预定正数(例如,图5d中的lut1的一个输入端口在lut1放置在slot10位置上时所属的线轨组为a,并且该一个输入端口上的线网的驱动端口所属的线轨组为b,则该一个输入端口的线轨对齐费用为3)。

如果lut1的两个输入端口的线轨对齐费用分别为3、0,则逻辑单元lut1的线轨对齐费用为3;如果lut1、lut2、lut3的线轨对齐费用分别为3、0、6,则在费用总和中添加9的线轨对齐费用。在上述的例子中,第二预定正数被示为3,可以理解,在本申请的其他实施例中第二预定正数也可以根据实际需要设定为其他正数值,并且第二预定正数可以与第一预定正数相同或不同。

由上可以看到,与本申请第二实施方式的布局方法不同的是,在上述详细布局结束后,由于每个用户逻辑单元都有了确定的位置,我们可以放开线网预布线轨的约束,选定任意的逻辑单元,重新计算其线轨对齐的费用:

f(布局)=min∑(f(celli)+g*(celli)),st.任意celli和cellj的位置不重叠

g*(celli)=∑g*(celli,netj),netj在单元celli上的端口为输入端口

其中,此处的某一正数对应于上述第二预定正数。

运用这个新的费用方式,我们可以通过用户逻辑单元在局部区域内的移动、互换或者采用低温模拟退火的方式来进一步改进布局结果的线轨对齐程度。也就是说,在详细布局结束后,重新计算每条线网的线轨组匹配程度,通过单元的小范围移动和交换,来改善线轨组匹配,以对布局进行优化。可以理解,移动、互换逻辑单元可以采用现有的任何移动、互换方法(例如低温模拟退火等),只要使采用新方式的费用总和最小即可。

本发明第四实施方式涉及一种可编程逻辑器件的布线方法。图9是该可编程逻辑器件的布线方法的流程示意图。

第四实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布线方法中,通过重新配置可编程门内置的查找表和线网的连接信息来交换输入端口,可以提高线网的线轨组对齐程度,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

除了布局的改进之外,本申请还设计了通过利用fpga可编程单元的端口等价特性,交换可编程单元的输入端口,从而增加系统可布性的方法。关于fpga可编程单元的端口等价特性,可用图8a-8b来说明。

fpga的可编程门,是通过内置的查找表,通过把输入端口转化为相应的地址信息,然后,查找预存的查找表数值来实现任意输入的逻辑功能。所以当输入端口发生交换时,我们只要把可编程门内置的查找表按照相应的地址变化信息重新存储数据,就能得到与端口交换前等价的逻辑功能。我们可以把图8a的线网连接关系(即原线网连接关系),映射为图8b的连接关系(可以交换连接端口,获得新的等价连接),然后通过重新配置可编程门内的查找表数值即可得到等价的逻辑功能。

在可编程逻辑器件中采用第一实施方式的连线结构,可编程逻辑器件是现场可编程门阵列器件,如图9所示,布线方法包括以下步骤:

在步骤901中,在布线前,通过重新配置可编程逻辑器件的可编程门内置的查找表和线网的连接信息来交换输入端口,以达到使每个线网的输入端口尽可能和其驱动端口在相同线轨组内。

此后,对可编程逻辑器件进行布线。

在步骤901中,根据以下方式交换输入端口:

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组、可编程门位置上的第二输入端口为空置端口并且与第一线网的驱动端口属于同一个线轨组,在可编程门内置的查找表中进行交换第一输入端口和第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口(例如,线网1的驱动端口属于线轨组c,线网1在可编程门位置上的第一输入端口属于线轨组a,该可编程门位置上的第二输入端口为空置端口并且属于线轨组c,则将第一输入端口与第二输入端口进行交换,以使得线网1的驱动端口与输入端口属于同一个线轨组)。

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组并且第二线网在可编程门位置上的第二输入端口与第一线网的驱动端口属于同一个线轨组,则判断第二线网在可编程门位置上的第二输入端口与第二线网的驱动端口是否属于同一个线轨组,如果不是,则在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口,在第二线网的连接信息中将第二线网在可编程门位置上的第二输入端口修改为第一输入端口(例如,线网1的驱动端口属于线轨组b,线网1在可编程门位置上的第一输入端口属于线轨组a,线网2在该可编程门位置上的第二输入端口属于线轨组b并且线网2的驱动端口不属于线轨组b,则将第一输入端口与第二输入端口进行交换,以使得线网1的驱动端口与输入端口属于同一个线轨组),否则不进行交换。

也就是说,在布局结束后,所有的线网都有了驱动端口、输入端口的线轨组分配。当驱动端口和部分(或全部)输入端口所在的线轨组不同时,我们可以通过交换输入端口,来将尽可能多的输入端口调整到驱动端口所在的线轨组中。交换按如下步骤进行:

交换目标:线网i在单元j的端口要交换到目标线轨组k上。

交换方式:1.单元j上属于线轨组k的端口m不属于任何其他线网,那么我们直接把线网i在单元j上的输入端口换到端口m。

2.单元j上属于线轨组k的端口m已经连接了线网n,那么如果交换线网i和n在单元j上的输入端口并未造成线网n的线轨组对齐变差,那么就交换这两个端口。

3.其他情况交换不能发生。

由上可以看到,在布局结束之后、布线开始之前,通过交换可编程门的端口与线网之间的对应关系,来改善线网的线轨组匹配,以对后续的布线进行优化。

本发明第五实施方式涉及一种可编程逻辑器件的布线方法。图10和图11a-11c是该可编程逻辑器件的布线方法的流程示意图。

第五实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布线方法中,通过重新配置可编程门内置的查找表和线网的连接信息来交换输入端口,可以提高线网的线轨组对齐程度,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

为了通过端口交换的方式,进一步提高布局之后线网的线轨组对齐程度。我们对布线的改进深入到布线内部。在我们对某根线网进行布线时,遍历它的所有的输入端口所在的可编程门,虚拟从可编程门上的空置端口到目标端口的连接线轨,这样布线就能通过任一空置端口连接好目标端口。

在可编程逻辑器件中采用第一实施方式的连线结构,可编程逻辑器件是现场可编程门阵列器件,如图10所示,布线方法包括以下步骤:

在步骤1001中,如果进行布线的线网在可编程逻辑器件的相应可编程门位置上的目标输入端口与线网的驱动端口不属于同一个线轨组,判断相应可编程门位置上是否存在空置输入端口。

若相应可编程门位置上存在空置输入端口,此后进入步骤1002,否则进入步骤1005。

在步骤1002中,虚拟相应可编程门位置上的所有空置输入端口到目标输入端口的连接。可以理解,此处的虚拟为本领域技术人员所熟知,在此不再赘述。

此后进入步骤1003,判断相应可编程门位置上的所有空置输入端口中是否存在与线网的驱动端口属于同一个线轨组的第一空置输入端口,若存在,进入步骤1004,否则进入步骤1005。

在步骤1004中,在相应可编程门内置的查找表中进行交换目标输入端口与第一空置输入端口所需的配置修改,并将线网连向第一空置输入端口。

在步骤1005中,将线网连向目标输入端口。

如图11a所示,在最初的连线关系中,线网1连往输入端口a,线网2连往输入端口b,端口c和d空置。当我们要连接线网1时,我们如图11(b)所示虚拟了从端口c到a的连接线轨、以及从端口d到a的连接线轨。然后我们对线网1布线,在示例中,我们发现了一条通过端口d再到a的连接路径。连线成功后,我们利用可编程门输入交换的特性,通过交换端口a和d来实现清除虚拟线轨“d-〉a”,并完成了线网1的线轨对齐。

由上可以看到,在布线进行中,通过虚拟从可编程门的空置端口到布线目标端口的线轨,从而使布线在必要时可以通过空置端口来实现连接和端口交换,以进行布线优化。

各实施方式组合后形成本发明的较佳实施方式(例如将第二实施方式与第三实施方式组合成布局方法,和/或将第四实施方式和第五实施方式组合成布线方法),但各实施方式也可以分别使用。

综合上面所述的一系列布局、布线的改进,我们可以实现在简化了可编程逻辑器件的连线结构的情况下,与原来的结构相似的连接效果。通过硬件、软件的协同调整,获得了更小的可编程逻辑器件的器件面积、功耗和制造成本。

本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(programmablearraylogic,简称“pal”)、随机存取存储器(randomaccessmemory,简称“ram”)、可编程只读存储器(programmablereadonlymemory,简称“prom”)、只读存储器(read-onlymemory,简称“rom”)、电可擦除可编程只读存储器(electricallyerasableprogrammablerom,简称“eeprom”)、磁盘、光盘、数字通用光盘(digitalversatiledisc,简称“dvd”)等等。

本发明第六实施方式涉及一种可编程逻辑器件的布局系统。图12是该可编程逻辑器件的布局系统的结构示意图。

第六实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布局系统中,通过将线轨对齐费用加入到详细布局的费用总和中,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

在可编程逻辑器件中采用第一实施方式的连线结构,如图12所示,布局系统包括:

分配模块,用于在详细布局前,对每条线网随机分配一个目标线轨组,每个线轨组对应于平均数量的线网;以及

详细布局模块,用于对可编程逻辑器件进行详细布局,使得放置所有逻辑单元的费用总和最小。

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有端口的线轨对齐费用总和,

详细布局模块根据以下方式计算每个逻辑单元的端口的线轨对齐费用:

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与分配模块分配给该线网的目标线轨组一致,则端口的线轨对齐费用为零;

如果线网在逻辑单元上的端口在相应可编程门位置上的线轨组与分配模块分配给该线网的目标线轨组不一致,则端口的线轨对齐费用为第一预定正数。

第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

本发明第七实施方式涉及一种可编程逻辑器件的布局系统。图13是该可编程逻辑器件的布局系统的结构示意图。

第七实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布局系统中,在详细布局后,通过将线轨对齐费用加入到详细布局的费用总和来进一步调整逻辑单元,可以提高线网的输入端口与驱动端口之间的线轨组匹配,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

在可编程逻辑器件中采用第一实施方式的连线结构,如图13所示,布局系统包括:

移动互换模块,用于在对可编程逻辑器件进行详细布局后,通过移动和/或互换逻辑单元使得放置所有逻辑单元的费用总和最小。

其中,费用总和包括每个逻辑单元的线轨对齐费用,每个逻辑单元的线轨对齐费用是每个逻辑单元放置在可编程逻辑器件的相应可编程门位置上时每个逻辑单元的所有输入端口的线轨对齐费用总和,

移动互换模块根据以下方式计算每个逻辑单元的输入端口的线轨对齐费用:

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于同一个线轨组,则输入端口的线轨对齐费用为零;

如果线网在逻辑单元上的输入端口与该线网的驱动端口属于不同线轨组,则输入端口的线轨对齐费用为第二预定正数。

第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。

本发明第八实施方式涉及一种可编程逻辑器件的布线系统。图14是该可编程逻辑器件的布线系统的结构示意图。

第八实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布线系统中,通过重新配置可编程门内置的查找表和线网的连接信息来交换输入端口,可以提高线网的线轨组对齐程度,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

在可编程逻辑器件中采用第一实施方式的连线结构,可编程逻辑器件是现场可编程门阵列器件,如图14所示,布线系统包括:

交换模块,用于在布线前,通过重新配置可编程逻辑器件的可编程门内置的查找表和线网的连接信息来交换输入端口;以及

布线模块,用于对可编程逻辑器件进行布线。

其中,交换模块根据以下方式交换输入端口:

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组、可编程门位置上的第二输入端口为空置端口并且与第一线网的驱动端口属于同一个线轨组,在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口;

如果第一线网的驱动端口与第一线网在可编程门位置上的第一输入端口不属于同一个线轨组并且第二线网在可编程门位置上的第二输入端口与第一线网的驱动端口属于同一个线轨组,则判断第二线网在可编程门位置上的第二输入端口与第二线网的驱动端口是否属于同一个线轨组,如果不是,则在可编程门内置的查找表中进行交换第一输入端口与第二输入端口所需的配置修改,并在第一线网的连接信息中将第一线网在可编程门位置上的第一输入端口修改为第二输入端口,在第二线网的连接信息中将第二线网在可编程门上的第二输入端口修改为第一输入端口,否则不进行交换。

第四实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第四实施方式互相配合实施。第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第四实施方式中。

本发明第九实施方式涉及一种可编程逻辑器件的布线系统。图15是该可编程逻辑器件的布线系统的结构示意图。

第九实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在可编程逻辑器件的布线系统中,通过重新配置可编程门内置的查找表和线网的连接信息来交换输入端口,可以提高线网的线轨组对齐程度,从而提高连线结构的布通率、减少多路选择器的使用数量,进一步减少了芯片面积、功耗和造价。具体地说:

在可编程逻辑器件中采用第一实施方式的连线结构,可编程逻辑器件是现场可编程门阵列器件,如图15所示,布线系统包括:

第一判断模块,用于当进行布线的线网在可编程逻辑器件的相应可编程门位置上的目标输入端口与线网的驱动端口不属于同一个线轨组时,判断相应可编程门位置上是否存在空置输入端口;

虚拟模块,用于若所述第一判断模块确定相应可编程门位置上存在空置输入端口,虚拟相应可编程门位置上的所有空置输入端口到所述目标输入端口的连接;

第二判断模块,用于判断相应可编程门位置上的所有空置端口中是否存在与线网的驱动端口属于同一个线轨组的第一空置输入端口;

交换模块,用于若第二判断模块确定存在第一空置输入端口时,在相应可编程门内置的查找表中进行交换目标输入端口与第一空置输入端口所需的配置修改;以及

连接模块,用于在第一判断模块确定相应可编程门位置上不存在空置输入端口或第二判断模块确定不存在第一空置输入端口时将线网连向目标输入端口,以及在第一判断模块确定相应可编程门位置上存在空置输入端口并且第二判断模块确定存在第一空置输入端口时将线网连向第一空置输入端口。

第五实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第五实施方式互相配合实施。第五实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第五实施方式中。

此外,以上各实施方式可以互相配合实施。任一实施方式中提到的相关技术细节都在其他实施方式中依然有效,为了减少重复,这里不再赘述。

综上,本申请设计用较少的传输门,通过一系列版图设计改变、布局方法调整、布线方法调整,来得到与较多传输门、高连通的器件相似的效果,从而有效降低器件制造成本。与当前的其他可编程逻辑器件的预布线轨连接关系相比,通过软件硬件协调优化,我们的简化连接方式能够满足设计电路的逻辑和时序要求,与此同时所产生的连接器件最少,从而使得可编程逻辑器件的面积最小、功耗最低、制造成本最低。

需要说明的是,本发明各设备实施方式中提到的各模块都是逻辑模块,在物理上,一个逻辑模块可以是一个物理模块,也可以是一个物理模块的一部分,还可以以多个物理模块的组合实现,这些逻辑模块本身的物理实现方式并不是最重要的,这些逻辑模块所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的模块引入,这并不表明上述设备实施方式并不存在其它的模块。

需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1