Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

用于可编程逻辑器件的快速启动系统和方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:美国莱迪思半导体公司

摘要:本公开涉及用于可编程逻辑器件的快速启动系统和方法,特别地涉及可编程逻辑器件PLD、相应的方法、包括指令的非暂时性机器可读存储介质以及相应的系统。提供了用于实施可编程逻辑器件PLD的快速启动的各种技术。在示例中,方法包括:接收与PLD相关联的配置数据。该PLD包括:配置存储器单元的阵列,包括分别与PLD的逻辑结构和IO结构相关联的逻辑块存储器单元和输入输出IO块存储器单元。该方法还包括:用配置数据来对IO块存储器单元的子集进行编程;以及提供用于激活与IO结构的一部分相关联的功能的唤醒信号。该方法还包括:用配置数据来对阵列中的剩余配置存储器单元进行编程,其中,剩余配置存储器单元至少包括逻辑块存储器单元的子集。

主权项:1.一种用于快速启动的方法,包括:接收与可编程逻辑器件PLD相关联的配置数据,其中所述PLD包括配置存储器单元的阵列,所述配置存储器单元的阵列包括与所述PLD的逻辑结构相关联的多个逻辑块存储器单元、以及与所述PLD的输入输出IO结构相关联的多个IO块存储器单元;利用所述配置数据的第一部分来对所述IO块存储器单元的子集进行编程;提供用于唤醒与所述IO结构的一部分相关联的功能的第一唤醒信号,所述IO结构的所述一部分与所述IO块存储器单元的所述子集相关联;响应于所述第一唤醒信号,将所述IO结构的所述一部分从配置模式转换为快速启动操作模式;利用所述配置数据的第二部分来对所述阵列的剩余配置存储器单元进行编程,其中所述剩余配置存储器单元包括所述逻辑块存储器单元的至少一个子集;提供用于唤醒与所述逻辑结构的至少一部分相关联的功能的第二唤醒信号,所述逻辑结构的所述至少一部分与所述逻辑块存储器单元的所述子集相关联;以及响应于所述第二唤醒信号,将所述IO结构的所述一部分从所述快速启动操作模式转换为系统操作模式,并且将所述逻辑结构的所述一部分从所述配置模式转换为所述系统操作模式。

全文数据:用于可编程逻辑器件的快速启动系统和方法相关申请的交叉引用本专利申请要求于2017年12月29日提交的美国临时专利申请62612,265的优先权和权益,其所有内容通过引用整体并入本文。技术领域本发明一般地涉及可编程逻辑器件,并且更具体地涉及用于这种器件的快速启动技术。背景技术可以利用用于实施所期望功能的各种用户设计来配置可编程逻辑器件PLD例如,现场可编程门阵列FPGA、复杂可编程逻辑器件CPLD、现场可编程片上系统FPSC、或者其他类型的可编程器件。通常,将用户设计被合成并且被映射到可配置资源中,通过非限制性示例的方式,包括:可编程逻辑门、查找表LUT、嵌入式硬件、互连、和或在特定PLD中可用的其他类型的资源。然后可以确定针对被合成并且被映射的用户设计的物理布局和路由以生成针对特定PLD的配置数据。所生成的配置数据被加载到PLD的配置存储器中以实施可编程逻辑门、LUT、嵌入式硬件、互连、和或其他类型的可配置资源。加载的配置数据会花费相当大量的时间。因此,需要针对加载的配置数据和PLD操作的改进技术。发明内容根据各种实施例,提供了一种方法,包括:接收与可编程逻辑器件PLD相关联的配置数据,其中PLD包括配置存储器单元的阵列,配置存储器单元的阵列包括与PLD的逻辑结构相关联的多个逻辑块存储器单元、以及与PLD的输入输出IO结构相关联的多个IO块存储器单元;利用配置数据的第一部分来对IO块存储器单元的子集进行编程;提供用于唤醒与IO结构的一部分相关联的功能的第一唤醒信号,IO结构的一部分与IO块存储器单元的子集相关联;利用配置数据的第二部分来对阵列的剩余配置存储器单元进行编程,其中剩余配置存储器单元包括逻辑块存储器单元的至少一个子集;以及提供用于唤醒与逻辑结构的至少一部分相关联的功能的第二唤醒信号,逻辑结构的一部分与逻辑块存储器单元的子集相关联。根据各种实施例,该方法还包括:响应于第一唤醒信号,将IO结构的一部分从配置模式转换为快速启动操作模式,以及响应于第二唤醒信号,将IO结构的一部分从快速启动操作模式转换为系统操作模式,并且将逻辑结构的一部分从配置模式转换为系统操作模式。根据各种实施例,该方法还包括:响应于第一唤醒信号,由IO结构的一部分提供第一功能;在转换到系统操作模式之后的预定的时间量内,由IO结构的一部分维持第一功能;以及在预定的时间量之后,由IO结构的一部分提供第二功能。根据各种实施例,该方法还包括:在的对剩余配置存储器单元进行编程被执行的同时操作IO结构的一部分。根据各种实施例,该方法还包括:其中逻辑块存储器单元的子集是逻辑块存储器单元的第一子集,其中逻辑结构的一部分是逻辑结构的第一部分,方法还包括:利用配置数据的第三部分来对逻辑块存储器单元的第二子集进行编程,其中的提供第一唤醒信号包括:提供用于唤醒与逻辑结构的第二部分相关联的功能的第一唤醒信号。根据各种实施例,该方法还包括:其中与IO结构的一部分相关联的功能是基于与逻辑结构的第二部分相关联的功能。根据各种实施例,该方法还包括:其中:配置存储器单元的阵列被布置成行和列的形式,IO块存储器单元的子集包括连续列的IO块存储器单元的一个或多个集合,以及逻辑块存储器单元的第二子集包括连续列的逻辑块存储器单元的一个或多个集合,连续列的逻辑块存储器单元的一个或多个集合与连续列的IO块存储器单元的一个或多个集合相邻。根据各种实施例,该方法还包括:其中配置数据包括与IO块存储器单元的子集相关联的第一认证信息,方法还包括:基于第一认证信息来执行与配置数据的第一部分相关联的第一认证,其中,当IO块存储器单元的子集的第一认证成功时,的提供第一唤醒信号、的对剩余配置存储器单元进行编程、以及的提供第二唤醒信号被执行。根据各种实施例,该方法还包括:其中的执行第一认证在的对子集进行编程之后被执行。根据各种实施例,该方法还包括:其中配置数据包括与剩余配置存储器单元相关联的第二认证信息,方法还包括:基于第二认证信息来执行与配置数据的第二部分相关联的第二认证,其中,当对剩余配置存储器单元的第二认证成功时,的提供第二唤醒信号被执行。根据各种实施例,该方法还包括:其中,在的对子集进行编程之后,IO块存储器单元的子集中的每一个与驱动为0、驱动为1、或处于三态相关联。根据各种实施例,该方法还包括:其中IO块存储器单元的子集包括IO块存储器单元的第一集合、以及IO块存储器单元的第二集合,其中的对IO块存储器单元的子集进行编程包括:将地址移位器和数据移位器配置为逐列地编程;使用地址移位器和数据移位器来逐列地对IO块存储器单元的第一集合进行编程;将地址移位器和数据移位器转换为逐行地编程;以及在的转换之后,使用地址移位器和数据移位器来逐行地对IO块存储器单元的第二集合进行编程。根据各种实施例,还提供了一种可编程逻辑器件PLD,包括:配置存储器单元的阵列,包括与PLD的逻辑结构相关联的多个逻辑块存储器单元、以及与PLD的输入输出IO结构相关联的多个IO块存储器单元;处理电路,被配置为:接收与PLD相关联的配置数据;利用配置数据的第一部分来对IO块存储器单元的子集进行编程;提供用于唤醒与IO结构的一部分相关联的功能的第一唤醒信号,IO结构的一部分与IO块存储器单元的子集相关联;利用配置数据的第二部分来对阵列中的剩余配置存储器单元进行编程,其中剩余配置存储器单元包括逻辑块存储器单元的至少一个子集;以及提供用于唤醒与逻辑结构的至少一部分相关联的功能的第二唤醒信号,逻辑结构的至少一部分与逻辑块存储器单元的子集相关联。根据各种实施例的PLD,其中阵列被布置成行和列的形式,以及其中,多个IO块存储器单元被定位在多个逻辑块存储器单元周围。根据各种实施例的PLD,其中逻辑块存储器单元的子集是逻辑块存储器单元的第一子集,其中逻辑结构的一部分是逻辑结构的第一部分,其中处理电路被进一步配置为:利用配置数据的第三部分来对逻辑块存储器单元的第二子集进行编程,其中处理电路被配置为提供用于唤醒与逻辑结构的第二部分相关联的功能的第一唤醒信号。根据各种实施例的PLD,其中:处理电路包括:地址逻辑电路,被配置为选择性地断言阵列的行或列;数据写入电路,被配置为将配置数据提供至阵列;以及唤醒电路,被配置为生成第一唤醒信号和第二唤醒信号;以及处理电路被配置为使用地址逻辑电路和配置数据写入电路来对阵列进行编程。根据各种实施例的PLD,其中:配置数据包括与子集相关联的认证信息,处理电路被进一步配置为:基于认证信息来执行子集的认证,以及处理电路被配置为:当子集的认证成功时,提供第一唤醒信号、对剩余配置存储器单元进行编程、以及提供第二唤醒信号。根据各种实施例,还提供了一种包括指令的非暂时性机器可读存储介质,指令在被执行时使得设备的一个或多个处理器执行以下操作,操作包括:接收待由可编程逻辑器件PLD执行的设计识别操作,其中操作中的至少一个操作与快速启动相关联;将设计合成到与快速启动相关联的第一多个PLD组件中以及到第二多个PLD组件中;确定包括用于促进快速启动的第一多个PLD组件的位置以及第二多个PLD组件的位置的布局;基于所确定的布局来生成配置数据;以及提供配置数据以配置PLD。其中操作还包括:生成与第一多个PLD组件相关联的认证信息,其中的提供包括:提供配置数据和认证信息。其中与快速启动相关联的配置数据被提供以在剩余配置数据被提供之前来配置PLD。其中第一多个PLD组件包括第一配置存储器单元,而第二多个PLD组件包括第二配置存储器单元,其中操作还包括:使用配置数据的第一部分来对第一配置存储器单元进行编程;提供用于激活与第一多个PLD组件相关联的功能的第一唤醒信号;使用配置数据的第二部分来对第二配置存储器单元进行编程;以及提供用于激活与第二多个PLD组件相关联的功能的第二唤醒信号。根据各种实施例,还提供了一种系统,包括:上述的非暂时性机器可读存储介质;以及一个或多个处理器。附图说明图1图示了根据本公开的一个实施例的PLD的框图。图2图示了根据本公开的一个实施例的具有输入输出结构和逻辑结构以及相关联的处理电路的PLD的框图。图3A和图3C图示了根据本公开的一个实施例的具有被指定用于快速启动的输入输出部分的PLD在配置和唤醒的各个阶段的框图。图4图示了根据本公开的一个实施例的具有被指定用于快速启动的输入输出部分的PLD的框图。图5和图6图示了根据本公开的一个实施例的具有被指定用于快速启动的输入输出和逻辑核部分的PLD的框图。图7图示了根据本公开的一个实施例的用于激活并且提供输入输出功能的输入输出控制电路的框图。图8图示了根据本公开的一个实施例的针对PLD的示例设计过程的流程图。图9图示了根据本公开的一个实施例的针对促进PLD的快速启动功能的示例过程的流程图。通过参照下面的详细描述,可以最好地理解本公开的实施例及其优点。应领会的是,相同的附图标记被用于标识在一个或多个附图中所图示的相同元件。具体实施方式提供了用于促进针对PLD的快速启动的各种技术。在一些实施例中,可以利用允许PLD的输入输出IO结构的至少一部分以提供IO功能的快速启动能力来实施PLD。快速启动还可以被称为快速唤醒、快速激活、提早启动、提早唤醒、提早激活、或者其变型。在一些情况下,备选地或另外地,可以指定逻辑结构的一部分和或PLD的其他组件以用于快速启动。为此,可以指定PLD的某一功能例如,IO和或逻辑功能以用于快速启动。在一个实施例中,为了促进快速启动,与被指定用于快速启动的IO结构的一部分相关联的配置数据可以被加载到与IO结构的该部分相关联的配置存储器单元中。一旦配置存储器单元已被配置例如,已被编程,已被加载了配置数据,就可以提供用于唤醒例如,也被称为激活与IO的该部分相关联的IO功能的唤醒信号。在唤醒该IO功能时,该IO功能从配置模式转换为快速启动操作模式。在IO结构的该部分已被激活之后,可以利用对应的配置数据来配置PLD的剩余配置存储器单元这些PLD的剩余配置存储器单元可以包括逻辑结构和IO结构的任何剩余部分并且将其激活。一旦将配置数据中的所有配置数据都被加载到PLD中,PLD就可以唤醒并且提供功能。在唤醒PLD的剩余功能时,功能转换为全系统操作模式例如,也被称为正常操作模式。在一个方面,被指定用于快速启动的IO功能可以从快速启动操作模式转换为全系统操作模式,而剩余功能例如,未被指定用于快速启动的功能可以从配置模式转换为全系统操作模式。备选地或者除了指定用于快速启动的至少一些IO功能之外,可以指定PLD的逻辑功能和或其他组件以用于快速启动。可以将配置数据提供为配置位流。用于配置PLD例如,将配置数据加载到PLD中的配置时间可以是基于配置方法、位流源、待被写入PLD的位流例如,包括配置位流的链路速度、和或其他因素。在使用配置位流来配置PLD之前,PLD的IO结构和逻辑结构可以处于未知状态或三态状态例如,除了通常在通电时处于已定义状态的PLD的任何硬编码组件之外。在提供对IO功能的快速启动时,PLD可以在使器件上电之后不久提供可预测的IO行为例如,IO功能,而无需在提供这种IO行为之前等待整个PLD被配置并且被激活。这种器件可以包括PLD和或可以由PLD控制。器件的一个示例可以是风扇或发光二极管LED。在这点上,被激活的IO功能可以针对由PLD控制的器件以期望的驱动器特性例如,IO类型、驱动强度、上拉下拉特征等来驱动合适的极性例如,接通或关断,1或0。在一些用户所指定的应用中,与提供IO行为相关联的延迟会不利地影响用户和或消费者体验和或是令人不悦的。例如,由PLD控制的LED可能具有未定义行为例如,归因于未定义的IO功能,在功能被激活例如,被置于已定义状态之前,该未定义行为会体现为闪烁或通常是LED的任何不良行为。通过提供快速启动以允许提早唤醒与LED相关联的PLD的IO行为,LED可以接收用于定义LED的行为的适当控制信号。在这些用户所指定的应用中,PLD的其他功能会被认为没那么关键、时间敏感性较低、和或不那么明显,因此会在稍后的时间被激活。作为一个示例,在数十或数百毫秒内配置并且激活整个PLD的情况下,可以在微秒范围例如,1μs至1,000μs内配置并且激活被指定的用于快速启动的PLD的部分。与针对快速启动操作的配置和激活相关联的时间可以至少部分地基于被指定用于快速启动的IO和或逻辑功能的量。在一些方面,由PLD提供的这种IO功能可以被称为静态控制,并且对这种IO功能的快速启动可以被称为快速启动静态控制。静态控制可以提供针对被耦合至PLD的组件的控制,该被耦合至PLD的组件通常独立于PLD的逻辑结构。在一些情况下,可以针对控制IO功能的PLD的逻辑结构的一部分应用快速启动。在这些情况下,快速启动可以促进静态状态控制例如,独立于逻辑结构的基于IO结构的控制和或逻辑结构控制的IO。在一个实施例中,可以对配置数据的至少一部分使能安全性。为了使能安全性,可以生成一个或多个认证证书。在一些情况下,可以为与被指定用于快速启动的结构例如,IO和或逻辑功能相关联的配置数据提供一个或多个认证证书,和或可以为未被指定用于快速启动的配置数据提供一个或多个认证证书。可以在对应的配置数据已经被加载到PLD中之前或之后基于一个或多个认证证书来执行认证。例如,当IO结构的一部分被指定用于快速启动时,配置数据的一部分可以被加载到与IO结构的该部分相关联的配置存储器单元中。可以基于与配置数据的该部分相关联的一个或多个认证证书来执行认证。如果认证成功,则与IO结构的该部分相关联的功能可以被激活并且剩余的配置数据被加载到PLD中。如果认证不成功,则对PLD的配置和激活可以被中止。使用各种实施例,PLD的IO和或逻辑功能的部分可以被配置并且被激活为在配置并且激活其他功能之前提供稳定的受控状态。在一些情况下,至少一些IO功能可以被指定用于快速启动以实现PLD相对于这种IO功能较少的IO唤醒时间。在一些方面,一旦PLD的其余部分被配置并且被激活,就可以提供从快速启动操作模式到全系统操作模式的无缝例如,无低频干扰glitchless转换。现在参照附图,图1图示了根据本公开的一个实施例的PLD100的框图。PLD100例如,FPGA、CPLD、FPSC、或者其他类型的可编程器件一般包括IO块102和可编程逻辑块PLB104。在一些情况下,PLD100一般可以是具有分布式配置的任何类型的可编程器件例如,可编程集成电路,该具有分布式配置的任何类型的可编程器件可以涉及:通过引脚来加载配置数据,移位至相关联的结构中的适当位置,以及对配置存储器单元配置。PLB还可以被称为逻辑块、可编程功能单元PFU、或可编程逻辑单元PLC。在一个方面,PLB104可以共同地形成PLD100的集成电路IC核或逻辑核。IO块102为PLD100提供IO功能例如,以支持一个或多个IO和或存储器接口标准,而PLB104为PLD100提供逻辑功能例如,基于LUT的逻辑。可以通过串行器解串器SERDES块150和物理编码子层PCS块152来提供附加的IO功能。PLD100还可以包括用于提供附加功能例如,在可以利用比PLB104更少的编程来配置的硬件中所提供的基本上被预定的功能的硬知识产权核IP块160。PLD100可以适当地包括存储器106的块例如,可擦除可编程只读存储器EEPROM的块、块静态RAMSRAM、和或闪速存储器、时钟相关电路系统108例如,时钟源、锁相环PLL电路、和或延迟锁定环DLL电路、和或各种路由资源180例如,用于提供用于在整个PLD100中的路由信号的路径诸如,用于时钟信号、数据信号、控制信号、唤醒信号、或其他信号的互连和适当的开关电路。PLD100可以包括用于接收配置数据、用于配置PLD100的各种可编程元件、以及用于激活与这些可编程元件相关联的功能的配置和激活逻辑。一般地,如本领域的技术人员将理解的,PLD100的各种元件可以被用于执行它们对于期望应用的所预期的功能。例如,某些IO块102可以被用于对存储器106进行编程或者将信息例如,各种类型的用户数据和或控制信号传递至PLD100从PLD100传递信息例如,各种类型的用户数据和或控制信号。其他IO块102包括第一编程端口该第一编程端口可以表示中央处理单元CPU端口、外围数据端口、串行外围接口SPI端口、和或sysCONFIG编程端口、和或第二编程端口诸如,联合测试行动组JTAG端口例如,通过采用诸如电气与电子工程师协会IEEE1149.1或1532标准等的标准。在各种实施例中,可以包括IO块102以适当地接收用于将PLD100配置为用于它的预期用途并且支持串行或并行器件配置以及与SERDES块150、PCS块152、硬IP块160、和或PLB104的信息传递的配置数据和命令例如,通过一个或多个连接。应理解的是,各种元件的数目和布局不是限制性的,并且可以取决于所期望的应用。例如,对于所期望的应用或设计规范例如,对于所选择的可编程器件的类型,可能不需要各种元件。此外,应理解的是,为了清楚起见,以方框的形式图示了元件,并且各种元件通常将分布在整个PLD100中,诸如,分布在PLB104、硬IP块160和路由资源180中以及分布在PLB104、硬IP块160和路由资源180两两之间以执行它们的常规功能例如,存储配置PLD100的配置数据或者在PLD100内提供互连结构。例如,路由资源180可以被用于每个PLB104内和或在不同的PLB104之间的内部连接。还应理解的是,如本领域的技术人员要理解的,本文所公开的各种实施例不限于可编程逻辑器件诸如,PLD100,而是可以被应用于各种其他类型的可编程器件。外部系统130可以被用于创建PLD100的期望用户配置或设计,并且生成用于对PLD100进行编程例如,配置PLD100的对应的配置数据。例如,为了配置PLD100,系统130可以将这种配置数据提供至一个或多个IO块102、PLB104、SERDES块150、和或PLD100的其他部分。在这点上,外部系统130可以包括连接至PLD100的编程端口例如,SPI、JTAG的链路140以促进将配置数据从外部系统130传递至PLD100。因此,IO块102、PLB104、各种路由资源180、以及PLD100的任何其他适当的组件可以被配置为根据用户所指定的应用进行操作。在一些情况下,IO块102或其一部分可以被指定用于快速启动。在一些情况下,PLB104或其一部分可以被指定用于快速启动。在所图示的实施例中,系统130被实施为计算机系统。在这点上,系统130包括:例如,可以被配置为执行在一个或多个存储器134中所提供的和或以非暂时性形式在一个或多个非暂时性机器可读介质136中所存储的指令的一个或多个处理器132例如,该一个或多个非暂时性机器可读介质136可以在系统130的内部或外部。例如,在一些实施例中,系统130可以运行PLD配置软件诸如,可以从LatticeSemiconductorCorporation获得的LatticeDiamondSystemPlanner软件以准许用户创建所期望的配置并且生成用于对PLD100进行编程的对应的配置数据。在一些实施例中,PLD100的存储器106可以包括被利用以存储由外部系统130生成并且提供至存储器106的配置数据的非易失性存储器例如,闪速存储器。在配置PLD100期间,非易失性存储器可以经由配置路径和相关联的数据线来提供配置数据以配置PLD的各个部分例如,IO块102、PLB104、SERDES块150、路由资源180、和或其他部分。在一些情况下,配置数据可以被存储在PLD100外部的非易失性存储器中例如,在外部硬盘驱动器诸如,系统130中的存储器134上。在配置期间,配置数据可以从外部非易失性存储器被提供例如,被加载到PLD100中以配置PLD100。系统130还包括:例如,用于向用户显示信息的用户界面135例如,屏幕或显示器以及用于接收准备PLD100的所期望的配置的用户命令或设计输入designentry的一个或多个用户输入设备137例如,键盘、鼠标、轨迹球、触摸屏、和或其他设备。图2图示了根据本公开的一个实施例的具有IO结构和逻辑结构以及相关联的处理电路230的PLD200的框图。可以通过IO部分205、210、215和220来提供PLD200的IO结构。可以通过逻辑核225例如,也被称为IC核来提供PLD200的逻辑结构。IO部分205、210、215和或220可以包括逻辑、资源例如,路由资源、可用于存储配置数据的配置存储器、和或一般地与促进提供IO结构的功能相关联的任何组件。同样地,逻辑核225可以包括逻辑、资源例如,路由资源、可用于存储配置数据的配置存储器、和或一般地与促进提供逻辑结构的功能相关联的任何组件。在一个实施例中,PLD200可以是PLD100,可以包括PLD100,或者可以是PLD100的一部分。在一个方面,PLD200的IO结构可以包括IO块102、SERDES块150、PCS块152、以及相关联的电路系统例如,路由资源180、时钟相关电路系统108、和或至其的连接等。在一个方面,逻辑结构可包括PLB104、硬IP块160、以及相关联的电路系统。PLD200的配置存储器可以包括可用于存储配置数据的配置存储器单元的阵列例如,每个配置存储器单元可以存储一个位。该配置存储器单元的阵列可以被布置成行和列的形式。在一个方面,IO部分205、210、215、和或220、以及逻辑核225可以包括配置存储器单元例如,被布置成行和列的形式并且形成阵列的一部分。配置存储器单元可以是易失性存储器单元例如,RAM单元,诸如,SRAM单元。在一些情况下,配置存储器单元可以被称为配置RAMCRAM单元。虽然本公开一般地涉及对行和或列所执行的各种操作,但是适当地,行可以被用作列,而列可以被用作行。在一个方面,与IO相关联的配置存储器单元和与逻辑相关联的配置存储器单元可以被称为IO块配置存储器单元和逻辑块配置存储器单元。为了配置PLD200例如,IO结构和逻辑结构例如,对PLD200进行编程,配置数据可以被提供为被串行或被并行地加载到配置存储器单元中的配置位流。在一些情况下,可以串行地执行移位,诸如,使用JTAG或者SPIx1模式。备选地或另外地,在一些情况下,移位可以并行,然后是在内部的并行串行移位,诸如,使用SPIx4模式或例如,并行x8模式。PLD200的处理电路230可以包括用于断言PLD200的地址例如,列地址的地址逻辑电路235以及用于将对应的配置数据加载到与所断言的地址相关联的一个或多个配置存储器单元中的数据写入电路240。例如,地址逻辑电路235可以被利用来通过使用相应地址线未示出来选择性地断言阵列的列以允许使用数据写入电路240来使配置数据被加载到配置存储器单元中。在图2中,地址逻辑电路235可以是或者可以被利用来控制例如,使用控制信号地址移位器以实现跨PLD200的列的逐列地址移位例如,由地址移位250表示。数据写入电路240可以是或者可以被利用来控制例如,使用控制信号数据移位器以接收与所断言的列对应的配置数据的一部分并且将配置数据的该部分加载到PLD200的对应的配置存储器单元中例如,由数据移位255表示。在这点上,配置数据可以通过以下方式来一次一列地被加载到PLD200中:将待被写入的数据推送到由数据写入电路240控制的数据移位器中,使用地址逻辑电路235来断言列地址以允许待被写入的数据进入与所断言的列地址相关联的配置存储器单元中,以及将数据加载到这些配置存储器单元中。可以对PLD200的每个后续列执行这种推送配置数据、断言列地址、以及加载配置数据,直到配置存储器的列已被加载了它们对应的配置数据。在一些情况下,配置数据可以包括配置存储器帧,其中配置数据被逐帧写入配置存储器。例如,每个配置存储器帧可以包括PLD200的一列的配置数据,其中每个配置存储器帧被移位到配置存储器的对应列中。PLD200的处理电路230可以包括用于在配置数据已被加载到与IO结构和逻辑结构相关联的配置存储器单元例如,被利用来实施IO结构和逻辑结构中之后唤醒例如,激活IO结构和逻辑结构的功能的唤醒电路245。在一个方面,唤醒可以是指将PLD200从配置模式在该配置模式中,配置数据被加载到PLD200转换为功能模式例如,也被称为操作模式在该功能模式中,PLD200提供IO和逻辑功能。在这点上,在完成对PLD200的唤醒之后,PLD200被配置为使用它的IO和逻辑结构来进行操作以根据用户所指定的应用提供IO和逻辑功能。可以使用相关联的逻辑、资源例如,路由资源、所存储的配置数据、和或其他相关联的组件来实现这种IO和逻辑功能。在一些情况下,IO结构的一部分可以提供静态控制,而IO结构的另一部分可以由逻辑结构驱动例如,由逻辑结构控制。在一个实施例中,处理电路230可以是配置和激活逻辑电路系统可以包括配置和激活逻辑电路系统,或者可以是配置和激活逻辑电路系统的一部分以:接收配置数据,配置PLD200的配置存储器单元,以及激活与配置存储器单元相关联的IO结构和或逻辑结构的功能。在一些情况下,这种电路系统的至少一部分在PLD200中被硬编码。例如,地址逻辑电路235、数据写入电路240和唤醒电路245可以在PLD200中被硬编码。在一个或多个实施例中,配置数据可以被加载到PLD的一部分中,并且可以执行对PLD的这些所配置部分的唤醒以促进对PLD的一些功能的快速启动。在这点上,PLD的配置部分例如,也被称为编程部分可以是指PLD的配置存储器单元的阵列的、配置数据的对应部分已被加载到其中的部分。快速启动可以允许由PLD的所配置部分提供所指定的功能,同时仍然配置PLD的其他部分例如,配置数据被加载到这些未配置部分中。在一些方面,被指定用于快速启动的功能可以包括所指定的IO功能并且在一些情况下,待由PLD提供的所指定核心逻辑功能比在PLD在唤醒PLD的任何部分之前等待整个PLD被配置的情况下更快。在一些方面,PLD的制造商可以限定被指定用于快速启动的PLD的一个或多个部分例如,物理位置。被指定用于快速启动的PLD的部分可以与PLD的配置存储器单元的阵列的子集对应。因此,可以在配置存储器单元不是子集的一部分之前向子集中的配置存储器单元被加载了配置数据以允许提早配置并且唤醒与子集相关联的功能。在一些情况下,制造商可以指示例如,在数据表上PLD的哪些部分被指定用于快速启动。用户例如,设计者可以根据来自制造商的这些指定来生成用户设计以利用快速启动能力。例如,对于给定的用户所指定的应用,用户可以识别用户认为是对时间最敏感的和或最关键的功能的IO和或逻辑功能以使得生成具有在被指定用于快速启动的PLD的部分例如,在PLD的其他部分之前配置并且激活中所提供的这种功能的布局。在实施快速启动时,PLD的部分诸如,IO结构以及在一些情况下,逻辑结构的部分可以被配置成已知状态,并且可以比在唤醒之前配置整个PLD的情况下被更快地激活。在一些情况下,一旦配置位流的一些帧被加载到PLD中并且相关联的唤醒被执行以激活相关联的功能,则被指定用于快速启动的PLD的部分可以被配置成已知状态。例如,归因于快速启动而被激活的IO结构的部分可以驱动到合适的极性并且具有期望的驱动器特性例如,IO类型、驱动强度、上拉下拉特征等,以便通过PLD实现对组件例如,风扇、LED的控制。图3A至图3C图示了根据本公开的一个实施例的具有被指定用于快速启动的IO部分205和210的PLD300在配置和唤醒的各个阶段的框图。PLD300还包括未被指定用于快速启动的IO部分215和220以及逻辑核225。在一个实施例中,除了被指定用于快速启动的IO部分205和210之外,PLD300可以与PLD200相同。在一些情况下,IO部分205和210可以被指定用于由PLD200的制造商进行的快速启动。为了利用快速启动能力,用户可以基于标准例如,时间敏感性和或功能的重要性将IO功能与IO部分205和或210相关联并且将其他IO功能例如,时间敏感性较小的和或没那么关键的与IO部分215和或220相关联。处理电路230通过向IO部分205和210的配置存储器单元提供例如,提供使用地址逻辑电路235和数据写入电路240配置数据,并且在配置了IO部分205和210之后使用唤醒电路245来激活与IO部分205和210相关联的IO结构的部分来实现快速启动。在唤醒了IO结构的该部分之后,IO结构的该部分可以提供它的相关联的IO功能。在激活了与IO部分205和210相关联的功能之后,处理电路230可以配置并且激活PLD200的其他部分215、220和225。作为一个示例,为了配置PLD300,与IO部分205相关联的地址可以被一次一个地断言例如,从最左列开始并且配置存储器帧被加载到所断言的列中,直到配置了IO部分205的所有列。在一些情况下,列地址可以被断言成,使得连续的列从一次迭代到下一次迭代地被断言。与IO部分210相关联的地址可以一次一个地被断言,并且配置存储器帧被加载到所断言的列中,直到配置了IO部分210的所有列。在一些情况下,可以通过逐帧写入配置位流来促进与IO部分205和210的配置相关联的配置时间例如,使得更加节省时间。例如,配置位流的第一组帧例如,位流中较早的帧可以被加载到IO部分205中,而位流的最后一组帧例如,朝着位流的末端的帧可以被加载到IO部分210中。如在图中示出的,一旦配置了IO部分205和210,唤醒电路245就可以生成并且提供用于唤醒与IO部分205和210相关联的IO结构的部分的唤醒信号,使得IO结构的这些部分可以提供它们的功能。在唤醒IO结构的这些部分时,IO结构的这些部分从配置模式转换为快速启动操作模式,使得IO结构的这些部分执行IO功能例如,如由用户定义的功能。在这点上,这种IO功能可以被称为快速启动静态控制。与这种IO功能相关联的配置数据被存储在IO部分205和210的配置存储器单元中。作为一个示例,IO功能可以包括:使得由PLD300的IO结构控制的LED接通。在该示例中,通过指定用于快速启动的这种IO功能,用于通过PLD300来控制LED的IO功能可以比在配置了整个PLD300之后提供IO功能的情况下更早地定义,从而减少了在IO功能被置于已定义状态以控制LED之前LED的任何闪烁或者不良行为。为了配置PLD300的剩余部分,处理电路230可以使用地址逻辑电路235和数据写入电路240来将配置数据加载到IO部分215和220以及逻辑核225的配置存储器单元中。在一些情况下,与IO部分205和210相关联的IO功能可以处于被唤醒的过程中,同时配置数据开始被加载到PLD300的剩余部分215、220和225的剩余配置存储器中。在其他情况下,在配置数据开始被加载到PLD300的剩余配置存储器中之前完成唤醒IO功能。在一些实施例中,IO部分215和220以及逻辑核225可以以任何顺序和或使用任何定向例如,逐行、逐列、或任何其他方式来配置。作为一个示例,在配置逻辑核225时,地址逻辑电路235和数据写入电路240可以适当地被配置为断言行或列并且在逻辑核225中基于配置存储器单元的行数或列数来加载相关联的配置数据。在一些情况下,在图中,归因于共享在配置被指定用于快速启动的IO部分205和210时所利用的地址和数据移位单元例如,250、255,因此,逐列移位会更有效率例如,更快、使用更少的地址移位等。在一些情况下,IO部分215和220的配置可以被分割。例如,在图中,IO部分205的一些列与IO部分215和220的列重叠,并且同样地,IO部分210的一些列与IO部分215和220的列重叠。处理电路230可以使用地址逻辑电路235和数据写入电路240来逐列将配置数据加载到IO部分215和220中。在一个示例中,可以使用地址移位250和数据移位255,使得IO部分215和220的列被断言,并且对于所断言的列,相关联的配置数据被加载到IO部分215和220的配置存储器单元例如,而不是IO部分205和210的配置存储器单元中。在另一示例中,地址移位250和数据移位255可以被用于断言IO部分215的每一列并且将相关联的配置数据加载到IO部分215中,然后地址移位250和数据移位255可以被用于断言IO部分220的每一列并且将相关联的配置数据加载到IO部分215中。在其他情况下,地址逻辑电路235和数据写入电路240可以旋转它们的定向,使得地址逻辑电路235逐行断言IO部分215和220,并且数据写入电路240加载所断言的行的配置数据。可以利用通过配置剩余部分215、220和225的其他方式,并且可以基于标准诸如,速度考虑、复杂性例如,操作的数目等来选择配置剩余部分215、220和225的其他方式。可以使用不同定向例如,旋转的数据和地址移位和或利用所分段的数据移位来配置PLD300的不同部分。如在图3C中示出的,在配置数据被加载到PLD300的剩余部分215、220和225的配置存储器单元中之后,唤醒电路245生成并且为PLD300提供允许唤醒PLD300的IO和逻辑功能的唤醒信号。在这点上,与快速启动相关联的IO结构的该部分可以从快速启动操作模式转换为与PLD300相关联的系统操作模式。逻辑结构和IO结构的剩余部分可以从配置模式转换为PLD300的全系统操作模式。在一些情况下,与快速启动相关联的IO结构的该部分可以在快速启动相对于配置整个PLD300的时间具有不同的功能。例如,IO结构的一部分可以在快速启动操作模式下提供静态控制,然后在全系统操作模式下转换为逻辑控制的IO。在这点上,IO结构的这种部分可以基于从逻辑结构向IO结构所提供的信号来提供IO功能。虽然上面关于将配置数据加载到用于快速启动配置和激活的IO部分205和210,以及用于正常配置和激活的剩余部分215、220和225中给出了示例,但是配置数据可以以任何方式被加载到IO部分205和210中,使得配置IO部分205和210,并且随后配置数据可以以任何方式被加载到剩余部分215、220和225中,使得配置剩余部分215、220和225。例如,配置数据不需要一次一列或一行地被加载到这些部分205、210、215、220和225中。另外,虽然图3A至图3C示出了地址移位250和数据移位255,但是多个地址移位和多个数据移位可以被操作例如,串行地或并行地、同步地或独立地为配置用于快速启动的IO部分205和210和或之后的剩余部分215、220和225。图4图示了根据本公开的一个实施例的具有被指定用于快速启动的IO部分205、210、215和220的PLD400的框图。对图3A至图3C的描述一般地应用于图4,其中本文中提供了不同的示例以及其他的描述。在一个实施例中,除了被指定用于快速启动的IO部分205、210、215和220之外,PLD400通常可以与PLD200相同。为了配置PLD400以用于快速启动操作,可以利用各种地址移位和数据移位由415、420、425、430、435、440、445和450表示来配置IO部分205、210、215和220。在配置IO部分205、210、215和220时,PLD200的IO结构可以被激活以提供PLD400的IO功能,从而将PLD400的IO结构从配置模式转换为快速启动操作模式。结合激活IO功能或在激活IO功能之后,可以利用地址移位和数据移位由405和410表示来配置逻辑核225。与PLD400的逻辑结构相关联的逻辑功能可以被激活以从配置模式转换为PLD400的全系统操作模式。IO功能可以从快速启动操作模式转换为全系统操作模式。各种地址移位和数据移位可以是地址逻辑电路235和数据写入电路240,或者可以由地址逻辑电路235和数据写入电路240控制。为了清楚起见,来自地址逻辑电路235和数据写入电路240的控制信号未在图4中示出。在图4中,各种地址移位和数据移位彼此垂直。可以针对地址移位和数据移位利用定向的不同组合。作为一个示例,移位415可以是地址移位例如,列地址移位,而移位420可以是数据移位例如,一次一列地移位数据。作为另一示例,移位420可以是地址移位例如,行地址移位,而移位415可以是数据移位例如,一次一行的移位数据。在一些情况下,可以利用一个或多个地址移位器和数据移位器来配置IO部分205、210、215和220以及逻辑核225。作为一个示例,当逐列配置IO部分215和220时,可以通过单个列地址移位来实施移位435和445,并且移位440和450可以是用于加载所断言的列的配置数据的单个数据移位器。作为另一示例,当逐列配置IO部分215和220时,可以通过两个以上列地址移位器来实施移位435和445,并且移位440和450可以是用于加载两个以上被同时断言的列的配置数据的两个以上数据移位器。在该后一示例中,移位435和445可以彼此独立地操作例如,移位435和445可以是断言不同的列。可以利用除了在图4中示出的那些移位之外的更少、更多和或不同的移位。图5图示了根据本公开的一个实施例的具有被指定用于快速启动的IO部分205和210以及逻辑核部分505和510的PLD500的框图。对图3A至图3C的描述一般地应用于图5,其中在本文中提供了不同的示例以及其他描述。在一个实施例中,除了被指定用于快速启动的IO部分205和210以及逻辑核部分505和510之外,PLD500可以一般地与PLD200相同。逻辑核225可以包括逻辑核部分505、510和515。为了配置PLD500以用于快速启动,可以利用地址移位例如,520和数据移位例如,525来配置IO部分205和210以及逻辑核部分505和510。在一个示例中,地址移位可以通过断言IO部分205的最左列并且向右移动至逻辑核部分505的最右列来开始配置,并且然后开始IO部分210和逻辑核部分510的配置。在配置了部分205、210、505和510之后,PLD500的IO结构和逻辑结构的相关联的部分可以被激活以提供PLD500的相关联的IO和逻辑功能,从而将IO结构和逻辑结构的该部分从配置模式转换为快速启动操作模式。在这种情况下,IO结构的该部分可以提供静态控制和或逻辑控制的IO。结合唤醒IO和逻辑功能的该部分或在唤醒IO和逻辑功能的该部分之后,可以利用一个或多个地址移位和或数据移位来将配置数据加载到逻辑核部分515和IO部分215以及220的配置存储器单元中以配置部分215、220和515。PLD500的IO和逻辑功能可以被激活以转换为PLD500的全系统操作模式。可以利用通过配置IO部分205、210、215和220以及逻辑核部分505、510和515的其他方式例如,顺序、定向。图6图示了根据本公开的实施例的具有被指定用于快速启动的IO部分205、210、215和220以及逻辑核部分505、510、655和660的PLD600的框图。对图3A至图3C的描述一般地应用于图6,其中示例具有差异并且本文提供了其他描述。在一个实施例中,除了被指定用于快速启动的IO部分205、210、215和220以及逻辑核部分505、510、655和660之外,PLD600可以一般地与PLD200相同。为了配置PLD600以用于快速启动操作,可以利用各种地址移位和数据移位由615、620、625、630、635、640、645和650表示来配置IO部分205、210、215和220以及逻辑部分655和660。结合唤醒与部分205、210、215、220、655和660相关联的IO和逻辑功能的该部分或者在唤醒与部分205、210、215、220、655和660相关联的IO和逻辑功能的该部分之后,可以利用移位605和610来配置逻辑核部分665。然后PLD600的IO和逻辑功能可以被激活以转换为PLD600的全系统操作模式。虽然图3A至图3C以及图4至图6示出了具有被指定用于快速启动的IO部分和或逻辑部分的PLD的示例,但是在一些情况下,可以在PLD中限定不同的IO和逻辑部分。例如,IO部分205可以包括被指定用于快速启动的第一部分和未被指定用于快速启动的第二部分。如先前所指示的,可以利用更多、更少和或不同的地址移位和或数据移位来配置PLD。另外,虽然前面依据行和列其中通过连续的行列提供了被指定用于快速启动的配置存储器单元描述了IO部分和或逻辑核部分的配置存储器单元,但是在一些情况下,可以以其他方式来分布被指定用于快速启动的配置存储器单元,并且这些配置存储器单元不需要在连续的列行中。图7图示了根据本公开的一个实施例的用于激活并且提供IO功能的IO控制电路700的框图。主要参照其中IO部分205和210被指定用于快速启动的图3A至图3C的PLD300来描述图7的IO控制电路700,虽然也可以与IO和或控制功能的其他指定诸如,图4至图6中的那些一起利用IO控制电路700。为了的讨论目的,IO控制电路700与被指定用于快速启动的PLD300的IO结构的一部分相关联。IO控制电路700包括经由输出路径或输入路径被耦合至逻辑结构710的IO焊盘705。在一个方面,可以通过逻辑核225来提供逻辑结构710。在一些情况下,IO控制电路700的一部分可以被硬编码到PLD200中,诸如,IO启动控制逻辑电路715、输出驱动器740、和或输入逻辑电路750的逻辑。参照PLD300,一旦配置了IO部分205和210例如,被加载了配置数据,IO启动控制逻辑电路715就可以接收唤醒信号例如,从唤醒电路245并且响应于用于唤醒与IO部分205和210相关联的IO功能的唤醒信号而生成控制信号。控制信号可以被利用为用于控制多路复用器720和725的操作的选择器信号。在这点上,多路复用器720被耦合至以下四条输入线:三态直接数据DD线、触发器线、三态双倍数据速率DDR线、以及恒值线。多路复用器725被耦合至以下三条输入线:输出DD线、输出触发器线、以及输出DDR线。在一些情况下,多路复用器720和725的DD线和DDR线允许逻辑驱动的IO功能。在图7中,IO启动控制逻辑电路715的控制信号可以是用于选择多路复用器720的四条输入线中的一条输入线以及多路复用器725的三条输入线中的一条输入线的选择器信号。在一些方面,为了促进快速启动操作,IO启动控制逻辑电路715可以生成用于使得选择多路复用器720和725的触发器线或者多路复用器720的恒值线的控制信号。在触发器730和735中所存储的值例如,0或1被提供在触发器线上。在一些情况下,触发器730和或735可以存储配置位流的位例如,0或1值。在其他情况下,触发器730和或735可以存储被硬编码到PLD300的存储器中的位例如,0或1。在一个方面,当配置了被指定用于快速启动操作的逻辑结构的一部分例如,PLD500和600时,IO启动控制逻辑电路715可以生成用于使得选择触发器线、恒值线例如,用于多路复用器720、DDR线、或DD线诸如,基于由用于允许逻辑驱动的IO功能的逻辑结构的该部分提供的逻辑的控制信号。多路复用器720的输出例如,在触发器730中所存储的值可以使得输出驱动器740能够将值驱动到IO焊盘705上或者禁用例如,置于三态输出驱动器740。当启用输出驱动器740以用于驱动时,输出驱动器740将由多路复用器725的输出提供至输出驱动器740的值例如,存储在触发器735中的值驱动到IO焊盘705上。例如,当触发器730存储1时,可以启用输出驱动器740,并且在触发器735中所存储的值例如,0或1被提供至输出驱动器740,并且通过输出驱动器740被驱动到IO焊盘705上例如,驱动到逻辑低或者逻辑高。当触发器730存储0时,可以禁用输出驱动器740,并且由输出驱动器740从触发器735接收到的任何值没有通过输出驱动器740被驱动到IO焊盘705上。在一个方面,当禁用输出驱动器740,输出驱动器740可以被称为处于三态或者高阻抗模式。作为一个示例,IO焊盘705可以被耦合至由PLD300的IO结构控制的组件例如,风扇、LED。当值0例如,被转换为逻辑低被驱动到IO焊盘705上时,组件可以被关断例如,如果组件被接通,则组件被关断,或者如果组件已经被关断,则组件保持关断。当值1例如,被转换为逻辑高被驱动到IO焊盘705上时,组件可以被接通例如,如果组件被关断,则组件被接通,或者如果组件已经被接通,则组件保持接通。在输入侧,IO焊盘705可以从被连接至PLD300的外部组件接收信号。输入缓冲器745可以经由IO焊盘705从外部组件接收信号并且将该信号提供至输入逻辑电路750。该输入逻辑电路750可以处理所接收到的信号并且将该处理过的信号提供至逻辑结构710以执行相关联的逻辑。在一些情况下,诸如,当逻辑功能未被指定用于快速启动时,在快速启动操作期间,输入路径通常不被使用,因为由PLD300提供的逻辑功能还未被激活。在其他情况下,诸如,当逻辑功能的一部分被指定用于快速启动时,可以利用输入路径来从外部组件接收信号并且将其提供至逻辑结构710以用于处理。一旦配置了整个的PLD300,唤醒电路245就可以提供唤醒信号以将IO和逻辑结构转换为全系统操作模式。如在表1中所示的,在从快速启动操作模式转换为全系统操作模式时,IO启动控制逻辑电路715可以生成用于使得多路复用器720和或725根据用户所指定的应用从它们的相应输入线中选择一条输入线的控制信号。在这点上,IO启动控制逻辑电路715可以但不必选择触发器输入线。表1在一种情况下,使用IO焊盘705和IO逻辑控制电路700的其他组件实现的IO功能可以在快速启动操作模式与全系统操作模式之间保持不变。在这种情况下,例如,IO启动控制逻辑电路715可以生成用于使得多路复用器720和725在快速启动操作模式和全系统操作模式期间选择触发器线的控制信号。这种IO功能可以以快速启动操作模式和全系统操作模式来提供静态控制。在另一种情况下,在快速启动操作模式与全系统操作模式之间,通过使用IO焊盘705实现的IO功能可以不同。在这种情况下,IO启动控制逻辑电路715可以生成用于使得多路复用器720和或725从选择触发器线转换为其他输入线中的一条输入线诸如以下之一:DD、触发器、DDR、或恒值线的控制信号。在一个实施例中,为了促进从快速启动操作模式转换到全系统操作模式例如,无缝转换、无低频干扰转换,由多路复用器720和或725的对应输入线上的逻辑结构710提供的DD或DDR值可以被重置为与在触发器730和735中所存储的那些值相同的值。在重置之后,逻辑结构710可以根据用户所指定的应用来将值提供到DD或DDR线上,其中DD或DDR线上的这种值可以与在触发器730和735中所存储的值不同。例如,可以在已经经过在转换到全系统操作模式之后的预定例如,阈值时间量之后实现这种逻辑控制的IO以促进转换。虽然关于被指定用于快速启动的IO描述了图7,但是在一些情况下,可以与未被指定用于快速启动的IO一起利用IO控制电路700。在这种情况下,IO启动控制逻辑电路715不接收或者不响应与快速启动相关联的唤醒信号。IO启动控制逻辑电路715可以响应于在已经配置了整个PLD之后所接收到的唤醒信号而生成用于控制多路复用器720和725并且因此,控制输出侧和输入侧的控制信号。图8图示了根据本公开的一个实施例的针对PLD的示例设计过程800的流程图。应注意,可以根据需要以不同的顺序组合、省略和或执行一个或多个操作。例如,图8所的过程可以由运行LatticeDiamond软件的外部系统130执行以配置PLD。在框805中,外部系统130接收指定PLD例如,300的期望功能的设计。例如,用户可以与外部系统130交互例如,通过用户输入设备137和表示设计的硬件描述语言HDL代码以识别设计的各种特征例如,高级逻辑操作、硬件配置、和或其他特征。例如,HDL表示可以利用基于寄存器传输级RTL的设计。在用户设计中,用户可以设置属性以指定IO结构的快速启动部分、逻辑结构的部分、和或其他组件。在框810中,外部系统130将设计合成到可以被用于实施设计的一组网表组件中。例如,外部系统130可以提供通过PLD来识别各种类型的组件及它们的相关联的信号的网表。外部系统130可以执行一次或多次规则检查以确认设计描述了PLD的有效配置。例如,外部系统130可以适当地拒绝无效配置和或请求用户提供新的设计信息。在框815中,外部系统130执行映射过程,在该映射过程中,将网表组件的集合被分组例如,被打包在一起。在一些情况下,网表组件的集合可以包括与IO功能相关联的集合以及与逻辑功能相关联的集合。在框820中,外部系统130执行放置过程以将与IO功能相关联的被分组网表组件分配至驻留在PLD的特定物理位置处的特定物理组件。例如,参照图3A,放置过程可以将与快速启动IO功能相关联的被分组网表组件放置在被指定用于IO功能的快速启动的PLD300的物理位置例如,存储体中,诸如,IO部分205和210的物理位置。放置过程可以将不与快速启动IO功能相关联的被分组网表组件放置在其他物理位置中,诸如,在IO部分215和220中。在框825中,外部系统130执行放置过程以将与逻辑功能相关联的被分组网表组件分配至驻留在PLD的特定物理位置处的特定物理组件例如,被分配至特定逻辑块和或逻辑块内的特定物理组件。例如,放置过程可以将与快速启动逻辑功能如果有的话相关联的被分组网表组件放置在被指定用于逻辑功能的快速启动的PLD的物理位置例如,存储体中。虽然在图8中框820和825被设置为分开的框,但是可以分开地或一起地执行框820和825。例如,IO放置可以与逻辑放置一起发生。在另一示例中,可以在放置任何剩余的IO和或逻辑功能之前执行任何快速启动功能例如,快速启动IO和或逻辑功能的放置。在框830中,外部系统130路由被分配的物理组件之间的连接例如,使用路由资源以实现物理互连。通过执行框820、825和835,外部系统130确定了与所接收到的设计相关联的布局,该布局包括待被配置并且被激活以提供功能例如,IO和逻辑功能以及相关联的路由的PLD组件的位置。在框835中,外部系统130生成所确定的布局的配置数据例如,放置和路由设计。例如,参照图3A,配置数据可以包括用于与快速启动IO相关联的IO部分205和210的IO配置数据、用于IO部分215和220的IO配置数据、以及用于逻辑核225的逻辑配置数据。在框840中,外部系统130对配置数据启用安全性。在一个方面,外部系统130可以生成用于允许在配置数据被加载到配置存储器单元中之后对配置数据执行认证的一个或多个认证证书。在一些情况下,可以针对快速启动功能生成一个或多个认证证书,并且可以针对剩余的功能生成另一个或多个认证证书。在没有进行认证的情况下,不执行框840。在一些方面,安全性可以是基于密钥哈希消息认证码HMAC例如,通常更快、椭圆曲线数字签名算法EDCSA例如,非对称密钥、和或其他。在一些情况下,证书创建者具有私钥,而设备持有公钥。每个认证证书可以是或者可以包括基于配置位流或其部分所生成的位流摘要digest。作为一个示例,可以通过对配置位流或其部分操作安全哈希算法SHA引擎诸如,SHA-256引擎来生成位流摘要。在一种情况下,可以结合快速启动功能来生成一个或多个认证证书,并且可以结合剩余的功能来生成一个或多个认证证书。在框845中,外部系统130提供所生成的配置数据以促进PLD的配置和唤醒。在一个方面,配置数据可以作为配置位流被提供到待被写入对应的配置存储器单元例如,配置SRAM单元中的位线上。当配置PLD时,配置数据可以被存储在非易失性存储器例如,闪速存储器中,然后从非易失性存储器被加载到PLD的电压存储器中。非易失性存储器可以在PLD中和或在PLD的外部例如,外部硬盘驱动器、外部闪盘驱动器。关于图9提供了配置并且唤醒PLD的一个示例。图9图示了根据本公开的一个实施例的针对促进PLD的快速启动功能的示例过程900的流程图。为了进行说明,本文参照图3A至图3C的PLD300描述了示例过程900,但是可以与其他PLD一起利用示例过程900。应注意,可以根据需要以不同的顺序组合、省略、和或执行一个或多个操作。在框905中,处理电路230接收与PLD300相关联的配置数据。配置数据可以由外部系统130生成。在一个方面,处理电路230可以从PLD300的非易失性存储器获得配置数据例如,通过外部系统130被加载到非易失性存储器中,PLD300的非易失性存储器是在PLD300中和或在PLD300的外部。处理电路230可以接收配置数据作为位流的一部分。在一些情况下,可以在配置位流之前立即提供前导码,或者作为配置位流的初始位序列的一部分提供前导码。前导码可以是利用作为对PLD300的配置数据的开始的指示的预定位序列。当启用安全性时,可以连同配置数据一起或者作为配置数据的一部分提供认证证书。在框910中,处理电路230对与快速启动功能相关联的PLD300的配置存储器单元的子集进行编程。在断言地址并且加载与PLD300的剩余功能例如,非快速启动功能相关联的配置数据之前,处理电路230可以使地址逻辑电路235断言与快速启动功能相关联的地址以及使得数据写入电路240加载相关配置数据。例如,在图3A中,在前导码之后,配置数据可以包括IO部分205和210的配置数据帧。作为另一示例,在图5中,在前导码之后,配置数据可以包括用于IO部分205、逻辑核部分505、逻辑核部分510、以及IO部分210的配置数据帧。在一些情况下,顺序和或移位定向例如,逐行或者逐列其中配置数据帧被加载到各个部分例如,205、210中可以是基于速度考虑、复杂性例如,数据移位和或地址移位操作的数目和或其他考虑。在框915中,处理电路230基于一个或多个对应的认证证书来执行在存储器单元的子集中所存储的配置数据的认证。在一个方面,可以在框915之前例如,在将配置数据存储在存储器单元的子集中之前执行认证。例如,可以通过认证引擎运行输入位流incomingbitstream,然后将配置数据写入存储器单元的子集来执行认证。在一些情况下,可以执行回读和认证例如,重新认证,但是这种过程会增加延迟。在这点上,可以利用通过其可以确定被存储在存储器单元的子集中或者待被存储在存储器单元的子集中的配置数据是完整的任何技术来认证配置数据。在框920中,处理电路230确定认证是否成功。在未对配置数据启用安全性的情况下,不执行框915和920。如果认证不成功,则过程900继续至框950。在框950中,处理电路230中止PLD300的配置和唤醒。在一些情况下,可以向用户提供例如,显示指示以指示PLD300的配置和唤醒已被中止。如果认证成功,则过程900继续至框925。处理电路230提供用于激活快速启动功能的唤醒信号。该唤醒信号可以由处理电路230的唤醒电路245生成。当快速启动功能被激活时,PLD300可以提供快速启动IO功能,从而将PLD300的相关联的IO结构从配置模式转换为快速启动操作模式。在其他PLD诸如,图5所示PLD500中,当快速启动功能被激活时,PLD500可以提供快速启动IO和逻辑功能。在框930中,处理电路230对PLD300的剩余配置存储器单元进行编程。这些剩余配置单元是不与快速启动功能相关联的那些配置单元。如在图3A至图3C中示出的,这些剩余配置存储器单元可以是在IO部分215和220以及逻辑核225中的那些配置存储器单元。在框935中,处理电路230基于一个或多个对应的认证证书来执行对这些剩余存储器单元中所存储的配置数据的认证。在一个方面,可以在框930之前例如,在将配置数据存储在剩余存储器单元中之前执行认证。更一般地,在一些情况下,如上面参照框915所描述的认证程序还可以应用于框935。在框940中,处理电路230确定认证是否成功。在未对配置数据启用安全性的情况下,不执行框935和940。如果认证不成功,则过程900继续至框950。在框950中,处理电路230中止PLD300的配置和唤醒。如果认证成功,则处理电路230提供用于激活PLD300的功能的唤醒信号。快速启动IO功能可以从快速启动操作模式转换为全系统操作模式。逻辑功能和剩余的IO功能可以从配置模式转换为全系统操作模式。在适用的情况下,可以使用硬件、软件、或者硬件和软件的组合来实施本公开所提供的各种实施例。在不脱离本公开的精神的情况下,同样在适用的情况下,本文所阐述的各种硬件组件和或软件组件可以被组合成包括软件、硬件和或两者的复合组件。在不脱离本公开的精神的情况下,在适用的情况下,本文所阐述的各种硬件组件和或软件组件可以被分成包括软件、硬件和或两者的子组件。另外,在适用的情况下,预期软件组件可以被实施为硬件组件,反之亦然。根据本公开的软件诸如,程序代码和或数据可以被存储在一个或多个非暂时性机器可读介质上。还预期可以使用一个或多个通用或专用计算机和或计算机系统联网地和或以其他方式来实施本文中所识别的软件。在适用的情况下,本文所描述的各种步骤的顺序可以被改变、被组合成复合步骤、和或被分成子步骤,以提供本文所描述的特征。上文所描述的实施例说明但没有限制本发明。还应理解的是,根据本发明的原理,许多修改和变化是可能的。因此,本发明的范围仅由以所附权利要求书限定。

权利要求:1.一种方法,包括:接收与可编程逻辑器件PLD相关联的配置数据,其中所述PLD包括配置存储器单元的阵列,所述配置存储器单元的阵列包括与所述PLD的逻辑结构相关联的多个逻辑块存储器单元、以及与所述PLD的输入输出IO结构相关联的多个IO块存储器单元;利用所述配置数据的第一部分来对所述IO块存储器单元的子集进行编程;提供用于唤醒与所述IO结构的一部分相关联的功能的第一唤醒信号,所述IO结构的所述一部分与所述IO块存储器单元的所述子集相关联;利用所述配置数据的第二部分来对所述阵列的剩余配置存储器单元进行编程,其中所述剩余配置存储器单元包括所述逻辑块存储器单元的至少一个子集;以及提供用于唤醒与所述逻辑结构的至少一部分相关联的功能的第二唤醒信号,所述逻辑结构的所述至少一部分与所述逻辑块存储器单元的所述子集相关联。2.根据权利要求1所述的方法,还包括:响应于所述第一唤醒信号,将所述IO结构的所述一部分从配置模式转换为快速启动操作模式,以及响应于所述第二唤醒信号,将所述IO结构的所述一部分从所述快速启动操作模式转换为系统操作模式,并且将所述逻辑结构的所述一部分从所述配置模式转换为所述系统操作模式。3.根据权利要求2所述的方法,还包括:响应于所述第一唤醒信号,由所述IO结构的所述一部分提供第一功能;在转换到所述系统操作模式之后的预定的时间量内,由所述IO结构的所述一部分维持所述第一功能;以及在所述预定的时间量之后,由所述IO结构的所述一部分提供第二功能。4.根据权利要求1所述的方法,还包括:在所述对所述剩余配置存储器单元进行编程被执行的同时,操作所述IO结构的所述一部分。5.根据权利要求1所述的方法,其中所述逻辑块存储器单元的所述子集是所述逻辑块存储器单元的第一子集,其中所述逻辑结构的所述一部分是所述逻辑结构的第一部分,所述方法还包括:利用所述配置数据的第三部分来对所述逻辑块存储器单元的第二子集进行编程,其中所述提供所述第一唤醒信号包括:提供用于唤醒与所述逻辑结构的第二部分相关联的功能的所述第一唤醒信号。6.根据权利要求5所述的方法,其中与所述IO结构的所述一部分相关联的功能是基于与所述逻辑结构的所述第二部分相关联的所述功能。7.根据权利要求5所述的方法,其中:所述配置存储器单元的阵列被布置成行和列的形式,所述IO块存储器单元的所述子集包括连续列的所述IO块存储器单元的一个或多个集合,以及所述逻辑块存储器单元的所述第二子集包括连续列的所述逻辑块存储器单元的一个或多个集合,连续列的所述逻辑块存储器单元的所述一个或多个集合与连续列的所述IO块存储器单元的所述一个或多个集合相邻。8.根据权利要求1所述的方法,其中所述配置数据包括与所述IO块存储器单元的所述子集相关联的第一认证信息,所述方法还包括:基于所述第一认证信息来执行与所述配置数据的所述第一部分相关联的第一认证,其中,当所述IO块存储器单元的所述子集的所述第一认证成功时,所述提供所述第一唤醒信号、对所述剩余配置存储器单元进行编程、以及提供所述第二唤醒信号被执行。9.根据权利要求8所述的方法,其中所述执行所述第一认证在所述对所述子集进行编程之后被执行。10.根据权利要求8所述的方法,其中所述配置数据包括与所述剩余配置存储器单元相关联的第二认证信息,所述方法还包括:基于所述第二认证信息来执行与所述配置数据的所述第二部分相关联的第二认证,其中,当对所述剩余配置存储器单元的所述第二认证成功时,所述提供所述第二唤醒信号被执行。11.根据权利要求1所述的方法,其中,在所述对所述子集进行编程之后,所述IO块存储器单元的所述子集中的每一个与驱动为0、驱动为1、或处于三态相关联。12.根据权利要求1所述的方法,其中所述IO块存储器单元的子集包括所述IO块存储器单元的第一集合、以及所述IO块存储器单元的第二集合,其中所述对所述IO块存储器单元的所述子集进行编程包括:将地址移位器和数据移位器配置为逐列地编程;使用所述地址移位器和所述数据移位器来逐列地对所述IO块存储器单元的所述第一集合进行编程;将所述地址移位器和所述数据移位器转换为逐行地编程;以及在所述转换之后,使用所述地址移位器和所述数据移位器来逐行地对所述IO块存储器单元的所述第二集合进行编程。13.一种可编程逻辑器件PLD,包括:配置存储器单元的阵列,包括与所述PLD的逻辑结构相关联的多个逻辑块存储器单元、以及与所述PLD的输入输出IO结构相关联的多个IO块存储器单元;处理电路,被配置为:接收与所述PLD相关联的配置数据;利用所述配置数据的第一部分来对所述IO块存储器单元的子集进行编程;提供用于唤醒与所述IO结构的一部分相关联的功能的第一唤醒信号,所述IO结构的所述一部分与所述IO块存储器单元的所述子集相关联;利用所述配置数据的第二部分来对所述阵列中的剩余配置存储器单元进行编程,其中所述剩余配置存储器单元包括所述逻辑块存储器单元的至少一个子集;以及提供用于唤醒与所述逻辑结构的至少一部分相关联的功能的第二唤醒信号,所述逻辑结构的所述至少一部分与所述逻辑块存储器单元的所述子集相关联。14.根据权利要求13所述的PLD,其中所述阵列被布置成行和列的形式,以及其中,所述多个IO块存储器单元被定位在所述多个逻辑块存储器单元周围。15.根据权利要求13所述的PLD,其中所述逻辑块存储器单元的子集是所述逻辑块存储器单元的第一子集,其中所述逻辑结构的所述一部分是所述逻辑结构的第一部分,其中所述处理电路被进一步配置为:利用所述配置数据的第三部分来对所述逻辑块存储器单元的第二子集进行编程,其中所述处理电路被配置为提供用于唤醒与所述逻辑结构的第二部分相关联的功能的所述第一唤醒信号。16.根据权利要求13所述的PLD,其中:所述处理电路包括:地址逻辑电路,被配置为选择性地断言所述阵列的行或列;数据写入电路,被配置为将所述配置数据提供至所述阵列;以及唤醒电路,被配置为生成所述第一唤醒信号和所述第二唤醒信号;以及所述处理电路被配置为使用所述地址逻辑电路和所述配置数据写入电路来对所述阵列进行编程。17.根据权利要求13所述的PLD,其中:所述配置数据包括与所述子集相关联的认证信息,所述处理电路被进一步配置为:基于所述认证信息来执行所述子集的认证,以及所述处理电路被配置为:当所述子集的认证成功时,提供所述第一唤醒信号、对所述剩余配置存储器单元进行编程、以及提供所述第二唤醒信号。18.一种包括指令的非暂时性机器可读存储介质,所述指令在被执行时使得设备的一个或多个处理器执行以下操作,所述操作包括:接收待由可编程逻辑器件PLD执行的设计识别操作,其中所述操作中的至少一个操作与快速启动相关联;将所述设计合成到与所述快速启动相关联的第一多个PLD组件中、以及到第二多个PLD组件中;确定包括用于促进所述快速启动的所述第一多个PLD组件的位置、以及所述第二多个PLD组件的位置的布局;基于所确定的所述布局来生成配置数据;以及提供所述配置数据以配置所述PLD。19.根据权利要求18所述的非暂时性机器可读存储介质,其中所述操作还包括:生成与所述第一多个PLD组件相关联的认证信息,其中所述提供包括:提供所述配置数据和所述认证信息。20.根据权利要求18所述的非暂时性机器可读存储介质,其中与所述快速启动相关联的所述配置数据被提供,以在所述剩余配置数据被提供之前来配置PLD。21.根据权利要求18所述的非暂时性机器可读存储介质,其中所述第一多个PLD组件包括第一配置存储器单元,所述第二多个PLD组件包括第二配置存储器单元,其中所述操作还包括:使用所述配置数据的第一部分来对所述第一配置存储器单元进行编程;提供用于激活与所述第一多个PLD组件相关联的功能的第一唤醒信号;使用所述配置数据的第二部分来对所述第二配置存储器单元进行编程;以及提供用于激活与所述第二多个PLD组件相关联的功能的第二唤醒信号。22.一种系统,包括:根据权利要求18所述的非暂时性机器可读存储介质;以及所述一个或多个处理器。23.一种系统,包括:根据权利要求21所述的非暂时性机器可读存储介质;以及所述一个或多个处理器。

百度查询: 美国莱迪思半导体公司 用于可编程逻辑器件的快速启动系统和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。