CN1862968A - 电路布置以及设计电路布置的方法 - Google Patents

电路布置以及设计电路布置的方法 Download PDF

Info

Publication number
CN1862968A
CN1862968A CNA2006100569963A CN200610056996A CN1862968A CN 1862968 A CN1862968 A CN 1862968A CN A2006100569963 A CNA2006100569963 A CN A2006100569963A CN 200610056996 A CN200610056996 A CN 200610056996A CN 1862968 A CN1862968 A CN 1862968A
Authority
CN
China
Prior art keywords
circuit
logic
dynamic logic
function
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100569963A
Other languages
English (en)
Other versions
CN1862968B (zh
Inventor
克里斯托弗·罗伯特·特雷兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1862968A publication Critical patent/CN1862968A/zh
Application granted granted Critical
Publication of CN1862968B publication Critical patent/CN1862968B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1735Controllable logic circuits by wiring, e.g. uncommitted logic arrays
    • H03K19/1736Controllable logic circuits by wiring, e.g. uncommitted logic arrays in which the wiring can be modified
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • H03K19/17716Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays with synchronous operation, i.e. using clock signals, e.g. of I/O or coupling register
    • H03K19/1772Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays with synchronous operation, i.e. using clock signals, e.g. of I/O or coupling register with synchronous operation of at least one of the logical matrixes

Abstract

一种电路布置、集成电路设备、装置、程序产品以及方法,使用功能可互换动态逻辑单元阵列在集成电路设计中实现专用逻辑功能。每个功能可互换动态逻辑单元包括动态逻辑电路以及输出锁存器,其中将该逻辑电路配置为使用动态逻辑、作为该多个输入的函数来生成输出,以及将该输出锁存器配置为对逻辑电路的输出进行锁存。功能可互换动态逻辑单元阵列用于通过在功能可互换动态逻辑单元的至少一个子集的输入和输出之间对多个导体进行布线,在具体逻辑设计中实现专用逻辑功能。

Description

电路布置以及设计电路布置的方法
技术领域
本发明一般地涉及集成电路以及集成电路设计,尤其涉及使用标准逻辑单元的集成电路设计综合。
背景技术
随着电路制造工艺的进步,电子集成电路或者“芯片”已经变得更加复杂。对于集成电路包含数以百万的晶体管,以及相对等数量的互连或者信号通道共同集成在一块不超过硬币大小的硅片衬底上也并非罕见。另外,以前需要多个芯片的相同功能现在通常可以集成到同一芯片上,这个概念通常被称为“系统级芯片”技术。
随着复杂度的增加,集成电路的设计同样变得更加困难。然而,早期芯片经常逐个门电路进行设计,包含数百万门电路的更高级集成电路对早期设计方法是太艰巨了。类似地,集成电路设计的另一个重要方面是测试和验证集成电路设计,这两者都出于验证设计将在逻辑上按照预期进行工作、以及确保设计将符合任何集成电路中所固有的物理限制、也就是确保满足所有定时和延时约束的观点。
其结果是,已经开发出了多种软件设计应用或者工具,以协助设计者进行集成电路设计和测试。
通常,在使用这些工具时,总设计过程用两个阶段代表。第一阶段称为逻辑设计,在此对集成电路的期望功能操作进行初始地定义和测试。第二阶段称为物理设计,在此对逻辑设计阶段产生的逻辑设计进行处理,以选择实际电路成分来实现逻辑设计中所定义的功能,以及在集成电路中对成分进行布局并对其间的互连进行布线(route)。电路元件之间的互连通常称为网(net),一般是在将电路成分布置在集成电路的具体位置之后对网进行布线。
通常,自动设计工具依赖于标准化电路成分,称为逻辑单元,其是代表具体的更高层功能的自包含、可再利用、预测试的电路设计。逻辑单元简化了多个设计步骤。例如,只要逻辑综合工具能够利用较少的更复杂的功能构造电路,就能够简化逻辑设计。此外,通常对物理设计和验证进行简化,这是因为逻辑单元功能或多或少地类似一个“黑盒子”,而逻辑单元中所有单独门电路和互连已经相对彼此进行了布置并预先进行了测试。
另外,可将一些逻辑单元配置为取决于它与其它电路成分如何互连来提供不同的逻辑响应。例如,逻辑单元可用于提供通用功能,例如A与B与C与D与E,其中A-E是不同的输入。假如一个特定设计只需实现功能A与B与C,则D和E输入可以简单地连接到逻辑值1,以有效地从功能中除去那些输入。类似地,当在不同的设计中只需要诸如A与B的功能,则C、D和E输入可以连接到逻辑值1,得到具有不同于第一示例中的逻辑响应的相同逻辑单元。
但是,使用逻辑单元的传统逻辑设计具有多个缺点。通常逻辑单元在大小和形状上有所不同,这会在将其布置于设计中时导致低效的空间利用率。此外,互连以及时钟信号的布线经常是杂乱且不规则的,在很多情况下会产生定时问题,例如偏差和抖动,需要进行额外的测试和重新设计。
另外,传统设计方法和工具通常被限于使用静态逻辑实现的逻辑单元。但是,近来由于较快的速度、较低的电源消耗和降低的门电路数量,动态逻辑已经在电路设计中使用。利用动态逻辑,在时钟的预充电阶段期间,时钟信号用于将多个门电路组成的电路预处理为稳态,然后在时钟的计算阶段期间,对电路输入的布尔函数进行计算并由电路输出。
传统上,逻辑综合工具已不能有效地利用动态逻辑,一部分原因在于动态逻辑相关联的更困难更严格的定时约束。在很多情况下,时钟和互连信号的自动布线简直太不规则,以致不能满足动态电路的严格的定时要求。
当在开发周期的后续阶段需要逻辑设计有所变化时,就产生了传统设计方法的另一个缺点。通常,可在设计中包含空单元,以考虑电路中要实现的逻辑功能将在设计过程的后续点上进行变化的可能性。但是,如果从不使用这种空单元,则分配给空单元的空间就会被浪费,从而增加了设计的尺寸以及全部成本。
因此,继续存在对于一种电路设计方法的需要,其支持在电路设计中使用动态逻辑,同时降低与传统方法和工具相关联的不规则性和低效率。
发明内容
本发明针对与现有技术相关联的这些以及其它问题,提供了一种电路布置、集成电路设备、装置、程序产品以及方法,其使用功能可互换动态逻辑单元阵列以在集成电路设计中实现专用逻辑功能。每个功能可互换动态逻辑单元包括动态逻辑电路以及输出锁存器,其中将该动态逻辑电路配置为作为多个输入的函数来生成输出,以及将该输出锁存器配置为对逻辑电路生成的输出进行锁存。功能可互换动态逻辑单元阵列用于通过在至少一个功能可互换动态逻辑单元子集的输入和输出之间对多个导体进行布线,在具体逻辑设计中实现专用逻辑功能。
本发明所特有的这些以及其它优势和特征在所附权利要求书中描述并且构成本发明的一部分。但是,为了更好地理解本发明以及通过使用本发明所达到的优势和目的,应当参考附图以及描述本发明示例性实施方式的所附描述部分。
附图说明
图1是依照本发明的功能可互换动态逻辑单元的功能框图。
图2是包含图1中功能可互换动态逻辑单元阵列的集成电路设备的框图。
图3是功能可互换动态逻辑单元的示例性阵列的框图,将时钟分配电路与设置于示例性阵列外围的本地时钟缓冲器阵列相结合。
图4是功能可互换动态逻辑单元的另一个示例性阵列的框图,将时钟分配电路与置于示例性阵列内的本地时钟缓冲器阵列相结合。
图5是图1中功能可互换动态逻辑单元示例性实现方式的电路图。
图6是图1中功能可互换动态逻辑单元另一个示例性实现方式的电路图。
图7是包含有集成电路设计工具的装置框图,该装置适用于以依照本发明的方式进行集成电路设计过程。
图8是说明使用图7的集成电路设计工具所进行的集成电路设计过程的流程图。
具体实施方式
在此详述的各实施方式使用功能可互换动态逻辑单元阵列,在集成电路设计中实现专用逻辑功能。
依照本发明的功能可互换动态逻辑单元包含使用静态逻辑实现的输出锁存器,以在单元的动态节点处捕获由动态逻辑电路生成的逻辑状态。由此,该单元提供了稳定的存储元件。
另外,依照本发明的动态逻辑单元在某种程度上是功能可互换的,即每个逻辑单元实现相同的逻辑功能,使得在将所期望的专用逻辑功能映射到逻辑单元阵列时,阵列中的任何逻辑单元可代替阵列中的另一个逻辑单元。虽然在很多实施方式中每个功能可互换动态逻辑单元可能在物理设计和布局上也是相同的,但是在其它实施方式中,只要其实现相同的逻辑功能,不同的单元可以具有不同的物理设计。还将了解到,可以使用多种类型的阵列,包括一维和二维阵列,以及规则和不规则阵列。例如,在很多实施方式中,希望实现矩形或正方形而且彼此尺寸相同并且布局在规则的二维阵列中的逻辑单元。
而且,将了解到,虽然每个单元实现相同的逻辑功能,通过不同输入到不同逻辑信号的互连和/或将不同输入连接到代表逻辑值“1”或逻辑值“0”的恒定电压,可以将每个单元配置为提供不同的逻辑响应。通常是通过在阵列中连接各逻辑单元的互连的具体配置,从由阵列中逻辑单元所实现的标准逻辑功能中获得专用逻辑功能。
在下文描述的一个具体实现方式中,单个唯一复杂逻辑单元放置于规则二维阵列中,而且是实现专用逻辑功能时综合工具所使用的唯一单元。使用有限切换动态逻辑(LSDL)配置实现逻辑单元,其中动态逻辑电路与为逻辑单元提供输出的时钟锁存器结构相连。正如以下将变得更明显的,该唯一单元的逻辑复杂度提供定制块和综合块之间的良好匹配,而且,规则阵列结构考虑到牢固的时钟分配方案以及锁存器和本地时钟缓冲器的规则放置。
此外,在上述实现方式中,不存在单元放置的问题,因为所有单元都是相同的。其结果是,综合工具不需要将一个门电路与最接近的具体类型的门电路相连,而是只需连接最接近的可用门电路。另外,由于所有单元是唯一且相同的,在设计周期的很晚期执行甚至是复杂的工程更改要求(ECO)也变得相对简单了。给定每个逻辑单元的复杂度,在给定设计所实现功能中的甚至是复杂的更改可以不必结合前端修改,而且通常不需要关于可用于未来ECO的空门电路或单元的优化方案。取而代之的是,只是将现有单元重新配置为依照必要的更改实现不同的功能。
现在参考附图,其中贯穿多个视图,类似的标号表示类似的部分。图1说明依照本发明的示例性功能可互换动态逻辑单元10。逻辑单元10包含动态逻辑电路12,其用于在内部动态节点处作为在多个输入IN0-INx上所接收值的函数来生成一个逻辑值,以及静态锁存器14,其用于对动态负载上所生成的逻辑值进行取样和锁存,并且从中输出一个输出信号OUT。虽然未在图1中表示,但是逻辑单元10除了OUT之外还可输出反相输出信号,或者代替OUT输出反相输出信号。
逻辑单元10还接收时钟信号CLOCK作为输入,连同VDD和GND输入。将了解到,在不同的实施方式中,在逻辑单元中可能提供多个CLOCK、VDD和/或GND输入,以便于与周围电路的互连,而且可能使用多个时钟信号。另外,提供给逻辑单元的输入的数量可能不同,这取决于那里的动态逻辑所实现的标准化功能。
如上所述,通常在阵列中使用逻辑单元10,以实现专用逻辑功能。例如,图2说明集成电路设备或芯片的一部分16,其包含逻辑单元10的阵列18。阵列18是二维规则阵列,每个逻辑单元10是正方形的,并且具有相同的外部尺寸。但是,将了解到,可能使用不同的阵列布局,例如,将单独逻辑单元交错放置于相邻行或列中,将单独单元块放置于其它不同的单独单元块附近,等等。还将了解到,虽然所示阵列18是4×4阵列,但是依照本发明的阵列可设置有任意数量的单元。
阵列18中还包含时钟分配网络或树20,其包括多个时钟线路或网22。时钟线路22也设置于规则阵列中,并且由于逻辑单元10的规则和重复特性,可以提前确定时钟加载,允许时钟分配更加可控且稳定,并且允许在布局之前进行最优化。例如,在很多实现方式中,逻辑单元阵列和时钟分配树的规则特性消除了对阵列或时钟分配树进行综合的必要。取而代之的是,综合主要包括将互连布线至适当的逻辑单元,以实现所期望的逻辑功能。
也可能在一些实现方式中希望在依照本发明的时钟分配网络中包括时钟缓冲器。而且,假如能够使用逻辑单元和时钟网的规则阵列,还可能希望在依照本发明的集成电路设计中使用本地时钟缓冲器(LCB)的规则阵列。
例如,图3说明设计30的物理布局,其包含逻辑单元10的规则二维阵列32。在这个实现方式中,时钟分配网络34包括多个等距且在水平方向上平行设置的时钟网36。另外,LCB的垂直阵列38沿阵列32每端的外围设置,以便为时钟网36重新提供电源。
在其它实现方式中,LCB可能设置在电路设计的其它结构中。例如,图4说明可替换的设计30′,其中时钟分配网络34′包括LCB的垂直阵列38′,它们插入到逻辑单元10的阵列32之间或者与阵列32交错排列。但是,在一些情况下,由于需要从LCB阵列的一边传播至其另一边的信号会需要相对较长的线,这可能导致定时问题,因此图3的实现方式可能比图4的实现方式具有优势。另一方面,由于时钟网的长度减少了,图4的实现方式可能在较大的阵列中更具优势。
因此,与锁存器、门电路和缓冲器随意放置于平面图(floor plan)上而使时钟网也在布线和线路长度上彼此不同的传统综合工具相反,所示实现方式中的时钟网更加规则并且稳定,因此使时钟延时变化和时钟偏差最小化。
在此描述的动态逻辑单元与电路布置的生成结合使用,该电路布置包含有实现专用逻辑功能的电路设计。最后,这种电路布置通常实现于集成电路设备或芯片中。但是,还应当了解,电路布置的设计和制造,通常至少部分地使用一个或多个在集成电路设备上定义电路布置的逻辑和/或布局的计算机数据文件,在这里称为电路设计文件。通常利用多种设计工具以已知的方式生成这些文件,并在设计过程的不同阶段进行使用,而且在最后用于生成适合于生成定义应用于半导体晶片的电路布置的布局掩模的信息。这些设计文件通常存储在计算机可读介质中,并在设计过程的不同阶段由计算机或其它电子设备读取和处理;但是,这种文件还可能以程序产品的形式进行分配,并且通过传输或可记录类型计算机可读介质来承载。
如上所述,说明的实现方式希望使用有限切换动态逻辑(LSDL)动态逻辑单元,例如在美国专利No.6,690,204中的描述,在此其公开内容作为参考引入本发明。一般地,依照本发明的动态逻辑单元可实现任意数量的复杂逻辑功能,通常在逻辑单元所实现的潜在逻辑功能的复杂度和单元的面积和性能之间存在某种折衷。特别地,所实现的逻辑功能越复杂,阵列中一个或多个单元的一部分在最终的综合逻辑设计中不被使用的可能性就越大,从而浪费了空间,而且不必要地损失了性能。
例如,图5和图6说明两种可能的逻辑单元实现方式,代表了复杂度和性能之间的良好平衡。将了解到,在可选方案中,可能使用无数的其它设计。
图5特别地说明逻辑单元10电路设计的实现方式,其接收多达24个信号(表示为A0-L0以及A1-L1)作为输入,分为8个输入组,每组3个输入,并且对每组的输入一起进行逻辑与,再对每个输入组的结果进行逻辑或。在数学上表示为,根据以下逻辑功能从输入得到逻辑单元10的输出信号OUT:
OUT=(A0B0C0+D0E0F0+G0H0I0+J0K0L0)+(A1B1C1+D1E1F1+G1H1I1+J1K1L1)
使用CMOS逻辑,包括NFET N0-N30和PFET P0-P4来实现逻辑单元10。使用布尔电路40、42和44在逻辑单元10的动态逻辑部分实现逻辑功能,且电路42与中间体P0和N0相连,电路44与中间体P1和N1相连。将电路40、42和44所实现的布尔函数的解析保持在图5中标记为DNODE的动态节点上。逻辑单元10的静态逻辑部分对DNODE所保持的值进行锁存,并且实现包括P2、P3、P4、N2、N3和N4的反相锁存。
P0-P2和N0-N2由时钟信号CLK驱动,使得P0、P1和P2在CLK信号的预充电阶段是激活的,而且N0、N1和N2在CLK信号的计算阶段是激活的。P4和N4形成反相器,其与动态节点DNODE相连,用于对DNODE处保持的值进行反相,并提供输出信号OUT。OUT被反馈,以驱动P3和N3,从而实现静态锁存以在CLK的计算阶段期间保持DNODE上的先前的值。将了解到,也可能在可选方案中使用其它锁存器实现方式。
将了解到,P0-P4和N0-N4的电路配置实现了通用LSDL电路,其能够取决于电路40、42和44中每一个的配置(此外,基于与电路40相连的电路例如电路42和44的数量)实现任意数量的布尔逻辑功能。例如,在图5的配置中,包括P5、P6、N5和N6的电路40对电路42、44中每一个的输出进行逻辑或以及反相。包括N7-N18的电路42实现功能A0B0C0+D0E0F0+G0H0I0+J0K0L0,并且,包括N9-N30的电路44实现功能A1B1C1+D1E1F1+G1H1I1+J1K1L1。将了解到,在每个电路42、44中,输入组的数量和/或每个输入组内输入的数量在不同的实施方式中会有所不同。
图6说明功能可互换动态逻辑单元电路设计的替代实现方式10′,其接收多达36个信号(表示为A0-L0、A1-L1以及A2-L2)作为输入,分为12个输入组,每组3个输入,并且对每组内的输入一起进行逻辑与,对前8个输入组的结果进行逻辑或,然后再将这个结果与后四个输入组的结果进行逻辑与。在数学上表示为,根据以下逻辑功能从输入得到逻辑单元10′的输出信号OUT:
OUT=[(A0B0C0+D0E0F0+G0H0I0+J0K0L0)+(A1B1C1+D1E1F1+G1H1I1+J1K1L1)]*(A2B2C2+D2E2F2+G2H2I2+J2K2L2)
使用NFET N0-N44和PFET P0-P8来实现逻辑单元10′,其中N0-N4和P0-P4与图5中逻辑单元10的配置方式相似。使用布尔电路50、52、54和56在逻辑单元10′的动态逻辑部分实现逻辑功能。将电路50、52、54和56所实现的布尔函数的解析保持在图6中标记为DNODE的动态节点处。逻辑单元10′的静态逻辑部分对在DNODE保持的值进行锁存,并且实现包括N2-N4以及P2-P4的反相锁存。
注意,逻辑单元10′的作用方式与图5的逻辑单元10的方式极为相同,除了添加了电路56、P2和N2以及电路50的配置。具体地,正如电路42和44,包括N9-N20的电路52实现功能A0B0C0+D0E0F0+G0H0I0+J0K0L0,而包括N21-N32的电路54实现功能A1B1C1+D1E1F1+G1H1I1+J1K1L1。包括N33-N44的电路56类似地实现功能A2B2C2+D2E2F2+G2H2I2+J2K2L2。但是,与实现逻辑或和反相的电路40不同,电路50对电路52和54的输出进行逻辑或,之后对那个结果与电路56的输出执行逻辑与。然后由P5和N5实现的反相器对结果进行反相,以生成输出信号OUT。
受益于本公开的本领域的技术人员将了解到,通过选择适当的布尔逻辑电路用于图5和图6通用电路框架内的实现方式,实际上,任何复杂的布尔函数都可在依照本发明的逻辑单元中实现。因此,本发明不限于在此描述的特定实现方式。而且,将了解到,在此所描述的逻辑单元的逻辑和/或物理设计的实现方式将在受益于本公开的本领域技术人员的能力范围内。
图7接着说明适合于依照本发明的方式实现逻辑综合的装置60的示例性硬件和软件环境。为本发明的目的,装置60实际上可代表任何类型的计算机、计算机系统或其它可编程电子设备,包括客户端计算机、服务器计算机、便携式计算机、手持计算机以及嵌入式控制器等等。而且,可使用例如集群或其它分布式计算系统中的一个或多个网络计算机实现装置60。在下文中,装置60也称为“计算机”,但是应当了解到,术语“装置”也可能包括依照本发明的其它合适的可编程电子设备。
计算机60通常包括至少一个处理器62,其与存储器64相连。处理器62可代表一个或多个处理器(例如,微处理器),并且存储器64可代表随机存取存储器(RAM)设备,其包括计算机60的主存储器,以及任何补充级别的存储器,例如高速缓冲存储器、非易失性或备份存储器(例如,可编程或闪存存储器)、只读存储器等等。另外,可认为存储器64包括物理上位于计算机60之外位置的存储存储器,例如,处理器62中的任何高速缓冲存储器,以及用作虚拟存储器的任何存储容量,例如存储在大容量存储设备66或通过网络68与计算机60相连的另一个计算机。
计算机60通常还接收许多输入和输出,用于与外部信息进行通信。为了提供与用户或操作员的接口,计算机60可包括一个或多个用户输入/输出设备70(例如,键盘、鼠标、轨迹球、操纵杆、触摸板和/或扩音器用于输入;以及CRT监控器、LCD显示板、和/或扬声器用于输出,及其它)。此外,用户输入可通过远程终端或工作站72,和/或通过另一个通过网络68与计算机60对接的计算机进行接收。
为了进行附加存储,计算机60还可包括一个或多个大容量存储设备66,例如软盘或其它可移动磁盘驱动器、硬盘驱动器、直接访问存储设备(DASD)、光驱(例如,CD驱动器、DVD驱动器等),和/或磁带驱动器,及其它。此外,计算机60可包括与一个或多个网络68(例如LAN、WAN、无线网络和/或因特网及其它)的接口,以允许和其它与网络相连的计算机进行信息通信。应当了解到,如现有技术中所已知的,计算机60通常包括在处理器62和每个组件64、66、68、70和72之间的适当的模拟和/或数字接口。
正如通常与集成电路设计相关的,计算机60通常是多用户计算机,例如服务器、中型计算机、大型计算机,具有用户输入和输出,其由电路设计者或测试者通过一个或多个通过终端或连网的计算机与计算机60相连的外部计算机进行操作。但是,本发明并不限于这种环境。
计算机60在操作系统80的控制下工作,并且执行各种计算机软件应用、组件、程序、对象、模块、数据结构等(例如,集成电路设计工具82,及其它),或者相反地依赖于它们。而且,各种应用、组件、程序、对象、模块等还可以在通过网络68与计算机60相连的另一个计算机的一个或多个处理器上执行,例如在分布式或客户端-服务器计算机环境中,因此,实现计算机程序功能所需的处理可以分配到网络中的多个计算机。
一般而言,为实现本发明各实施方式而执行的例程,不论是作为操作系统的一部分或具体应用、组件、程序、对象、模块或指令序列实现,或甚至作为其一个子集来实现,在这里都将称为“计算机程序代码”或简单地称为“程序代码”。程序代码通常包括一个或多个指令,这些指令在不同时间上驻留于计算机的不同存储器或存储设备中,当由计算机中的一个或多个处理器读取和执行该指令时,使得计算机执行必要的步骤,以执行实现本发明各方面的步骤或元件。而且,虽然已经以及将要在下面对本发明在全功能计算机和计算机系统的上下文中进行描述,但是本领域的技术人员将了解,本发明的各个实施方式能够以多种形式作为程序产品分发,而且不论实际上用于实施分发的计算机可读介质的特定类型,本发明都同样适用。计算机可读介质的示例包括但不限于可记录类型介质,例如易失性以及非易失性存储器设备、软盘和其它可移动磁盘、硬盘驱动器、磁带、光盘(例如,CD-ROM,DVD等)及其它,以及传输类型介质,例如,数字和模拟通信链路。
另外,基于在本发明具体实施方式中所实现的应用或工具,可对在下文中描述的各种程序代码进行识别。但是,应当了解到,随后的任何特定程序术语仅用于简便目的,从而本发明不应当限于仅在由这种术语所识别和/或指示的任何具体应用中使用。此外,假设通常有无数种将计算机程序组织为例程、过程、方法、模块、对象等的方式,以及有各种可以将程序功能分配到驻留在典型计算机中的各种软件层(例如,操作系统、库、API、应用、小应用程序等)之中的方式,则应当了解到,本发明并不限于在此描述的具体程序功能的组织以及分配。
依照本发明的逻辑综合通常实现于集成电路设计环境中,其包括工具82,可用于开发和测试适合于制造集成电路的电路设计84(被显示驻留在大容量存储器66中)。但是,应当了解到,与设计和测试集成电路相关联的各种功能可由总体上代表图7中集成电路设计工具功能的不同计算机程序进行处理。计算机程序的不同集合,包含不同设计和/或测试功能,可以使用在其它实施方式中,以及可能是或者可能不是集成在通用工具或套件中。而且,将了解到,电路设计84可包括一个或多个设计文件,其包含任意数量的不同格式,并适用于电路设计过程期间的各个阶段(例如,对硬件描述语言信息、逻辑设计信息、布局信息、物理设计信息、验证/测试信息等进行存储的不同文件)。因此,本发明并不限于在此描述的计算机程序的特定组合中的实现。
图8接着说明使用图7的集成电路设计工具的示例性集成电路设计过程100中的主要步骤。为了图8,假设使用在此描述的功能可互换动态逻辑单元实现整个电路。但是,将了解到,功能可互换动态逻辑单元可用于某些环境中只是为实现在特定电路设计中使用的专用逻辑的子集。例如,其它方法可用于实现其它专用逻辑,和/或额外设计步骤可用于提供最终物理设计中所必需的任何支持电路。
此外,如下所详述,上述功能可互换动态逻辑单元的规则阵列的使用,结合上述规则时钟分配网络极大地简化了设计过程中的很多步骤。尤其是,规则结构的使用允许预先计划综合逻辑的平面图,如果需要的话,包括已经为预先计划的平面图优化过的时钟分配电路,以便逻辑综合以多种方式缩减为只是在逻辑单元之间寻找适当的连接,以实现所期望的专用逻辑功能。此外,由于上述动态逻辑单元包含静态锁存器,从逻辑综合的角度来说,每个单元作为锁存器工作,从而适合与多个基于静态逻辑的传统方法一起使用。
过程100开始于框102,其响应于例如来自电路设计者的用户输入开始设计电路。接下来,在框104中,为电路设计生成硬件描述语言文件(例如,VHDL)。
接下来,在框106中进行逻辑综合,以从硬件描述语言文件产生网表(netlist)。另外,在这里,逻辑综合将在硬件描述语言中定义的专用逻辑功能映射到功能可互换动态逻辑单元。例如,可能使用任意数量的传统基于单元的逻辑综合方法,但是限制只使用一个或多个实现在此描述的功能可互换动态逻辑单元的标准单元产生网表。例如,在一个实施方式中,逻辑综合工具可用的单元库可以限于单一标准动态逻辑单元。
接下来,在框块108中,使用标准单元对平面图进行初始化。在所示实现方式中,可能通过平铺实现期望的功能所需的足够多的标准单元来动态地构造平面图。在可选方案中,可以简单地获得具有期望数量的标准单元的预设计平面图,并将其布置为单一单元。如果需要,平面图也可以包括适当的电源、地线和时钟线路以及LCB阵列。此外,后面的任何或所有的电路元件可以集成在标准单元本身之中。在某些实现方式中,可能希望在平面图中包含所有必要的电源和地线连接以及预先计划的优化时钟分配网络,使得在平面图初始化之后很少需要或不需要进行电源、地线或时钟线路的用户定制布线。但是,在其它实施方式中,可能需要在已经进行了标准单元阵列的布置之后进行这些电路元件的一些布线和/或布置。在另外其它实施方式中,平面图可包括多个标准单元,多个平面图彼此相连,以提供用于实现期望的功能的所需数量的标准单元。
接下来,如果必要的话,可在框112中进行的布线之前,在框110中可选地画出电源和时钟的通道。注意,当包含预先计划的时钟分配网络时,则在框114中,创建为验证、制造等目的所需的一个或多个视图,例如布局视图和示意性视图。这些视图的至少一部分用于进行验证,如框116所示。如果在验证期间没有遇到问题,则过程100完成。如果在验证期间检测到例如定时问题等问题,则进行传统的重新制作过程,例如通过手动或自动重复上述设计过程中的任意数目的前述步骤。
在此描述的实现方式的另一个好处是甚至能够在设计过程的相对后期处理设计更改,例如ECO。由于所有逻辑单元是功能可互换的,所实现功能的更改通常只需要对连接器进行重新布线,而不用添加或删除单独的门电路和/或单元和/或需要前端修改。另外,由于所述实施方式中的任何“额外”门电路或单元将与其它逻辑单元具有相同的配置,降低或消除了对空门电路或单元的需要,所以ECO可能只需要利用对其的输入的不同编程来重新使用任何给定单元。因此,还如图8的框118中所示,上述设计过程还可用于仅通过对设计的现有硬件描述语言信息进行修改来实现设计更改,如框120中所示,之后重复开始于框106处的步骤。
将了解到,在某些实现方式中可能需要与集成电路设计、验证和/或制造过程相关的附加步骤,但是为了方便说明并未在图8中示出。例如,当使用不同的工具进行不同的步骤时,可能在过程中使用某些工具之前需要进行数据转换。而且,当其它方法用于集成电路设备的其它功能时,例如当功能可互换动态逻辑单元用于仅实现设备中的部分逻辑时,可能使用其它传统的过程步骤。
还将了解到,在这里描述的设计过程的实现方式将完全在受益于本公开的本领域技术人员的能力范围内。例如,将了解到,多个传统的基于静态逻辑的设计工具、过程和方法可以方便地在利用这里描述的功能可互换动态逻辑单元设计集成电路时使用。在某些实现方式中,现有工具和方法可简单地使用仅包含单一功能可互换动态逻辑单元的标准单元库,使得各种设计过程以与传统设计过程非常相同的方式运行,但是使用在此描述的动态逻辑单元实现所有设置的逻辑。
可对依照本发明的所示实施方式进行各种修改。例如,在此描述的逻辑单元电路设计实现了相对基本的LSDL结构。因此,其它已知的LSDL或例如对于抗扰度、门电路稳定性等的其它改进可以如所需地包含在逻辑单元中。
可以对所示各实施方式进行各种附加修改而不偏离本发明精神和范围。因此,本发明取决于以下所附的权利要求书。

Claims (30)

1.一种电路布置,包括:
设置于阵列中的多个功能可互换动态逻辑单元,每个功能可互换动态逻辑单元包括多个输入,逻辑电路以及输出锁存器,其中将该逻辑电路配置为使用动态逻辑、作为该多个输入的函数来生成输出,以及将该输出锁存器配置为对该逻辑电路的输出进行锁存;以及
多个导体,对该功能可互换动态逻辑单元的至少一个子集的输入和输出进行电互连,以将该多个功能可互换动态逻辑单元配置为共同实现专用逻辑功能。
2.根据权利要求1所述的电路布置,其中该多个导体配置该功能可互换动态逻辑单元的子集中的每一个,以单独实现专用逻辑功能的一部分。
3.根据权利要求1所述的电路布置,其中该多个导体的其中至少一个将至少一个该功能可互换动态逻辑单元的至少一个输入与恒定电压相连。
4.根据权利要求1所述的电路布置,其中每个动态逻辑单元中的多个输入包括多个输入组,以及其中将每个动态逻辑单元的该逻辑电路配置为对每个输入组的输入一起进行逻辑与,以生成其输出信号,以及对该多个输入组的输出信号进行逻辑或,以生成该逻辑电路的输出。
5.根据权利要求4所述的电路布置,其中该多个输入包括八个输入组,以及其中每个输入组包括三个输入。
6.根据权利要求1所述的电路布置,其中每个动态逻辑单元中的该多个输入包括多个输入组,其中每个动态逻辑单元包括第一、第二和第三动态逻辑电路,其中将该第一、第二和第三动态逻辑电路中的每个分别配置为对输入组中的一个子集的输入一起进行逻辑与,以生成其输出信号,以及对输入组的各子集的输出信号进行逻辑或,以分别生成第一、第二和第三输出,以及其中将该逻辑电路配置为对该第一输出与该第二和第三输出的逻辑或进行逻辑与。
7.根据权利要求6所述的电路布置,其中每个输入组包括三个输入,以及其中将该第一、第二和第三动态逻辑电路中的每一个配置为接收四个输入组。
8.根据权利要求1所述的电路布置,其中每个功能可互换动态逻辑单元包括有限切换动态逻辑(LSDL)电路。
9.根据权利要求1所述的电路布置,其中该多个功能可互换动态逻辑单元彼此相同。
10.根据权利要求1所述的电路布置,其中该多个功能可互换动态逻辑单元设置于二维规则阵列中,以及其中该电路布置进一步包括时钟分配电路,其包括在第一维中延伸的多个时钟网以及在通常与该第一维正交的第二维中延伸的多行本地时钟缓冲器。
11.根据权利要求10所述的电路布置,其中该多行本地时钟缓冲器包括分别设置于该功能可互换动态逻辑单元阵列对面端的第一和第二行。
12.根据权利要求10所述的电路布置,其中该多行本地时钟缓冲器包括至少一行与该功能可互换动态逻辑单元阵列相互交错。
13.根据权利要求1所述的电路布置,进一步包括时钟分配电路,其包括与该多个功能可互换动态逻辑单元的时钟输入相连的时钟网的规则阵列。
14.根据权利要求1所述的电路布置,其中仅使用该多个功能可互换动态逻辑单元实现该专用逻辑功能。
15.根据权利要求1所述的电路布置,其中该多个功能可互换动态逻辑单元具有大约相同的外部尺寸。
16.一种集成电路设备,包括如权利要求1所述的电路布置。
17.一种程序产品,包括电路设计数据,其定义了如权利要求1所述的电路布置;以及承载该电路设计数据的计算机可读介质,其中该计算机可读介质包括传输类型介质和可记录介质的其中至少一个。
18.一种设计电路布置的方法,该方法包括:
对功能可互换动态逻辑单元阵列进行布局,其中每个功能可互换动态逻辑单元包括多个输入,逻辑电路以及输出锁存器,其中将该逻辑电路配置为使用动态逻辑、作为该多个输入的函数来生成输出,以及将该输出锁存器配置为对逻辑电路的输出进行锁存;以及
通过对多个导体进行布线以对该功能可互换动态逻辑单元的至少一个子集的输入和输出进行电互连,将该功能可互换动态逻辑单元阵列配置为共同实现专用逻辑功能。
19.根据权利要求18所述的方法,其中每个功能可互换动态单元包括时钟分配电路的一部分,使得对该功能可互换动态逻辑单元阵列的布局包括对时钟分配电路的布局。
20.根据权利要求18所述的方法,其中对该功能可互换动态逻辑单元阵列的布局包括初始化平面图,该平面图包括功能可互换动态逻辑单元的规则阵列以及与其所集成的预先计划的规则时钟分配电路。
21.根据权利要求20所述的方法,进一步包括在对该功能可互换动态逻辑单元进行布局之前,优化该预先计划的规则时钟分配电路。
22.根据权利要求20所述的方法,其中功能可互换动态逻辑单元的该规则阵列是二维阵列,以及其中该预先计划的规则时钟分配电路包括在第一维中延伸的多个时钟网以及在通常与该第一维正交的第二维中延伸的多行本地时钟缓冲器。
23.根据权利要求18所述的方法,其中对该多个导体进行布线以对该功能可互换动态逻辑单元的至少一个子集的输入和输出进行互连包括将功能可互换动态逻辑单元的至少一个输入与恒定电压相连。
24.根据权利要求18所述的方法,其中每个动态逻辑单元中的该多个输入包括多个输入组,以及其中将每个动态逻辑单元的该逻辑电路配置为对每个输入组的输入一起进行逻辑与,以生成其输出信号,以及对该多个输入组的该输出信号进行逻辑或,以生成该逻辑电路的输出。
25.根据权利要求18所述的方法,其中每个动态逻辑单元中的该多个输入包括多个输入组,其中每个动态逻辑单元包括第一、第二和第三动态逻辑电路,其中将该第一、第二和第三动态逻辑电路中的每一个分别配置为对输入组的一个子集的输入一起进行逻辑与,以生成其输出信号,以及对输入组的各子集的输出信号进行逻辑或,以分别生成第一、第二和第三输出,以及其中将逻辑电路配置为对该第一输出与该第二和第三输出的逻辑或进行逻辑与。
26.根据权利要求18所述的方法,其中每个功能可互换动态逻辑单元包括有限切换动态逻辑(LSDL)电路。
27.根据权利要求18所述的方法,进一步包括,在将该功能可互换动态逻辑单元阵列配置为共同实现该专用逻辑功能之后,通过对该多个导体的其中至少一个子集进行重新布线,将该功能可互换动态逻辑单元阵列重新配置为共同实现修改的专用逻辑功能。
28.一种通过如权利要求18所述方法而设计的集成电路设备。
29.一种程序产品,包括:
程序代码,被配置为通过对功能可互换动态逻辑单元阵列进行布局来设计电路布置,其中每个功能可互换动态逻辑单元包括多个输入,逻辑电路以及输出锁存器,其中将该将该逻辑电路配置为使用动态逻辑、作为该多个输入的函数来生成输出,并且将该输出锁存器配置为对逻辑电路的输出进行锁存,以及其中该程序代码被进一步配置为,通过对多个导体进行布线以对该功能可互换动态逻辑单元的至少一个子集的输入和输出进行电互连,将该功能可互换动态逻辑单元阵列配置为共同实现专用逻辑功能;以及
承载该程序代码的计算机可读介质。
30.一种装置,包括如权利要求14所述的程序产品,其中该计算可读介质包括至少一个存储器设备,以及其中该装置进一步包括至少一个与该至少一个该存储器设备相连的处理器,并且该处理器被配置为执行该程序代码。
CN2006100569963A 2005-05-12 2006-03-07 集成电路以及设计集成电路的方法 Expired - Fee Related CN1862968B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/128,069 US7389481B2 (en) 2005-05-12 2005-05-12 Integrated circuit design utilizing array of functionally interchangeable dynamic logic cells
US11/128,069 2005-05-12

Publications (2)

Publication Number Publication Date
CN1862968A true CN1862968A (zh) 2006-11-15
CN1862968B CN1862968B (zh) 2010-05-12

Family

ID=37390311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100569963A Expired - Fee Related CN1862968B (zh) 2005-05-12 2006-03-07 集成电路以及设计集成电路的方法

Country Status (3)

Country Link
US (2) US7389481B2 (zh)
CN (1) CN1862968B (zh)
TW (1) TW200707908A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361219A (zh) * 2020-05-21 2021-09-07 台湾积体电路制造股份有限公司 用于优化集成电路设计的系统和方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7458051B2 (en) * 2005-11-17 2008-11-25 Taiwan Semiconductor Manufacturing Co., Ltd. ECO cell for reducing leakage power
US8839162B2 (en) * 2010-07-14 2014-09-16 International Business Machines Corporation Specifying circuit level connectivity during circuit design synthesis
US10169617B2 (en) 2014-04-29 2019-01-01 Bar-Ilan University Multi-topology logic gates
US9712112B1 (en) * 2016-10-21 2017-07-18 International Business Machines Corporation Dynamic noise mitigation in integrated circuit devices using local clock buffers

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181163B1 (en) * 1999-01-21 2001-01-30 Vantis Corporation FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
US6285218B1 (en) * 2000-05-10 2001-09-04 International Business Machines Corporation Method and apparatus for implementing logic using mask-programmable dynamic logic gates
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US6765408B2 (en) * 2002-02-11 2004-07-20 Lattice Semiconductor Corporation Device and method with generic logic blocks
US6690204B1 (en) * 2002-09-12 2004-02-10 International Business Machines Corporation Limited switch dynamic logic circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361219A (zh) * 2020-05-21 2021-09-07 台湾积体电路制造股份有限公司 用于优化集成电路设计的系统和方法
CN113361219B (zh) * 2020-05-21 2023-08-08 台湾积体电路制造股份有限公司 用于优化集成电路设计的系统和方法

Also Published As

Publication number Publication date
US7954077B2 (en) 2011-05-31
CN1862968B (zh) 2010-05-12
US20060259887A1 (en) 2006-11-16
US7389481B2 (en) 2008-06-17
US20080189663A1 (en) 2008-08-07
TW200707908A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
US9106229B1 (en) Programmable interposer circuitry
US6823502B2 (en) Placement of configurable input/output buffer structures during design of integrated circuits
US8572526B2 (en) Power mesh for multiple frequency operation of semiconductor products
JP3354143B2 (ja) 電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
Poorhosseini et al. A fault-tolerant and efficient XOR structure for modular design of complex QCA circuits
CN1881223A (zh) 具有可重定位处理器硬核的集成电路
US9092591B2 (en) Automatic generation of wire tag lists for a metal stack
CN111241768B (zh) 建立标准单元库的方法与系统、芯片设计方法与系统
CN1862968B (zh) 集成电路以及设计集成电路的方法
US6321371B1 (en) Insertion of spare logic gates into the unused spaces between individual gates in standard cell artwork
Soni VLSI Implementation of a Wormhole Runtime Reconfigurable Processor
CN1081284A (zh) 专用集成电路样机
US7480886B2 (en) VLSI timing optimization with interleaved buffer insertion and wire sizing stages
US7620925B1 (en) Method and apparatus for performing post-placement routability optimization
US20130097575A1 (en) Rescaling
US7260804B1 (en) Method for circuit block routing based on switching activity
US6654943B2 (en) Method, system, and computer program product for correcting anticipated problems related to global routing
EP0905632A2 (en) Method for reducing circuit area by grouping compatible storage devices
CN1189822C (zh) 一种异常逻辑业务仿真测试装置
US7979817B2 (en) Net list producing device producing a net list with an interconnection parasitic element by hierarchical processing
US6526543B1 (en) Method, system, and computer program product for optimizing logic during synthesis of logic designs
JP2005527045A (ja) 集積回路設計方法
US6728944B2 (en) Method, system, and computer program product for improving wireability near dense clock nets
CN1648904A (zh) 利用图形界面快速完成端口连接的方法
Карнаушенко et al. Field Programmable Counter Arrays Integration with Field Programmable Gates Arrays

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171116

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171116

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171122

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171122

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100512

Termination date: 20190307

CF01 Termination of patent right due to non-payment of annual fee