用来减小可编程逻辑器件中结构化多路选择器占用空间并提高其良率的系统和方法与流程

文档序号:16362681发布日期:2018-12-22 08:15阅读:247来源:国知局
用来减小可编程逻辑器件中结构化多路选择器占用空间并提高其良率的系统和方法与流程

本申请描述的实施例大致涉及可编程逻辑器件,具体地,涉及用于可编程逻辑器件的互连网络。

背景技术

可编程逻辑器件(pld)作为众所周知的集成电路的类型而存在,其可由用户编程以执行特定的逻辑功能。一种类型的pld被称为现场可编程门阵列(fpga)。fpga通常包括可编程片(tile)的阵列。这些可编程片包括可编程逻辑、可编程互连和输入/输出(i/o)电路。可编程逻辑使用被称为逻辑元件(le)或组合逻辑块(clb)的多个可编程元件执行用户设计的逻辑。可编程元件之间的连接通过可编程互连实现。可编程互连可以包括由可编程互连点(pip)互连的大量不同长度的互连线。此外,i/o电路向可编程元件提供输入信号,并呈现由可编程逻辑产生的输出信号。可编程逻辑、互连和i/o电路可以被编程/配置以支持不同的信号处理应用。诸如sram、反熔丝和闪存之类的电路技术已被用于配置fpga。



技术实现要素:

一种互连元件,包括:选择电路,所述选择电路用于接收输入信号并具有选择输出;半锁存电路,所述半锁存电路具有被耦接到所述选择输出的输入,其中所述半锁存电路包括上拉器件;以及公共偏置电路,所述公共偏置电路被耦接到所述上拉器件,其中所述公共偏置电路被配置为向所述上拉器件提供可调整偏置电压。

任选地,所述选择电路包括多路选择器。

任选地,所述半锁存电路还包括被耦接到pmos晶体管的栅极的反相器。

任选地,所述上拉器件包括pmos晶体管。

任选地,所述公共偏置电路包括被耦接在电源与可变电流源之间的晶体管。

任选地,来自所述公共偏置电路的偏置电压是可根据来自存储器件的数字代码进行调整的。

任选地,所述存储器件包括寄存器、sram或电熔丝。

任选地,所述存储器件是所述公共偏置电路的一部分。

任选地,所述公共偏置电路包括可变电流源,所述可变电流源具有输入,所述输入用于接收数据以调整所述偏置电压。

任选地,所述偏置电压是可调整的,以控制所述半锁存电路的强度。

任选地,所述公共偏置电路被耦接到所述上拉器件和另外的上拉器件。

一种集成电路,包括所述互连元件和另外的互连元件。

任选地,所述集成电路包括可编程逻辑器件。

一种调整在多个互连元件中的一个互连元件中的上拉器件的强度的方法,所述方法包括:提供公共偏置电路;以及将来自所述公共偏置电路的可调整偏置电压发送到所述上拉器件,以调节所述上拉器件的强度。

任选地,所述方法还包括由所述公共偏置电路根据存储在存储器件中的数字代码生成所述可调整偏置电压。

任选地,所述公共偏置电路包括可变电流源,其中所述方法还包括使用所述数字代码调节所述可变电流源的电流。

任选地,所述公共偏置电路包括晶体管,其中所述方法还包括响应于所述可变电流源的被调节的电流,调节所述晶体管的栅极到源极的电压(vgs)。

任选地,所述方法还包括确定所述数字代码,其中所述数字代码是在包括上拉器件的集成电路被制造后确定的。

任选地,通过测试所述集成电路直到达到期望的良率(yield)和/或写入裕度而确定所述数字代码。

任选地,所述方法还包括将来自所述公共偏置电路的可调整偏置电压传输到另外的上拉器件,以调节所述另外的上拉器件的强度。

其它征和优点将被详细地描述。

附图说明

附图示出了一些特征的设计和功用,其中类似的元件由相同的附图标记表示。这些附图不一定按比例画出。为了更好地理解如何获得上述的和其他的优点和目标,将呈现更具体的描述,这些更具体的描述将在附图中示出。这些附图不应被看作为限制权利要求的范围。

图1-1是描述在可编程逻辑器件中的逻辑元件之间的互连网络的框图。

图1-2示出了图1-1的互连元件。

图2示出了具有半锁存电路的互连元件。

图3示出了具有半锁存电路的互连元件。

图4示出了执行用于可编程逻辑器件的互连网络的方法。

图5示出了fpga的架构,利用该架构可以执行本申请描述的一个或多个实施例。

具体实施方式

在下文中参考附图描述了各种特征。应当注意,附图未按比例画出,并且在所有附图中类似结构或功能的元件由相同的附图标记表示。应当注意,附图仅仅旨在方便描述。它们并非打算作为所要求保护的发明的详尽描述或用来作为对所要求保护的发明的范围的限制。另外,描述的项目不需要具有所示的所有方面或优点。结合特定项目描述的方面或优点不一定限于该项目,并且即使没有如此示出,这些方面或优点也可以在任何其他项目中实现。

对于逻辑元件之间的互连,fpga可以根据要连接的逻辑元件之间的距离提供多种类型的互连。在一些示例中,多路选择器架构可用于实现fpga的可编程互连。这种多路选择器架构可以包括在多路选择器的输出处的半锁存电路(也被称为总线保持器),以保持互连线的状态。半锁存电路可以将多路选择器的输出维持在逻辑电压电平,以避免在多路选择器未被使用时其驱动器中的高竞争电流。然而,当使用多路选择器时,半锁存电路必须足够弱以将逻辑信号传递给逻辑元件或互连。因此,在某些情况下,可能需要具有弱半锁存电路的多路选择器架构。

图1-1示出了可编程逻辑器件100中的逻辑元件之间的互连网络的部分。在一些情况下,可编程逻辑器件100可以是fpga。在其他情况下,可编程逻辑器件100可以是可编程的其他类型的逻辑器件。在其他情况下,器件100不需要是可编程逻辑器件,而是可以是诸如集成电路那样的电路。如图所示,可编程逻辑器件100包括逻辑元件110a和110b,以及设置在逻辑元件110a和110b之间的互连网络120。逻辑元件110a/110b和互连网络120可以通过将配置比特流加载到内部配置存储器单元而被编程,其中配置比特限定在可编程逻辑器件100中的可编程逻辑器件110a、110b和/或互连会被如何配置。虽然图1-1仅示出了两个逻辑元件110a和110b,但是应当理解,在可编程逻辑器件中可以设置多个逻辑元件。

互连网络120包括由多个互连元件122互连的各种长度的连线网络125。在一个实施例中,连线网络125在逻辑元件110a/110b和/或互连元件122之间的行和列中水平地和垂直地延伸。每个互连元件122包括选择电路124和半锁存电路126。虽然示出了两个互连元件122,但是在某些情况下,可编程逻辑器件100可以包括两个以上的互连元件122。同样,在一些情况下,可编程逻辑器件100可以包括按行和列布置的多个互连元件122。

参照图1-2,每个互连元件122包括选择电路124和半锁存电路126。选择电路124由配置存储器单元进行配置,以确定可编程逻辑器件100中各点之间的连接。在一些情况下,选择电路124用于从逻辑元件中的若干输出信号中选择一个输出信号,并将所选的信号传递到互连线。在其他情况下,选择电路124用于从若干互连线中的一个互联线中选择信号并将所选的信号传递给逻辑元件。如图1-2所示,选择电路124是包括四个nmos传输晶体管134的多路选择器,nmos传输晶体管134接收从逻辑元件的输出(或从互连线中的一个互联线)提供的相应数据输入信号(i0、i1、i2、i3)。四个nmos传输晶体管134由源自配置存储器单元(未示出)的相应的选择输入(s0、s1、s2、s3)控制。作为四对一多路选择器的、图1-2的选择电路124通过示例被示出。然而,应当理解,可以执行二对一、八对一或其他选择电路来选择输入信号。另外,尽管图1-2中示出了nmos传输晶体管,在其他实施例中,其他类型的选择电路可以用于选择电路124,比如cmos门、与非门树或它们的任何组合。

如图1-2所示,每个选择电路124还包括组件150。组件150(例如,pmos晶体管)用于接收复位信号(在pmos晶体管的栅极处)以便在通电期间将选择电路124的输出复位到定义的逻辑状态。当器件通电时,用于器件的电源电压vdd从零上升到预定电压。在此期间,多路选择器的输出处的逻辑状态是未知的,因为它们可能携带来自先前逻辑状态的逻辑记忆。未知的内部逻辑状态可能会导致器件中出现不可预测的行为,并阻止器件执行其预期的功能。因此,部件150用于将多路选择器输出处的逻辑状态重置为定义的状态。

如图1-2所示,半锁存电路126耦合到选择电路124的输出。半锁存电路126包括反相器136和pmos晶体管138,pmos晶体管138的栅极在节点137处耦合到反相器136。半锁存电路126还包括驱动器140。在其他情况下,驱动器140可以是与半锁存电路126分开的。应当注意,当通过选择电路124输入高逻辑输入信号时,选择电路124的nmos传输晶体管134可以将高逻辑输入信号减小大约vtn,即传输晶体管的阈值电压。这样的结果是至半锁存电路的“弱”高逻辑输入信号。pmos晶体管138(即,保持器晶体管)因此被提供来将弱高逻辑输入信号上拉到vdd的全高逻辑电压。在一个实施例中,反相器136是cmos反相器,其包括由pmos晶体管构成的上拉路径和由nmos晶体管构成的下拉路径。除了选择电路124和半锁存电路126之外,互连元件122还包括耦合到半锁存电路126中的节点137的驱动器140。驱动器140用于将选定的信号沿着线125中的一个发送到其他逻辑元件。驱动器140可以由串联连接的一个或多个缓冲器组成。在一个实施例中,缓存器140是cmos反相器。利用半锁存电路126,这有助于将选择电路124的输出维持在逻辑电压电平,以避免在互连元件122未被使用时驱动器140中的高竞争电流。

为了保持良好的写裕量(例如,将逻辑信号传递给逻辑元件或互连的能力),相比于线的下拉路径,半锁存电路中的上拉路径需要较弱。具体地,上拉/下拉的强度是指驱动强度,即电流发源能力或吸收能力。因此,在一些情况下,当半锁存电路的上拉比起下拉的电流吸收能力具有更小的电流发源能力时,与下拉路径相比,上拉路径被认为是更弱的。在一个实施方案中,上拉路径可通过使用串联布置的多个晶体管(例如,2、3、4、5、6、7、8,、9、10等个晶体管)而变得更弱。应当注意,逻辑元件的输出处的一个驱动器与互连元件122之间(或两个互连元件之间)的互连线(例如线125)可长达几百微米。由于导线的较高电阻,长互连线使下拉路径变的更弱。而且,通过将输出线分叉到不同互连元件而提供的额外扇出可以使上拉路径更强。由于长互连线和多个扇出,半锁存电路中的上拉路径可能不够弱,从而影响传递逻辑“低”信号的可写性。未能传递逻辑“低”信号可能导致产品良率降低。

使半锁存电路中的上拉路径变弱的一种技术是在上拉路径中添加一叠器件。图2示出了具有这样的半锁存电路的互连元件。类似于图1-2的半锁存电路126,图2的半锁存电路226包括反相器136、pmos晶体管138和驱动器140。图2的每个半锁存电路226还包括一叠被串联耦合到晶体管138的pmos晶体管139,以降低半锁存电路226的强度。尽管示出了五个晶体管139,但在其他情况下,可以存在少于或多于五个晶体管139。在一些实施方式中,对于每10nm的互连线可能需要10个堆叠的晶体管139以使半锁存上拉路径足够弱。虽然晶体管139的添加可使上拉路径变弱,但是由于堆叠的晶体管139,这种配置可能会遭受面积损失。

本申请的实施例实现了包括半锁存电路的互连元件,该半锁存电路提供健康的写入裕量并且节省了大量有价值的面积或占用空间。此外,本申请的实施例还提供了调整半锁存电路的强度的可行性。

图3示出了根据一些实施例的具有半锁存电路的另一互连元件。类似于图1-2的半锁存电路126,半锁存电路326包括反相器136、栅极在节点137处耦合到反相器136的pmos晶体管138以及用于提供互连元件122的输出的驱动器140。图3的每个半锁存电路326还包括上拉器件310(例如,pmos晶体管),其源极耦合到电源(vdd),其漏极耦合到晶体管138的源极。此外,上拉器件310的栅极被提供可调整偏置电压,该可调整偏置电压提供自公共偏置电路320。公共偏置电路320被配置为将可调整偏置电压提供给一个或多个上拉器件310。在一个实施例中,提供的偏置电压可以通过使用存储器件(例如,寄存器、sram、电熔丝等)而被调整/修整,所述存储器件存储用于控制电流源的数字代码。这种调整/修整可以在电路被制造后,通过将来自存储器件的数字代码提供给公共偏置电路320而被执行。在一些情况下,存储器件可以是公共偏置电路320的一部分(例如,被耦合到可变电流源324或在可变电流源324中)。在其他情况下,存储器件可以在公共偏置电路320之外。在一些实施例中,公共偏置电路320包括晶体管322,晶体管322的源极耦合到vdd并且其漏极耦合到可变电流源324。被提供到上拉器件310的偏置电压可以通过调整可变电流源324而被调节。通过控制从公共偏置电路320提供给上拉器件310的栅极的偏置电压,可以调整在半锁存电路326中的上拉路径的强度。

例如,如果为了在制造之后提高良率和/或写入裕量而希望使上拉器件310较弱(以降低上拉器件310的强度),则可变电流源324中的电流可以通过改变被存储在存储器件(例如,寄存器、sram、电熔丝等)中的数字代码而被调节,该存储器件存储用于控制公共偏置电路320(例如,其中的电流源324)的数字代码。当电流源324中的电流减小时,晶体管322的vgs(从栅极到源极的电压)减小。这种电流减小将被反映在上拉器件310的电流中(因为上拉器件310和晶体管322的栅极相连接,并且这些元件的源极处于相同的电源电平)。因此,可变电流源的减小导致上拉器件310的电流减小。类似地,可变电流源的增加将导致上拉器件310的电流增加。因此,类似的技术可被利用来增加上拉器件310的强度。反相器136、pmos晶体管138和晶体管140在调整中不起作用。然而,在调整之后,这些部件的路径的延迟将取决于上拉器件310的电流能力,其受到调整的影响。

如所讨论的,存储器件(例如,sram、寄存器、电熔丝等)保存数字代码(或数据),所述数字代码决定从公共偏置电路320提供的可调整偏置电压,从而影响上拉器件322、310的强度。在一些情况下,可能存在初始代码(数据),该初始代码(数据)基于在设计阶段期间执行的模拟而确定。此后,这个初始代码可以在器件被制造之后通过使用不同代码测试所述器件而被更新。在找到实现期望的良率和/或写入裕量所需的代码之后,可以将该代码(更新的代码)编程到存储器件中。存储器件将该更新的代码提供给公共偏置电路320,从而调节上拉器件322、310的强度。在一个实施方式中,公共偏置电路320的电流源324包括数模转换器,并且电流源324由数字输入控制。因此,来自存储器件的数字代码可用于改变可变电流源324中的电流。该修整技术甚至在制造之后也有助于提高良率和/或写入裕量,并且可用于解决在制造过程中或在与制造过程不匹配的仿真模型中的任何变化。

在其他实施例中,代替使用存储器件(例如,寄存器、sram、电熔丝等)来提供用来控制电流源324的数字代码,电流源324可以耦合到接口,该接口允许用户调节电流源324中的电流,反过来又控制由公共偏置电路320提供的可调整偏置电压。

如图所示,一个公共偏置电路320可以被用于在相应的互连元件122中的多个半锁存电路326。因此,互连元件所需的面积明显减小。而且,与先前描述的半锁存电路226的配置相比,半锁存电路326需要更小的面积。此外,调整上拉路径的强度的可行性允许半锁存电路管理由于架构更新而导致的技术/进程和/或线长度的变化。因此,即使在初始流片之后,也可以更新产品系列的结构并且可以在产品平台中包括更宽的块。应当注意,尽管在图3上仅示出了一个公共偏置电路320,但在一些实施例中,在可编程逻辑器件中的互连网络中可以使用一个以上的公共偏置电路。

图4示出了调整互连元件中的上拉器件的强度的方法400。方法400包括提供公共偏置电路(项目402),以及将可调整偏置电压从公共偏置电路传送到上拉器件以调节上拉器件的强度(项目404)。在一些情况下,方法400还可以包括由公共偏置电路基于存储在存储器件中的数字代码生成可调整偏置电压。

在一个实施方式中,在具有上拉器件的集成电路被制造后,可以通过执行测试和/或仿真来确定数字代码。在实现期望的性能结果(例如,期望的良率、写入裕量或它们的组合)所需的代码之后,然后将代码存储(例如,编程)到诸如sram、寄存器、电熔丝等那样的存储器件中。

而且,在一些实施例中,公共偏置电路可以包括可变电流源(类似于参考图3描述的可变电流源324),并且方法400还可以包括使用数字代码来调节可变电流源的电流。此外,在一些情况下,公共偏置电路还包括晶体管(类似于参考图3描述的晶体管322),并且方法400还可以包括响应于可变电流源的调节电流,调节晶体管的栅极至源极电压(vgs)。

在一些实施例中,公共偏置电路可以通信地耦合到另外的上拉器件。在这样的情况下,方法400还可以包括将来自公共偏置电路的可调整偏置电压传输到另外的上拉器件以调节所述另外的上拉器件的强度。

图5示出了可以如上所述将互连元件与半锁存电路相结合的示例性可编程逻辑器件架构500的图。所述架构500将被描述为fpga架构,但是应当理解,可以使用其他类型的架构来实现本申请描述的特征。fpga架构500包括大量不同的可编程片,可编程片包括多千兆位收发器(mgt)501、可配置逻辑块(clb)502、随机存取存储器块(bram)503、输入/输出块(iob)504、配置和时钟逻辑(config/clocks)505、数字信号处理块(dsp)506、专用输入/输出块(i/o)507(如时钟端口)以及其他可编程逻辑508(如数字时钟管理器、模数转换器、系统监视逻辑等)。一些fpga还包括专用处理器块(proc)510以及内部和外部重配置端口(未示出)。

在一些fpga中,每个可编程片包括如上所述的可编程互连元件(int)511,其具有到和来自每个相邻片中的对应互连元件的标准化连接。因此,可编程互连元件一起实现了所示fpga的可编程互连结构。可编程互连元件int511还包括到和来自同一片内的可编程逻辑元件的连接。例如,clb502可以包括可配置逻辑元件cle512加上单个可编程互连元件int511,可配置逻辑元件cle512可以被编程以实现用户逻辑。除了一个或多个可编程互连元件之外,bram503还可以包括bram逻辑元件(brl)513。典型地,一块片中包括的互连元件的数量取决于片的高度。在图示的实施例中,一块bram片具有五个clb的高度,但也可以使用其他数量(例如四个)。除了适当数量的可编程互连元件之外,一个dsp片506还可以包括dsp逻辑元件(dspl)514。除了可编程互连元件int511的一个实例之外,iob504还可以包括例如输入/输出逻辑元件(iol)515的两个实例。

在图5所示的实施例中,靠近裸片(die)中心的区域(在图5中以阴影示出)用于配置、时钟和其他控制逻辑。从该列延伸的区域509被用来在fpga的宽度上分配时钟和配置信号。

一些利用图5中所示的架构的fpga包括额外的逻辑块,这些逻辑块会打乱构成fpga的大部分的常规柱状结构。额外的逻辑块可以是可编程块和/或专用逻辑。例如,图5中所示的处理器块proc510跨越了几列clb和bram。

proc510可以被实现为硬连线处理器,所述硬连线处理器被制造为实现ic的可编程电路的裸片的一部分。proc510可以表示各种不同的处理器类型和/或系统中的任何一种,其复杂程度从单个处理器(例如,能够执行程序代码的单个核)到具有一个或多个核、模块、协处理器、接口等的整个处理器系统。

在更复杂的布置中,例如,proc510可以包括一个或多个核,例如中央处理单元、高速缓冲存储器、存储器控制器、单向和/或双向接口,所述单向和/或双向接口可配置为直接耦合到可编程ic的i/o引脚和/或耦合到可编程ic的可编程电路。词组“可编程电路”可以指代本文描述的各种可编程或可配置电路块或片,以及根据被加载到ic的配置数据选择性地耦合各种电路块、片和/或元件的互连电路。在一个实施例中,可编程电路还可以被实现为或被称为可编程结构。

虽然已经示出和描述了特定的特征,但是应该理解,它们并不旨在限制所要求保护的发明,并且对于本领域技术人员来说显而易见的是,在不脱离所要求保护的本发明的精神和范围的情况下可以进行各种改变和修改。因此,说明书和附图应被视为说明性的而非限制性的。要求保护的发明旨在覆盖替代方案、修改方案和等同方案。

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