CN118133746A - 用于可编程逻辑器件的可配置时钟使能和复位信号的系统和方法 - Google Patents
用于可编程逻辑器件的可配置时钟使能和复位信号的系统和方法 Download PDFInfo
- Publication number
- CN118133746A CN118133746A CN202311636925.0A CN202311636925A CN118133746A CN 118133746 A CN118133746 A CN 118133746A CN 202311636925 A CN202311636925 A CN 202311636925A CN 118133746 A CN118133746 A CN 118133746A
- Authority
- CN
- China
- Prior art keywords
- logic
- pld
- routing
- signals
- signal
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013461 design Methods 0.000 claims abstract description 80
- 230000004044 response Effects 0.000 claims abstract description 3
- 230000002194 synthesizing effect Effects 0.000 claims description 10
- 239000002131 composite material Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 33
- 230000008569 process Effects 0.000 description 26
- 238000005457 optimization Methods 0.000 description 21
- 230000015654 memory Effects 0.000 description 7
- 230000001934 delay Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008672 reprogramming Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 2
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 101100328957 Caenorhabditis elegans clk-1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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]
- G06F30/347—Physical level, e.g. placement or routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
本公开的各实施例涉及用于可编程逻辑器件的可配置时钟使能和复位信号的系统和方法。提供了用于在可编程逻辑器件(PLD)中高效地实现用户设计的各种技术。在一个示例中,一种PLD包括多个切片。每个切片包括多个查找表(LUT)以及被配置为响应于多个控制信号而操作和触发器。PLD还包括被配置为选择性地将控制信号路由到多个切片中的每个切片的路由逻辑。控制信号至少包括选择性地可配置为时钟使能信号或本地置位‑复位信号的信号。还提供了附加系统和方法。
Description
技术领域
本公开涉及可编程逻辑器件(PLD),诸如现场可编程门阵列(FPGA),并且特别地,例如,涉及用于这种器件的输入/输出(I/O)接口。
背景技术
可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)可以配置有各种用户设计以实现期望功能。通常,用户设计被合成并且被映射到特定PLD中可用的可配置资源(例如,可编程逻辑门、查找表(LUT)、嵌入式硬件或其他类型的资源)和互连。然后可以确定合成和映射的用户设计的物理放置和路由,以生成特定PLD的配置数据。
PLD的两种主要类型的可配置资源包括可编程逻辑块(PLB)和路由资源。逻辑块通常包括一定数目的逻辑单元,每个逻辑单元包含LUT和具有一些附加逻辑的寄存器。路由资源灵活地将逻辑块和/或单元彼此连接,并且可以构成PLD的面积的大于65%,可能消耗大部分可用功率,并且可能占用与特定用户设计相关联的大部分时序预算。在一些情况下,大于80%的配置位单元(例如,可编程存储器)用于路由。可以通过增加可用路由资源的量来提高PLB利用,但这种增加通常成本更高并且消耗更多的面积。
发明内容
公开了各种技术来提供可配置控制信号,该控制信号可以被选择性地实现为时钟使能或复位信号,以提供PLD设计的灵活性和效率。在一个实施例中,一种可编程逻辑器件(PLD)包括:多个切片,每个切片包括多个查找表(LUT)以及被配置为响应于多个控制信号而操作的触发器;被配置为选择性地将控制信号路由到多个切片中的每个切片的路由逻辑;并且其中控制信号至少包括选择性地可配置为时钟使能信号或本地置位-复位信号的信号。
在另一实施例中,一种方法包括:接收标识要由可编程逻辑器件(PLD)执行的运算的设计;将设计合成为多个PLD组件,其中合成包括检测设计中的逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算;使用PLD的可编程逻辑块(PLB)内的逻辑单元来实现检测到的运算,每个逻辑单元包括查找表(LUT);将逻辑单元放置在PLD中;以及将连接路由到逻辑单元以传递多个控制信号,至少包括选择性地可配置为时钟使能信号或本地置位-复位信号的信号,其中路由包括评估控制信号路由场景,包括在可编程逻辑块中实现控制信号路由逻辑以及在PLD上实现控制信号路由逻辑以输入到可编程逻辑块。
在另一实施例中,一种存储多个机器可读指令的非暂态机器可读介质,该多个机器可读指令在由计算机系统的一个或多个处理器执行时适于引起计算机系统执行计算机实现的方法,该方法包括:接收标识要由可编程逻辑器件(PLD)执行的运算的设计;将设计合成为多个PLD组件,其中合成包括检测设计中的逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算;使用PLD的可编程逻辑块(PLB)内的逻辑单元来实现检测到的运算,每个逻辑单元包括查找表(LUT);将逻辑单元放置在PLD中;以及将连接路由到逻辑单元以传递多个控制信号,至少包括选择性地可配置为时钟使能信号或本地置位-复位信号的信号,其中路由包括评估控制信号路由方案,包括在可编程逻辑块中实现控制信号路由逻辑以及在PLD上实现控制信号路由逻辑以输入到可编程逻辑块。
附图说明
图1图示了根据本公开的实现方式的可编程逻辑器件(PLD)的框图;
图2图示了根据本公开的实现方式的PLD的逻辑块的框图;
图3图示了根据本公开的实现方式的PLD的设计过程;
图4图示了根据本公开的实现方式的PLD的控制系统路由逻辑;以及
图5图示了根据本公开的实现方式的PLD的信号路由。
通过参考以下详细描述,可以更好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于标识在一个或多个附图中示出的相同元素。
具体实施方式
根据本文中提出的实现方式,提供了用于在可编程逻辑器件(PLD)中高效地实现用户设计的技术。在各种实现方式中,用户设计可以被转换为PLD中可用的一组PLD组件(例如,被配置用于逻辑、算术或其他硬件功能)及其相关联的互连和/或由其表示。例如,PLD可以包括一定数目的可编程逻辑块(PLB),每个PLB包括一定数目的逻辑单元、以及可以用于互连PLB和/或逻辑单元的可配置路由资源。在一些实现方式中,例如,每个PLB可以用2至16或2至32个逻辑单元来实现。
在各种实现方式中,PLD中的PLB利用率可以通过增加PLB、逻辑单元和/或路由资源的灵活性来提高,以在实现特定用户设计时实现路由的附加自由度。与常规PLD实现相比,这种附加自由度可以允许通过较小的路由资源选择来服务于更大数目的PLB。
通常,PLD(例如,FPGA)构造(fabric)包括一个或多个路由结构和布置在可编程功能块(例如,PFB和/或PLB)内的类似布置的逻辑单元的阵列。路由结构的一个目的是按需以这样的组合将逻辑单元/PLB的端口可编程地彼此连接,以实现预期功能。路由结构可以占用构造的大部分面积、功率和延迟。特定类型的PLD的一个共同设计目标是最大化功能,同时最小化构造的面积、功率和延迟。
一种方法是增加逻辑单元和/或PLB的功能。最近出现了从四输入查找表结构(4-LUT)到6-LUT或更多输入的查找表结构作为构造的基本功能块(例如,在逻辑单元内)的趋势。例如,6-LUT比4-LUT多了两个输入端口(这增加了路由的总体负担),但提供了更多的功能灵活性,从而允许将更多的逻辑封装到每个逻辑单元中。在典型的使用中,6-LUT的逻辑能力可以是4-LUT的1.5倍到2倍,但它通常也会消耗四倍的面积。并入有6-LUT结构或更多输入LUT结构(例如,12-LUT结构)的结构可以在速度(例如,每秒完成的运算数)方面提供一些优势,但可能在总面积和功率使用方面带来负担。
另一种方法是提供一种多模式或可转换逻辑单元,其中单个逻辑单元可以用模式逻辑来实现,该模式逻辑允许逻辑单元根据多种不同操作或输出模式进行操作。例如,这样的逻辑单元可以被配置为根据逻辑功能模式来操作,其中逻辑单元的输出可以主要取决于在逻辑单元的LUT内实现的逻辑功能。这样的逻辑单元还可以被配置为根据纹波算术模式来操作,其中逻辑单元的输出可以取决于纹波和,该纹波和是用逻辑单元的LUT和相关进位(carry)逻辑实现的,该进位逻辑被配置为接受进位输入值和提供进位输出值。这样的逻辑单元还可以被配置为作为具有独立的读取和写入端口的RAM存储器来操作。这样的逻辑单元还可以被配置为根据扩展逻辑功能模式来操作,其中逻辑单元的输出可以取决于在多个逻辑单元的多个LUT内实现的扩展逻辑功能。
在一些实现方式中,逻辑单元可以用单独的扩展逻辑或“OFX”输出端口和单独的函数和/或和或“FS”输出端口来实现。“F”可以是逻辑功能模式下4-LUT的直接输出。“S”可以是波纹算术模式下的和(SUM),该模式使用LUT(具有生成和传播寄存器和/或信号)以及在LUT下游的进位逻辑。对于每个LUT和/或逻辑单元,还可以有单独的和/或互连的寄存器输出“Q”。
多个逻辑单元(其在一些实现方式中可以是布置在PLB中的相邻逻辑单元)可以以互连组(有时称为切片)来布置。切片中的逻辑单元之间的互连可以是硬连线的,例如,可以用路由资源可编程地实现,或者可以用硬连线和可配置路由资源的组合来实现。切片可以包括例如两个、三个、四个或更多个逻辑单元,并且一个或多个切片可以完全或部分地在PLB内实现。
在各种实现方式中,包括多个模式或可转换逻辑单元的切片可以用输入和输出来实现,这些输入和输出足以允许具有组成n-LUT的两个逻辑单元一起操作以提供高阶LUT(例如,(n+1)-LUT)。在切片由用分离的OFX和FS端口实现的两个多模式逻辑单元组成的实现方式中,第一逻辑单元的OFX端口可以被称为OFX0,并且第二逻辑单元的OFX端口可以被称为OFX1,并且FS0和FS1端口与此类似。
例如,在切片中的两个多模式逻辑单元均包括4-LUT的实现方式中,OFX0输出信号对应于与2:1多路复用器(mux)组合以形成5-LUT的两个4-LUT输出信号,其中2:1mux的选择端口对应于5-LUT的第五LUT输入(例如,如本文所述,指定为M0)。在各种实现中,OFX1输出信号以类似的方式提供用于创建高阶LUT(例如,6-LUT、7-LUT和/或更高阶LUT)的部件(means)。例如,可以将两个5-LUT组合以形成6-LUT,或者将两个6-LUT组合以形成7-LUT。
例如,在这样的切片实现方式中,从每个切片到路由资源可以有六个输出(例如,如图5所示的F1、FS1、Q1、F0、FS0、Q0)。这具有提供高阶LUT的能力的优点,但包括附加端口的缺点(例如,相对于仅具有FS端口的逻辑单元),这些附加端口对路由资源来说是更大的负担。
现在参考附图,图1图示了根据本公开的实现的PLD 100的框图。PLD 100(例如,现场可编程门阵列(FPGA))、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)通常包括输入/输出(I/O)块102和逻辑块104(例如,也称为可编程逻辑块(PLB)、可编程功能单元(PFU)或可编程逻辑单元(PLC))。
I/O块102为PLD 100提供I/O功能(例如,支持一个或多个I/O和/或存储器接口标准),而可编程逻辑块104为PLD 100提供逻辑功能(例如,基于LUT的逻辑或基于逻辑门阵列的逻辑)。可以由串行器/解串器(SERDES)块150和物理编码子层(PCS)块152提供附加I/O功能。PLD 100还可以包括硬知识产权核心(IP)块160以提供附加功能(例如,在硬件中提供的基本上预定功能,其可以被配置为具有比逻辑块104少的编程)。
PLD 100还可以包括存储器块106(例如,EEPROM块、SRAM块和/或闪存块)、时钟相关电路装置108(例如,时钟源、PLL电路和/或DLL电路)、和/或各种路由资源180(例如,互连和适当的切换逻辑,以提供用于在整个PLD 100中路由信号的路径,例如用于时钟信号、数据信号等)。通常,PLD 100的各种元件可以用于执行其用于期望应用的预期功能,如本领域技术人员所理解的。
例如,某些I/O块102可以用于对存储器106进行编程或将信息(例如,各种类型的用户数据和/或控制信号)传输到PLD 100或从PLD 100传输信息。其他I/O块102包括第一编程端口(其可以表示中央处理单元(CPU)端口、外围数据端口、SPI接口和/或sysCONFIG编程端口)和/或第二编程端口,诸如联合测试动作组(JTAG)端口(例如,通过采用诸如电气和电子工程师协会(IEEE)1149.1或1532标准等标准)。在各种实现方式中,I/O块102可以被包括以接收配置数据和命令(例如,通过一个或多个连接140),以配置PLD 100以用于其预期用途,并且适当地支持与SERDES块150、PCS块152、硬IP块160和/或逻辑块104的串行或并行设备配置和信息传输。
应当理解,各种元件的数目和放置不受限制,并且可以取决于期望应用。例如,对于期望应用或设计规范(例如,对于所选择的可编程器件的类型),可能并不是需要各种元件。
此外,应当理解,为了清楚起见,元件以框形式示出,并且各种元件通常分布在整个PLD 100中,诸如在逻辑块104、硬IP块160和路由资源(例如,图2的路由资源180)中和之间以执行其常规功能(例如,存储配置PLD 100的配置数据、或在PLD 100内提供互连结构)。还应当理解,本文中公开的各种实现不限于可编程逻辑器件,诸如PLD 100,而是可以应用于各种其他类型的可编程器件,如本领域技术人员所理解的。
外部系统130可以用于创建PLD 100的期望用户配置或设计,并且生成对应配置数据以编程(例如,配置)PLD 100。例如,系统130可以向PLD 100的一个或多个I/O块102、SERDES块150和/或其他部分提供这样的配置数据。结果,PLD 100的可编程逻辑块104、各种路由资源和任何其他适当组件可以被配置为根据用户指定的应用来操作。
在所示的实现方式中,系统130被实现为计算机系统。在这点上,系统130包括例如一个或多个处理器132,处理器132可以被配置为执行指令(诸如软件指令),该指令在一个或多个存储器134中提供和/或以非暂态形式存储在一个或多个非暂态机器可读介质136(例如,其可以在系统130内部或外部)中。例如,在一些实现方式中,系统130可以运行PLD配置软件,诸如可以从莱迪斯半导体公司获取的Lattice Diamond系统规划器软件,以允许用户创建期望配置并且生成对应配置数据来对PLD 100编程。
例如,系统130还包括用于向用户显示信息的用户接口135(例如,屏幕或显示器)、以及用于接收用户命令或设计输入以准备PLD 100的期望配置的一个或多个用户输入设备137(例如,键盘、鼠标、轨迹球、触摸屏和/或其他设备)。
图2示出了根据本公开的实现的PLD 100的逻辑块104的框图。如所讨论的,PLD100包括多个逻辑块104,包括用于提供逻辑和算术功能的各种组件。
在图2所示的示例实现方式中,逻辑块104包括多个逻辑单元200,这些逻辑单元可以在逻辑块104内在内部被互连和/或使用路由资源180在外部被互连。例如,每个逻辑单元200可以包括各种组件,诸如:查找表(LUT)202、模式逻辑电路204、寄存器206(例如,触发器或锁存器)、以及用于为逻辑单元200和/或在逻辑单元200之间选择期望信号路径的各种可编程多路复用器(例如,可编程多路复用器212和214)。在该示例中,LUT 202接受四个输入220A-220D,这使其成为四输入LUT(其可以缩写为“4-LUT”或“LUT4”),其可以由PLD 100的配置数据编程以实现具有四个或更少输入的任何适当逻辑运算。模式逻辑204可以包括各种逻辑元件和/或附加输入,诸如输入220E,以支持各种模式的功能,如本文所述。在其他示例中,LUT 202可以是具有用于PLD的特定实现方式的任何其他合适数目的输入的任何其他合适的大小。在一些实现方式中,可以针对不同逻辑块104和/或不同逻辑单元200提供不同大小的LUT。
在一些实现方式中,来自LUT 202和/或模式逻辑204的输出信号222可以被传递通过寄存器206以提供逻辑单元200的输出信号233。在各种实现方式中,来自LUT 202和/或模式逻辑204的输出信号223可以被直接传递到输出223,如图所示。根据多路复用器210-214和/或模式逻辑204的配置,输出信号222可以根据控制信号230被临时存储(例如,锁存)在锁存器206中。在一些实现方式中,PLD 100的配置数据可以将逻辑单元200的输出223和/或233配置为被提供为分级或级联布置(例如,包括多个级别)的另一逻辑单元200(例如,在另一逻辑块或同一逻辑块中)的一个或多个输入,以配置不能在单个逻辑单元200中实现的逻辑运算(例如,具有太多输入而不能由单个LUT 202实现的逻辑运算)。此外,逻辑单元200可以用多个输出和/或互连来实现,以促进可选择的操作模式。
模式逻辑电路204可以用于PLD 100的一些配置,以高效地实现算术运算,诸如加法器、减法器、比较器、计数器或其他运算,高效地形成一些扩展逻辑运算(例如,处理多位数据的高阶LUT),高效地实现相对较小的RAM,和/或允许在逻辑、算术、扩展逻辑和/或其他可选操作模式之间进行选择。在这点上,跨多个逻辑单元202的模式逻辑电路204可以被链接在一起,以在相邻逻辑单元202之间传递进位输入信号205和进位输出信号207、和/或其他信号(例如,输出信号222),如本文所述。在图2的示例中,例如,进位输入信号205可以被直接传递到模式逻辑电路204,或者可以通过配置一个或多个可编程多路复用器来被传递到模式逻辑电路204,如本文所述。在一些实现方式中,模式逻辑电路204可以跨多个逻辑块104被链接。
图2所示的逻辑单元200仅是一个示例,并且根据不同实现方式的逻辑单元200可以包括PLD组件的不同组合和布置。此外,尽管图2图示了具有八个逻辑单元200的逻辑块104,但是根据其他实现方式的逻辑块102可以包括更少的逻辑单元200或更多的逻辑单元200。逻辑块104的逻辑单元200中的每个逻辑单元可以用于实现由PLD 100实现的用户设计的一部分。在这点上,PLD 100可以包括很多逻辑块104,每个逻辑块104可以包括逻辑单元200和/或用于共同实现用户设计的其他组件。
当PLD 100被配置为实现用户设计时,用户设计的部分可以被调节为占用更少的逻辑单元200、更少的逻辑块104和/或更少的路由资源180负担。根据各种实现方式的这种调节可以标识某些逻辑、算术和/或扩展逻辑运算,这些运算将在占用逻辑单元200和/或逻辑块104的多个实现的布置中实现。优化过程可以路由与算术/逻辑运算相关联的各种信号连接,使得逻辑、波纹算术或扩展逻辑运算可以被实现到一个或多个逻辑单元200和/或逻辑块104中,以与先前的算术/逻辑运算相关联。
已经观察到,并非所有信号路径(例如,控制信号230,包括时钟信号、使能信号和置位/复位信号)都在共享块级别是需要的,并且可以如本文所述被选择性地分配。选择性分配方法的各种实现方式可以用于在不会负面地影响性能目标的情况下减小PLD的大小和成本。例如,下表1示出了示例PLD设计中的各种可配置控制信号路径(例如,控制信号230的时钟、时钟使能和置位/复位信号)的利用率:
表1
CLK | CE | LSR | 评论 | 逻辑单元的百分比 |
是 | 是 | 是 | 三个都使用 | 7% |
是 | 是 | - | LSR未使用 | 46% |
是 | - | 是 | CE未使用 | 12% |
是 | - | - | CE或LSR未使用 | 35% |
在表1中列出的示例中,观察到,通常使用时钟信号CLK,但是81%的触发器没有LSR利用率(在示例设计中只有19%利用LSR),而47%的触发器没有时钟使能CE。鉴于这些和相关观察,本文中描述用于提高寄存器控制信号利用率和路由的设计效率的系统和方法。
图3图示了根据本公开的实现的PLD的设计过程300。例如,图3的过程可以由系统130执行,系统130运行Lattice Diamond软件以配置PLD 100。在一些实现方式中,图3中引用的各种文件和信息可以存储在例如存储器134、机器可读介质136等中的一个或多个数据库和/或其他数据结构中。
在操作310中,系统130接收指定PLD 100的期望功能的用户设计。例如,用户可以与系统130交互(例如,通过用户输入设备137和表示设计的硬件描述语言(HDL)代码),以标识用户设计的各种特征(例如,高级逻辑运算、硬件配置和/或其他特征)。在一些实现方式中,用户设计可以在寄存器传输级(RTL)描述(例如,门级描述)中提供。系统130可以执行一个或多个规则检查以确认用户设计描述PLD 100的有效配置。例如,系统130可以拒绝无效的配置和/或请求用户适当地提供新的设计信息。
在操作320中,系统130合成设计以创建网表(例如,合成的RTL描述),该网表将用户设计的抽象逻辑实现标识为多个逻辑组件(例如,也称为网表组件)。在一些实现方式中,网表可以以电子设计交换格式(EDIF)存储在本地通用数据库(NGD)文件中。
在一些实现方式中,在操作320中将设计合成到网表中可以涉及将用户设计中的逻辑运算、硬件配置、和/或其他特征的高级描述转换(例如,翻译)为一组PLD组件(例如,逻辑块104、逻辑单元200、和PLD 100的被配置用于实现用户设计的逻辑、算术或其他硬件功能的其他组件)及其相关互连或信号。根据实现方式,转换后的用户设计可以表示为网表。
在一些实现方式中,在操作320中将设计合成为网表还可以涉及对用户设计(例如,被转换/翻译为PLD组件集及其相关互连或信号的用户设计)执行优化过程,以减少传播延迟、PLD资源和路由资源的消耗,和/或在被配置为实现用户设计时优化PLD的性能。根据实现方式,优化过程可以对表示转换/翻译后的用户设计的网表来执行。根据实现方式,优化过程可以在网表中表示优化的用户设计(例如,产生优化的网表)。
在一些实现方式中,优化过程可以包括优化逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算的某些实例,当PLD被配置为实现用户设计时,这些实例将占用多个可配置PLD组件(例如,逻辑单元200、逻辑块104和/或路由资源180)。例如,优化过程可以包括在用户设计中检测实现逻辑功能运算、波纹算术运算、扩展逻辑功能运算和/或对应路由资源的多个模式或可配置逻辑单元,交换实现各种运算的逻辑单元的操作模式以减少用于实现操作的PLD组件和/或路由资源的数目和/或减少与操作相关联的传播延迟,和/或重新编程对应LUT和/或模式逻辑以考虑交换的操作模式。
在另一示例中,优化过程可以包括检测用户设计中的扩展逻辑功能运算和/或对应路由资源,将扩展逻辑运算实现为具有单个物理逻辑单元输出的多模式或可转换逻辑单元,将第一组逻辑单元的逻辑单元输出路由或耦合到第二组逻辑单元的输入,以减少用于实现扩展逻辑运算和/或路由资源的PLD组件的数目和/或减少与扩展逻辑运算相关联的传播延迟,和/或对对应LUT和/或模式逻辑进行编程,以利用至少第一组逻辑单元和第二组逻辑单元来实现扩展的逻辑功能运算。
在另一示例中,优化过程可以包括在用户设计中检测实现逻辑功能运算、波纹算术运算、扩展逻辑功能运算和/或对应路由资源的多个模式或可配置逻辑单元,交换实现各种运算的逻辑单元的操作模式以沿着PLD内的信号路径提供可编程寄存器以减少与信号路径相关联的传播延迟,以及对对应LUT、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程,以考虑交换的操作模式和/或对可编程寄存器进行编程以在信号路径上存储或锁存信号。
在一些实现方式中,优化过程可以包括如本文中描述的控制信号路径的优化(例如,如图4所示)。例如,控制信号230的路由可以位于如图2所示的单独的逻辑单元中(例如,参见MUX 210、MUX 212和MUX 214)。在一些设计中,控制信号路径的优化可以通过在通用控制信号布置中将路由逻辑移动到PLB上的逻辑单元之外来实现,例如,如图4中所述,以减少系统组件的数目、减小FPGA的大小、和/或提供其他优点。
在操作330中,系统130执行映射过程,该映射过程标识PLD 100的可以用于实现用户设计的组件。在这点上,系统130可以将优化的网表(例如,作为优化过程的结果而存储在操作320中)映射到由PLD 100提供的各种类型的组件(例如,逻辑块104、逻辑单元200、嵌入式硬件和/或PLD 100的其他部分)及其相关联的信号(例如,以逻辑方式,但还没有指定放置或路由)。在一些实现方式中,映射可以对一个或多个先前存储的NGD文件来执行,映射结果存储为物理设计文件(例如,也称为NCD文件)。在一些实现方式中,映射过程可以作为操作320中的合成过程的一部分来执行,以产生被映射到PLD组件的网表。
在操作340中,系统130执行放置过程,以将映射的网表组件分配给驻留在PLD 100的特定物理位置处的特定物理组件(例如,分配给PLD 100的特定逻辑单元200、逻辑块104、路由资源180和/或其他物理组件),并且从而确定PLD 100布局。在一些实现方式中,放置可以对一个或多个先前存储的NCD文件来执行,其中放置结果存储为另一物理设计文件。
在操作350中,系统130执行路由过程,以基于在操作340中确定的放置布局在PLD100的组件之间路由连接(例如,使用路由资源180),以实现放置的组件之间的物理互连。在一些实现方式中,路由可以对一个或多个先前存储的NCD文件来执行,路由结果存储为另一物理设计文件。
在各种实现方式中,在操作350中对连接的路由还可以涉及对用户设计执行优化过程,以减少传播延迟、PLD资源和/或路由资源的消耗,和/或在被配置为实现用户设计时优化PLD的性能。在一些实现方式中,优化过程可以对表示转换/翻译后的用户设计的物理设计文件来执行,并且优化过程可以在物理设计文件中表示优化的用户设计(例如,产生优化的物理设计文档)。
在一些实现方式中,优化过程可以包括优化逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算的某些实例,当PLD被配置为实现用户设计时,这些实例将占用多个可配置PLD组件(例如,逻辑单元200、逻辑块104和/或路由资源180)。例如,优化过程可以包括在用户设计中检测实现逻辑功能运算、波纹算术运算、扩展逻辑功能运算和/或对应路由资源的多个模式或可配置逻辑单元,交换实现各种运算的逻辑单元的操作模式以减少用于实现操作的PLD组件和/或路由资源的数目和/或减少与操作相关联的传播延迟,和/或重新编程对应LUT和/或模式逻辑以考虑交换的操作模式。
在另一示例中,优化过程可以包括检测用户设计中的扩展逻辑功能运算和/或对应路由资源,将扩展逻辑运算实现为具有单个物理逻辑单元输出的多模式或可转换逻辑单元,将第一组逻辑单元的逻辑单元输出路由或耦合到第二组逻辑单元的输入,以减少用于实现扩展逻辑运算和/或路由资源的PLD组件的数目和/或减少与扩展逻辑运算相关联的传播延迟,和/或对对应LUT和/或模式逻辑进行编程,以利用至少第一组逻辑单元和第二组逻辑单元来实现扩展的逻辑功能运算。
在另一示例中,优化过程可以包括在用户设计中检测实现逻辑功能运算、波纹算术运算、扩展逻辑功能运算和/或对应路由资源的多个模式或可配置逻辑单元,交换实现各种运算的逻辑单元的操作模式以沿着PLD内的信号路径提供可编程寄存器以减少与信号路径相关联的传播延迟,以及对对应LUT、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程,以考虑交换的操作模式和/或对可编程寄存器进行编程以在信号路径上存储或锁存信号。
路由中的变化可以被传播回先前操作,诸如合成、映射和/或放置,以进一步优化用户设计的各个方面。在一些实现方式中,当在操作350中路由连接时,图4的多路复用器被编程为选择性地路由控制信号,如本文所述。
在各种实现方式中,在操作350中对连接的路由还可以涉及对控制信号路由执行优化过程,以减少传播延迟、PLD资源和/或路由资源的消耗,和/或在被配置为实现用户设计时优化PLD的性能。在一些实现方式中,优化过程可以包括对跨逻辑单元的控制信号使用的分析以及对逻辑单元之外的路由逻辑的概括,如本文所述(例如,如图4所示)。
因此,在操作350之后,可以提供一个或多个物理设计文件,该物理设计文件指定在PLD 100的用户设计被合成(例如,转换和优化)、映射、放置和路由(例如,进一步优化)之后的用户设计(例如,通过组合对应先前操作的结果)。在操作360中,系统130生成用于合成、映射、放置和路由的用户设计的配置数据。在操作370中,系统130通过例如通过连接140将配置数据比特流加载到PLD 100中来利用配置数据来配置PLD 100。
图4示出了根据本公开的一个或多个实现方式的图示了用于可编程逻辑块(PLB)400或可编程功能单元(PFU)的控制信号的框图。PLB 400包括多个切片410A-F,每个切片包括两个查找表(LUT)和两个触发器(FF),总共12个LUT和12个FF。根据本公开的教导,也可以使用其他布置,该布置包括更少或更多的切片、LUT和/或FF。在所示的实现方式中,常规方法的控制信号路由(例如,如图2所示的控制信号230和MUX 210、212和214)被替换为被放置在切片410A-F外部的PLB上的路由逻辑。
如图所示,每个切片410A-F包括可配置时钟(CLK)、本地置位/复位(LSR)和时钟使能信号输入。在各种实现方式中,控制信号420可以由PLB 400接收,并且通过适当的电路装置和组件(诸如一个或多个多路复用器和/或反相器)被路由到路由逻辑430。控制信号420然后通过路由逻辑430被路由到每个切片410A-F的控制信号输入,该路由逻辑430可以包括例如多个多路复用器432A-F、434A-F和436A-F,允许到每个切片410A-F的可配置控制信号输入。
在所示的实现方式中,控制信号420包括两个时钟信号(CLK0和CLK1)、两个时钟使能信号(CE0和CE1)、一个本地置位/复位信号(LSR0)和一个可配置时钟使能/本地置位-复位信号(CE/LSR)。在操作中,LSR信号用于选择性地清除和设置切片中的触发器。时钟信号提供同步,并且时钟使能信号用于控制对切片的寄存器的写入。例如,当时钟使能信号为低时,切片的寄存器(例如,触发器)中的数据被保持。当时钟使能信号为高时,新数据被写入寄存器。
如图所示,PLB 400包括路由逻辑430,路由逻辑430多路复用控制信号420以输入到每个切片410A-F。每个切片包括(i)被配置为在第一时钟信号CLK0与第二时钟信号CLK1之间进行选择的第一多路复用器432A-F,(ii)被配置为在第一时钟使能信号CE0、第二时钟使能信号CE1和CE/LSR信号之间进行选择的第二多路复用器434A-F,以及(iii)被配置为在第一置位/复位信号LSR0和可配置信号CE/LSR之间进行选择的第三多路复用器436A-F。因此,控制信号420被输入到由多路复用器432A-F、434A-F和436A-F配置的每个切片410A-F。
每个切片410A-F具有一个或多个输出信号,分别由输出信号440A-F和/或442A-F示出。输出信号440A-F和442A-F可以表示来自两个4位二进制查找表(LUT4)中的每个4位二进制查找表的输出信号或其他输出信号(例如,模式逻辑),这取决于实现方式。根据多路复用器432A-F、434A-F和436A-F的配置,根据在每个切片410A-F的CLK、CE和LSR输入处接收的控制信号420,切片410A-F的输出信号可以被临时存储在锁存器(例如,图2的锁存器206)中。在一些实现方式中,输出信号440A-F可以被配置为分级或级联布置(例如,包括多个电平)的另一逻辑单元(例如,在另一逻辑块或同一逻辑块中)的一个或多个输入,以配置不能在单个逻辑单元中实现的逻辑运算(例如,具有太多输入而不能由2个LUT4实现的逻辑运算)。
在操作中,每个时钟信号CLK0和CLK1被路由到多路复用器432A-F,该多路复用器被配置为为每个相应切片的输入选择时钟信号CLK中的一个时钟信号。在各种实现方式中,时钟信号CLK提供切片410A-F的同步。每个时钟使能信号CE0和CE1被路由到多路复用器434A-F,该多路复用器被配置为为每个相应切片410A-F的输入选择时钟使能信号CE中的一个时钟使能信号。通常,当时钟使能信号CE为低时,触发器中的数据被锁存,而当时钟使能信号CE为高时,数据可以被写入触发器。本地置位/复位信号LSR0被路由到多路复用器436A-F,该多路复用器被配置为为每个相应切片的输入选择置位/复位信号LSR,以选择性地清除触发器。第六输入信号CE/LSR也可以被配置为提供被输入到多路复用器434A-F和436A-F的附加时钟使能信号或本地置位/复位信号,以为每个切片410A-F的时钟使能CE和本地置位复位LSR输入提供附加控制信号配置。
与常规方法相比,所示的实现方式提供了很多优点。所示的实现方式向可编程功能单元提供可配置的置位/复位和时钟使能控制信号,从而减少PLB中的组件和控制信号线。已经观察到,在各种设计中,并非所有的控制信号都需要在逻辑单元中,因此成本和尺寸节省可以通过移除不必要的路由路径和组件来实现。例如,在示例设计中观察到,81%的触发器没有LSR,并且47%的触发器没有时钟使能。此外,本公开提出将控制信号路由逻辑从切片移动到PLB,以提供简化SW路由的本地连接。
参考图2和图5,在一个实现方式中,PLB包括六个切片,即切片A-F,其中每个切片具有两个LUT4和2个触发器。该PLB使用48个输入(包括每切片8个LUT4输入220A-D)、以及12个模式输入(包括每切片2个模式输入220E)。如图2的实现方式所示,每个逻辑单元包括每切片三个控制信号(时钟信号CK、时钟使能信号CE和本地置位/复位信号LSR)。如图5所示,图4的实现方式将路由配置组件移出逻辑单元,并且可以用六个控制信号来实现。在各种实现方式中,PBL可以包括不同大小的LUT,并且可以被实现为与所示实现方式中所述的不同的其他合适数目的输入。
在适用的情况下,本公开提供的各种实现方式可以使用硬件、软件或硬件和软件的组合来实现。此外,在适用的情况下,本文中阐述的各种硬件组件和/或软件组件可以被组合成包括软件、硬件和/或这两者的复合组件,而没有偏离本公开的精神。在适用的情况下,本文中阐述的各种硬件组件和/或软件组件可以分离成包括软件、硬件或这两者的子组件,而没有偏离本公开的精神。此外,在适用的情况下,可以设想软件组件可以被实现为硬件组件,反之亦然。
在这点上,本文中描述的各种实现方式可以用各种类型的硬件和/或软件来实现,并且允许在例如性能和空间利用率方面进行显著改进。
根据本公开的软件(诸如程序代码和/或数据)可以存储在一个或多个非暂态机器可读介质上。还可以设想,本文中标识的软件可以使用一个或多个联网和/或以其他方式的通用或专用计算机和/或计算机系统来实现。在适用的情况下,本文中描述的各种步骤的顺序可以改变,组合成复合步骤,和/或分离成子步骤,以提供本文中描述的特征。
上述实施例说明但不限制本发明。还应当理解,根据本发明的原理,很多修改和变型是可能的。因此,本发明的范围仅由所附权利要求限定。
Claims (20)
1.一种可编程逻辑器件PLD,包括:
多个切片,每个切片包括多个查找表LUT以及被配置为响应于多个控制信号而操作的触发器;
路由逻辑,被配置为选择性地将所述控制信号路由到所述多个切片中的每个切片;以及
其中所述控制信号至少包括选择性地能够配置为时钟使能信号或本地置位-复位信号的信号。
2.根据权利要求1所述的PLD,其中每个LUT是四输入LUT 4-LUT。
3.根据权利要求1所述的PLD,其中所述多个控制信号包括多个时钟信号,并且其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述时钟信号路由到所述多个切片中的每个切片作为时钟输入。
4.根据权利要求1所述的PLD,其中所述多个控制信号包括多个时钟使能信号,并且其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述时钟使能信号路由到所述多个切片中的每个切片作为时钟使能输入。
5.根据权利要求4所述的PLD,其中所述多个控制信号还包括可配置用于路由作为时钟使能信号和/或本地置位-复位LSR信号的控制信号。
6.根据权利要求1所述的PLD,其中所述多个控制信号包括至少一个本地置位-复位信号,并且其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述本地置位-复位信号路由到所述多个切片中的每个切片作为本地置位-复位信号输入。
7.根据权利要求1所述的PLD,其中所述控制信号至少包括第一时钟信号、第二时钟信号、第一时钟使能信号、第二时钟使能信号、第一本地置位-复位信号和所述可配置信号。
8.根据权利要求7所述的PLD,其中所述路由逻辑选择性地将所述时钟信号中的一个时钟信号、所述时钟使能信号中的一个时钟使能信号和所述本地置位-复位信号中的一个本地置位-复位信号路由到所述切片中的每个切片。
9.根据权利要求8所述的PLD,其中所述切片被配置为:将所接收的所述控制信号中的每个控制信号路由到所述触发器中的对应控制信号路径上的一个或多个触发器,而无需进一步多路复用和/或路由逻辑。
10.根据权利要求8所述的PLD,其中多个切片由同一时钟信号时控。
11.一种用于对根据权利要求1所述的PLD进行编程的方法,包括:
根据合成设计生成用以配置所述PLD的所述路由逻辑的配置数据;以及
用所述配置数据对所述PLD进行编程。
12.一种方法,包括:
接收标识要由可编程逻辑器件PLD执行的运算的设计;
将所述设计合成为多个PLD组件,其中所述合成包括检测所述设计中的逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算;
使用所述PLD的可编程逻辑块PLB内的逻辑单元来实现所检测的所述运算,每个逻辑单元包括查找表LUT;
将逻辑单元放置在所述PLD中;以及
将连接路由到所述逻辑单元以传递多个控制信号,所述多个控制信号至少包括选择性地能够配置为时钟使能信号或本地置位-复位信号的信号,其中所述路由包括评估控制信号路由场景,包括在所述可编程逻辑块中实现控制信号路由逻辑以及在所述PLD上实现所述控制信号路由逻辑以用于到所述可编程逻辑块的输入。
13.根据权利要求12所述的方法,包括:
将所述PLD上的路由逻辑配置为接收多个控制信号并且选择性地将所述控制信号路由到所述PLB。
14.根据权利要求12所述的方法,其中路由连接还包括将多个时钟信号路由到所述路由逻辑;并且
其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述时钟信号路由到所述PLD作为时钟输入。
15.根据权利要求12所述的方法,其中路由连接还包括将多个时钟使能信号路由到所述路由逻辑;并且
其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述时钟使能信号路由到所述PLD作为时钟使能输入。
16.根据权利要求12所述的方法,其中路由连接还包括定义可配置控制信号路径;并且
其中所述路由逻辑能够配置为从所述可配置控制信号路径接收时钟使能信号和/或本地置位-复位(LSR)信号,并且选择性地将所接收的所述信号路由到所述PLB的时钟使能输入或本地置位-复位输入。
17.根据权利要求12所述的方法,其中路由连接还包括将至少一个本地置位-复位信号路由到所述路由逻辑;并且
其中所述路由逻辑包括多路复用电路装置,所述多路复用电路装置被配置为选择性地将所述至少一个本地置位-复位信号路由到所述PLD作为LSR输入。
18.根据权利要求12所述的方法,其中路由连接还包括至少路由第一时钟信号、第二时钟信号、第一时钟使能信号、第二时钟使能信号、第一本地置位-复位信号和所述可配置信号。
19.根据权利要求18所述的方法,其中所述路由连接还包括将所述时钟信号中的一个时钟信号、所述时钟使能信号中的一个时钟使能信号以及所述本地置位-复位信号中的一个本地置位-复位信号路由到所述PLB。
20.一种存储多个机器可读指令的非暂态机器可读介质,所述多个机器可读指令在由计算机系统的一个或多个处理器执行时,适于使所述计算机系统执行计算机实现的方法,所述方法包括:
接收标识要由可编程逻辑器件PLD执行的运算的设计;
将所述设计合成为多个PLD组件,其中所述合成包括检测所述设计中的逻辑函数运算、纹波算术运算和/或扩展逻辑函数运算;
使用所述PLD的可编程逻辑块PLB内的逻辑单元来实现所检测的所述运算,每个逻辑单元包括查找表LUT;
将逻辑单元放置在所述PLD中;以及
将连接路由到所述逻辑单元以传递多个控制信号,所述多个控制信号至少包括选择性地能够配置为时钟使能信号或本地置位-复位信号的信号,其中所述路由包括评估控制信号路由场景,包括在所述可编程逻辑块中实现控制信号路由逻辑以及在所述PLD上实现所述控制信号路由逻辑用于到所述可编程逻辑块的输入。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263429861P | 2022-12-02 | 2022-12-02 | |
US63/429,861 | 2022-12-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118133746A true CN118133746A (zh) | 2024-06-04 |
Family
ID=91242273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311636925.0A Pending CN118133746A (zh) | 2022-12-02 | 2023-12-01 | 用于可编程逻辑器件的可配置时钟使能和复位信号的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240184968A1 (zh) |
CN (1) | CN118133746A (zh) |
-
2023
- 2023-11-30 US US18/525,550 patent/US20240184968A1/en active Pending
- 2023-12-01 CN CN202311636925.0A patent/CN118133746A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240184968A1 (en) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6864710B1 (en) | Programmable logic device | |
US9154134B2 (en) | Configurable storage elements | |
US6130551A (en) | Synthesis-friendly FPGA architecture with variable length and variable timing interconnect | |
US8788756B2 (en) | Circuit for and method of enabling the transfer of data by an integrated circuit | |
US9912337B2 (en) | Systems and methods for configuring an SOPC without a need to use an external memory | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
US20130093462A1 (en) | Configurable storage elements | |
US10630269B2 (en) | Multiple mode device implementation for programmable logic devices | |
US7800404B2 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
US7839165B2 (en) | User-accessible freeze-logic for dynamic power reduction and associated methods | |
US10027328B2 (en) | Multiplexer reduction for programmable logic devices | |
US20240184968A1 (en) | Configurable clock enable and reset signal for programmable logic devices systems and methods | |
US9672307B2 (en) | Clock placement for programmable logic devices | |
US9152753B1 (en) | Incrementer absorption into multiplier logic for programmable logic devices | |
US9390210B2 (en) | Logic absorption techniques for programmable logic devices | |
US20240184459A1 (en) | Selectively powered embedded memory systems and methods | |
US9841945B2 (en) | Efficient constant multiplier implementation for programmable logic devices | |
EP4383573A1 (en) | Clock insertion delay systems and methods | |
US20230216503A1 (en) | Programmable look-up table systems and methods | |
Memory et al. | Functional Description |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |