用于掩膜可编程逻辑器件的开关方法

文档序号:7509151阅读:202来源:国知局
专利名称:用于掩膜可编程逻辑器件的开关方法
技术领域
本发明涉及掩膜可编程逻辑器件,并更具体地涉及从先前存在的电路设计创造掩膜编程逻辑器件的方法。
背景技术
可编程逻辑器件(PLD)是众所周知的。早期的可编程逻辑器件只可一次性配置。例如,已经通过“熔断”(即断开)可熔断链接而实现配置。可替换地,配置储存在可编程只读存储器中。这些器件一般向用户提供对用于“乘积和”(或“P-TERM”)逻辑运算的器件进行配置的能力。后来,出现包含可擦可编程只读存储器(EPROM)以进行配置的可编程逻辑器件,允许重新配置器件。
再后来,出现包含静态随机存取存储器(SRAM)元件以进行配置的可编程逻辑器件。这些器件也可重新配置,在诸如EPROM的非易失性存储器中储存它们的配置信息,其中,当器件被加电时,配置从EPROM装入到SRAM元件中。这些器件一般向用户提供对用于查找表型逻辑操作的器件进行配置的能力。在某些时候,这些器件开始设置可由用户配置的随机存取存储器嵌入部件,作为随机存取存储器(RAM)、只读存储器(ROM)或逻辑(如P-TERM逻辑)。。
在前述所有可编程逻辑器件中,器件中特定逻辑资源的逻辑功能以及用于在逻辑资源之间传送信号的互连资源的逻辑功能是可编程的。可替换地,已经提供掩膜可编程逻辑器件(MPLD)。采用掩膜可编程逻辑器件,制造商不是向所有用户销售相同的器件,而是生产具有逻辑资源标准布置的掩膜可编程基本器件,所述基本器件缺少任何布线资源或互连资源,并且用户对所述逻辑资源的功能不能进行编程。
用户向掩膜可编程逻辑器件的制造商提供所需器件的技术要求,所述技术要求可以是用于对类似常规可编程逻辑器件(“源PLD”)进行编程的配置信息文件。制造商使用该信息向上述基本器件增加金属化层。这些附加层基于源器件的可配置存储器(CRAM)单元的配置信息,通过在资源内进行某些固定连接(即,通过对MPLD的电源硬编码由用户信息文件所提供的配置值)而对基本器件的逻辑资源进行编程。进而,这些附加层增加用于在逻辑资源之间进行布线的互连资源。如以上结合常规可编程逻辑器件所描述地,掩膜可编程逻辑器件也可设置嵌入随机存取存储部件。在此掩膜可编程逻辑器件中,如果嵌入存储器配置为只读存储器或P-TERM逻辑,就也使用附加金属化层来实现此配置。
虽然常规可编程逻辑器件允许用户容易设计用于执行所希望功能的器件,但是,常规可编程逻辑器件总是包括不用于特定设计的资源。而且,为了容纳通用布线和互连资源、以及允许信号从任何逻辑资源到达任何所希望布线和互连资源的开关资源,随着在常规PLD中内置的功能越多,常规PLD不断变大,增加这些器件的尺寸和功耗。当信号从一个布线和互连资源传输到另一个时,通过各种开关资源的信号传送也使信号慢下来。
可编程逻辑器件的出现允许用户在常规源可编程逻辑器件中检验设计,但是将生产版本提交给掩膜可编程逻辑器件,对于相同的功能性,掩膜可编程逻辑器件明显更小并且使用明显更少的功率,因为实际上只在基本器件上增加需要具体设计的互连和布线资源。另外,没有通用开关资源来消耗空间或能量或使信号减慢。例如,在2002年3月29日提交的共同转让的美国专利申请第10/113838号中,描述掩膜可编程基本器件上源PLD的先前设计的这种实现,该专利申请的全部内容在此引作参考。
与源PLD相比,通过除去源器件的全部可编程序性,这些MPLD可获得显著的电路片尺寸优势,其中,所述可编程序性包括信号互连、信号传输配置相关逻辑以及配置存储器。除了布线结构,这些MPLD的基本器件结构几乎与源器件相同。逻辑资源在这些MPLD的基本器件上的组织与相关源器件的不同,但这些资源在功能性、数量、可访问性和结构方面相同,从而,允许将用于资源-资源的资源从等效源器件直接转换到基本器件。
从这些MPLD除去先前存在的信号互连、信号传输配置相关逻辑、配置存储器和源器件的某些信号缓冲器可明显减小电路片的尺寸并可优化信号路由。然而,尽管在这些MPLD的物理设计时,通过在基本器件上增加金属化层而对逻辑资源的互连路由和CRAM配置值进行硬编码,但是在基本器件上保留源器件的逻辑资源的配置相关逻辑电路,以使设计变化和项目开发时间最小。这些配置相关逻辑包括巨量的晶体管电路,这些晶体管电路增加器件的尺寸和功耗。
相应地,希望提供用于使掩膜可编程逻辑器件的面积和性能优化的改进技术、系统和方法,其中,所述器件实施先前存在的电路设计并要求最小的用户牵连。

发明内容
根据本发明,提供用于对实施先前电路设计的掩膜可编程逻辑器件的面积和性能进行优化的改进技术、系统和方法。
本发明通过修改基本器件结构以有利于没有晶体管的源器件的配置相关逻辑电路的功能性,而对掩膜可编程逻辑器件的尺寸、节电和性能实现更大的优化。所述修改包括用掩膜可编程基本器件上的“智能”开关取代源器件的配置相关逻辑及其CRAM配置信息。智能开关是金属端子,在金属端子的顶部上可增加金属化层,以在开关的一个或多个输入端之一与开关的输出端之间进行连接。基于布尔方程而进行此连接,其中,从开关所取代的一个或多个资源的功能性得到所述布尔方程,并且,所述布尔方程由与一个或多个资源有关的CRAM值定义。
根据本发明,提供一种布置在集成电路上的掩膜可编程逻辑器件,所述器件配置为有利于将源可编程逻辑器件的先前设计转换为掩膜可编程器件。该掩膜可编程逻辑器件包括布置在集成电路基板上的多个掩膜可编程逻辑资源;用于互连掩膜可编程逻辑资源的多个互连导体,所述互连导体耦合到掩膜可编程逻辑资源并布置在基板上方。多个掩膜可编程逻辑资源中的至少一个包括布置在基板上的至少一个智能开关。至少一个智能开关是可编程的,以执行源可编程逻辑器件设计的配置相关逻辑电路的功能。


从以下结合附图的详细描述中,本发明的以上和其它的优点将更加清楚,在附图中,相同的参考符号表示相同的部件,并且,在附图中图1为根据本发明的基本器件的优选实施例的布局的框图表示;图2为包含图1器件的根据本发明的掩膜可编程器件的基板和掩膜金属化层的横截面视图;图3为示出根据本发明的具有标准双输入方程的双输入智能开关的一种可能的物理布局的框图;图4为配置相关逻辑电路的具体布置的示意图,用于说明适于由图3的双输入智能开关取代的电路;图4A为图4电路布置的框图表示;图5为根据本发明的更新框图,说明将图3智能开关的输入端耦合到信号源并定义图3智能开关的标准双输入方程的占位符以取代图4和4A的电路布置的一种方式;图6为配置相关逻辑电路的另一具体布置的逻辑符号表示,说明适于由图3双输入智能开关取代的电路;图7为根据本发明的更新框图,说明将图3智能开关的输入端耦合到信号源并定义图3智能开关的标准双输入方程的占位符以取代图6的电路布置的一种方式;图8为示出根据本发明的具有标准四输入方程的四输入智能开关的一种可能的物理布局的框图;
图9为配置相关逻辑电路的具体布置的示意图,说明适于由图8的四输入智能开关取代的电路;图10为根据本发明的更新框图,说明将图8智能开关的输入端耦合到信号源并定义图8智能开关的标准四输入方程的占位符以取代图9的电路布置的一种方式;图11为配置相关逻辑电路的另一具体布置的框图表示,说明适于由图8四输入智能开关取代的电路;图12为根据本发明的更新框图,说明将图8智能开关的输入端耦合到信号源并定义图8智能开关的标准四输入方程的占位符以取代图11的电路布置的一种方式;图13为说明根据本发明的在从源PLD基本器件创造掩膜可编程基本器件时所涉及的一些步骤的流程图;图14为说明根据本发明的将PLD源器件转换为图13中创造的掩膜可编程基本器件上的掩膜编程器件的一些步骤的流程图;以及图15为采用本发明掩膜编程器件的示例系统的简化框图。
具体实施例方式
本发明通过在基本器件上设置智能开关以取代配置相关逻辑电路和相关CRAM配置值,而减小掩膜可编程逻辑器件的电路片面积和功率需求,同时提高其性能和产量。智能开关不需晶体管就可用于促进先前在另一集成电路上实施的电路设计的配置相关逻辑电路的功能性。以下更详细地描述基本器件结构、智能开关结构、互连、以及转换过程。
现在结合图1-15描述本发明。
如图1所示,根据本发明构造的掩膜可编程基本器件10的一个实施例包括逻辑资源阵列,该阵列与San Jose的Altera Corporation,California(本申请受让人)所销售的APEX和Stratix系列可编程逻辑器件(即可能的源器件)中的相似。尽管示出APEX型结构,但应理解,如果希望,任何类型的PLD、CPLD(复杂可编程逻辑器件)或相似的器件可作为用于掩膜可编程器件的基本部分的模型。
如图1所示,逻辑资源在其最基本的层次上包括“逻辑元件”(LE)11,逻辑元件11例如为基于查找表的逻辑区域,该区域具有四个输入并具有注册或不注册输出的能力。逻辑元件11可集合成“逻辑阵列块”(LAB)12。在图示实施例中,每个LAB12包括十个LE11,但是,其它数量的LE 11也可集合成每个LAB12。LAB12可进一步集合成“LAB组”(GOL)13。在图示实施例中,每个GOL13包括17个LAB12,但是,其它数量的LAB12也可集合成每个GOL13。每个GOL13还优选包括嵌入式存储部件(在此实施例中称作“嵌入式系统块”(ESB))14。每个GOL13还包括多个门阵列地址15,所述门阵列地址15例如可用于缓冲、延迟、处理和/或传送特定的信号(在后面更详细描述)。
而且,应理解,LAB12不必在GOL13中组织,而是以规则或不规则的图案在全部基本器件10中展开。这些资源的一部分在核心逻辑阵列的外部。基本电路片10上LE11和LAB12的特定组织对本发明不是至关重要的。
如图所示,GOL13可布置在行和列的正交阵列中。“输入/输出元件”(I/O)优选位于阵列周围的区域16中。其它辅助电路,如“锁相环”(PLL)(如,用于定时),优选设置在阵列之内的方便位置上,如在阵列中央附近示出的区域17中。
掩膜可编程基本器件10的“体系结构”(即,总体组织)可以与源器件如源PLD的显著不同。尽管器件10至少包含相同数量的逻辑资源(如逻辑元件、锁相环、I/O元件等)作为以此为基础的源器件,但是,这些资源中的大多数修改为消除它们的可编程序性,并用智能开关取代配置相关逻辑,并可物理地安排和布置在不同的相对位置上。例如,在图1中示出通常位于源器件周围的PLL,其中,PLL位于器件10的中央,以提高抗扰度,并使更小掩膜可编程器件中的性能优化。除去配置相关逻辑、CRAM和布线资源使GOL13在一维上更明显地收缩。为了维持更为正方形的器件,上述行和列的正交阵列可以“折叠”,从而,该阵列可具有是源器件两倍的行和一半的列(如,与y方向相比,该阵列在x方向上是两倍长,反之亦然),其中,正方形器件比长方形器件更容易制造和组装。此布置也在器件10每一侧上导致I/O单元的双列,这与许多源器件I/O布置截然不同。进而,不是源器件上的每个逻辑资源都可在用户设计中使用。未使用的逻辑资源电路处于其最低电流状态,并且其输入使电源和接地层打结,以使漏电流和开关电流最小。从而,由于在掩膜可编程器件中只执行已用电路部件,因此可获得更好的功率性能。未使用逻辑资源即使在可用于基本器件10上的不同设计实施时也不被加电。
如上所述,基本器件10和源器件使用有很大不同的互连方案。源器件,如PLD,传统上具有大量的通用布线导体,以提供布线灵活性,并保证利用芯片上最大量的逻辑资源。通过对可编程逻辑连接器(在此情况下为配置有SRAM单元的多路复用器)进行编程而在芯片上将信号发送到PLD上逻辑电路的互连部分,以获得特定的电路设计。此种类型的布置用于提供PLD的“可编程性”,从而,可接受大范围的电路设计。在复杂PLD中,这些布线资源占用电路片面积的大部分。这些固定资源的大部分在任何特定设计中都不经常使用,因而,可在掩膜可编程基本器件10中除去它们。通过在每个基本器件10上建造定制互连网络,可实现节省大量的电路片面积。通过对在基本器件顶部上增加的金属化层进行掩膜编程,可实现此互连网络。与定制互连网络有关的一些好处包括与源PLD相比,减小电路片尺寸并减小内部电容性负载。
图2示出掩膜可编程基本器件10在编程之后(即,在已经变为“掩膜编程”器件20之后)的横截面,其中,在21一起示出组成未编程基本器件10的基板和其它层(示出一个晶体管/开关25作为代表)。金属和电介质附加层22和23用于对器件20进行编程,并创建连接包括在基本器件10中的资源的定制互连网络。共同地设置封装层24,以保护金属和电介质层22和23。从而,可在掩膜可编程基本器件10上建造掩膜编程逻辑器件20,其中,掩膜可编程基本器件10具有与源器件相同的逻辑资源、存储器、I/O和PLL并从源器件转换,但不必具有与源器件相同的结构。然而,在一些实施例中,结构保持相同,并可通过本文描述方法转换为掩膜编程器件20。
本发明的转换过程利用以下事实掩膜可编程基本器件10至少具有与其源器件相同的逻辑资源,并且,器件10除应该是与引线兼容的并且应该满足源器件的关键时间约束以外,不受这些资源现有位置的约束。
在本发明的基本器件10上设置不需晶体管就可配置为促进任何配置相关逻辑电路(即,其功能性至少取决于一个配置相关CRAM值的电路)的功能性的智能开关。这些智能开关具有各种能力,并且以各种方式用于MPLD中,以减小其电路片面积和功率需求,同时提高其性能和产量。例如,用于取代逻辑资源特定电路的智能开关的类型可基于该电路的功能性和与该功能性有关的非配置相关值的数值而改变。
在图3中,示出说明智能开关一种可能类型的视图。此“双输入”开关30包括第一输入端31(触针A)、第二输入端32(触针B)以及输出端35(触针Z)。在互连导体可耦合到开关内的触针的程度上,双输入智能开关30可被认为是“可编程的”。此可编程序性允许一般的双输入智能开关30形成具有特定功能的“智能单元”。每个单个智能开关的实际内容和尺寸根据智能开关计划实现的配置相关功能性的类型而改变。进而,应理解,几种不同类型的智能开关(即,具有不同内容和尺寸的智能开关)可布置在基本器件10中,以提供最佳的电路片面积减小。
布置在基本器件10上的每个双输入智能开关30可由相同的标准方程38定义,与将要实现的特定功能性无关,其中,标准方程38在用参数描绘如何进行智能开关的端子(即触针)之间连接(即开关如何被编程)的示意图中建立。此方程38包含布尔表达式“占位符”(@RB),当定义和评估@RB时,@RB标识两个输入端中的第一个是否连接到输出端或者两个输入端中的第二个是否连接到输出端。标准方程38例如可表达如下EQ=@RB?BA(1)(即,“如果表达式@RB为真,就将第二输入触针B连接到输出触针Z,否则,就将第一输入触针A连接到输出触针Z”)。
用于每个双输入开关30的占位符表达式@RB可单独从以下布尔功能得到,所述布尔功能定义由开关取代的配置相关逻辑的类型,并取决于由用户提供给制造商的与被取代逻辑配置有关的至少一个配置相关CRAM(在后面详细描述)。接着,开关触针的互连可通过用与该特定开关有关的至少一个配置相关CRAM值评估所获得占位符表达式@RB而确定。从而,智能开关可用参数表示。
可以互连双输入开关30的触针以获得具有所希望功能的智能单元。通常来讲,智能单元是已编程(配置)的智能开关。图4示出配置相关逻辑的具体布置40,用于说明在适于由掩膜可编程基本器件10上的双输入智能开关30取代的源PLD上发现的典型电路。电路40是包括反相器41、晶体管42、43、44和45的标准二合一多路复用器(MUX)。基于选择信号R1的逻辑值,将输入信号Xl或输入信号X2连接到输出XOUT。此电路实现以下布尔功能48XOUT=R1‾·X1+R1·X2...(2)]]>在此适于由双输入开关30取代的包含MUX40的源PLD上,选择信号必须是由用户配置信息(CRAM)定义的静态值“R”(即R1),然而,输入信号X1和X2每一个可以是CRAM定义的静态值“R”或用器件确定的非配置相关信号值“N”(如,时钟信号,提供给计算器件的用户信号等)。随着分别耦合到触针A和B,如果相应的输入X确实是静态CRAM值R,开关30的每个输入端3l和32就耦合到适当的固定逻辑值源(如用于逻辑值“0”的电源Vss或用于逻辑值“1”的电源Vds),或者,如果相应的输入X是非配置相关信号值N,输入端31和32就耦合到器件的适当互连信号线。然而,应理解,在其选择信号由信号值N(即,非CRAM值R)提供的源PLD上的二合一MUX不用基本器件10上的双输入开关30取代,而相反,容易用另一类型的智能开关取代,这在后面结合图11和12更详细地描述。
为了使第二输入X2连接到输出XOUT,通过确定哪个输入必须为真,可从布尔功能48得到占位符布尔表达式@RB,其中,@RB定义取代电路40的双输入开关30的标准方程38。例如,为了使输入X2连接到输出XOUT,通过确定选择输入R1必须为逻辑值“1”,@RB可简单定义为“R1”。接着,通过使用用户CRAM定义的R1的适当静态值来评估开关30的标准方程38,对开关30进行编程,以使其触针互连,其中,@RB等于R1,这在后面结合图13和14而更详细地描述。从而,在此实例中,双输入智能开关30能取代基本器件10上的配置相关逻辑40,由此从基本器件除去4个晶体管和1个反相器。
图4A为图4所示二合一MUX的框图表示。
图5为智能开关30的视图,其中,智能开关30的端子耦合到适当的信号线或逻辑值源,并且,用适当的占位符表达式@RB更新智能开关30的标准方程38,从而,此开关可取代基本器件10上的二合一MUX电路40。
应理解,图4和4A所示配置相关逻辑的特定布置40仅仅是示例性的,并且,配置相关逻辑有许多其它的布置,图4和4A用于说明在源PLD上发现的典型电路,其中,源PLD适于用掩膜可编程基本器件10上的双输入智能开关30来取代。例如,开关30适于取代大范围的配置相关逻辑,所述配置相关逻辑包括但不限于AND门、OR门、反相器、缓冲器、NOR门、XOR门、异或非门以及它们的组合等。而且,应理解,本发明的智能开关可具有任何数量的输入,这在后面更详细地描述,并且,本发明的智能开关可取代具有任何布尔项的电路,其中,布尔项可由CRAM值确定。进而,智能开关可结合在一起,以取代更高级的配置相关逻辑电路,如触发器、寄存器、计数器、延迟元件、加法器等。
在图6中示出适于用掩膜可编程基本器件10上的双输入智能开关30来取代的配置相关逻辑的另一特定布置60的实例。用于取代电路60的特定双输入开关30以及用于取代电路40的开关30,只根据定义开关的标准方程38中占位符@RB的布尔表达式,并根据连接到开关端子(即端子31、32和35)的外部连接的类型,而互相变化。
如图6所示,电路60例如包括经常用于源PLD的列地址解码器中的长逻辑链。电路60包括NAND门6l、以及NOR门62、63和64,每一个门都包括4个晶体管和1个反相器(未示出)。例如,虽然基于用门62的输入R1和R2的CRAM值来评估门62的NAND功能性,通过将门61的输入61a耦合到适当的固定逻辑值源(如Vss或Vds)而简单地取代门62,但还有可能用单个智能开关30来取代所有电路60。通过分析电路60的功能性,基于输入R1、R2、R3和R4的逻辑值,逻辑值“0”或输入N的补码连接到输出XOUT。此电路实现以下布尔功能68XOUT=R1‾·R2‾·R3‾·R4‾·N‾...(3)]]>逻辑值“0”的源(如Vss)可固定到开关30的第一输入端31,并且,非配置相关值N的补码(即N)可用反相器33(图7)耦合到第二输入端32,因为只提供一个逻辑信号值N作为对电路60的输入。为了使第二输入N连接到输出XOUT,通过确定哪个输入必须为真,可从布尔功能68得到占位符@RB的布尔表达式,其中,该标志符定义取代电路60的双输入开关30的标准方程38。例如,为了使输入的补码连接到输出XOUT,通过确定选择输入R1-R4的每一个必须是逻辑值“0”,@RB可定义为“ ”。接着,通过使用用户CRAM定义的R1-R4的适当静态值来评估开关30的标准方程38,对开关30进行编程,以使其触针互连,其中,@RB等于 ,这在后面结合图13和14而更详细地描述。从而,在此实例中,双输入智能开关30能取代基本器件10上的配置相关逻辑60,由此从基本器件除去16个晶体管和3个反相器。
图7为智能开关30的视图,其中,如上所述,智能开关30的端子耦合到适当的信号线或逻辑值源,并且,用适当的占位符表达式@RB更新智能开关30的标准方程38,从而,此开关可取代基本器件10上的电路60。
应理解,图3、5和7中所示特定的双输入型智能开关30仅仅是示例性的,并且,有许多其它类型的智能开关可用于取代掩膜可编程基本器件10上源PLD的配置相关逻辑。例如,在图8中示出说明智能开关另一可能类型的视图。此“四输入”开关80包含第一输入端81(触针A)、第二输入端82(触针B)、第三输入端83(触针C)、第四输入端84(触针D)以及输出端85(触针Z)。与开关30一样,在互连导体耦合到开关内的触针的程度上,四输入智能开关80被认为是“可编程的”。
布置在基本器件10上的每个四输入开关80可由相同的标准方程88定义,与将要实现的特定功能性无关,其中,标准方程88在用参数描绘如何进行开关的端子(即触针)之间连接的示意图中建立。此方程88包含3个布尔表达式占位符@RD、@RC和@RB,当定义和评估@RD、@RC和@RB时,@RD、@RC和@RB标识4个输入端中的第一个、第二个、第三个或第四个连接到开关的输出端。标准方程88例如可表达如下EQ=@RD?D@RC?C@RB?BA (4)(即,“如果表达式@RD为真,就将第四输入触针D连接到输出触针Z,如果表达式@Rc为真,就将第三输入触针C连接到输出触针Z,如果表达式@RB为真,就将第二输入触针B连接到输出触针Z,否则,就将第一输入触针A连接到输出触针Z”)。
用于每个四输入开关80的每一个占位符表达式@RD-B可单独从以下布尔功能得到,所述布尔功能定义由开关取代的配置相关逻辑的类型,并取决于与被取代逻辑的配置有关的至少一个配置相关CRAM值。接着,开关触点的互连可通过用与该特定开关有关的至少一个配置CRAM值评估所获得占位符表达式@RD-B而确定。从而,与开关30一样,智能开关80可用参数表示。
图9示出配置相关逻辑的特定布置90,用于说明在适于由掩膜可编程基本器件10上的四输入智能开关90取代的源PLD上发现的典型电路。电路90是由三个标准二合一MUX 40a、40b和40c组合构成的标准四合一多路复用器(MUX),其中,二合一MUX 40a、40b和40c与图4和4A的MUX 40相似。MUX 40a、40b和40c每一个都包括反相器41和晶体管42、43、44和45。基于选择信号R1和R2的逻辑值,输入信号X1、X2、X3或X4连接到输出XOUT。此四合一MUX电路90实现以下布尔功能98XOUT=R1‾·R2‾·X1+R1·R2‾·X2+R1‾·R2·X3+R1·R2·X4...(5)]]>在适于由基本器件10上四输入开关30取代的包含此四合一MUX90的源PLD上,选择信号必须是由用户配置信息定义的静态值“R”(即,R1和R2),然而,输入Xl、X2、X3和X4每一个都可以是由CRAM定义的静态值“R”或用器件确定的非配置相关信号值“N”。随着分别耦合到触针A-D,如果开关80的相应输入X1-4确实是静态CRAM值R,开关80的每一个输入端81-84就耦合到适当的固定逻辑值源,或者,如果相应输入X1-4是非配置相关信号值“N”,开关80的每一个输入端81-84就耦合到器件的适当互连信号线。
为了使每一个输入X1-4连接到输出XOUT,通过确定哪个输入必须为真,可从布尔功能98得到每一个占位符@RD-B的布尔表达式,其中,@RD-B定义四输入开关80的标准方程88。例如,为了使输入X4连接到输出XOUT,通过确定选择输入R1和选择输入R2的每一个必须是逻辑值“1”;为了使输入X3连接到输出XOUT,通过确定选择输入R1必须为逻辑值“0”且选择输入R2必须是逻辑值“1”;为了使输入X2连接到输出XOUT,通过确定选择输入R1必须为逻辑值“1”且选择输入R2必须是逻辑值“0”;并且,为了使输入X1连接到输出XOUT,通过确定选择输入R1和选择输入R2的每一个必须是逻辑值“0”,@RD可定义为“R1·R2”,@Rc可定义为“ ·R2”,并且,@RB可定义为“R1· ”。接着,通过使用用户CRAM定义的R1和R2的适当静态值来评估开关80的标准方程88,对开关80进行编程,以使其触点互连,这在后面结合图13和14而更详细地描述,其中,标准方程88具有三个@RD-B表达式。从而,在此实例中,四输入智能开关80能取代配置相关逻辑90,由此从基本器件除去12个晶体管和三个反相器。
图10为智能开关80的视图,其中,智能开关80的端子耦合到适当的信号线或逻辑值源,并且,用适当的占位符表达式@RD-B更新智能开关80的标准方程88,从而,此开关可取代基本器件10上的四合一MUX电路90。
应理解,图9所示配置相关逻辑的特定布置90仅仅是示例性的,并且,配置相关逻辑有许多其它布置,用于说明在适于由掩膜可编程基本器件10上的四输入智能开关80取代的源PLD上发现的典型电路。例如,在图11中示出此电路的另一特定布置。电路110是与图4和4A所示MUX40相似的标准二合一多路复用器。然而,与由选择输入R(即CRAM值)控制的MUX40不同,二合一MUX110由选择输入N(即,通过使用器件而确定的非配置相关信号值)控制。例如,此类配置相关逻辑可用于在LE11中提供一部分查找表(LUT)。LUT的逻辑输入用作LUT的16位可编程存储器的地址线(如,十六个CRAM值),16位可编程存储器的内容使用配置相关逻辑(如多路复用器(MUX)、熔断器、晶体管等)的阵列来定义LUT的逻辑功能。基于选择输入N的逻辑值,输入R1或输入R2连接到输出XOUT。此电路实现以下布尔功能118XOUT=N·R1+N·R2(6)在适于由基本器件10上四输入开关80取代的包含此MUX110的源PLD上,输入R1和R2必须是由CRAM定义的静态值“R”。随着分别耦合到触针A-D,开关80的每一个输入端81-84连接到适当的固定逻辑值源(如电源Vss或电源Vds)或器件的适当信号线,这在后面更详细描述。
为了从输出XOUT提供特定信号,通过确定输入R的哪一个必须为真,可从布尔功能118得到占位符@RD-B的布尔表达式,其中,占位符@RD-B定义用于取代电路110的四输入开关80的标准方程88。例如,当输入R1和R2每个都是逻辑值“1”时,通过确定XOUT将与选择输入N的值无关地提供逻辑值“1”;当输入R1为逻辑值“1”并且输入R2为逻辑值“0”时,通过确定XOUT将提供与N的逻辑值的补码相同的逻辑值;当输入R1为逻辑值“0”并且输入R2为逻辑值“1”时,通过确定XOUT将提供与N的逻辑值相同的逻辑值;以及,当输入R1和R2每个都是逻辑值“0”时,通过确定XOUT将与选择输入N的值无关地提供逻辑值“0”,@RD可定义为“R1·R2”,@Rc可定义为“ ·R2”,并且,@RB可定义为“R1· ”。接着,通过使用用户CRAM定义的R1和R2的适当静态值来评估开关80的标准方程88,对开关80进行编程,以使其触针互连,这在后面结合图13和14而更详细地描述,其中,标准方程88具有这些@RD-B表达式。然而,为了使编程的智能开关80完全实现MUX电路110的功能性,输入端81必须耦合到逻辑值“0”的固定源(如电源Vss),输入端84必须耦合到逻辑值“1”的固定源(如电源Vds),输入端82必须耦合到提供信号N的器件的信号线,并且,输入端83必须耦合到使用反相器86提供信号N的补码的信号线(图12)。然而,应理解,如果开关80的端子耦合到与上述不同的信号源,就必需重新定义占位符@RD-B的布尔表达式。从而,在此实例中,四输入智能开关80能取代配置相关逻辑110。
图12为智能开关80的视图,其中,智能开关80的端子耦合到适当的信号线,并且,用适当的占位符表达式@RD-B更新智能开关80的标准方程88,从而,此开关可取代基本器件10上的二合一MUX电路110。
图4、4A、6、9和11的配置相关逻辑电路布置仅仅是示例性的,并且,配置相关逻辑有许多其它布置,用于说明在适于由本发明的智能开关取代的源PLD上发现的电路,其中,所述智能开关不偏离本发明的精神和范围。
从以上可理解,N输入智能开关的标准方程例如可一般地表达如下EQ=@RN?N@RN-1?N·1…@RB?BA (7)每个N输入开关的占位符@RD-B可分别由以下布尔表达式定义,其中,所述布尔表达式从被所述开关取代的配置相关逻辑电路的布置得到,并且,可通过用与电路有关的CRAM值评估方程而对所述开关进行编程,其中,所述方程用适当的占位符表达式来更新。
然而,应理解,智能开关的功能性不仅由其标准方程的占位符表达式定义,也由耦合到其输入端的信号线的类型来定义。例如,虽然示出的标准方程88的占位符表达式与开关80的相同,与开关是否取代四合一MUX(例如参见图10)或由逻辑信号值N控制的二合一MUX(例如参见图12)无关,但是,根据放回到基本器件上的源器件的配置相关逻辑电路的类型而将输入端81-84耦合到不同的信号线。信号与器件上智能开关端子的传送优选结合器件上所有互连的布线进行,同时考虑开关所取代的配置相关逻辑的类型,这在下面结合图13和14更详细地说明。
图13为说明根据本发明的在从源PLD基本器件产生掩膜可编程基本器件10时所涉及的一些步骤的流程图。此处理不依赖于用户提供的任何配置信息。一开始,在步骤200中向制造商提供PLD的基本器件的示意信息。在Altera的专用软件产生的计算机生成文件中,提供的示意信息与诸如PLD的源基本器件有关。与前面已知的方法相同,在步骤S202中除去源器件的CRAM和布线结构。
接着,在步骤204中,可扫描源基本器件的示意信息,以标识可由掩膜可编程基本器件10上的本发明智能开关取代的配置相关逻辑。此配置相关逻辑例如为任何类型的电路,如图4、6、9和11所示的电路40、60、90和110,其中,所述电路的功能性依赖于至少一个配置相关CRAM值。在步骤206中,使用在内部开发的软件,以适当大小的智能开关的标准方程,在掩膜可编程基本器件10的示意信息中取代在步骤204的示意信息中标识的源基本器件的每个配置相关逻辑电路,其中,所述智能开关具有适当的占位符表达式。如上所述,通过评估将被取代的配置相关逻辑电路的功能性而得到智能开关的标准方程的占位符布尔表达式。
一旦在步骤206中适当地定义智能开关方程,在有可能由用户定义以确定开关如何编程的CRAM值的组中,即使不是全部,仿真数据也是在步骤208中最广泛地注释每个方程。对于在步骤208中注释的每组CRAM值,可通过静态功能验证技术而验证方程的完整性(步骤210),该技术包括当应用某些约束时确认两种版本的设计在功能上是相同的。例如,在步骤206中得到的每个智能开关方程应在逻辑上等效于开关所取代的源器件的配置相关逻辑。此技术不依赖于用户提供的任何模拟向量。如果未发现注释的方程在功能上与配置相关逻辑相同,那么,就在步骤212中在方程中进行适当的校正,通过重复步骤204-208直到产生满意的智能开关方程为止,从而保证功能等效。
此时,完成智能开关方程的推导。在步骤214中,具有适当方程的智能开关的物理表述进入掩膜可编程基本器件10的概要中。在步骤216中,基于正被取代的配置相关逻辑的源PLD基本器件上的位置而提取基本器件10上每个智能开关的位置。
图14示出使用用户的设计规范从先前电路设计产生基本器件10上掩膜编程逻辑器件20的上述方法的转换流程图。一开始,用户向制造商提供与源器件的配置和所需时间要求有关的信息(步骤230)。在由Altera的QuartusII软件产生的计算机生成配置文件如SRAM目标文件(.sof文件)中,提供的配置信息与诸如PLD的源器件有关。此文件通常包括连通性信息和与逻辑资源的物理配置有关的信息。配置文件在步骤235中提供给连线表生成器,并在步骤237中提供给物理模块生成器。由连线表生成器提取包含在配置文件中的连通性信息,并且创建诸如Verilog连线表的结构连线表240。连线表240包含描述源器件的逻辑功能和连通性的信息,但优选不保留与逻辑资源的物理位置有关的信息。
接着,在步骤243中,对连线表240扫描,以测试可测性违规。此时,可增加测试结构来纠正任何检测的违规,以实现故障测试并对已完成的掩膜编程器件20的操作提供进一步的能见度(步骤244)。可重复步骤243和244,直到纠正所有可测性违规为止。
在步骤237中,物理模块生成器确定如何物理配置基本器件10上的逻辑资源,如LE11,从而,它们执行所要求的逻辑功能。此步骤从图13的步骤216获得每个基本器件10的物理布局,如LE11以及其智能开关位置和方程,并且,基于来自步骤230所提供配置信息的与开关相关的CRAM的评估值而对智能开关进行编程。在一些实施例中,此操作可基于步骤230的配置文件所提供的配置位(CRAM)。这可被认为是物理编程器件10的第一步骤(即,确定如何连接逻辑资源和它们的开关以产生所希望的逻辑功能)。这些“已编程模块”的功能性和物理完整性随着它们的产生而进行验证,从而,不需要验证模块功能性的逻辑仿真。步骤237一般与步骤235-280同时进行。
连线表240中的信息描述源器件(如PLD中的I/O、LE、ESB和PLL部件)上每个电路部件的功能以及每个部件如何连接到其它电路部件。在步骤245中,布置程序向基本器件10的具体部分分配源器件设计的特定部分。逻辑资源(如LAB12)的布置可基于各种因素,如互连要求、时间要求以及与源器件的引线兼容性所强加的约束。布置程序的一个目的是优化掩膜编程器件20上逻辑资源的位置,以保证其性能特性等于或好于源器件已经实现的性能特性。
在一些实施例中,希望保留部分源器件布局,以取消对电路设计转化或综合的要求。在源器件和掩膜可编程器件共享实际上相同的逻辑资源结构的情况下就可以如此。例如,在转换PLD的情况下,在源PLD中使用的LAB12可被引入并布置成掩膜可编程器件上的LAB12,不需进一步分解为更小的元件(如LE11),因为尽管LAB具有不同的物理布局,但它们具有完全相同的功能性。这允许布置程序基于LAB而在LAB上分配部分源器件设计,由此避免通过布置基础逻辑部件来执行电路设计所需的进一步处理。然而,应指出,在许多情况下,与源PLD相比,LAB12在掩膜编程器件20上的不同位置中结束,因为与源器件上位置无关地进行布置。然而,应理解,只要保留LAB内的LE结构,就可在LE层次上进行此布置,但这通常花更长的时间,并且需要更复杂的测试程序。
在完成本发明的逻辑资源布置之后,得到的布置信息转换为代表基本器件10上电路部件物理位置的物理坐标数据文件(步骤245)。此信息用于确定如何互连在步骤245中布置的逻辑资源,以形成所要求的先前电路设计。此互连设置在基本器件10之上的适当掩膜金属化层中(例如,参见图2中的金属化层22)。这被认为是物理编程器件10的第二步骤(即,标识在步骤237中配置且同时需要在步骤255中互连的逻辑资源的布置,以产生所希望的逻辑设计)。所有I/O单元16的布置通常固定在基本器件10的周围上。
接着,在步骤255中,布线程序产生用于互连以上布置的逻辑资源的定制互连网络。布线程序使用从连线表240得到的连通性信息和以上产生的物理坐标信息,以确定用于连接在步骤245中布置的逻辑资源的最佳方式。这被认为是物理编程器件10的第三步骤(即,连接以上布置的逻辑资源)。最后,在基本器件10之上的金属化层中实施定制的互连。以与用于配置PLD的已知软件相似的方式执行上述布置和布线步骤。
与使用定制互连有关的一个好处是与源PLD相比,使用明显更少的布线资源,因为仅产生必需的互连(即,在定制互连中,在源PLD上未发现一个不使用的通用布线导体)。另外,除去在源PLD中使用的全部可编程逻辑连接器,显著减小掩膜编程器件20的功耗和尺寸。
此时,完成表述逻辑源布置和互连的软件文件。此表述可用于检查物理设计违规,如过大的输出能力或天线违规(步骤260)。例如,此设计表述的测试可揭示与某个LE11相关的节点具有可导致减慢响应时间或增加功耗的过大输出能力。此问题可通过在负荷重的电路路径中插入缓冲电路以增加信号强度而纠正。接着,可在步骤260中在连线表240上增加此缓冲电路。根据在2002年3月29日提交的、在共同委托的且共同未决的美国专利申请第10/113324号中的描述,可通过对上述一些门阵列地址15进行编程而创造缓冲电路,此专利申请的全部内容在此引作参考。
在完成步骤260之后,可在得到的电路布局上产生互连寄生电容和电阻信息(步骤265)。此信息可转换为标准延迟格式文件(.sdf文件),该文件具有用于估计传播延迟的延迟计算工具。可估计最小和最大延迟,以识别电势设置时间违规(太因而不满足用户指定时间要求的信号)和/或保持时间违规(太快而且不能正确处理的信号)。
接着,在步骤270中,使用在步骤265中产生的信息,在步骤245-265之后分析和纠正出现的电路设计定时。定时违规可通过比较用户提供的定时要求和步骤265中的估计而确定。设置时间违规可按几种方式纠正。例如,可使用如上所述的附加缓冲器,以加速信号,或者如果需要,可通过返回到步骤245而再次优化布置。保持时间违规可通过插入延迟元件来纠正。这些延迟和缓冲元件可通过对上述门阵列地址15进行编程而创造。
如果在连线表240上增加任何新的元件以纠正定时或设计违规,就在步骤275在连线表240中执行适当的纠正。随后,反复执行布置步骤245和布线步骤255,向连线表240反映这些变化,随后,另外重复步骤270中用于时间违规的测试。通常,在初始布置和布线之后,只有一个或多个重复是必需的。
如果在步骤270中观察没有定时违规,可通过静态功能验证技术来验证连线表240的完整性(步骤280),其中,该技术包括当应用某些约束时确认两种版本的设计在功能上是相同的。例如,原始连线表240应该在逻辑上等效于被修改以纠正时间和/或设计规则违规的连线表240。此技术不依赖于用户提供的任何模拟向量。如果未发现两种版本的连线表240在功能上相同,那么,就在步骤285在连线表240中执行适当的纠正(例如,通过增加或除去某些电路,等等),以保证功能等效。接着,重复步骤245-270,直到产生满意的电路设计为止。
此时,完成电路设计的布置和布线(步骤290)。在步骤295中,表示从步骤240-280所开发电路设计的软件文件与在步骤237中产生的物理配置文件相结合,完成将在掩膜编程器件20中执行的电路设计。此结合包括结合在步骤237中产生的物理配置文件,其中,所述物理配置文件包含指定在步骤245中布置且在步骤255中布线的每个逻辑资源的具体配置的互连信息。例如,这产生需要在基本器件上互连的全部逻辑资源的准确物理坐标,以产生具体电路设计。它还包括必须在掩膜层中产生的全部互连路径的物理坐标,以提供必需的互连。
然而,可在制造定制金属互连之前验证物理布局。这通常包括检查设计规则违规以及保证在物理上正确执行互连(步骤299)。这些过程有时称作设计规则检查(DRC)和布局-示意图验证(LVS)。此时,产生金属互连,并耦合到基本器件10上,以产生掩膜编程器件20(步骤297)。在步骤299之后,可执行用于保证器件20正确操作的附加步骤,例如包括使用扫描链技术来观察器件20内的某些节点(未示出)。
应理解,从先前逻辑设计创建甚至更小掩膜编程逻辑器件20的能力为电路设计者提供针对昂贵的专用集成电路技术(ASIC)的既节省成本又缩短周期时间的替代方案。进而,产生上述掩膜编程器件的能力允许电路设计者结合更小容量PLD如Altera的Flex400、600、800、1000、8K、10K和大容量FPGA如APEX、Cyclone和Stratix系列产品或相似器件的逻辑设计,并用没有配置相关逻辑电路的单个掩膜编程器件20取代它们,这超出以前可能地节省电路片面积且减小总功耗。
根据上述方法构造的掩膜编程逻辑器件20可用作图15所示数据处理系统300的一部分。数据处理系统300包括一个或多个以下部件处理器301;存储器302;I/O电路303;以及外围器件304。这些部件通过系统总线305而耦合在一起,并且在电路板306上组装,其中,电路板306包含在终端用户系统307中。
系统300可用于许多应用,如计算机网络、数据网络、仪器仪表、视频处理、数字信号处理或希望利用掩膜可编程逻辑的优点的任何其它应用。掩膜编程逻辑器件20可配置为执行各种不同的逻辑功能。例如,掩膜编程逻辑器件20可配置为与处理器301协同工作的处理器或控制器。掩膜编程逻辑器件20还可作为用于仲裁对系统300中共享资源的访问的仲裁器。在另一实例中,掩膜编程逻辑器件20可配置为处理器301与系统300中一个其它部件之间的接口。应指出,系统300只是示范性的,并且,本发明的真实范围和精神应该由后附权利要求表示。
各种集成电路工艺技术可用于实现根据本发明的上述掩膜编程逻辑器件20。另外,其它已知的编程技术如基于熔断器的编程可用于替换详细讨论的掩膜编程,并仍然实践本发明的原理。
从而,应该理解,前面仅仅是说明本发明的原理,并且,只要不偏离本发明的范围和精神,本领域中技术人员可进行各种变更,而且,本发明只受后附权利要求的限制。
权利要求
1.一种布置在集成电路上的掩膜可编程逻辑器件,所述器件被配置为有利于将源可编程逻辑器件的先前设计转换为所述掩膜可编程器件,包括布置在集成电路基板上的多个掩膜可编程逻辑资源;以及用于互连掩膜可编程逻辑资源的多个互连导体,所述互连导体耦合到掩膜可编程逻辑资源并布置在基板上方,其中,多个掩膜可编程逻辑资源中的至少一个包括布置在基板上的至少一个智能开关,该智能开关是可编程的,以执行源可编程逻辑器件的先前设计的配置相关逻辑电路的功能。
2.如权利要求1所述的掩膜可编程逻辑器件,其中,配置相关逻辑电路的功能取决于源可编程逻辑器件的至少一个可配置值。
3.如权利要求1所述的掩膜可编程逻辑器件,其中,智能开关不包括晶体管。
4.如权利要求1所述的掩膜可编程逻辑器件,其中,智能开关包括从基板延伸到第一掩膜层的固定触点。
5.如权利要求4所述的掩膜可编程逻辑器件,进一步包括至少一个互连段,所述互连段耦合到固定触点并位于掩膜层上,用于对智能开关进行编程以实现所述功能。
6.如权利要求1所述的掩膜可编程逻辑器件,其中,智能开关包括多个固定输入触点和一个固定输出触点,其中,所述输入和输出触点从基板延伸到第一掩膜层。
7.如权利要求6所述的掩膜可编程逻辑器件,进一步包括至少一个互连段,所述互连段耦合到所述输入触点之一和所述输出触点,其中,所述互连段位于掩膜层上,用于对智能开关进行编程以实现所述功能。
8.如权利要求6所述的掩膜可编程逻辑器件,其中,智能开关包括用于每一个所述输入触点的占位符表达式,其中,每一个占位符表达式从配置相关逻辑电路的功能得到并依赖于源可编程逻辑器件的至少一个可配置值。
9.如权利要求8所述的掩膜可编程逻辑器件,进一步包括至少一个互连段,所述互连段位于掩膜层上并耦合到所述输出触针和一个输入触点,其中,通过用源可编程逻辑器件的至少一个可配置值评估每一个所述占位符表达式而选择所述一个输入触点。
10.一种数字处理系统,包括处理电路;耦合到处理电路的存储器;以及如权利要求1所述的掩膜可编程逻辑器件,该器件耦合到所述处理电路和存储器。
11.一种印刷电路板,在所述印刷电路板上安装如权利要求1所述的掩膜可编程逻辑器件。
12.如权利要求11所述的印刷电路板,进一步包括安装在印刷电路板上并耦合到掩膜可编程逻辑器件的存储器。
13.如权利要求12所述的印刷电路板,进一步包括安装在印刷电路板上并耦合到掩膜可编程逻辑器件的处理电路。
14.一种从源可编程逻辑器件的先前设计创造掩膜可编程逻辑器件的方法,所述方法包括接收代表所述源器件设计的示意信息;从示意信息除去可配置存储器和布线资源;用可编程的至少第一智能开关来取代示意信息的至少第一配置相关逻辑资源,以执行第一配置相关逻辑资源的功能。
15.如权利要求14所述的方法,其中,第一配置相关逻辑资源的功能依赖于源可编程逻辑器件的至少一个可配置存储器值。
16.如权利要求14所述的方法,其中,智能开关布置在基板上,并包括多个固定输入触点和一个固定输出触点,并且其中,每一个所述触点从基板延伸到第一掩膜层。
17.如权利要求16所述的方法,其中,所述取代包括从第一配置相关逻辑资源的功能得到用于每个输入触针的占位符表达式。
18.如权利要求17所述的方法,进一步包括接收包括源可编程逻辑器件的可配置存储器值的配置信息。
19.如权利要求18所述的方法,其中,每个占位符表达式是依赖于至少一个可配置存储器值的布尔表达式。
20.如权利要求19所述的方法,进一步包括通过用所述配置信息评估每个占位符表达式,并通过用位于第一掩膜层上的互连段将适当的一个输入触针耦合到输出触针,对智能开关进行编程。
全文摘要
提供一种实施先前电路设计并且包括可编程智能开关的掩膜可编程逻辑器件。智能开关是金属端子,其中,金属端子可被编程,以执行先前电路设计的配置相关逻辑功能。
文档编号H03K19/177GK1716568SQ20051007553
公开日2006年1月4日 申请日期2005年6月2日 优先权日2004年6月2日
发明者乔纳森·帕尔克 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1