CN1321359A - 非常精细颗粒的现场可编程门阵列结构和电路 - Google Patents

非常精细颗粒的现场可编程门阵列结构和电路 Download PDF

Info

Publication number
CN1321359A
CN1321359A CN00801917A CN00801917A CN1321359A CN 1321359 A CN1321359 A CN 1321359A CN 00801917 A CN00801917 A CN 00801917A CN 00801917 A CN00801917 A CN 00801917A CN 1321359 A CN1321359 A CN 1321359A
Authority
CN
China
Prior art keywords
unit
output
logic
input
gate array
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
CN00801917A
Other languages
English (en)
Other versions
CN1181617C (zh
Inventor
R·L·克莱因
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1321359A publication Critical patent/CN1321359A/zh
Application granted granted Critical
Publication of CN1181617C publication Critical patent/CN1181617C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/17736Structural details of routing resources
    • 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/1737Controllable logic circuits using multiplexers
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

提供了一种非常精细颗粒的门阵列单元,该单元包含一个两输入逻辑器件和一个带有缓冲输出的级联NAND门。NAND门从另一个单元接受一个级联输入,而NAND门的级联输出被提供作为其它单元的级联输入,以方便交叉耦合器件的有效实现。每个单元包含集成的方便“门海”布图方法的布线路径。为了减轻布线任务,每一个门阵列单元的输出被预先穿线,以方便到近邻单元、次近邻单元、以及远处单元的每一个逻辑输入的编程互连,和上面所提到的到近邻上下单元的级联连接。这种构造使近邻和次近邻单元能够容易地互连以形成与更高级功能块一致的宏单元。门阵列不包含明显的布线通道;应用与每一个门阵列单元成整体的预先穿线布线来实现布线。

Description

非常精细颗粒的现场可编程门阵列结构和电路
本发明涉及到集成电路设计领域,特别是可编程门阵列。
门阵列集成电路在本技术领域中是很普通的,通过把预先定义和预先制造好的门阵列单元互相连接起来实现,可以设计专用集成电路。现场可编程门阵列(FPGA),使用通常的可编程器件,允许用户使用地点上单元的互连的产生,或编程。互连可以通过熔丝,可选的开关,存储控制可用开关的图案等等来产生。美国专利5 594 363“现场可编程门阵列中的逻辑单元和布线结构”,由Freeman等人于1997年1月14日提交,附在本文的参考文献中,该专利公布了一种基于非易失存储单元值的单元之间布线的技术,它包括连接选定垂直线与水平线的开关矩阵。典型地,设计者给定执行功能的描述,以及判断实现该功能的互连程序的计算机辅助设计(CAD)程序。这种描述可以是逻辑程序、数据流图、状态图或者表、结构设计语言中的一连串指令等等。
从设计描述到门阵列程序的转换取决于门阵列的内容。如果门阵列的单元是高级块,例如计数器、奇偶产生器等类似的块,那么所需程序量被约束在这些大的,或者粗糙颗粒单元之间的互连上。另一方面,如果门矩阵的单元是低级块,例如门、锁存器等,那么编程量显著提高,因为这些较小的,或者精细颗粒的单元需要实现更高级功能的互连,例如前面提到的计数器和奇偶产生器。在一些设计中,通过应用精细颗粒单元,可以达到较高的电路密度,因为较简单的功能可以由小的低级单元来实现,而不是由那些其高级功能没有得到使用的高级单元来实现。相反,一些复杂的设计不能在精细颗粒门阵列中有效地体现,因为低级单元之间所需互连的数目超过了门阵列的容量。在某些情况下,互连可以在门阵列的容量内,但是这样得到的低级单元之间的布线路径超过达到目标功能所需的传输延迟或者偏移约束。对于优化操作,与特别功能相关的精细颗粒单元应该一起放置,但当这样一起放置产生布线“瓶颈”时,这通常要对功能块的连接布线施加约束。
已经提出来多种结构来优化电路密度、布线效率、功能操作约束等之间的折衷方案。例如,1991年3月19日授予Cliff等人的美国专利5 001 368“可构造的逻辑阵列”,指出了仅含NAND门单元的门阵列结构的不足,并且详细说明了在每个单元中加入一个附加电路以包含一锁存器功能。在一般门阵列单元设计中需要锁存功能是一个普遍的话题,因为如果形成锁存器的器件经过长布线路径,或者经过中间缓冲器互连,引入的相移就能够导致锁存器震荡。典型的门阵列一般包含至少一个锁存器,有时候更多。1991年10月8日授予Galbracth等人的美国专利5 055 718“具有构造综合和时序块的逻辑模块”,详细说明了一种结构门阵列单元,它能实现从简单NAND功能到异步复位的边沿触发触发器的“广泛的多种”组合与时序逻辑功能。如上所述,不管实现的是简单NAND门或者复杂的触发器,都要消耗同样数量的单元面积。
为了减轻布线任务,1998年3月11日授予Kean等人的U.S专利5 831 448“精细颗粒FPGA的功能单元”,详细说明了把可构造门阵列单元组织成块层次,例如4×4单元块,4×4单元块的4×4构造等等。层次的每一层包含专属该层的布线路径,因此允许其布线策略是距离项的对数函数。前面提到的美国专利5 594 363也公开了层次布线电路通道的使用。市售FPGA的摩托罗拉MPA 1000系列提供了多功能结构门阵列单元,此单元以10×10单元和诸如端口单元和时钟分布单元的辅助组元区构造成,该区被构造成四个象限。布线路径的层次为:局域互连提供近邻或者次近邻单元之间的连接;中等互连提供区之间的互连;而全局互连提供四个象限以及全局信号和总线布线之间的互连。
尽管层次式布线对于管理互连复杂性很有效,但当单元层次与设计中使用的功能层次不一致时,固定的单元层次会导致失效,类似地,尽管通过包含诸如触发器的中等复杂器件,多功能结构单元减轻了布线任务,但可达到的电路密度受设计中的低级动能单元的数目的直接影响,因为无论如何简化,它们都将消耗一个中等复杂的中等尺寸单元。而且,当由于所有可用布线路径的约定而使可用逻辑元件不能接触到其它逻辑单元,或者优选的布线路径不能接触特定的逻辑单元时,把面积划分成逻辑单元区和布线路径区也能导致失效。
本发明的目的是提供一种具有非常精细颗粒单元结构的门阵列结构。本发明的另一个目的是提供一种方便单元之间有效布线的门阵列结构。本发明的另一个目的是提供一种支持用户可定义的门阵列单元的门阵列结构。本发明的另一个目的是提供一种方便创建用户可定义宏单元的产生的门阵列结构。
这些目的和其余的目的通过提供非常精细颗粒门阵列,和通过提供方便“门海”放置的单元布局和布线技术而实现。优选门阵列单元包含一个仔细定义的“核心”元件,它的重复体现了最小未用势的逻辑实施方案。在优选实施方案中,门阵列单元包含一个双输入逻辑器件和一个带缓冲器的级联NAND门。NAND门从另一个单元接受一个级联输入,NAND门的级联输出提供作为其它单元的级联输入,以方便交叉耦合器件的有效实现。另一个优选实施方案中,门阵列单元包含一个三输入神经单元。为了减轻布线任务,在这些优选实施方案中,每一个门阵列单元的输出被预先穿线以方便到近邻单元、次近邻单元、与远处单元的每一个逻辑输入的编程互连,以及上面所提到的到近邻上下单元的级联连接。这种构造允许近邻和次近邻单元轻易地互相连接以形成相应于更高级功能块的宏单元。优选实施方案中的门阵列并不包含清晰的布线通道;应用与每一个门阵列单元成整体的预先穿线布线来实现布线。
以下参照附图以举例的方式来进一步详细解释本发明。
图1示出了根据本发明的范例门阵列单元逻辑图。
图2示出了根据本发明的范例多单元逻辑图。
图3示出了根据本发明的范例多单元触发器结构。
图4示出了根据本发明的范例单元布线图。
图5示出了根据本发明的范例多单元布线图。
图6示出了根据本发明的范例输出扇出布线图。
图7示出了根据本发明的范例变通门阵列单元逻辑图。
图8示出了根据本发明的范例布线路径。
图9示出了另一个根据本发明的范例变通门阵列单元逻辑图。
图10示出了根据本发明的具有近邻单元区域的门阵列单元的范例
实施方案。
根据本发明的门阵列单元的优选实施方案,包含一个具有精心定义功能的核心元,它可以用做逻辑系统中的积木块而不引入明显的配置或者使布线无效。如本领域中众所周知,只用NAND门或只用NOR门可以产生任何逻辑器件。然而,从诸如NAND门或NOR门的核心简单门单元的结合而产生的设计,需要一定数目的布线路径。如上所述,从复杂多功能单元产生的设计经常使一定数目的门未被使用,每次诸如NAND或NOR功能的低级功能被放置在一个复杂多功能单元中以实现低级功能。因此,门阵列单元的优选实施方案包含足够的功能复杂性以使单元之间所需的布线最少,还提供一个功能上使未用的低级功能逻辑元最少的核心。
图1示出了根据本发明这一情况的门阵列单元100的范例逻辑图。单元100包含4个可编程的组元:多路器110、120和140、以及搜索表130。多路器110、120和140中的每个分别有多个输入101、102和103、以及一个单一输出111、121和141。每个多路器的编程控制决定多个输入中的哪一个与输出相连。通常有多种技术可用来对多路器进行编程。熔丝连接可以用来将各个输入连接到输出或从输出断开连接;旁路晶体管能形成由可编程存储器件控制的开关;同样,电可擦除晶体管能够形成可编程开关,等等。
多路器110、120的输出111、121形成到两输入搜索表130的输入。对搜索表130进行编程控制以产生输入逻辑值四个组合的每个的所需输出131。即,例如为实现AND功能,相应于1-1输入组合的表入口被编程至逻辑1,相应于另三个输入组合(0-0,0-1,1-0)的每个表入口被编程至逻辑0。因为所有四个输入组合只有一个可编程的结果输出,故包含那些通常被描述成具有反相输入的所有逻辑功能是可达到的。进一步讨论,图3示出了多种编程控制逻辑功能。因此,如所示,多路器110和120以及搜索表130的编程控制提供了任何输入101和任何输入102的任何逻辑组合的实现。
把多路器140编程选为输出141,两个逻辑输入152’和153’中的一个,即固定逻辑1值。如下面进一步讨论,输入152’的153’相应于近邻单元的中间输出信号,并方便交叉耦合门和级联门的形成,它们对诸如触发器,加法器,计数器等的多种更高级的逻辑块来说都是普通的。
NAND门150组合搜索表输出131和多路器输出141以形成中间输出151。反相缓冲器160把中间输出151反相形成单元输出161。因为NAND门150普遍用在级联门布局中,为方便参考和理解,此处称它为级联门150,而它的输出被称为级联输出151。
图1中分别示出了在级联输出151和单元输出161处的扇出箭头151-153、161-163。根据本发明,这些扇出箭头用来说明每个单元100的输出151、161被预先穿线以提供其它单元的输入101、102、103。图2阐述了多个单元250、251、260、261、270和271的范例预先穿线结构。相应于图1中单元输出节点161的单元输出260,在图2中标记为210,并提供近邻单元261的输入。这个单元输出210也被预先穿线来提供分别到单元251、271、250和270的输入211、212、213、和214。用同样的方法,单元260的级联输出220被预先穿线以分别提供上面所提到的到单元250和270的级联输入221和222(图1中的节点152’和153’)。根据本发明,门阵列包含多个重复单元,它们每个都有到其它单元的预先穿线扇出。单元260的范例扇出只是为了阐述,根据本公开内容,对于本技术领域中的普通技术人员来说,各种变通安排是显而易见的。一般说来,近邻左右上下单元的预先穿线方便了诸如锁存器和触发器的低压缩和中级逻辑块的产生。图2中所阐述的对角单元也被预先穿线,且如215和216的扇出线所示,较远分开的线也被预先穿线。用同样的方法,从另一个单元到单元260的每个输入被预先穿线,如从单元250的级联输出210和单元250的输出240节点的输入231、241所阐述。在优选实施方案中,除了中间近邻单元,单元输出节点210、240的扇出延伸到左,右,上,和下每个方向中单元之外的2、4和8单元。
图3阐述了图2中单元的范例预先穿线扇出如何方便更高级逻辑块300的产生,它是一个D触发器,使用四个单元301-304。如上所述,为了产生逻辑块300,对每个逻辑单元301-304中的每个多路器和搜索表进行编程,以实现预期的逻辑功能。这个编程由图3通过在每个逻辑多路器311-314、321-324、和341-344之内连线,和通过相应于每个单元301-304中的搜索表331-334的真值表331’-334’予以解释。亦即,在单元301中,第一个多路器311把D 391输入连接到搜索表331的第一个输入,第二个多路器321把CLK 392输入连接到搜索表331的第二个输入。
搜索表331实现由真值表331’描述的逻辑功能。按照惯例,上面的多路器在真值表中称为I1,其余的输入是I2。在这个范例中,真值表331’相应于一个简单的OR功能。因此,多路器311和321以及搜索表331的编程控制提供D 391(I1)和CLK 392(I2)的OR。用类似的方法,多路器313和323以及搜索表333的编程控制提供了CLK 392(I2)与D 391(I1)反相的OR。多路器312和322以及搜索表332的编程控制提供了单元301的输出381(I1)与CLK 392(I2)反相的OR。而多路器314和324以及搜索表334的编程控制提供了单元303的输出383(I1)与CLK 392(I2)反相的OR。未示出的是,CLK信号392可由门阵列的每个单元100内预先穿线以便能够存取的全局时钟信号来提供。D信号391-392可来自其它单元,并可作为其它单元的输出扇出被提供到每一个单元301、303。
图3中阐述了多路器341-344的编程控制,如提供交叉耦合门。即,多路器341和343的编程控制提供级联门351和353的交叉耦合,而多路器342和344的编程控制提供级联门352和354的交叉耦合。单元302、303的输出Q398,Q’399可分别显示为一般正边沿触发的D触发器的输出,它具有时钟CLK 392和数据输入D 391。注意,根据本发明,每个单元的级联输出到每个上面和下面近邻单元的级联输入的预先穿线提供了具有最小互连通道延迟的锁存器的有效而紧凑的实现。
于是,通过定义一个能够做为一类应用积木块的核心功能,如传统时序逻辑设计的范例单元100的可编程半锁存器功能,复杂的设计能够以最少的单元之间布线数目和最少的未用低级功能逻辑数目得以生成。用同样的方法,图11中的范例单元900是包含神经单元功能核的门阵列的实施方案,特别适合神经网络设计。神经单元900包含多个输入多路器910、920…,供选择到可编程权重表930的多个输入信号911、921、…。与神经网络工艺相一致,每个输入都被赋予一个在训练任务中能被调整的权重。可编程权重表930的输出951是相应于逻辑值“1”的每个输入信号的编程控制权重之和。这个和是多位值,如图11中总和输出端951上“M”位宽显示所示。根据本发明,与单元100的级联输出152、153类似,权重表930的和输出951扇出至近邻单元(未示出),如M位输出线952、953所示。阈值探测器960接受951和输出,以及来自近邻单元952’、953’的和输出。基于输入和值951、952’和953’,控制970将参数提供给阈值探测器,以判断何时“发射”。例如,把控制970编程以便控制在阈值探测器中使用和输入952’还是使用和输入953’。例如,如果总共有5个输入信号911、921、…,近邻输出和信号952’和953’允许直到10个附加输入信号来实现这个神经单元900的发射。如果只有5个或者更少的输入信号被连接到这个神经单元900,则可编程控制970被编程用来控制阈值探测器忽略近邻和输入952’、953’。用同样方法,把控制970编程以控制阈值,以便阈值探测器用来判断是否维持发射信号961。根据本发明,输出发射信号961把962扇出到其余邻近和远邻近单元,与单元100的输出160类似,并形成其它单元900的输入多路器910、920的输入。用这种方法,多个单元900能够有效地构造形成神经网络。基于典型地与传统神经网络设计相联系的目标结构约束,可以判断输入多路器910、920的数目、扇出952、953的延伸、到阈值探测器960的和输入952’、953’的数目、和信号951、952’或953’的位宽度、以及神经单元900的其它参数。在优选的实施方案中,提供5个输入多路器910、920,每个有5个输入,而和输出951是8位宽,阈值探测器960接受3个和输入951、952’或953’。注意,因为权重表930是可编程的,并且控制970是可编程的,故可以通过单元900实现其它功能。尤其,通过把权重表编程控制至除一个以外的所有输入为0,给所选输入赋予最大权重,当这个编程控制的最大的权重以输入信号被接受时,将控制器970编程以维持发射信号961,单元900能够被编程为穿过扇出器件。用这种方式,按照要求,单元900的输出961能够使用被连接达及远处单元900的其它单元900之一。
在优选的实施方案中,单元“布局”程序和门阵列有关。单元布局程序把门阵列的单元放置到设计的每个逻辑元处,使每个被放置单元都有合适的程序。根据本发明,通过允许诸如图3中的D触发器的预先定义逻辑块,或者宏单元的定义,每个单元输出的预先穿线扇出以及级联输入和输出端连接的预先穿线,使布局和编程任务方便。如上所做的详细说明,当设计中含有D触发器时,单元布局程序只对四个近邻单元100布局并为每个多路器和搜索表做适当编程控制。注意,这可以使诸如触发器的较大逻辑块紧凑而有效实现,而不需对所有的门进行固定的预先定位,直至这种较大的块真正在设计中被采用,为了实现较大逻辑块,这是需要的。例如,图2中所阐述的六个单元能够编程为包含一个D触发器,或者不包含,这取决于本设计是否需要D触发器的放置和产生。与在每个单元中包含预先构造的D触发器的传统的较大颗粒门阵列单元结构相反,例如,如果布图程序所要完成的特殊设计不需要D触发器,则图3中包含D触发器的四个单元中的每个都能够设置以执行其他的任务。用同样的方法,通过放置近邻单元900和适当地对970控制进行编程,使阈值探测器960根据这些多个输入而发射,单元900使具有大量输入的神经单元得以有效布图。相反地,只有几个输入的神经单元可以被布置到单一的单元900,并适当地对控制器970编程,使其忽略近邻的单元,从而允许近邻的单元被放置到其它的神经单元处。
根据本发明的另一种情况,尽管图2和3的布线图暗示了单元之间布线通道的应用,但是消除了存在于每个单元中的布线和传统的布线通道。图4显示了根据本发明的单元400的集成单元布线版图,而图5和6显示了单元接头处的布线结构,它不需预先定义布线通道。因为逻辑单元可以放置到图5中任何物理单元400处而不必考虑预布线区域,邻接单元的相邻区域被称为“单元海”。图10显示了门阵列800的范例实施方案,根据本发明,门阵列单元800拥有相邻单元810的区域。图10中还显示了传统的输入/输出单元840和其它范例电路块820、830。
图4中显示了单元400的输出节点Q 461,它相应于图1中逻辑单元100的逻辑输出节点161。为了方便参考和理解,图1中的逻辑单元100此处被用来阐述本发明互连布线方面的原则。由后来的公开内容来看,正如本领域中的普通技术人员所知,诸如神经单元900之类的其它核心单元能够被类似地构造以实现本发明的这种情况。
连接到单元400的节点461的,是四部分线段461R、461U、461L、和461D,它们分别提供从节点461到右、上、左、和下方向的连接。跨过单元400引入的线的拐点提供接点461上的信号传输到近邻单元上的适当接点。例如单元400中的线461D与线471D垂直对准。线471D被连接到节点401A,它相应于图1的单元100的输入信号101。当这个单元400桥接到它下面的另外一个单元时,单元400中的在461D处的输出信号461经过其它单元相应的线471D和节点401A被连接到其它单元的输入信号101上。图6阐述了根据本发明的单元输出信号461到近邻单元的结果扇出。图6中黑实线阐述了当单元桥接时被电连接到节点461的线;带阴影的单元阐述了每个被扇出连接的单元。例如,沿着向下的路径,单元400A的节点461,在471处被连接到下边紧邻单元400B的输入节点,在481处被连接到对角近邻单元400C,而在491处被连接到较远单元400D。如上面所说,例如,预先穿线布线能够延伸超过491而连接到远处单元即4、8等单元,它们都是400A以下的单元。注意每个单元的每个输出节点的扇出被类似地预先穿线,如以相应于单元400X的输出节点461’的节点471’、481’、491’所阐述;连接到节点461的黑实线只是被提出来用做说明的。相应于图1中逻辑单元100的级联输出152和153以及级联输入152’和153’的图4中单元400的预先穿线节点452、453、452’和453’,提供了近邻垂直单元之间的级联连接,但是为了清晰起见,在图6中没有示出。
注意,如图5和10所示,通过提供桥接单元的相邻区域,对于门阵列来说并没有预先定义结构的层次。亦即,在物理约束区域和四个象限中的区域等等之中没有单元。然而,通过预先定义能够实现诸如D触发器300或者是诸如同步计数器的更加复杂功能的逻辑功能层次的单元的安置,由本发明可以获得层次布局的优势,因为版图层次是按命令产生的,它对应于被编程控制的专门设计的要求。亦即,由用户所定义的在门阵列逻辑设计中使用的每个D触发器或者任何宏单元,在可编程门阵列中具有其相应的宏版图结构。
单元布线和逻辑的变通结构对于本领域中的普通技术人员来说是显而易见的。例如,图7阐述了类似于图1中单元100的单元500。单元500包含两个附加的缓冲器510、520和一个三输入可编程多路器550,该多路器选择是使用缓冲器510、520之一的输出511、521还是使用级联门150。当选择级联门150时,单元500的操作与上面所讨论的单元100相同。选择缓冲器510和520之一,使所选输入信号101、102分别通过多路器110、120实现直接传输到输出缓冲器160。这样,单元500能够被构造成提供重新构成和传输输入信号101、102到输出161的“中继器”的功能,与上面描述的单元900的通过扇出功能类似。这个中继器功能能够被用来分散诸如局部时钟发生器的高扇出门上的负载,或者用来避免信号沿着长的路线传输的衰减。
图8阐述了根据本发明的范例布线路径,它应用前面提到的单元500的中继器功能,它沿着延伸的距离传输信号。图8中假设在单元600的输出节点661产生的信号601需要跨过在位置601A、601B和601C上可用的多个单元传输。布线605的第一段利用了单元600的输出节点661的扇出路径,到达位置601C。在单元610处,从输出节点661的布线路径终止。如单元610处的虚线所示,单元610被构造成中继器单元,把信号601传输到单元610的输出节点。从单元610的输出的预先穿线的线段615,在单元620处终止,它也被构造成中继器单元,以便把信号601传输到单元620的输出节点。预先穿线的布线线段和中继器单元的这一时序通过中继器单元630、640,被传送到位置601A,并通过中继器单元630、650、660,被传送到位置601B。于是,用这种方法,只要在每个中继器单元处恢复,信号能够通过门阵列传输而不必使用专门的布线通道。注意,在优选的实施方案中每个单元输出的预先穿线扇出延伸到8个单元或者更远的距离,因此,中继器单元位置的数目要比图8范例所示的明显更少。
前面只阐述了本发明的原则,因此,本领域中的技术人员可以理解,能够设计各种各样尽管此处未明确描述的体现本发明的原则并因此在本发明的构思和范围之内的安排。例如,图9阐述了一种变通的单元设计700,它提供了改善的中继器单元性能。与图7中的单元500相比较,相比于单元500的三个输入的多路器550,单元700有一个7输入的多路器750。多路器750的附加输入是来自被距离长的水平或者垂直距离分隔的各单元的输出信号,如由更远上边701、更远右702、更远下703、和更远左704输入信号标志所示。在单元700中没有单元500的缓冲器510和520,单元700中的输出缓冲器760是非反相的。就象在本领域中普遍的那样,非反相缓冲器760包含两个反相器(未示出):第一个反相器以一定的尺寸设计使在输入线701-704上有最小负载,而第二个反相器以一定的尺寸设计向输出线761提供足够的驱动能力。
其它的变通也是明显的。例如,门阵列单元100的特殊逻辑构造可以用例如NOR门作为级联逻辑器件150,或者是另外一个可编程搜索表作为级联器件150来进行修正。同样,只要级联缓冲器有足够的驱动容量来驱动输出节点扇出,输出缓冲器160就能够是一个“透明的缓冲器”,或仅仅是线。从本发明来看,对于本领域中的技术人员来说,这些和其它的结构的修正是显而易见的并包含在下面权利要求的范围之内。

Claims (11)

1.一种集成电路,它包含多个相邻单元
多个相邻单元的每个单元(400)包含至少一个逻辑器件(130,150,160),该逻辑器件基于至少一个输入信号(101,102)而提供输出信号,以及
每个单元(400B)包含多个布线路径,其中至少一条布线路径提供多个相邻单元的第一近邻单元(400A)的输出(461)到另一个单元(400C,400D)的输入(491)之间的通信路径。
2.根据权利要求1的集成电路,多个单元中每个单元(100,400,500,700)包含:
可编程以接受多个第一输入信号(101)之一和从其中提供第一逻辑输入(111)的第一多路器(110),
可编程以接受多个第二输入信号(102)之一和从其中提供第二逻辑输入(121)的第二多路器(120),
可操作耦合到第一多路器(110)和第二多路器(120)的可编程逻辑器件(130),它提供取决于第一逻辑输入(111)和第二逻辑输入(121)的第一逻辑输出(131),
可编程以接受多个第三输入信号(103)之一和从其中提供级联逻辑输入(141)的第三多路器(140),
可操作耦合到可编程逻辑器件(130)和第三多路器(140)的级联逻辑器件(150),它提供取决于级联逻辑输入(141)和第一逻辑输出(131)的级联输出(151),以及
可操作耦合到级联逻辑器件(150)的输出缓冲器(160),它提供可操作耦合到多个其它单元的单元逻辑输出(161,210,461,661),并构造形成多个单元中至少一个其它单元(250)的多个第一输入信号的第一输入信号(213)。
3.根据权利要求2的集成电路,可编程逻辑器件包含:
可操作耦合到第一多路器(910)和第二多路器(920)的可编程权重表,它提供取决于第一逻辑输入(911)的和输出(951)、与第一逻辑输入(911)相关的编程第一权重、第二逻辑输入(921)、和与第二逻辑输入(921)相关的编程第二权重,以及
提供取决于和输出(951)的输出信号(961)的阈值探测器(960)。
4.权利要求2的集成电路,其中
每个单元(100,400,500,700)的级联输出(151,220)被操作耦合到至少一个其它单元(250)的多个第三输入信号(103)中的至少一个(221)。
5.权利要求2的集成电路,其中
多个单元中每个单元(100,400,500,700)进一步包含多条单元布线路径(162,163),当单元(100,260,400,500,700)桥接到至少一个其它单元(250)时,它们可将单元逻辑输出(161,461,661)操作耦合到至少一个其它单元的第一输入信号。
6.权利要求5的集成电路,其中
多个单元中的每个单元(100,400,500,700)的逻辑输出的可操作耦合只由多个单元布线路径(162,163)实现。
7.权利要求2的集成电路,其中
在可编程门阵列(800)内的多个单元,形成单元(810)的单一相邻区域。
8.权利要求1的集成电路,其中
多个相邻单元的至少一个单元(610)的可编程器件(130)被构造成产生等于输入信号的输出信号,从而提供中继器单元,它方便了输入信号传输到远距离的其它单元。
9.权利要求1的集成电路,其中
每个单元(400B)在第一方向上具有第一相邻单元(400A),并在垂直于第一方向的第二方向上具有第二相邻单元(400C),且
多个相邻单元被构造成使每个单元(400B)与它的第一相邻(400A)桥接,且每个单元(400B)与它的第二相邻(400C)桥接,从而形成相邻单元的二维阵列。
10.权利要求4的集成电路,进一步包含多个单元布线路径(152,153,162,163),它们方便了:
级联输出(151)到其它可编程逻辑单元(250)的连接(220-221),
单元逻辑输出(161,461,661)到其它可编程逻辑单元(250)的连接(210-213),
从其它可编程逻辑单元(250)的逻辑输出节点(240)到多个第一输入信号(101)和多个第二输入信号(102)中至少一个的连接(240-241),以及
从相同的其它可编程逻辑单元(250)的级联输出节点到多个第三输入信号(103)中的至少一个的连接(230-231)。
11.权利要求10的集成电路,进一步包含
可操作耦合到级联逻辑器件(150)和输出缓冲器(160)的第四多路器(550,750),它能够被编程以接受级联输出(151)和至少一个第四输入信号(511,521,701-704)中的一个,并从其中向缓冲器(160)提供单元逻辑输出(161,461,661)依赖的输入。
CNB008019177A 1999-07-16 2000-07-12 非常精细颗粒的现场可编程门阵列结构和电路 Expired - Fee Related CN1181617C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/354,607 US6294926B1 (en) 1999-07-16 1999-07-16 Very fine-grain field programmable gate array architecture and circuitry
US09/354607 1999-07-16

Publications (2)

Publication Number Publication Date
CN1321359A true CN1321359A (zh) 2001-11-07
CN1181617C CN1181617C (zh) 2004-12-22

Family

ID=23394120

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008019177A Expired - Fee Related CN1181617C (zh) 1999-07-16 2000-07-12 非常精细颗粒的现场可编程门阵列结构和电路

Country Status (8)

Country Link
US (2) US6294926B1 (zh)
EP (1) EP1114514B1 (zh)
JP (1) JP2003505911A (zh)
KR (1) KR100735168B1 (zh)
CN (1) CN1181617C (zh)
DE (1) DE60041319D1 (zh)
TW (1) TW567669B (zh)
WO (1) WO2001006657A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105634468A (zh) * 2014-10-30 2016-06-01 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567290B2 (en) * 2000-07-05 2003-05-20 Mosaic Systems, Inc. High-speed low-power semiconductor memory architecture
SE0102199D0 (sv) * 2001-06-20 2001-06-20 Ericsson Telefon Ab L M Upgrading field programmable gate arrays over datacommunication networks
US6747480B1 (en) * 2002-07-12 2004-06-08 Altera Corporation Programmable logic devices with bidirect ional cascades
US6886152B1 (en) * 2002-08-09 2005-04-26 Xilinx, Inc. Delay optimization in signal routing
US7243329B2 (en) 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
US8046729B1 (en) 2004-11-24 2011-10-25 Altera Corporation Method and apparatus for composing and decomposing low-skew networks
CN101258679A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 用于半导体集成电路的逻辑模块
JP2007243671A (ja) * 2006-03-09 2007-09-20 Kddi Corp 論理プログラマブルデバイス保護回路
US8510239B2 (en) * 2010-10-29 2013-08-13 International Business Machines Corporation Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern
CN103064328B (zh) * 2012-12-15 2015-05-20 中国科学院近代物理研究所 数字脉冲电源同步定时触发系统
US9164794B2 (en) * 2013-08-20 2015-10-20 Netronome Systems, Inc. Hardware prefix reduction circuit
US9667314B1 (en) * 2015-12-15 2017-05-30 Altera Corporation Programmable repeater circuits and methods
KR102656190B1 (ko) 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US11507806B2 (en) * 2017-09-08 2022-11-22 Rohit Seth Parallel neural processor for Artificial Intelligence

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019736A (en) 1986-11-07 1991-05-28 Concurrent Logic, Inc. Programmable logic cell and array
US5051917A (en) * 1987-02-24 1991-09-24 International Business Machines Corporation Method of combining gate array and standard cell circuits on a common semiconductor chip
GB8828828D0 (en) 1988-12-09 1989-01-18 Pilkington Micro Electronics Semiconductor integrated circuit
US5203005A (en) 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
US5055718A (en) 1990-05-11 1991-10-08 Actel Corporation Logic module with configurable combinational and sequential blocks
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
US5872380A (en) * 1994-11-02 1999-02-16 Lsi Logic Corporation Hexagonal sense cell architecture
US5815003A (en) * 1994-11-04 1998-09-29 Altera Corporation Programmable logic integrated circuits with partitioned logic element using shared lab-wide signals
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5594363A (en) 1995-04-07 1997-01-14 Zycad Corporation Logic cell and routing architecture in a field programmable gate array
JP3118630B2 (ja) * 1995-09-22 2000-12-18 株式会社日立製作所 石炭ガス化炉
US5720031A (en) 1995-12-04 1998-02-17 Micron Technology, Inc. Method and apparatus for testing memory devices and displaying results of such tests
US5734582A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Method and system for layout and schematic generation for heterogeneous arrays
US6107822A (en) * 1996-04-09 2000-08-22 Altera Corporation Logic element for a programmable logic integrated circuit
US5781032A (en) * 1996-09-09 1998-07-14 International Business Machines Corporation Programmable inverter circuit used in a programmable logic cell
US6005410A (en) * 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
US5880598A (en) * 1997-01-10 1999-03-09 Xilinx, Inc. Tile-based modular routing resources for high density programmable logic device
US5889411A (en) * 1997-02-26 1999-03-30 Xilinx, Inc. FPGA having logic element carry chains capable of generating wide XOR functions
US6084429A (en) * 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6346826B1 (en) * 1998-12-23 2002-02-12 Integrated Logic Systems, Inc Programmable gate array device
JP2002538562A (ja) * 1999-03-04 2002-11-12 アルテラ・コーポレーション 桁上げ選択加算付プログラマブルロジックデバイス

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105634468A (zh) * 2014-10-30 2016-06-01 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元
CN105634468B (zh) * 2014-10-30 2018-11-06 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元

Also Published As

Publication number Publication date
JP2003505911A (ja) 2003-02-12
DE60041319D1 (de) 2009-02-26
US6294926B1 (en) 2001-09-25
US20020011868A1 (en) 2002-01-31
EP1114514A1 (en) 2001-07-11
KR100735168B1 (ko) 2007-07-03
US6525561B2 (en) 2003-02-25
KR20010075126A (ko) 2001-08-09
EP1114514B1 (en) 2009-01-07
TW567669B (en) 2003-12-21
CN1181617C (zh) 2004-12-22
WO2001006657A1 (en) 2001-01-25

Similar Documents

Publication Publication Date Title
CN1181617C (zh) 非常精细颗粒的现场可编程门阵列结构和电路
CN1124690C (zh) 用于可缩放多层互联结构的平面布局图
US5481206A (en) Circuit for fast carry and logic
JP3594601B2 (ja) 高速桁上げのためのロジック構造および回路
EP0569137B1 (en) Programmable logic array integrated circuit
US6181162B1 (en) Programmable logic device with highly routable interconnect
US7843215B2 (en) Reconfigurable array to compute digital algorithms
US5546018A (en) Fast carry structure with synchronous input
US6288570B1 (en) Logic structure and circuit for fast carry
EP1162747B1 (en) Line segmentation in programmable logic devices having redundancy circuitry
CN1188569A (zh) 可缩放的多层互联结构
US6882176B1 (en) High-performance programmable logic architecture
EP0463026A1 (en) CONFIGURABLE CELLULAR NETWORK.
US20060005090A1 (en) Compare, select, sort, and median-filter apparatus in programmable logic devices and associated methods
US6051031A (en) Module-based logic architecture and design flow for VLSI implementation
US6594810B1 (en) Reconfigurable integrated circuit with a scalable architecture
Mo et al. Whirlpool PLAs: a regular logic structure and their synthesis
Lantz A QCA implementation of a look-up table for an FPGA
GB2315146A (en) Programmable logic with segmented localized conductors
Anderson Architectures and algorithms for laser-programmed gate arrays with foldable logic blocks
AL-SAIARI Requirements for the Degree of

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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070831

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20070831

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklike Philips Electronics N. V.

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

Granted publication date: 20041222

Termination date: 20120712