CN103577626A - 带有具有用于访问寄存器的输入和输出旁通路径的逻辑区域的集成电路 - Google Patents
带有具有用于访问寄存器的输入和输出旁通路径的逻辑区域的集成电路 Download PDFInfo
- Publication number
- CN103577626A CN103577626A CN201310305805.2A CN201310305805A CN103577626A CN 103577626 A CN103577626 A CN 103577626A CN 201310305805 A CN201310305805 A CN 201310305805A CN 103577626 A CN103577626 A CN 103577626A
- Authority
- CN
- China
- Prior art keywords
- register
- signal
- interconnection
- input
- integrated circuit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及带有具有用于访问寄存器的输入和输出旁通路径的逻辑区域的集成电路。集成电路例如可编程集成电路可以包括能被配置为执行定制功能的可编程逻辑区域。互连可以用于传送遍布集成电路的信号。可编程逻辑区域可以具有用于选择和提供来自互连的输入信号给可编程逻辑区域的输入选择电路。可编程逻辑区域可以包括用于处理输入信号的查找表电路和用于存储来自查找表电路的输出信号的寄存器。可编程逻辑区域可以包括用于选择哪些输出信号提供给可编程逻辑区域的输出电路的输出选择电路。可编程逻辑区域可以包括通过绕过输入选择电路和输出选择电路来提供从互连到寄存器的直接访问的旁通路径。计算机辅助设计工具可以被用于识别设计中应当用于寄存器流水线操作的寄存器。
Description
相关申请的交叉引用
本申请要求于2012年7月20日提交的美国专利申请号13/555,014的优先权,该申请的整体内容通过引用合并于此。
技术领域
本申请涉及集成电路,例如具有互连电路的可编程集成电路。
背景技术
可编程集成电路是众所周知的。可编程集成电路可以由用户编程以实施期望的定制逻辑功能。在典型的情况中,逻辑设计人员使用计算机辅助设计(CAD)工具设计定制逻辑电路。当完成设计过程时,这些工具生成配置数据。配置数据被加载到可编程集成电路内存元件中,以将器件配置为执行定制逻辑电路的功能。特别地,配置数据配置可编程集成电路中的可编程互连、可编程传送电路和可编程逻辑电路。
可编程集成电路包括被配置为接收输入信号并执行定制功能以产生输出信号的可编程逻辑电路。每个逻辑电路的输入信号和输出信号由互连提供,所述互连能够被配置为传送遍布可编程集成电路的选定信号。
可编程集成电路通常使用在时钟频率下工作的时钟信号来进行操作。为了适应现代可编程集成电路的日益增加的性能需求,时钟频率通常被增加。可编程集成电路上的电路可以工作的最大时钟频率与共享时钟信号的任意两个寄存器之间的最大延迟(有时被称为关键路径延迟)成反比。如果最大延迟被降低,则时钟频率可以被增加,这倾向于提高系统性能。
互连延迟对寄存器之间的关键路径延迟有贡献。与给定互连相关联的信号延迟与互连的长度成正比。为了降低第一寄存器与第二寄存器之间的最大延迟,电路设计人员通常通过插入在第一寄存器与第二寄存器之间的可编程逻辑电路的附加寄存器传送信号(例如,减小从任意给定寄存器的输出到随后寄存器的输入的信号经过的互连的长度)。通过附加寄存器传送信号以减小关键路径长度的技术有时可以被称为流水线技术(pipelining)或寄存器流水线技术。用于流水线技术的寄存器有时被称为流水线寄存器。
利用用于流水线技术的常规可编程逻辑电路的寄存器引入了额外延迟,其降低了由流水线技术提供的性能益处。例如,传统可编程逻辑电路具有输入多路复用器和查找表电路,通过这些电路传送信号以使其到达可编程逻辑电路进行处理。输入多路复用器被耦合到许多互连(例如,数十或上百个或更多的互连)。在这种情况下,输入多路复用器选择来自单个互连的信号以通过查找表电路传送到寄存器将是非常耗时的。信号还占据可编程逻辑电路的输入端,这降低了能够用于执行定制用户功能的可编程逻辑电路的可用输入端的数量。
发明内容
集成电路例如可编程集成电路可以包括逻辑区域(例如可编程逻辑区域)。可编程集成电路可以包括用于传送遍布集成电路的信号的全局互连。每个逻辑区域可以包括耦合到一组相应互连的输入选择电路。输入选择电路可以被配置为提供从该组互连到相应逻辑区域的输入的选定信号。逻辑区域可以被配置为执行定制功能以根据选定信号生成输出信号。例如,逻辑区域可以包括接收选定信号并被配置为生成输出信号的查找表电路。
逻辑区域可以包括一个或更多个寄存器。寄存器可以用于存储信息,例如由逻辑区域的查找表电路生成的输出信号。逻辑区域可以包括接收由寄存器存储的每个输出信号的输出选择电路。输出选择电路可以被配置为选择来自寄存器的输出信号并提供选定的输出信号给输出电路。输出电路可以用于驱动互连(例如全局互连)。例如,输出电路可以包括耦合到每个互连的多路复用器和驱动器。
逻辑区域可以包括用于直接访问寄存器的旁通路径(例如,绕过输入选择电路、输出选择电路和查找表电路)。旁通路径可以包括具有用于绕过输入选择电路的输入旁通电路的输入旁通路径。旁通路径可以包括使寄存器输出直接耦合到输出电路的输出旁通路径(例如,绕过输出选择电路)。举例来说,直接耦合到相应的驱动器和互连的输出电路的每个多路复用器可以具有接收来自寄存器输出端的信号、来自输出选择电路的信号和来自附加互连的信号的输入端。在这种情况下,来自寄存器输出端的信号可以被直接提供给输出电路的多路复用器并被驱动到相应的互连作为互连信号。
计算设备可以用于配置可编程集成电路的寄存器以进行寄存器流水线操作。计算设备有时可以被称为逻辑设计系统。计算设备可以包括计算机辅助设计工具,其可以用于基于设计的功能描述(例如,由用户提供的定制功能信息)产生配置数据。计算机辅助设计工具可以用于根据设计的功能描述综合网表(netlist)(例如,共同用于执行期望功能的电路和该电路之间的逻辑连接的列表)。
计算机辅助设计工具可以随后分析所综合的网表,以识别网表中意欲作为流水线寄存器的寄存器(例如与流水线技术相关联的寄存器)。例如,逻辑上串联耦合在所综合的网表中的寄存器可以被识别。另举一例,在所综合的网表中接收相同时钟信号的寄存器可以被识别。再举一例,由用户提供的定制功能信息也可以被分析以确定寄存器是否已经被识别(例如,由用户例如通过使用综合属性或注记来标记)为与寄存器流水线技术相关联。
如果需要,则计算机辅助设计工具可以被用于识别在所综合网表中未能满足时序约束的在信号源(例如源电路)与信号目的地(例如目的电路)之间的路径。例如,计算机辅助设计工具可以把信号源和信号目的地分配给逻辑区域。在这种情况下,计算机辅助设计工具可以估计对应于逻辑区域之间的距离的传送延迟。响应于确定传送延迟超过与时序约束相关联的阈值,计算机辅助设计工具可以修改信号源与信号目的地之间的路径以使其包括流水线寄存器。
根据附图和以下优选实施例的详细说明将更容易理解本发明的额外特征、性质和各种优势。
附图说明
图1A是根据本发明的实施例具有可编程逻辑的可编程集成电路的示意图。
图1B是根据本发明的实施例具有配置为驱动互连的输入-输出电路的可编程逻辑区域的示意图。
图2是根据本发明的实施例在水平方向和垂直方向形成在可编程集成电路上的具有不同长度的互连的示意图。
图3是根据本发明的实施例具有输入和输出选择电路与选择旁通路径的可编程逻辑的示意图。
图4是根据本发明的实施例具有输入选择旁通路径和输出选择旁通路径的可编程逻辑的示意图。
图5是根据本发明的实施例具有寄存器和用于寄存器子集的输入与输出选择旁通路径的可编程逻辑的示意图。
图6是根据本发明的实施例的描述性系统环境的示意图,其中可以利用逻辑设计系统配置可编程集成电路。
图7是根据本发明的实施例生成用于在可编程逻辑器件中实施定制电路设计的配置数据的逻辑设计系统的示意图。
图8是根据本发明的实施例可以用于逻辑设计系统的描述性计算机辅助设计(CAD)工具的示意图。
图9是根据本发明的实施例设计定制逻辑电路并产生定制逻辑电路的配置数据的描述性步骤的流程图。
具体实施方式
本发明涉及可编程集成电路。可编程集成电路可以包括可编程逻辑、可编程互连和可编程传送电路。
图1A示出描述性可编程集成电路器件的示意图。如图1A所示,器件10可以具有用于驱动信号离开器件10和用于通过输入-输出引脚14从其他器件接收信号的输入-输出(I/O)电路12。互连资源16诸如全局和局部垂直和水平导线和总线可以用于在器件10上传送信号。互连资源16包括固定互连(导线)和可编程互连(即各个固定互连之间的可编程连接)。互连资源16有时在本文中可以被称为互连(例如,由固定互连和可编程互连的组合形成的互连)。
互连16可以用于互连可编程逻辑的区域如可编程逻辑区域18。可编程逻辑区域18有时可以被称为逻辑阵列块或可编程电路区域。如果需要,可编程逻辑区域18可以含有更小逻辑区域的群组。有时可以被称为逻辑元件或适应性逻辑模块的这些更小逻辑区域可以利用局部互连资源互连在一起。
可编程逻辑区域18可以包括组合逻辑电路和时序逻辑电路。例如,可编程逻辑区域18可以包括查找表、寄存器和多路复用器。可编程逻辑区域18可以被配置为执行定制逻辑功能。
可编程逻辑区域18含有可编程元件20。可编程元件20可以基于任意合适的可编程技术,例如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程元件等。举例来说,可编程元件20可以由存储器单元形成。在编程期间,利用引脚14和输入/输出电路12将配置数据加载到存储器单元中。存储器单元通常是随机存取存储器(RAM)单元。因为RAM单元被加载了配置数据,所以RAM单元有时被称为配置RAM单元(CRAM)。
可编程元件20可以用于提供静态控制输出信号以便控制可编程逻辑18中的逻辑部件的状态。由元件20产生的输出信号通常被施加到金属氧化物半导体(MOS)晶体管的栅极(有时被称为传输门晶体管)。在某些情况下,可编程元件20可以用于提供可编程电路的静态数据输出信号。例如,查找表可以包括产生静态数据输出信号的可编程元件20。在该情况下,查找表可以基于提供给查找表的控制信号而在查找表输出端提供静态数据输出信号。
器件10的电路可以利用任意合适的体系结构来组织。举例来说,可编程器件10的逻辑18可以被组织成较大可编程逻辑区域的一系列行和列,其中每个含有多个较小逻辑区域。器件10的逻辑资源可以通过互连资源16例如相关联的垂直导体和水平导体互连在一起。这些导体可以包括充分横跨所有器件10的全局导线、横跨器件10的一部分的部分全局导线如半线或四分之一线、特定长度的交错线(例如足够互连若干逻辑区)、较小局部线或任意其他合适的互连资源布置。如果需要,器件10的逻辑可以布置成更多级或层,其中多个较大区域被互连在一起形成更大部分的逻辑。其他器件布置可以使用不被布置成行和成列的逻辑。
图1B是具有输入-输出电路21的可编程逻辑区域18的示意图,该输入-输出电路21可以被配置为驱动水平互连16H(例如沿着器件10的水平轴形成的互连)和垂直互连16V(例如沿着器件10的垂直轴形成的互连)。可编程逻辑区域18可以包括较小可编程区域34(例如,逻辑元件或适应性逻辑模块),其通过输入-输出电路21从互连16V和16H接收输入信号并对这些输入信号执行定制功能以产生输出信号。由逻辑区域34产生的输出信号可以被提供给输入-输出电路21的输出电路。输出电路可以将输出信号驱动到所选互连上。
输入-输出电路21可以包括如下电路,例如用于从互连16中选择可编程逻辑区域18的输入信号的输入选择电路和用于选择向哪个互连16提供来自可编程逻辑区域18的输出信号的输出选择电路。输入-输出电路21可以包括具有用于利用输出信号驱动互连的驱动器的输出电路。
图2示出描述性布置,其中可编程逻辑区域18通过互连例如互连22、23、24和25(例如提供横穿集成电路10的传送路径的全局互连)耦合在一起。互连22、23、24和25可以形成为图1的互连16的一部分。互连22和23可以沿着水平轴形成并因此可以被称为水平互连。互连24和25可以沿着垂直轴形成并因此可以被称为垂直互连。
如图2所示,水平互连22和23与垂直互连24和25可以形成为具有不同的长度。水平互连22和23可以具有各自长度H1和H2,而垂直互连24和25可以具有各自长度V1和V2。水平互连和垂直互连可以利用遍布器件10的传送路径(例如到其他可编程逻辑区域18)来提供可编程逻辑区域18。长度H1、H2、V1和V2可以根据可编程逻辑区域18之间的距离而改变(例如,长度H1可以对应于可编程逻辑区域18A与18B之间的距离,而长度H2可以对应于可编程逻辑区域18A与18C之间的距离)。每个可编程逻辑区域18可以被独立地配置为将输出信号驱动到互连上(例如,利用可编程逻辑区域18内的驱动器电路)。
可编程集成电路10可以包括提供时钟信号的时钟电路26。时钟信号可以被提供给可编程逻辑区域18。例如,时钟电路26可以提供时钟信号CLK给可编程逻辑区域18A、18B和18C。时钟信号CLK的频率可以控制可编程逻辑区域18A、18B和18C工作时的处理速度(例如,可编程逻辑区域中的寄存器可以在时钟信号CLK的每个时钟周期更新)。
在某些情况下,可能期望通过第三中间可编程逻辑区域将来自第一可编程逻辑区域的输出信号传送到第二可编程逻辑区域的输入端。考虑可编程逻辑区域18A产生将要传送到可编程逻辑区域18C的输出信号的情况。然而,将区域18A耦合到区域18C的互连23可能具有超过时钟信号CLK的时钟频率的最大可接受延迟的相关信号延迟(例如,输出信号从区域18A到达区域18B所需的时间可能超过时钟频率的时钟周期)。在该情况下,可能期望通过将输出信号经由中间区域18B的寄存器传送到区域18C而对来自区域18A的输出信号进行流水线操作(例如,因为区域18A与区域18B之间以及区域18B与区域18C之间的互连路径可能足够短以至于满足时序要求)。
可编程逻辑区域可以配备旁通路径以便利用可编程逻辑区域的寄存器适应寄存器流水线操作。图3是具有旁通路径38的可编程逻辑区域18A、18B和18C的示意图。旁通路径38有时可以被称为选择旁通路径,因为其可以用于绕过输入和/或输出选择电路。可编程逻辑区域18A、18B和18C均可以包括能被配置为执行定制用户功能的一个或更多个较小可编程逻辑区域34(例如可编程逻辑元件或适应性逻辑模块)。举例来说,可编程逻辑区域18A可以包括单个逻辑元件34、两个逻辑元件34、四个逻辑元件34或更多个逻辑元件34。
可编程逻辑区域18A、18B和18C均可以包括输入和输出选择电路36。输入和输出选择电路36可以被用于选择哪些互连被耦合到可编程逻辑区域34(例如,图2中的哪些互连16)。例如,电路36可以包括用于选择哪些互连被用于提供输入信号给可编程逻辑区域34的输入选择电路。可编程逻辑区域34可以接收输入信号并执行定制用户功能以产生输出信号。电路36可以包括用于选择哪些互连被用于将来自可编程逻辑区域34的输出信号传送到集成电路10的其他区域的输出选择电路。输入和输出选择电路36可以包括如下电路,例如能够通过相应的可编程元件(未示出)来配置的多路复用器。输入和输出选择电路36可以形成为输入-输出电路例如图1A的输入-输出电路21的一部分。
可编程逻辑区域34中的每一个可以包括能被用于存储数据的一个或更多个寄存器40。例如,寄存器40可以用于存储由可编程逻辑区域产生的输出数据。在该情况下,可以利用诸如互连42和44的互连遍及可编程集成电路10传送存储在寄存器40中的输出数据。寄存器40可以接收来自时钟电路26的时钟信号CLK。可以基于时钟信号CLK(例如在时钟信号CLK的上升沿)更新存储在寄存器40中的数值。可以产生具有与可编程逻辑区域18的期望性能水平相关联的时钟频率的时钟信号CLK。
为了满足与时钟信号CLK的时钟频率相关联的时序约束(例如通过利用区域18B的寄存器进行寄存器流水线操作),以可编程逻辑区域18C为目的地的来自可编程逻辑区域18A的寄存器40的输出信号可以通过中间可编程逻辑区域18B的寄存器40传送。例如,为了满足与时钟信号CLK的时钟频率相关联的关键路径延迟约束,可编程互连可以被配置为将信号从区域18A传送到区域18B并从区域18B传送到区域18C。
可编程逻辑区域18A的输入和输出选择电路36可以被配置为将输出信号从可编程逻辑区域18A的逻辑区域34传送到可编程逻辑区域18B。可编程逻辑区域18B的选择旁通路径38可以用于绕开区域18B的输入和输出选择电路36。旁通路径38可以用于将来自区域18A的信号直接传送到区域18B的寄存器40(例如绕过可编程逻辑区域18B的输入和输出选择电路36)。通过绕过可编程逻辑区域18B的输入和输出选择电路36,可以降低区域18A和区域18B的寄存器40之间的信号延迟。
具有选择旁通路径38A和38B的可编程逻辑区域18在图4中示出。可编程逻辑区域18可以包括输入选择电路54和输出选择电路56。可编程逻辑区域18可以包括耦合到互连16A的输入端和耦合到互连W1、W2的输出端。互连16A、W1和W2可以用作全局互连。可以使用输出电路74用可编程逻辑区域18的输出信号来驱动这些输出端。互连W1和W2可以被包括在互连16A中。例如,输出电路74可以被用于利用来自可编程逻辑区域34的输出信号驱动互连W1,同时将互连W2与可编程逻辑区域18的输出电气断开。在这种情况下,互连W2可以被用于将信号传送到可编程逻辑区域18的输入端。
输出电路74可以包括多路复用器78和驱动器52。每个多路复用器78可以具有利用由该多路复用器78选择的信号驱动互连的相应驱动器52。每个多路复用器78可以具有耦合到输出选择电路56、附加互连(例如互连16B或16C)和经由旁通路径38B耦合到寄存器62的输入端。互连16B和16C可以是全局互连,例如图2的互连22、23、24、或25(例如用于遍及器件10全局地传送信号的互连)。多路复用器78中的每一个可以从旁通路径38B上的寄存器输出信号、输出选择电路56的输出信号和附加互连上的信号中选择信号。所选信号可以经由驱动器52被驱动到相应的互连上。如果需要,驱动器52可以通过可编程元件20配置为电气断开由驱动器52耦合的某些或所有互连。
耦合到多路复用器78的附加互连16B和16C可以包括任何期望的互连。互连16B和16C可以包括某些或所有互连16A,或者可以包括附加互连(例如不同类型的附加互连或到集成电路10上的不同位置的附加互连)。例如,多路复用器78可以被配置为将来自互连16B或16C的信号传送到互连W1和/或W2。
在图4的示例中可编程逻辑区域18被耦合到互连16A、W1和W2,这仅是描述性的。如果需要,可编程逻辑区域18可以被耦合到能够用于将输入信号传送到可编程逻辑区域18并将输出信号传送离开可编程逻辑区域18的任意期望数量的互连。例如,可编程逻辑区域18可以被耦合到沿着不同轴形成的具有不同长度的互连。可编程逻辑区域可以被耦合到数十或数百个互连(举例来说)。
如果需要,输入选择电路54和输出选择电路56可以形成为图3的输入和输出选择电路36的一部分。输入选择电路54可以被耦合到互连16A。输入选择电路54可以接收来自互连16A的信号并且从所接收的信号中选择可编程逻辑区域18的输入信号。例如,输入选择电路54可以选择来自互连16A的被接收信号的子集并且提供所选择的信号子集给可编程逻辑区域34。
可编程逻辑区域34可以接收来自输入选择电路54的所选输入信号并且处理所选输入信号以执行定制用户功能。可编程逻辑区域34可以产生被提供给输出选择电路56的输出信号。输出信号可以由查找表(LUT)电路64生成并且可以存储在寄存器62中。例如,查找表电路64可以包括一个或更多个查找表,其被配置为处理由输入选择电路54选择的输入信号以产生输出信号,所述输出信号可以被存储在寄存器62中或经由多路复用器68直接提供作为可编程逻辑区域34的输出。
举例来说,多路复用器68可以接收来自可编程元件20的静态控制信号。在这种情况下,合适的控制信号值可以被存储在可编程元件20中以将多路复用器68配置为将来自寄存器62的所存储输出信号或来自多路复用器66的输出信号传送到可编程逻辑区域34的输出端。在图4的示例中可编程逻辑区域34配备有多路复用器68,这仅是描述性的。如果需要,可以省略多路复用器68,并且寄存器62的输出可以被直接耦合到可编程逻辑区域34的输出端。
输出选择电路56可以在相应的输入端处接收可编程逻辑区域34的每个输出信号。输出选择电路56可以包括多路复用器、三态电路或能被配置为将来自区域34的所选输出信号传送到输出电路74的其他选择电路。例如,多路复用器可以被配置为将来自可编程逻辑区域34的输出信号传送到耦合至互连W1的多路复用器78。
可编程逻辑区域18可以包括提供对寄存器62(例如区域18内的较小可编程逻辑区域34的寄存器62)的直接访问的选择旁通路径38A和38B。选择旁通路径38A可以用作绕过输入选择电路54和查找表电路64的输入旁通路径。选择旁通路径38B可以用作绕过输出选择电路56的输出旁通路径。
输入旁通路径38A可以包括路径58、输入旁通电路72和多路复用器66。输入旁通电路72可以经由路径58耦合到一部分互连16A。例如,路径58可以将互连16A的子集耦合到电路72的输入端。耦合到输入旁通电路72的该部分互连16A可以被选择,以使得输入旁通电路72耦合到充足数量的不同类型的互连16A。
举例来说,互连16A可以包括水平互连、垂直互连和各种长度的互连(例如如图2中所示的长度H1的互连22、长度H2的互连23等)。在这种情况下,每种类型的互连之一可以经由路径58(例如长度H1的水平互连、长度V1的垂直互连、长度H2的水平互连、长度V2的垂直互连等)耦合到输入旁通电路72。该示例仅是描述性的。如果需要,互连16A的任意期望部分都可以经由路径58耦合到输入旁通电路72(例如该部分可以包括两个、四个、六个或更多个互连16A)。
输入旁通路径38A可以包括多路复用器76和66。耦合到路径58的互连上的输入信号可以被提供给多路复用器76。多路复用器76和66可以被配置为将来自互连16A的所选输入信号直接传送到寄存器62。例如,给定多路复用器76可以利用相应的可编程元件20配置为将路径58提供的输入信号的选定信号传送到相应多路复用器66的输入端。在这种情况下,相应多路复用器66可以被配置为(例如经由相关联的可编程元件20)将所选输入信号传送到相应的寄存器62(例如代替由查找表电路64产生的输出信号)。
输出电路74的多路复用器78可以形成寄存器62与互连W1、W2之间的输出旁通路径38B的一部分。多路复用器78可以具有直接耦合到寄存器62的输入端和耦合到输出选择电路56的输入端。多路复用器78可以通过相应的可编程元件20配置为将来自寄存器62和输出选择电路56的选定信号经由互连驱动器52传送到互连W1和W2。
通过为一部分互连16A提供对寄存器62的直接访问,输入旁通路径38A可以帮助降低与流水线操作信号相关联的延迟,同时维持可编程逻辑区域34的配置灵活性。例如,来自所选部分互连16A的输入信号不再需要横穿输入选择电路54以到达寄存器62。此外,输入选择电路54的输出可以用于附加的定制用户功能。考虑输入选择电路54能够将六个输入信号从互连16A传送到可编程逻辑区域34的情况。在该情况下,输入旁通电路72可以用于将第七和第八输入信号从互连16A传送到寄存器62(例如,第七和第八输入信号来自经由局部路径58耦合到输入旁通电路72的互连16的子集)。
如果需要,由输入选择电路54选择的一个或更多个输入信号可以经由可选路径82提供给输入旁通电路72的多路复用器76。当选择哪些互连16A被用于提供输入信号给输入旁通电路72时,可选路径82提供附加灵活性。例如,可以利用输入选择电路54选择未耦合到路径58的互连上的信号并将其提供给与可编程逻辑区域34的查找表64并联的输入旁通电路72。
在图4的示例中为较大区域18内的可编程逻辑区域34的寄存器62提供旁通路径,这仅是描述性的。如果需要,旁通路径可以被提供给可编程逻辑区域18中的寄存器的任意期望部分。举例来说,可以为多个可编程逻辑区域34的寄存器62提供输入和输出选择旁通路径(例如,输入旁通电路72可以提供从由互连16A提供的输入信号子集中选择的输入信号给多个可编程逻辑区域34的寄存器62)。另举一例,选择旁通路径可以仅被提供给每个可编程逻辑区域34中的某些寄存器。再举一例,选择旁通路径可以仅被提供给某些可编程逻辑区域34中的寄存器(例如,第一可编程逻辑区域34中的寄存器可以经由旁通路径直接访问,而第二可编程逻辑区域34中的寄存器只能经由输入选择电路54和输出选择电路56进行访问)。
具有在区域18中的寄存器子集的旁通路径的描述性可编程逻辑区域18在图5中示出。在图5的示例中,可编程逻辑区域18可以包括较小的可编程逻辑区域34A和34B。区域34A和34B均可以包括寄存器62和62’。互连16A可以耦合到可编程逻辑区域18。
互连16A可以包括互连W1、W2和W3。互连16A可以耦合到输入选择电路54。互连W1和W3(例如互连16A的子集)可以经由路径58耦合到输入旁通电路。选择旁通路径38A可以适应经由路径58、输入旁通电路72和多路复用器66从互连W1和W3到寄存器62’的直接访问。选择旁通路径38B可以适应经由多路复用器78和驱动器52从寄存器62’的输出端到互连W1和W2的直接访问。
考虑可编程逻辑区域34A的寄存器62’将被用于对互连W1上的信号进行寄存器流水线操作(例如以便满足与提供给寄存器例如用于存储信号的寄存器62’的时钟信号的频率相关联的关键路径延迟需求)的情况。在该情况下,互连W1上的信号可以由输入旁通电路72通过路径58接收。输入旁通电路72可以被配置为将信号传送到可编程逻辑区域34A的多路复用器66(例如经由控制多路复用器例如电路72中的多路复用器76的可编程元件20)。区域34A的多路复用器66可以被配置为将信号传送到相应的寄存器62’。可以利用信号值(例如相应的时钟信号如提供给可编程逻辑区域的寄存器的图3的信号CLK的每个时钟周期)更新寄存器62’的输出。信号可以从寄存器62’经由输出选择旁通路径38B提供给多路复用器78。多路复用器78和驱动器52可以被配置为利用该信号驱动期望的互连。
在图5的示例中互连16A包括互连W1、W2和W3,这仅是描述性的。互连16A可以包括任意期望数量的互连。例如,互连16A可以包括数十或数百互连或更多互连。互连16A可以包括不同类型的互连(例如,不同长度、传送方向等)。如果需要,可编程逻辑区域18可以包括用于每个互连16A的多路复用器78和驱动器52。作为替换,只有一部分互连16A可以耦合到多路复用器78和驱动器52的输出端。
集成电路例如可编程集成电路的说明性系统环境在图6中示出。器件10可以被安装在系统380中的电路板360上。器件10可以从编程设备或从任何其他合适的设备或器件接收配置数据。
在图6的示例中,器件10是从相关联的集成电路400接收配置数据的可编程集成电路类型。利用该类型的布置,如果需要,电路400可以与器件10被安装在相同的电路板36上。电路400可以是将配置数据从外部电可擦除可编程只读存储器(EEPROM)芯片加载到可编程逻辑器件存储器中的可编程逻辑器件配置数据加载芯片、具有嵌入式内存的可编程逻辑器件配置数据加载芯片(有时被称为配置器件)或任何其他合适的器件。当系统380启动时(或在另一个合适的时间),配置数据可以被从器件400提供给器件10,如通过路径420示意性所示。提供给器件10的配置数据可以被存储在其可编程元件20(例如配置随机存取存储器元件)中。
系统380可以包括处理电路440、存储装置460和与器件10进行通信的其他系统部件480。系统380的部件可以被定位在一个或更多个电路板如电路板360上或其他合适的安装结构或壳体上。
通信路径可以被用于将器件10互连到其他部件。例如,通信路径370可以被用于在安装于电路板360上的集成电路390与器件10之间传递数据。通信路径350和500可以被用于在器件10与部件440、460和480之间传递信号。
配置器件400可以通过路径如路径520被提供器件10的配置数据。例如,配置器件400可以从配置数据加载设备540或将配置数据存储在配置器件400中的其他合适设备接收配置数据。在安装到电路板360上之前或之后器件400可以加载数据。
重大任务可能是在可编程逻辑器件中设计和实施期望的逻辑电路。因此,逻辑设计人员一般使用基于计算机辅助设计(CAD)工具的逻辑设计系统来辅助他们设计电路。逻辑设计系统(有时被称为电路设计系统)可以帮助逻辑设计人员设计和测试系统的复杂电路。当完成设计时,逻辑设计系统可以被用于产生用于电编程合适的可编程逻辑器件的配置数据。该逻辑设计系统可以在计算设备上实施。
如图6所示,由逻辑设计系统560产生的配置数据可以通过路径如路径580提供给设备540。设备540提供配置数据给器件400,使得器件400稍后能够通过路径420提供该配置数据给器件10。系统560可以基于一个或更多个计算机和一个或更多个软件程序。一般地,软件和数据可以被存储在系统560中的任何计算机可读介质(存储装置)上并且被示意性地显示为存储装置600。
在典型的情况下,逻辑设计人员使用逻辑设计系统560创建定制电路设计。系统560产生被提供给配置器件400的相应配置数据。一旦供电,配置器件400和器件10上的数据加载电路被用于将配置数据加载到器件10的可编程存储元件20中。然后,器件10可以被用在系统380的正常操作中。
根据本发明的描述性逻辑设计系统560在图7中示出。系统560可以基于一个或更多个处理器例如个人计算机、工作站等。(多个)处理器可以利用网络(例如局域网或广域网)进行链接。这些计算机中的内存或外部存储器和存储器件如内部和/或外部硬盘可以被用于存储指令和数据。
基于软件的部件如计算机辅助设计工具620和数据库630存在于系统560上。在操作期间,可执行软件如计算机辅助设计工具620的软件可以在系统560的(多个)处理器上运行。数据库630被用于存储用于系统560的操作的数据。一般地,软件和数据可以被存储在系统560中的任意计算机可读介质(存储装置)上。此类存储装置(其示意性地显示为图6的存储装置600)可以包括计算机内存芯片、可移除和固定媒介如硬盘驱动器、闪存、光盘(CD)、DVD、其他光学媒介和软盘、磁带或任何其他合适的内存或存储器件。当安装了系统560的软件时,系统560的存储装置600具有促使系统560中的计算设备执行各种方法(处理过程)的指令和数据。当执行这些处理过程时,计算设备被配置为实现逻辑设计系统的功能。
计算机辅助设计(CAD)工具620(其中某些或全部有时统称为CAD工具)可以由单个供应商或多个供应商提供。工具620可以被提供作为一个或更多个工具套件(例如用于执行与实施可编程逻辑器件中的电路设计相关联的任务的编译器套件)和/或作为一个或更多个独立软件部件(工具)。(多个)数据库630可以包括仅由特定工具或多个工具访问的一个或更多个数据库并且可以包括一个或更多个共享数据库。共享数据库可以由多个工具访问。例如,第一工具可以将用于第二工具的数据存储在共享数据库中。第二工具可以访问共享数据库以检索由第一工具存储的数据。这允许一个工具将信息传送到另一个工具。如果需要,工具也可以在不将信息存储到共享数据库中的情况下互相之间传递信息。
可以在逻辑设计系统如图6和图7的系统560中使用的描述性计算机辅助设计工具620在图8中示出。
设计过程通常从规划逻辑电路功能规范(例如逻辑电路的功能描述)开始。逻辑设计人员可以利用设计和约束输入工具664具体指定期望电路应当如何起作用。设计和约束输入工具664可以包括诸如设计和约束输入助手666和设计编辑器668等工具。设计和约束输入助手如助手666可以被用于帮助逻辑设计人员定位来自现有逻辑设计库的期望设计并且可以提供计算机辅助协助给逻辑设计人员以便输入(具体指定)期望设计。
举例来说,设计和约束输入助手666可以被用于展示选项的屏幕给用户。用户可以单击屏幕上的选项以选择正在设计的电路是否应该具有某些特征。设计编辑器668可以被用于输入设计(例如通过输入多行硬件描述语言代码),可以用于编辑从库中获取的设计(例如利用设计和约束输入助手),或者可以帮助用户选择和编辑合适的预封装代码/设计。
设计和约束输入工具664可以被用于允许逻辑设计人员利用任何合适的格式提供期望的逻辑设计。例如,设计和约束输入工具664可以包括允许逻辑设计人员利用真值表输入逻辑设计的工具。真值表可以利用文本文件或时序图来具体指定或者可以从库中导入。真值表逻辑设计和约束输入可以被用于一部分较大电路或用于整个电路。
另举一例,设计和约束输入工具664可以包括示意性捕获工具。示意性捕获工具可以允许逻辑设计人员从组成部分如逻辑门和逻辑门群组可视地构造逻辑电路。预先存在的逻辑电路库可以被用于允许利用示意性捕获工具导入设计的期望部分。
如果需要,设计和约束输入工具664可以允许逻辑设计人员利用硬件描述语言如Verilog硬件描述语言(HDL)或超高速集成电路硬件描述语言(VHDL)提供逻辑设计给逻辑设计系统560。逻辑电路的设计人员可以通过利用编辑器668写入硬件描述语言代码来输入逻辑设计。如果需要,代码块可以从用户自持库或商用库中导入。
在已经利用设计和约束输入工具664输入设计之后,行为模拟工具672可以被用于模拟设计的功能性能。如果设计的功能性能是未完成或不正确的,则逻辑设计人员可以利用设计和约束输入工具664对设计做出改变。在已经利用工具674执行综合操作之前,可以利用行为模拟工具672核实新设计的功能操作。如果需要,模拟工具如工具672还可以被用在设计流程的其他阶段中(例如,在逻辑综合之后)。行为模拟工具672的输出可以被以任意合适格式(例如真值表、时序图等)提供给逻辑设计人员。
一旦已经确定逻辑设计的功能操作符合要求,则逻辑综合和优化工具674可以被用于在特定的可编程逻辑器件中(即在特定的可编程逻辑器件产品或产品族的逻辑和互连资源中)实施逻辑设计。
工具674尝试通过基于由逻辑设计人员利用工具664输入的逻辑设计数据和约束数据适当选择硬件来实施逻辑设计中的不同逻辑功能以优化设计。
在利用工具674进行逻辑综合和优化之后,逻辑设计系统可以利用工具如布置和布线工具676来执行物理设计步骤(布局综合操作)。布置和布线工具676被用于确定如何将每个逻辑功能的电路布置在可编程逻辑器件内。例如,如果两个计数器彼此交互,则布置和布线工具676可以将这些计数器定位在可编程逻辑器件上的相邻逻辑区域中,从而降低互连延迟或满足指定最大允许的互连延迟的时序要求。布置和布线工具676创建给定可编程逻辑器件的逻辑设计的有序且有效的实现方式。
工具如工具674和676可以是编译器套件的一部分(例如由可编程逻辑器件供应商提供的编译器工具套件的一部分)。根据本发明,工具如工具674、676和678自动地考虑互连之间的串扰影响且同时实施期望的电路设计。工具674、676和678也可以包括时序分析工具如时序估计器。这允许工具674和676满足在产生用于对集成电路如可编程集成电路10的配置数据进行编程时的性能需求(例如时序需求)。
在已经利用布置和布线工具676生成可编程逻辑器件中的期望逻辑设计的实现方式之后,可以利用分析工具678分析和测试该设计的实现方式。在已经利用工具620完成符合要求的优化操作之后,工具620可以产生可编程逻辑器件的配置数据。
在利用图8的工具620生成配置数据文件的过程中包括的例证性操作在图9中示出。如图9中所示,可以提供初始设计702(例如,由用户)以供在步骤704期间进行综合。初始设计可以包括硬件的描述(例如,利用硬件描述语言或描述电路功能的其他形式)。在步骤704期间,通过将硬件描述映射到硬件资源中,初始设计的硬件描述可以综合到网表中。例如,在初始设计中描述的定制功能可以映射到综合网表中的查找表电路和寄存器。
在综合网表中描述的定制功能可以包括用于寄存器流水线技术的寄存器(例如,提供关键路径延迟需求)。在步骤706的操作中,逻辑设计系统560可以分析综合网表和/或初步硬件描述,从而确定用于寄存器流水线技术的寄存器。例如,综合网表可以包括由确定哪个寄存器用于寄存器流水线技术的用户提供的描述。描述可以包括确定用于寄存器流水线技术的寄存器(例如,与流水线技术相关联的寄存器)的宏命令或其他关键字。举例来说,寄存器可以由用户利用合适的关键字标记,例如“流水线寄存器”或“pipeline_reg”。寄存器可以通过使用综合属性或注记标记(例如,与综合网表相关联的标记)。
如果需要,可以利用匹配综合网表中的寄存器的一个或多个规则分析综合网表和初步硬件描述。举例来说,可以定义匹配由互连串联耦合在一起的寄存器的规则(例如,规则可以确定一系列互连寄存器)。如果需要,规则可以排除已知是移位寄存器或不用于寄存器流水线技术的其他类型的寄存器的寄存器。举另一个实例来说,可以定义匹配接收相同时钟信号的寄存器的规则。逻辑设计系统560可以使用规则确定每个受时钟信号CLK控制的图3的寄存器40。
在步骤708的操作期间,逻辑设计系统560可以执行聚类,将综合网表组织成适用于利用诸如可编程逻辑区域18的可编程逻辑区域和更小可编程逻辑区域34实施的结构。例如,查找表电路和寄存器可以组合起来形成聚类,以便于更有效地映射到可编程逻辑区域18(例如,分组可以基于每个可编程逻辑区域的可用资源确定)。
综合网表中已经确定用于寄存器流水线技术的寄存器(例如,在步骤706期间)可以从步骤708的聚类过程中排除。换句话说,排除的寄存器可以不包括在步骤708期间形成的任何分组中。通过将寄存器从综合网表中移除和标记综合网表中的每个移除寄存器的位置可以排除寄存器。
在步骤710的操作期间,逻辑设计系统560可以执行其中确定电路的分组(聚类)的位置的放置过程(例如,哪个可编程逻辑区域构造为电路分组)。例如,每个电路分组可以指派给在集成电路10上的相对应的可编程逻辑区域18。可以执行步骤710的放置过程将来自综合网表的定制用户功能映射到在可编程逻辑电路上的逻辑区域,同时排除与流水线技术相关联的寄存器(例如,已经确定为进行流水线操作的寄存器)。
逻辑设计系统560可以包括时序估计器714(例如,形成为优化工具674、工具676、或工具678的一部分),其可以用于估计在信号源和相对应的信号目的地之间的传送延迟。例如,时序估计器714可以用于估计在可编程逻辑区域34之间的传送延迟(例如,基于互连的长度、多路复用延迟等)。如果需要,传送延迟可以基于度量估计,例如松弛(如,在所需到达时间和信号的到达时间之差)、松弛比率、互连拥塞或其他时序度量。逻辑设计系统560可以使用估计的传送延迟确定电路分组的位置同时有助于确保传送延迟满足时序需求(例如,关键路径延迟需求)或其他性能约束。
时序估计器714可以构造为生成包括寄存器流水线技术的调节的估计延迟。例如,与不包括寄存器流水线技术的传送路径相比较,包括寄存器流水线技术的传送路径可以指派更低的估计延迟值。给定传送路径的估计延迟值可以基于用于在传送路径中进行寄存器流水线操作的寄存器的数量确定(例如,估计的延迟值可以通过用在无寄存器流水线操作的情况下估计的传送路径的延迟值除以用于寄存器流水线操作的寄存器的数量计算得到)。
在步骤712的操作期间,逻辑设计系统560可以确定哪个互连用于形成在信号源和信号目的地之间的传送路径和确定哪个寄存器用于进行寄存器流水线操作。逻辑设计系统560可以将确定的与寄存器流水线操作相关联的寄存器映射到可编程集成电路的逻辑区域(例如,到可以通过相对应的旁通路径访问的逻辑区域的寄存器)。逻辑设计系统560可以基于步骤710的放置结果确定哪个寄存器用于寄存器流水线操作。最终网表可以由逻辑设计系统560利用步骤710和712的结果生成。
举例来说,在步骤710期间,可编程逻辑区域18的寄存器可以用于在初始设计702中描述的定制功能和相对应的综合网表。在该情况中,逻辑设计系统560可以确定哪个寄存器仍可使用(例如,尚未被预留用于定制用户功能的寄存器)。逻辑设计系统560可以确定在信号源和需要进行寄存器流水线操作的信号目的地之间的互连路径(例如,基于在步骤706期间存储在综合网表中的信息)。用于寄存器流水线操作的寄存器可以从定位在接近确定的互连路径的可用寄存器中选择。例如,逻辑设计系统560可以通过利用输入旁通路径38A和输出旁通路径38B传送通过寄存器62’的信号构造图5的可编程逻辑区域34B的寄存器62’用于寄存器流水线操作。
在步骤716的操作期间,逻辑设计系统560可以对最终网表执行时序分析。时序分析可以用于帮助确保在构造可编程集成电路之前最终网表满足时序约束。如果需要,该过程可以通过可选路径717返回到步骤710,以利用最终网表执行优化。例如,逻辑设计系统560可以确定最终网表中未能满足时序约束的传送路径和通过经由可选路径717返回到步骤710确定放置传送路径。
在步骤718中,最终网表可以在装配过程期间进一步处理,产生配置数据文件输出(例如,.pof或.sof文件)。然后,配置数据文件输出可以被加载到可编程集成电路上。
如果需要,逻辑设计系统560可以构造为确定应当构造为包括寄存器流水线操作的传送路径(例如,在步骤706的操作期间)。例如,逻辑设计系统560可以确定信号源和相对应的信号目的地,并且估计信号穿过在信号源和信号目的地之间的互连所需的传送延迟。在该情况下,逻辑设计系统560可以确定与信号源(例如,源寄存器)和信号目的地(例如,目的地寄存器)相关联的时钟信号。确定的时钟信号和估计的传送延迟可以用于确定在每个信号源和相对应的信号目的地之间是否应当构造寄存器流水线技术。
根据实施例,提供包括具有多个输入和寄存器的逻辑区域、可操作地在所述集成电路传送信号的多个互连、可操作地提供来自多个互连的选定信号给逻辑区域的输入的输入选择电路、可操作地从所述输入选择电路接收选定信号和处理所述选定信号产生输出信号的查找表电路、以及耦合在所述多个互连和寄存器之间的旁通电路的集成电路,其中所述旁通电路绕过所述输入选择电路和所述查找表电路。
根据另一个实施例,旁通电路耦合多个互连的子集,其中所述旁通电路通过将来自所选互连子集的信号传送到寄存器可操作地绕过所述输入选择电路。
根据另一个实施例,逻辑区域进一步包括可操作地接收来自所述查找表电路的一个输出信号和来自所选互连子集的信号,并且将一个所选接收信号传送到寄存器的多路复用器。
根据另一个实施例,输入旁通电路包括耦合多个互连子集的附加多路复用器,其中附加多路复用器可操作地将来自所选互连子集的信号通过多路复用器传送到寄存器。
根据另一个实施例,逻辑区域可操作地处理由输入选择电路提供的选定信号,产生逻辑区域输出信号。
根据另一个实施例,集成电路进一步包括附加互连,和输出选择电路可操作地接收逻辑区域输出信号和提供所选的一个逻辑区域输出信号到附加互连。
根据另一个实施例,集成电路进一步包括耦合寄存器和额外互连的旁通路径,其中通过提供寄存器输出信号给附加互连,所述旁通路径可操作地绕过输出选择电路。
根据另一个实施例,集成电路进一步包括可操作地接收来自输出选择电路的寄存器输出信号和所选的逻辑区域输出信号的多路复用器,其中多路复用器进一步可操作地提供从所述寄存器输出信号选择的多路复用器输出信号和所选一个逻辑区域输出信号给附加互连。
根据另一个实施例,集成电路进一步包括可操作地接收多路复用器输出信号和利用多路复用器输出信号驱动互连的驱动电路。
根据另一个实施例,多路复用器可操作地接收来自多个互连的至少某些信号,其中多路复用器输出信号是从寄存器输出信号、所选一个逻辑区域输出信号和来自所述多个互连的至少某些信号中选择的。
根据另一个实施例,集成电路包括可编程集成电路,其中所述逻辑区域包括可编程逻辑区域。
根据实施例,集成电路包括具有可操作地生成逻辑区域输出信号的多个寄存器的逻辑区域、互连、耦合互连的输出选择电路、以及耦合所述多个寄存器的给定寄存器和互连并且绕过所述输出选择电路的旁通路径,其中所述输出选择电路可操作地接收每个逻辑区域输出信号和将所选一个逻辑区域输出信号传送到互连。
根据另一个实施例,集成电路进一步包括可操作地接收通过旁通路径来自给定寄存器的逻辑区域输出信号和来自输出选择电路的所选一个逻辑区域输出信号的输出电路,其中所述输出电路进一步可操作地利用从逻辑区域输出信号和所选一个逻辑区域输出信号选择的互连信号驱动所述互连。
根据另一个实施例,所述输出电路包括具有多个多路复用器输入的多路复用器,在所述多路复用器输入接收来自所述给定寄存器的逻辑区域输出信号和来自所述输出选择电路的所选一个逻辑区域输出信号,其中所述多路复用器提供所述互连信号,以及可操作地接收来自多路复用器的互连信号和利用该互连信号驱动互连的驱动电路。
根据另一个实施例,所述集成电路进一步包括多个附加互连、耦合所述多个额外互连的输入选择电路,其中所述输入选择电路可操作地接收来自多个额外互连的信号和为所述逻辑区域提供从接收信号选择的逻辑区域输入信号,以及可操作地接收来自多个额外互连的信号和提供从接收的信号子集选择的寄存器输入信号给所述多个寄存器的给定寄存器。
根据另一个实施例,所述输入旁通电路包括可操作地接收信号子集和提供所述寄存器输入信号给所述多个寄存器的给定寄存器的多路复用器。
根据实施例,利用计算设备构造可编程集成电路的方法,所述方法包括利于所述计算设备综合网表、利用所述计算设备确定与利用所述综合网表进行流水线操作相关联的可编程集成电路的寄存器、以及利用所述计算设备基于综合网表生成可编程集成电路的配置数据,包括构造确定的寄存器用于流水线操作的配置数据。
根据另一个实施例,基于所述综合网表生成配置数据包括生成构造在可编程集成电路上的输入和输出选择旁通路径用于访问确定的与流水线操作相关联的综合网表的寄存器的配置数据。
根据另一个实施例,确定与流水线操作相关联的综合网表的寄存器包括确定由互连串联耦合在一起的综合网表中的寄存器。
根据另一个实施例,确定与流水线操作相关联的综合网表的寄存器包括确定接收相同时钟信号的在综合网表中的寄存器。
根据另一个实施例,综合所述网表包括基于从用户接收的定制功能信息综合网表。
根据另一个实施例,确定与流水线操作相关联的综合网表的寄存器包括基于从用户接收的定制功能信息确定与流水线操作相关联的综合网络的寄存器。
根据另一个实施例,所述方法进一步包括进一步包括利用所述计算设备确定在信号源和未能满足时序约束的信号目的地之间的综合网表中的路径,其中生成可编程集成电路的配置数据包括修改在信号源和信号目的地之间的路径,使其包括流水线寄存器。
根据另一个实施例,所述方法进一步包括利用计算设备将综合网表映射到在可编程集成电路上的逻辑区域,同时排除确定的与流水线操作相关联的寄存器,以及利用计算设备将确定的寄存器利用输入和输出选择旁通路径映射到在可编程逻辑电路上的逻辑区域。
前述仅仅是例证性的本发明的原理,本领域的技术人员将理解,在不偏离本发明的保护范围和精神的情况下,可以作出不同的改进。前述的实施例可以单独地或以任意组合的形式实施。
Claims (24)
1.一种集成电路,其包括:
具有多个输入和寄存器的逻辑区域;
可操作地传送遍布所述集成电路的信号的多个互连;
可操作地提供来自所述多个互连的选定信号给所述逻辑区域的输入的输入选择电路;
可操作地接收来自所述输入选择电路的选定信号并处理所述选定信号以生成输出信号的查找表电路;和
耦合在所述多个互连与所述寄存器之间的旁通电路,其中所述旁通电路绕过所述输入选择电路和所述查找表电路。
2.根据权利要求1所述的集成电路,其中所述旁通电路耦合到所述多个互连的子集,并且其中所述旁通电路可操作以便通过将来自所述子集的选定互连的信号传送到所述寄存器来绕过所述输入选择电路。
3.根据权利要求1所述的集成电路,其中所述逻辑区域还包括:
多路复用器,其可操作地接收来自所述查找表电路的输出信号和来自所述子集的所选互连的信号二者之一并将所选的一个接收信号传送到所述寄存器。
4.根据权利要求3所述的集成电路,其中所述输入旁通电路包括:
耦合到所述多个互连的所述子集的附加多路复用器,其中所述附加多路复用器可操作地将来自所述子集的所选互连的信号通过所述多路复用器传送到所述寄存器。
5.根据权利要求1所述的集成电路,其中所述逻辑区域可操作地处理由所述输入选择电路提供的选定信号以产生逻辑区域输出信号。
6.根据权利要求5所述的集成电路,其还包括:
附加互连;以及
输出选择电路,其可操作地接收所述逻辑区域输出信号并提供所选一个逻辑区域输出信号给所述附加互连。
7.根据权利要求6所述的集成电路,其还包括:
耦合到所述寄存器和所述附加互连的旁通路径,其中所述旁通路径可操作地通过提供寄存器输出信号给所述附加互连来绕过所述输出选择电路。
8.根据权利要求7所述的集成电路,其还包括:
多路复用器,其可操作地接收所述寄存器输出信号和来自所述输出选择电路的所选一个逻辑区域输出信号,其中所述多路复用器还可操作地提供从所述寄存器输出信号和所选一个逻辑区域输出信号中选择的多路复用器输出信号给所述附加互连。
9.根据权利要求8所述的集成电路,其还包括:
驱动器电路,其可操作地接收所述多路复用器输出信号并利用所述多路复用器输出信号驱动所述附加互连。
10.根据权利要求8所述的集成电路,其中所述多路复用器可操作地接收来自所述多个互连的至少一些所述信号,以及其中所述多路复用器输出信号是从所述寄存器输出信号、所选一个逻辑区域输出信号和来自所述多个互连的至少一些所述信号中选择的。
11.根据权利要求1所述的集成电路,其中所述集成电路包括可编程集成电路,以及其中所述逻辑区域包括可编程逻辑区域。
12.一种集成电路,其包括:
逻辑区域,其包括可操作地生成逻辑区域输出信号的多个寄存器;
互连;
耦合到所述互连的输出选择电路,其中所述输出选择电路可操作地接收每个所述逻辑区域输出信号并将所选一个逻辑区域输出信号传送到所述互连;以及
旁通路径,其将所述多个寄存器中的给定寄存器耦合到所述互连并绕过所述输出选择电路。
13.根据权利要求12所述的集成电路,其还包括可操作地接收经由所述旁通路径来自所述给定寄存器的所述逻辑区域输出信号和来自所述输出选择电路的所选一个逻辑区域输出信号的输出电路,其中所述输出电路还可操作地利用从所述逻辑区域输出信号和所选一个逻辑区域输出信号中选择的互连信号驱动所述互连。
14.根据权利要求13所述的集成电路,其中所述输出电路包括:
具有多路复用器输入的多路复用器,其中在所述多路复用器输入处接收来自所述给定寄存器的逻辑区域输出信号和来自所述输出选择电路的所选一个逻辑区域输出信号,其中所述多路复用器提供所述互连信号;以及
可操作地接收来自所述多路复用器的所述互连信号并利用所述互连信号驱动所述互连的驱动器电路。
15.根据权利要求12所述的集成电路,其还包括:
多个附加互连;
耦合到所述多个附加互连的输入选择电路,其中所述输入选择电路可操作地接收来自所述多个附加互连的信号并为所述逻辑区域提供从所接收的信号中选择的逻辑区域输入信号;以及
输入旁通电路,其可操作地接收来自所述多个附加互连的信号子集并提供从所接收的信号子集中选择的寄存器输入信号给所述多个寄存器的给定寄存器。
16.根据权利要求15所述的集成电路,其中所述输入旁通电路包括:
多路复用器,其可操作地接收所述信号子集并提供所述寄存器输入信号给所述多个寄存器的所述给定寄存器。
17.一种利用计算设备配置可编程集成电路的方法,所述方法包括:
利用所述计算设备综合网表;
利用所述计算设备识别与使用所综合网表进行流水线操作相关联的所述可编程集成电路的寄存器;以及
利用所述计算设备基于所综合网表生成所述可编程集成电路的配置数据,其中所述配置数据配置所识别寄存器用于流水线操作。
18.根据权利要求17所述的方法,其中基于所综合网表生成配置数据包括:
生成配置数据,其配置在所述可编程集成电路上的输入和输出选择旁通路径以便访问与流水线操作相关联的所综合网表的所识别寄存器。
19.根据权利要求17所述的方法,其中识别与流水线操作相关联的所综合网表的寄存器包括:
识别在所综合网表中由互连串联耦合在一起的寄存器。
20.根据权利要求17所述的方法,其中识别与流水线操作相关联的所综合网表的寄存器包括:
识别在所综合网表中接收相同时钟信号的寄存器。
21.根据权利要求17所述的方法,其中综合所述网表包括基于从用户接收的定制功能信息来综合所述网表。
22.根据权利要求21所述的方法,其中识别与流水线操作相关联的所综合网表的寄存器包括基于从用户接收的定制功能信息来识别与流水线操作相关联的所综合网表的寄存器。
23.根据权利要求17所述的方法,其还包括:
利用所述计算设备识别在所综合网表中未能满足时序约束的在信号源与信号目的地之间的路径,其中生成所述可编程集成电路的所述配置数据包括修改在信号源与信号目的地之间的路径以使其包括流水线寄存器。
24.根据权利要求17所述的方法,其还包括:
利用所述计算设备将所综合网表映射到所述可编程集成电路上的逻辑区域,同时排除与流水线操作相关联的所识别寄存器;以及
利用所述计算设备,使用输入和输出选择旁通路径将所识别寄存器映射到所述可编程逻辑电路上的逻辑区域。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/555,014 US8860458B2 (en) | 2012-07-20 | 2012-07-20 | Integrated circuits with logic regions having input and output bypass paths for accessing registers |
US13/555,014 | 2012-07-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577626A true CN103577626A (zh) | 2014-02-12 |
CN103577626B CN103577626B (zh) | 2017-04-12 |
Family
ID=49946039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310305805.2A Active CN103577626B (zh) | 2012-07-20 | 2013-07-19 | 带有具有用于访问寄存器的输入和输出旁通路径的逻辑区域的集成电路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8860458B2 (zh) |
CN (1) | CN103577626B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528920A (zh) * | 2016-09-27 | 2017-03-22 | 北京深维科技有限公司 | 一种级联查找表的工艺映射方法 |
CN107544786A (zh) * | 2016-06-23 | 2018-01-05 | 阿尔特拉公司 | 指定用于可编程集成电路的处理器架构的方法 |
CN108090022A (zh) * | 2016-11-22 | 2018-05-29 | 英特尔公司 | 有用于存储配置数据的堆叠存储器管芯的可编程集成电路 |
CN108182303A (zh) * | 2017-12-13 | 2018-06-19 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
CN108446424A (zh) * | 2017-02-02 | 2018-08-24 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
CN108563871A (zh) * | 2015-05-28 | 2018-09-21 | 阿尔特拉公司 | 用于配置和重新配置部分重新配置区域的方法和装置 |
CN109119378A (zh) * | 2017-06-22 | 2019-01-01 | 意法半导体(鲁塞)公司 | 用于创建集成电路的操作的诱饵的方法和相应集成电路 |
CN110895649A (zh) * | 2018-08-23 | 2020-03-20 | 珠海零边界集成电路有限公司 | 一种集成电路后端布线管理系统、布线管理方法和芯片 |
CN113329881A (zh) * | 2019-02-06 | 2021-08-31 | 惠普发展公司,有限责任合伙企业 | 耦接到接口的多个电路 |
WO2022151785A1 (zh) * | 2021-01-12 | 2022-07-21 | 东科半导体(安徽)股份有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
WO2024060452A1 (zh) * | 2022-09-22 | 2024-03-28 | 上海概伦电子股份有限公司 | 信号路径自动提取方法、系统、设备和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8704548B1 (en) | 2012-10-19 | 2014-04-22 | Altera Corporation | Methods and apparatus for building bus interconnection networks using programmable interconnection resources |
TWI507989B (zh) * | 2013-08-08 | 2015-11-11 | Nat Univ Tsing Hua | 資源導向之嵌入式系統功率消耗分析方法 |
US10152566B1 (en) * | 2016-09-27 | 2018-12-11 | Altera Corporation | Constraint based bit-stream compression in hardware for programmable devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888376B1 (en) * | 2003-09-24 | 2005-05-03 | Altera Corporation | Multiple data rates in programmable logic device serial interface |
CN1866045A (zh) * | 2005-05-17 | 2006-11-22 | 冲电气工业株式会社 | 半导体集成电路 |
US20070055917A1 (en) * | 2005-09-07 | 2007-03-08 | Sony Corporation | Integrated device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
US6429681B1 (en) | 2000-08-23 | 2002-08-06 | Altera Corporation | Programmable logic device routing architecture to facilitate register re-timing |
US6937064B1 (en) | 2002-10-24 | 2005-08-30 | Altera Corporation | Versatile logic element and logic array block |
US7420390B1 (en) | 2006-01-09 | 2008-09-02 | Altera Corporation | Method and apparatus for implementing additional registers in field programmable gate arrays to reduce design size |
US7705628B1 (en) | 2006-03-31 | 2010-04-27 | Altera Corporation | Programmable logic device having logic elements with dedicated hardware to configure look up tables as registers |
US7583103B2 (en) | 2007-03-30 | 2009-09-01 | Altera Corporation | Configurable time borrowing flip-flops |
US7827433B1 (en) | 2007-05-16 | 2010-11-02 | Altera Corporation | Time-multiplexed routing for reducing pipelining registers |
US7394287B1 (en) | 2007-05-21 | 2008-07-01 | Altera Corporation | Programmable logic device having complex logic blocks with improved logic cell functionality |
US8542032B1 (en) * | 2012-01-06 | 2013-09-24 | Altera Corporation | Integrated circuits with interconnect selection circuitry |
US8519740B2 (en) * | 2012-01-06 | 2013-08-27 | Altera Corporation | Integrated circuits with shared interconnect buses |
US8581624B2 (en) * | 2012-03-29 | 2013-11-12 | Altera Corporation | Integrated circuits with multi-stage logic regions |
US8704548B1 (en) * | 2012-10-19 | 2014-04-22 | Altera Corporation | Methods and apparatus for building bus interconnection networks using programmable interconnection resources |
-
2012
- 2012-07-20 US US13/555,014 patent/US8860458B2/en active Active
-
2013
- 2013-07-19 CN CN201310305805.2A patent/CN103577626B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6888376B1 (en) * | 2003-09-24 | 2005-05-03 | Altera Corporation | Multiple data rates in programmable logic device serial interface |
CN1866045A (zh) * | 2005-05-17 | 2006-11-22 | 冲电气工业株式会社 | 半导体集成电路 |
US20070055917A1 (en) * | 2005-09-07 | 2007-03-08 | Sony Corporation | Integrated device |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563871B (zh) * | 2015-05-28 | 2022-05-27 | 阿尔特拉公司 | 用于配置和重新配置部分重新配置区域的方法和装置 |
CN108563871A (zh) * | 2015-05-28 | 2018-09-21 | 阿尔特拉公司 | 用于配置和重新配置部分重新配置区域的方法和装置 |
CN107544786A (zh) * | 2016-06-23 | 2018-01-05 | 阿尔特拉公司 | 指定用于可编程集成电路的处理器架构的方法 |
CN106528920B (zh) * | 2016-09-27 | 2019-07-26 | 京微齐力(北京)科技有限公司 | 一种级联查找表的工艺映射方法 |
CN106528920A (zh) * | 2016-09-27 | 2017-03-22 | 北京深维科技有限公司 | 一种级联查找表的工艺映射方法 |
CN108090022A (zh) * | 2016-11-22 | 2018-05-29 | 英特尔公司 | 有用于存储配置数据的堆叠存储器管芯的可编程集成电路 |
CN108090022B (zh) * | 2016-11-22 | 2024-02-02 | 英特尔公司 | 有用于存储配置数据的堆叠存储器管芯的可编程集成电路 |
CN108446424B (zh) * | 2017-02-02 | 2024-04-30 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
CN108446424A (zh) * | 2017-02-02 | 2018-08-24 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
CN109119378B (zh) * | 2017-06-22 | 2023-06-16 | 意法半导体(鲁塞)公司 | 用于创建集成电路的操作的诱饵的方法和相应集成电路 |
CN109119378A (zh) * | 2017-06-22 | 2019-01-01 | 意法半导体(鲁塞)公司 | 用于创建集成电路的操作的诱饵的方法和相应集成电路 |
CN108182303B (zh) * | 2017-12-13 | 2020-08-28 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
CN108182303A (zh) * | 2017-12-13 | 2018-06-19 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
CN110895649A (zh) * | 2018-08-23 | 2020-03-20 | 珠海零边界集成电路有限公司 | 一种集成电路后端布线管理系统、布线管理方法和芯片 |
CN113329881A (zh) * | 2019-02-06 | 2021-08-31 | 惠普发展公司,有限责任合伙企业 | 耦接到接口的多个电路 |
CN113329881B (zh) * | 2019-02-06 | 2023-01-13 | 惠普发展公司,有限责任合伙企业 | 用于流体喷射设备的集成电路和流体喷射设备 |
US11628667B2 (en) | 2019-02-06 | 2023-04-18 | Hewlett-Packard Development Company, L.P. | Multiple circuits coupled to an interface |
US11969998B2 (en) | 2019-02-06 | 2024-04-30 | Hewlett-Packard Development Company, L.P. | Multiple circuits coupled to an interface |
WO2022151785A1 (zh) * | 2021-01-12 | 2022-07-21 | 东科半导体(安徽)股份有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
WO2024060452A1 (zh) * | 2022-09-22 | 2024-03-28 | 上海概伦电子股份有限公司 | 信号路径自动提取方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20140021981A1 (en) | 2014-01-23 |
US8860458B2 (en) | 2014-10-14 |
CN103577626B (zh) | 2017-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577626A (zh) | 带有具有用于访问寄存器的输入和输出旁通路径的逻辑区域的集成电路 | |
US8423946B1 (en) | Circuitry having programmable power rails, architectures, apparatuses, and systems including the same, and methods and algorithms for programming and/or configuring power rails in an integrated circuit | |
Beckhoff et al. | Go ahead: A partial reconfiguration framework | |
US6131182A (en) | Method and apparatus for synthesizing and optimizing control logic based on SRCMOS logic array macros | |
US9348960B1 (en) | Method, system, and computer program product for probing or netlisting a multi-fabric electronic design spanning across multiple design fabrics | |
US7926011B1 (en) | System and method of generating hierarchical block-level timing constraints from chip-level timing constraints | |
CN107918694B (zh) | 用于减少集成电路上的延迟的方法 | |
CN110457849B (zh) | 一种可配置的数字集成电路设计方法 | |
US6083271A (en) | Method and apparatus for specifying multiple power domains in electronic circuit designs | |
US8893070B2 (en) | Method for repeated block modification for chip routing | |
US11361133B2 (en) | Method of reporting circuit performance for high-level synthesis | |
US20090172622A1 (en) | Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow | |
US7519927B1 (en) | Wiring methods to reduce metal variation effects on launch-capture clock pairs in order to minimize cycle-time overlap violations | |
CN103812502A (zh) | 具有冗余电路的可编程集成电路 | |
US6684373B1 (en) | Optimize global net timing with repeater buffers | |
US11675948B2 (en) | Methods and apparatus for profile-guided optimization of integrated circuits | |
Ho et al. | ECO timing optimization using spare cells and technology remapping | |
US10540464B1 (en) | Critical path aware voltage drop analysis of an integrated circuit | |
US10346573B1 (en) | Method and system for performing incremental post layout simulation with layout edits | |
US8966429B2 (en) | Bit slice elements utilizing through device routing | |
CN109885850B (zh) | 一种局部寄存器的生成方法及生成系统 | |
US20070220471A1 (en) | Cell placement taking into account consumed current amount | |
US8947120B2 (en) | Latch array utilizing through device connectivity | |
Lu et al. | Combining technology mapping with post-placement resynthesis for performance optimization | |
Khan et al. | A 90-nm power optimization methodology with application to the ARM 1136JF-S microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |