对接混合集成器件中的硬逻辑和软逻辑的系统和方法
【专利摘要】本发明公开了用于在集成器件上实施的硬逻辑元件和软逻辑元件之间进行对接的系统和方法。特别地,提供了一种可配置接口,其包括硬逻辑和软逻辑之间的互连,这使得信号能够有选择地在硬逻辑模块和软逻辑模组的输入和输出之间进行路由。该互连允许为了支持软逻辑功能而绕过某些硬逻辑模块。此外,该互连通过例如向硬逻辑模块提供附加信号而允许软逻辑对硬逻辑模块的处理进行扩充。
【专利说明】对接混合集成器件中的硬逻辑和软逻辑的系统和方法
[0001]相关申请的交叉引用
[0002]这里要求于2011年5月17日提交的共同未决的同一受让人的美国临时专利申请号61/487046的权益和优先权,其因此通过引用全文结合于此。
【背景技术】
[0003]可编程设备是公知的。通常,诸如现场可编程门阵列(FPGA)的可编程设备包含多个软逻辑元件,它们可被配置为实施定制功能的逻辑模块。FPGA为想要实施其自己的功能模组的顾客提供了低成本且灵活的解决方案。然而,与诸如应用特定集成电路(ASIC)的硬逻辑解决方案相比,FPGA通常运行较慢,并且需要更多功率以及更大的面积。另一方面,ASIC是不可编程的并且因此对于想要在构造之后对硬件进行定制的顾客所提供的灵活性较少。
[0004]由此,已经出现了包括硬逻辑和软逻辑的混合设备。硬逻辑通常实施可能在各种应用中使用的标准功能模块,而软逻辑则实现定制的功能。然而,这些设备在功能和灵活性方面是有限的。特别地,硬逻辑模块经常以串行方式进行操作,并且没有机会为了支持软逻辑而绕过个体模块。此外,硬逻辑模块很大程度上分离操作,从而个体硬逻辑模块的内部功能不能利用软逻辑特征进行扩充。因此,这些混合设备仍然要求顾客在需要软逻辑所提供的灵活性时放弃硬逻辑的速度和低功率优势。
【发明内容】
[0005]本发明涉及用于在混合集成器件上所实施的硬逻辑元件和软逻辑元件之间进行对接的系统和方法。特别地,在硬逻辑和软逻辑之间提供可配置的互连,其使得信号能够在硬逻辑模块和软逻辑模组的输入和输出之间进行路由。该互连允许为了实现软逻辑功能而绕过某些硬逻辑模块。此外,该互连例如通过向该硬逻辑模块提供附加信号而允许软逻辑对硬逻辑模块的处理进行扩充。
[0006]依据本发明的实施例,提供了一种集成器件,其具有硬逻辑部分、现场可编程门阵列(FPGA)构造,以及被配置为在该硬逻辑部分和FPGA构造之间路由信号的接口。该硬逻辑部分包括多个串行连接的硬逻辑模块,而该FPGA构造包括控制逻辑和多个软逻辑模组。该接口可以响应于来自该控制逻辑的控制信号而被配置为有选择地将该硬逻辑部分中的节点(例如,硬逻辑数据路径中的节点)连接至该软逻辑模组之一或该硬逻辑模块之一。
[0007]依据本发明另外的实施例,该第一节点可以是针对第二硬逻辑模块的输入。因此,该接口可以包括在该硬逻辑部分中设置于该两个硬逻辑模块之间的多路复用器。该多路复用器可以被配置为在该控制信号具有第一值(即,比特值I或O)时向该第二硬逻辑模块的该输入提供该软逻辑模组的输出,并且在该控制信号具有第二值时向该第二硬逻辑模块提供该第一硬逻辑模块的输出。
[0008]该软逻辑模组可以被配置为从该第一硬逻辑模块或该数据路径中的上游的另一模块接收输入信号。在一些方法中,该软逻辑模组和该第一硬逻辑模块都被配置为接收相同的输入信号。此外,该控制逻辑可以被配置为当通过该多路复用器选择该软逻辑模组的该输出用来输出时关闭该第一硬逻辑模块。
[0009]在一些实施例中,该接口包括设置在该硬逻辑部分中的合并器电路以及多个多路复用器。第一多路复用器可以被配置为基于该控制信号向该合并器电路提供数据信号(例如,由该第一硬逻辑模块所提供)或者零值。类似地,第二多路复用器可以被配置为基于该控制信号向该合并器电路提供第二数据信号(例如,由该软逻辑模组所提供)和零值。该合并器电路可以被配置为将该两个多路复用器所提供的该信号进行合并并且在该硬逻辑部分中的前述节点处输出该经合并的信号。
[0010]在一种方法中,该控制逻辑可以(例如,基于所存储的配置数据)确定要单独使用的该第一硬逻辑模块。因此,该控制逻辑可以对该第一多路复用器进行配置以向该合并器电路提供该第一硬逻辑模块所提供的该数据信号。与此同时,该控制逻辑可以对该第二多路复用器进行配置以向该合并器电路提供该零值。进而,该合并器电路可以被配置为将该数据信号与该零值进行合并,由此有效输出由该第一硬逻辑模块所提供的原始的数据信号。
[0011]在另一种方法中,该控制逻辑可以(例如,基于所存储的配置数据)确定要单独使用的该第一软逻辑模组。因此,该控制逻辑可以对第一多路复用器进行配置以向合并器电路提供零值,同时对该第二多路复用器进行配置以向合并器电路提供该第二数据信号(例如,由该软逻辑模组所提供)。该合并器电路可以被配置为将该第二数据信号与该零值进行合并,由此有效地输出由该软逻辑模组所提供的原始的第二数据信号。
[0012]在又一种方法中,该控制逻辑可以(例如,基于所存储的配置数据)确定要一起使用的该第一硬逻辑模块和该第一软逻辑模组。因此,该控制逻辑可以对该第一多路复用器和该第二多路复用器进行配置以分别向该合并器电路提供该第一数据信号和该第二数据信号。该合并器电路可以被配置为将该两个数据信号进行合并用来输出(例如,利用逻辑加法运算)。
[0013]在一些实施例中,该接口包括设置在该硬逻辑部分之中的一个或多个可配置延迟线路。第一可配置延迟线路可以被配置为延迟输入信号并且向该软逻辑模组提供该经延迟的输入信号。第二可配置延迟线路可以被配置为延迟第三多路复用器的输出信号,并且向第四和第五多路复用器提供该经延迟的输出信号。在该情形中,该第三多路复用器可以被配置为基于该控制信号向该第二可配置延迟线路提供该第一数据信号或该第二数据信号。此外,该第四多路复用器可以被配置为基于延迟控制信号向第一多路复用器提供该第一数据信号或该经延迟的输出信号,而该第五多路复用器被配置为基于该延迟控制信号向该第二多路复用器提供该第二数据信号或该经延迟的输出信号。
[0014]在一些实施例中,该集成器件包括具有一个或多个微处理器核心的处理器子系统。配置接口可以被设置在该硬逻辑部分之中并且耦合至每个该硬逻辑模块。该配置接口可以被配置为基于从该FPGA构造和/或该处理器子系统中的配置逻辑所接收的参数而向该硬逻辑模块提供配置信号。
[0015]在一些实施例中,该集成器件包括设置在该硬逻辑部分中的调试接口。该调试接口可以被配置为基于外部存储器中所存储的测试数据而在包含该硬逻辑模块的数据路径中的某些探测点插入和提取测试信号。该外部存储器可以由在该FPGA构造或该处理器子系统中实施的存储器控制器进行访问。
[0016]还提供了对以上所描述的集成器件进行配置和操作的方法。
【专利附图】
【附图说明】
[0017]通过结合附图考虑以下详细描述,本发明进一步的特征及其属性和各种优点将会是显而易见的,附图中同样的附图标记始终指代同样的部分,其中:
[0018]图1描绘了根据本发明的示范性实施例的具有硬逻辑部分和FPGA构造的示范性混合设备;
[0019]图2描绘了根据本发明的示范性实施例的混合设备的主要功能模块;
[0020]图3描绘了根据本发明的示范性实施例的被配置为以软逻辑模组替换硬逻辑模块的混合设备的示例性实施方式;
[0021]图4描绘了根据本发明的示范性实施例的被配置为测试一个或多个硬逻辑模块的混合设备的示例性实施方式;
[0022]图5描绘了根据本发明的示范性实施例的将硬逻辑耦合至软逻辑的可配置互连的示例性实施方式;
[0023]图6描绘了根据本发明的示范性实施例的使得能够向硬逻辑数据路径中插入软逻辑模组的可配置互连的示例性实施方式;
[0024]图7描绘了根据本发明的示范性实施例的使得能够扩充和/或替换硬逻辑模块的可配置互连的示例性实施方式;
[0025]图8是根据本发明的示范性实施例的使用接口连接硬逻辑和软逻辑时所执行的示范性步骤的流程图;以及
[0026]图9是根据本发明的示范性实施例的在对硬逻辑和软逻辑之间的接口进行配置时所执行的示范性步骤的流程图。
【具体实施方式】
[0027]这里描述了用于在混合集成器件中的硬逻辑和软逻辑之间进行对接的系统和方法。特别地,在硬逻辑和软逻辑之间提供可配置的互连,其使得信号能够在硬逻辑模块和软逻辑模组的输入和输出之间进行路由。该互连允许为了支持软逻辑功能而绕过某些硬逻辑模块。此外,该互连例如通过向硬逻辑模块提供附加信号而允许软逻辑对硬逻辑模块的处理进行扩充,例如用于与现有信号进行合并。该混合设备可以是单个集成芯片,或者在其它实施例中,其可以是两个或更多芯片的非单片集成形式(例如,相同封装中的两个模具)。
[0028]图1示出了示范性的混合设备100,其包括硬逻辑、软逻辑、微处理器子系统以及依据本发明一些实施例的接口电路。该硬逻辑包括接口 110、存储器控制器112以及硬逻辑部分114和116。接口 110包含用于通过串化解串器(SERDES)电路142与外部组件(例如,天线接口)进行对接的硬逻辑元件。存储器控制器112包含用于控制通过接口 140对外部存储器进行的访问(即,读取和写入)的硬逻辑元件。硬逻辑部分114和116包含用于对输入信号进行处理的硬逻辑元件一它们可以整合为硬逻辑模块。例如,硬逻辑部分114和116可以实施收发器功能,诸如波峰因数缩小、数字预失真、均衡化、滤波和/或模数转换接口。硬逻辑可以通过SERDES电路142与例如数据转换器的外部组件进行对接。[0029]软逻辑包括FPGA构造120,其具有用于对输入信号进行处理的多个可编程逻辑要素一它们可以被整合为软逻辑模组。FPGA构造120也可以实施收发器功能,其所增加的好处在于这些功能是顾客可编程的。这些定制软逻辑模组在图1中由框122所表示。在一些情况下,软逻辑模组可以被用来替换以硬逻辑部分114和116所实施的功能。在其它情况下,软逻辑模组可以被用来向以硬逻辑部分114和116所实施的功能中产生输入。FPGA构造120可以通过可定制互连150与硬逻辑部分114和116进行对接。如以下将进一步解释的,互连150可以由FPGA中的卿,在FPGA构造120中实施的)控制电路进行配置以绕过某些硬逻辑模块或者向一个或多个硬逻辑模块提供来自软逻辑的输入,或反之亦然。
[0030]微处理器子系统130包括一个或多个处理器核心,例如核心132和134。例如,微处理器子系统130可以是具有双核处理器的片上系统(SoC)。微处理器子系统130可以与该设备的其它部分进行对接,或者使用处理器子系统10144与外部组件进行对接。
[0031]应当理解的是,设备100的结构仅是示例性的,并且可以使用任意适当的架构来实施既具有硬逻辑也具有软逻辑的混合设备。应当进一步理解的是,硬逻辑部分包含硬逻辑模块,其实施针对并不要求定制(也被称之为“差别化”)的功能实现了非常低功率的解决方案的功能一例如,应用特定标准产品(ASSP)功能。然而,当需要灵活性和差别化时,可配置互连(例如,到硬逻辑和微处理器子系统之中的高带宽连接)使得硬逻辑能够与FPGA构造进行对接。因此,硬逻辑、软逻辑和可配置互连的合并提供了有成本效益、功率高效且灵活的解决方案。
[0032]在一个实施例中,硬逻辑部分114和116使用允许以491Mhz的频率进行操作的28nm几何处理来实施。每个互连可以使得数据宽度总线接口翻倍,这允许数据在硬逻辑模块的链中所识别的点往来于FPGA构造120进行传输。如以上所讨论的,FPGA构造能够被用来实施差别化功能或者对硬逻辑部分所提供的当前功能进行扩展。在一个实施例中,FPGA构造120使用能够以每个时钟周期一个样本支持高达245Msps的28nm低功率处理来实施。例如,能够使用超样本速率实施方式来支持更高的样本速率。当然,以上频率仅是示例性的,并且这里所描述的技术能够结合以更低或更高频率进行操作的设备来使用。此外,应当理解的是,硬逻辑部分和软逻辑部分可以以相同频率或不同频率进行操作。
[0033]图2描绘了依据本发明一些实施例的混合设备的主要功能模块。特别地,图2示出了示范性的混合设备200,其可以基本上类似于图1的设备100。如所示出的,设备200包括硬逻辑202、FPGA构造204和微处理器子系统206,它们分别可以基本上类似于图1的硬逻辑部分114和/或116、FPGA构造120和微处理器子系统130。在一个实施例中,设备200通过在FPGA构造204的软逻辑内实施的直接存储器访问(DMA)控制器294而与例如双倍数据速率(DDR)存储器的外部存储器208进行对接。
[0034]硬逻辑202实施任意数量的功能。在收发器环境中,硬逻辑202可以实施各种标准数字无线电功能。作为示例,图2示出了可以包括在传送器前端之中的硬逻辑模块。特别地,硬逻辑202可以包括网络接口(例如,通用公共无线接口(CPRI)或千兆以太网(GbE))模块212、数字上变频器(DUC)模块214、波峰因数缩小(CFR)模块216、数字预失真(DTO)模块218、均衡器模块220、IQ不平衡校正模块222和/或数模转换(DAC)接口 224。硬逻辑202还可以包括DH)反馈(FB)模数转换(ADC)接口 226、FB前端228、配置接口 230和/或调试接口 250。[0035]如所示出的,模块212-224可以互相串行连接,其中一个模块的输出连接至下一模块的输入。应当理解的是,模块212-224仅是示例性的,并且在一些实施例中,可能缺少模块212-224中的一个或多个和/或可能包括一个或多个其它功能模块(未描绘)。此外,模块212-224的顺序仅是示例性的,并且应当理解的是,模块212-224可以任意适当顺序进行排列。在一些实施例中,可以在硬逻辑202中实施功能模块的附加并行路径。因此,硬逻辑202可以包括任意数量的以任意适当顺序所连接的硬逻辑模块的串行链(例如,用来执行接收器或传送器前端的功能)。
[0036]硬逻辑202可以包括配置接口 230,其使得FPGA构造204和/或微处理器子系统206中的控制逻辑能够向硬逻辑模块212-224提供配置信号。特别地,在一个实施例中,配置接口 230提供统一存储器映射配置总线,如所示出的,其能够通过互连246连接至FPGA构造204和/或微处理器子系统206。配置接口 230因此从FPGA或微处理器子系统接收信号,并且进而生成分别经由连接232-244而被提供至每个模块212-224的配置信号。应当理解的是,配置接口 230可以是任意适当类型的统一接口,并且在一些实施例中,可以不是存储器映射的。
[0037]在一些实施例中,配置接口 230由FPGA构造中所实施的软处理器和/或状态机进行控制。配置接口还支持从例如微处理器子系统206的外部处理器进行配置。软逻辑或微处理器可以向硬逻辑中的存储器映射配置接口提供配置信号,其进而可以对相关硬逻辑模块进行配置。在一个实施例中,存储器映射接口包括例如以245MHz进行操作的32位端口(例如,互连246)。
[0038]硬逻辑202还可以包括调试接口 250,其使得能够在任意硬逻辑模块中的预定探测点插入数据或从中提取数据。在一些实施例中,仅一些硬模块212-224可以被连接至调试接口 250,例如硬逻辑模块212-220 (如所示出的)。特别地,硬模块212-220中的每一个分别经由连接254-260耦合至调试接口 250。调试接口 250进而经由互连262被连接至FPGA构造204,如以下结合图4更为详细描述的,互连262可以向外部存储器提供数据。应当理解的是,任意或所有的硬模块212-224都可以被连接至调试接口 250。然而,在硬逻辑202和软逻辑204之间的带宽被例如物理硅约束所限制时,可以连接硬模块的子集。此外,在一些实施例中,除了连接254-260之外可以出于调试和测试的目的而使用互连270-282。在又一其它的实施例中,连接254-260可以使用可配置选择电路(例如,一个或多个多路复用器)和/或使用时域多路复用(例如,时分复用)在硬逻辑模块之间进行共享。多路复用功能可以在设备上电时使用例如FPGA比特流进行配置,或者在运行期间进行动态配置。
[0039]再次参考图2,软逻辑204实施任意数量的可编程功能。作为示例,图2示出了可以被包括以支持收发器前端的软逻辑模组。特别地,软逻辑204可以包括捕捉缓冲器290、数字预失真(DPD)适配模块292以及读/写直接存储器访问(DMA)控制器294。如所示出的,软逻辑模块290-294可以彼此连接,或者处于任意其它的适当配置形式。还应当理解的是,模块290-294仅是示例性的,并且在一些实施中,可以缺少模块290-294中的一个或多个和/或可以实施一个或多个其它软模块(未描绘)。总体而言,软逻辑204可以包括以任意适当顺序互相连接和/或连接至硬逻辑202的硬逻辑模块的软逻辑模组的任意数量的串行或并行链(例如,用来执行接收器或传送器前端的功能)。
[0040]设备200还包括用于将硬逻辑202耦合至FPGA构造204的可配置互连。如图2所示,可以提供互连270-282,每个该互连被设置在两个顺序的硬逻辑模块之间的点。该布置允许数据信号从硬逻辑模块的链中的任意第一点路由至FPGA构造中的可编程逻辑,并且被送回硬逻辑模块的链中的任意第二点。可替换地,互连270-282中的一个或多个可以被设置在一个硬逻辑模块内的点。该布置允许数据信号从特定硬逻辑模块中的任意第一点被路由至FPGA构造中的可编程逻辑,并且被送回相同或另一硬逻辑模块内的任意第二点。当然,这些布置的合并也是可能的,即互连可以允许从硬逻辑点的链中的任意第一点(无论其处于模块内还是链中的节点处)被路由至任意其它点。因此,该路由特征实现了硬逻辑绕行、硬逻辑扩充以及逻辑功能的增加。
[0041]硬逻辑绕行通过在一个或多个硬逻辑模块周围对信号进行路由来实施,在一些情况下,以FPGA构造中的定制版本替代被绕过的硬逻辑模块。例如,如果不需要模块216的功能,则可以将互连272配置为将数据信号从模块214的输出路由至FPGA构造204,该信号在那里可以被直接送至互连274,该互连274可以被配置为将该数据信号路由至模块218的输入。作为另一个示例,如果模块216的功能要被软逻辑模组所替代,则互连272可以被配置为将数据信号从模块214的输出路由至FPGA构造204,该信号可以在那里被软逻辑模组进行处理并且被输出至互连274,该互连274可以被配置为将该数据信号路由至模块218的输入。以下结合图3和7对使用可配置互连绕过和/或替换硬逻辑模块进行更为详细的讨论。
[0042]硬逻辑扩充通过将信号从FPGA构造204中的软逻辑模块路由至硬逻辑模块(或硬逻辑模块内的逻辑元件)的输入而实施。特别地,硬逻辑模块可以接受多个输入进行处理,并且那些输入之一可以由软逻辑来提供,因此对硬逻辑模块的功能进行扩充。由软逻辑所提供的信号可以或不能从硬逻辑路径中的数据信号所得出。例如,互连274可以将输入信号从FPGA构造204提供至可以被配置为接受多个输入的预失真模块218中。该输入信号可以由生成新信号的软逻辑模块所产生,或者由对例如从硬逻辑链中的另一点处的互连所接收的信号进行处理的软逻辑模块所产生。
[0043]逻辑功能的增加通过将信号从硬逻辑链中的点路由至FPGA构造中的软逻辑模组并且送回硬逻辑链中的相同点而实现。因此,软逻辑模块被“插入”到硬逻辑路径之中。例如,可以通过对互连272进行配置以将信号从模块214的输出路由至FPGA构造204中所实施的软逻辑模块,该信号在上述软逻辑模块处被处理并路由返回至模块216的输入,而在模块214和216之间插入附加逻辑模块。以下结合图3、6和7对硬逻辑扩充和逻辑功能的增加进行更为详细的讨论。
[0044]如以上所讨论以及在图2中所描绘的,互连270-282中的每一个可以被设置在两个顺序的硬逻辑模块之间的点。更一般地,互连可以被连接至硬逻辑数据路径中(例如,硬逻辑模块之间和/或那些模块之内)的任意数量的节点。然而,应当理解的是,这种布置本质上是概念性的。具体地,节点的数量可以大于可用互连的数量。例如,在带宽受限的系统中可能是这种情况。因此,可以使用选择电路(例如,一个或多个多路复用器)将可用互连有选择地连接至硬逻辑数据路径中的节点。根据配置数据,该选择电路可以被配置为将特定节点与可用互连相连接(例如,通过FPGA中的控制逻辑、微处理器子系统,或者在设备上电时通过FPGA比特流)。以这种方式,可以基于配置数据将有限数量的互连连接至硬逻辑数据路径中的任意节点。[0045]图3描绘了依据本发明一些实施例的被配置为以选替软逻辑模组替换硬逻辑模块的图2的设备200的示例性实施方式。特别地,图3示出了示范性混合设备300,其可以基本上类似于图2的设备200,但是在FPGA构造304中增加了定制预失真模块330。如所示出的,互连320可以被配置为将硬逻辑模块310的输出路由至软逻辑模组330。进而,互连322可以被配置为将软逻辑模组330的输出路由至硬逻辑模块314的输入。因此,硬逻辑模块312的功能被软逻辑模组330的功能所替代。以这种方式,顾客可以对FPGA构造304进行编程以实施定制功能来替换硬逻辑302中的任意硬逻辑模块。此外,在一些实施例中,FPGA构造304中的控制逻辑可以被配置为当在作为代替使用选替的软逻辑模块时使得被绕过的硬逻辑设备无效。例如,控制逻辑可以向配置接口 316提供信号,该配置接口 316可以提供使得模块312无效(或者防止或最小化该模块的功耗)的配置信号。
[0046]图4描绘了依据本发明一些实施例的被配置为测试一个或多个硬逻辑模块的设备200的示例性实施方式。特别地,图4示出了示范性的混合设备400,其可以基本上类似于图2的设备200,但是具有直接耦合至DMA控制器440的互连428。如所示出的,互连428可以被配置为将调试接口 430所提供的信号路由至控制器440以便存储在存储器406中。调试接口 430使得能够从任意硬逻辑模块中的预定探测点插入或提取数据(例如,出于测试的目的)。在一些实施例中,硬模块212-224中仅有一些可以被连接至调试接口 250,例如硬逻辑模块212-220 (如所示出的)。硬逻辑402中的连接420-426将预定探测点的信号路由至调试接口 430,同时互连428将来自调试接口 430的信号路由至FPGA构造404。在一些实施例中,互连428构成单个32位的双向测试端口,由此提供统一调试接口。在一些实施例中,可以用FPGA逻辑中的附加调试逻辑补充调试接口 430。在这样的实施例中,互连428可以被配置为将信号从调试接口 428路由至调试软逻辑,其随后可以通过DMA440与存储器进行对接。
[0047]以上述的方式使用互连428、调试接口 430和连接420-426允许从存储器406获取测试数据并在任意预定探测点将其插入硬逻辑数据路径之中。与此同时,可以在任意预定探测点提取数据并存储在存储器406中。测试数据在不同探测点的插入和收集可以帮助对硬逻辑402的硬逻辑模块进行测试和调试。应当理解的是,也可以在当软逻辑替代或扩充任意硬逻辑模块时使用该调试特征。例如,图3和图4中所描绘的互连可以如相应附图所示出和以上所描述的同时进行配置。以这种方式,调试接口 430也可以被用来测试硬逻辑模块与软逻辑模组的集成。
[0048]图5描绘了依据本发明一些实施例的将硬逻辑耦合至软逻辑的可配置互连的示例性实施方式。特别地,图5示出了示范性互连500,其可以基本上类似于图2的任意互连270-282。如所示出的,互连500包括用于在FPGA构造和硬逻辑之间路由数据的两个单独互连520和522。互连520被用来将数据从FPGA构造504路由至硬逻辑502,而互连522则被用来将数据从硬逻辑502路由至FPGA构造504。在一些实施例中,FPGA构造以硬逻辑一半的速度进行操作。因此,当从FPGA构造504被向硬逻辑502提供数据时,两个数据字可以并行传送并且随后在硬逻辑中被串行化。该串行化可以在比特水平或字水平上被执行。例如,两个数据字可以在硬逻辑中在字水平上进行串行化,由此以串行方式向硬逻辑模块提供字。如所示出的,互连520因此可以包括串行化器电路510以对两个数据字进行串行化。类似地,当从硬逻辑502向FPGA构造504提供数据时,两个数据字可以在硬逻辑中被并行化并且向FPGA构造提供。如所示出的,互连522因此可以包括并行化电路512以对两个数据字进行并行化。以这种方式,吞吐量在较快的硬逻辑和较慢的FPGA构造之间达到平衡。
[0049]图6描绘了依据本发明一些实施例的使得能够将软逻辑模组插入硬逻辑数据路径之中的可配置互连的示例性实施方式。特别地,图6示出了示范性互连620,其可以基本上类似于图2的任意互连270-282。如所示出的,互连620在硬逻辑602至FPGA构造604之间对数据信号进行路由。互连620包括用于从硬逻辑向FPGA构造提供信号的互连624,用于从FPGA构造向硬逻辑提供信号的互连626,以及多路复用器622。多路复用器622被配置为根据是否要将软逻辑模组添加至数据路径而输出从硬逻辑所接收的信号和从软逻辑所接收的信号之一。例如,为了将软逻辑模组614插入到硬逻辑数据路径之中,互连624将硬逻辑模块610的输出路由至软逻辑模组614。软逻辑模组614对该信号进行处理,并且互连626将经处理的信号路由至多路复用器622,其还从逻辑模块610直接接收未经处理的输出。多路复用器622选择互连626所提供的信号以便将软逻辑模组插入到硬逻辑数据路径之中,硬逻辑模块612接收经处理的信号。另一方面,多路复用器622选择逻辑模块610所提供的信号以绕过软逻辑模组,在这种情况下,硬逻辑模块612直接从模块610接收未经处理的信号。
[0050]应当理解的是,图6是简化的图示,并且其它适当的组件可以提供附加的功能。例如,可以实施结合图5所描述的串行化器和并行化器电路以对FPGA构造中的吞吐量信息进行补偿。此外,如图7所示,图6的电路可以利用使得能够对硬逻辑模块进行扩充和/或替换的附加电路进行扩充。
[0051]图7描绘了依据本发明一些实施例的使得能够对硬逻辑模块进行扩充和/或替换的可配置互连的示例性实施方式。特别地,图7示出了硬逻辑部分702和FPGA构造704。硬逻辑部分702可以包括硬逻辑模块710、多路复用器720-728、合并器730以及可配置延迟线路740和742。FPGA构造704可以包括软逻辑模组712。如将要描述的,所描绘的组件布置允许硬逻辑模块710被软逻辑模组712所替代,或者用于使用软逻辑模组712对硬逻辑进行扩充。在后者的方法中,延迟电路确保了对硬逻辑和软逻辑组件之间的处理速度的任何不匹配进行补偿。
[0052]当仅需要硬逻辑模块710所提供的功能时,多路复用器720-728可以被配置为将硬逻辑模块710的输出直接送至合并器730,其随后可以输出如所接收的信号。特别地,模块710所输出的数据信号被直接提供至多路复用器722,其被配置为将该数据信号送至多路复用器726。多路复用器726同样被配置为将该数据信号送至合并器730,其将多路复用器728所输出的零值合并(例如,相加)至该数据信号。在一些方法中,可能希望在硬逻辑模块710所输出的数据信号被合并器730输出之前对其进行延迟。在这种情况下,多路复用器722被配置为令延迟线路742所输出的数据信号通过,该延迟线路742被设置为提供所期望数量的延迟。延迟线路742通过多路复用器720从硬逻辑模块710接收数据信号,该多路复用器720被配置为令其从逻辑模块710所接收的数据信号通过。
[0053]当软逻辑模组712要替代硬逻辑模块710时,多路复用器720-728可以被配置为将软逻辑模组712的输出直接送至合并器730,其随后可以输出如所接收的信号。特别地,由软逻辑模组712所输出的数据信号被直接向多路复用器724提供,其被配置为将该数据信号送至多路复用器728。多路复用器728同样被配置为将该数据信号送至合并器730,其将多路复用器726所输出的零值合并(例如,相加)至该数据信号。在一些方法中,可能期望在由软逻辑模组712所输出的数据信号被合并器730输出之前对其进行延迟。在这种情况下,多路复用器724被配置为令延迟线路742所输出的数据信号通过,该延迟线路742被设置为提供所期望数量的延迟。延迟线路742通过多路复用器720从软逻辑模组712接收数据信号,该多路复用器720被配置为令其从软逻辑模组712所接收的数据信号通过。
[0054]当硬逻辑模块710要与软逻辑模组712进行合并时,多路复用器720-728可以被配置为将硬逻辑模块710的输出和软逻辑模组712的输出都送至合并器730,其随后可以将该信号合并(例如,相加)在一起,并且输出经合并的信号。特别地,在不必要延迟时,多路复用器722和726可以将模块710所提供的信号直接送至合并器730。类似地,多路复用器724和728可以将由模组712所提供的信号直接送至合并器730。当需要对硬逻辑信号进行延迟时(例如,由于FPGA中较慢或较长的处理),多路复用器720可以将来自模块710的数据信号向延迟线路742提供,其可以以所期望的量对硬逻辑信号进行延迟。多路复用器722和726随后可以将经延迟的信号直接送至合并器730。同样地,当需要对软逻辑信号进行延迟时(例如,由于硬逻辑中较慢或较长的处理),多路复用器720可以将来自模组712的数据信号送至延迟线路742,其可以以所期望的量对软逻辑信号进行延迟。多路复用器724和728随后可以将经延迟的信号直接送至合并器730。
[0055]应当理解的是,图7的布置仅是示范性的,并且可以按照需要去除或增加一个或多个组件。例如,多路复用器720、722和724和延迟线路742可以被去除,而延迟线路740可以被用来在信号被模组712接收之前对其进行延迟。选替地或附加地,延迟线路740可以被一起去除。合并器电路730可以是加法器,或者适于合并两个或更多信号的任何其它电路。此外,图7可以整合结合图5和6所示出和所描述的任何组件。
[0056]图8示出了用于使用接口连接硬逻辑和软逻辑的说明性处理800。在步骤802,数据路径配置数据可以被例如FPGA构造中的控制逻辑所接收。该数据路径配置数据可以存储在外部存储器(例如,图2的存储器208)中并且由FPGA构造中的存储器访问设备(例如,图2中的DMA294)所获取。在步骤804,控制逻辑可以基于所获取的配置数据而对硬逻辑部分和FPGA构造之间的接口进行配置。例如,如以上所解释的,控制逻辑可以对任何互连270-282进行配置以绕过硬逻辑模块,利用软逻辑模组替代硬逻辑模块,将软逻辑模组插入数据路径之中,或者通过路由来自软逻辑的信号而扩充硬逻辑。因此,控制逻辑可以对结合图5-7所描绘和所讨论的任何组件进行配置。特别地,控制逻辑可以对一个或多个多路复用器、串行化器或并行化器电路和/或延迟线路进行配置。在其它实施例中,除了控制逻辑之外或者作为其替代,处理器子系统可以对这些组件进行配置。例如,处理器子系统可以基于所获取的配置数据对硬逻辑部分和FPGA构造之间的接口进行配置。
[0057]在步骤806,该接口可以基于配置将硬逻辑数据路径中的节点(例如,两个硬逻辑模块之间或者处于硬逻辑模块之内)连接至软逻辑模组或硬逻辑模块。例如,参考图6,该接口可以根据配置而将逻辑模块612的输入连接至硬逻辑模块610或软逻辑模组614的输出。作为另一个示例,参考图7,模块710和模组712之一或其二者可以被连接至合并器730。在任一种情况下,配置数据被控制逻辑和/或处理器子系统用来按照需要对多路复用器和/或延迟线路进行配置。[0058]图9示出了用于对硬逻辑和软逻辑之间的接口进行配置的示范性处理900。处理900可以(例如,由控制逻辑和/或处理器子系统)作为图8的步骤804的部分来执行。在步骤902,从数据路径配置数据确定数据路径配置。也就是说,控制逻辑和/或处理器子系统从存储器读取数据并且确定哪个互连要进行配置以及它们要被如何配置。特别地,可以针对硬逻辑链的每个硬逻辑模块执行步骤904-914。在步骤904,控制逻辑和/或处理器子系统确定是否要单独使用给定硬逻辑模块,即并不被软逻辑模组所扩充或替代。如果是,则该处理进行至步骤906,其中接口(例如,互连、多路复用器和/或延迟线路)被配置成将硬逻辑模块连接至数据路径。在步骤908,控制逻辑和/或处理器子系统确定是否要单独使用给定软逻辑模组,即替代硬逻辑模块。如果是,则该处理继续至步骤910,其中接口(例如,互连、多路复用器和/或延迟线路)被配置成将软逻辑模组替代硬逻辑模块连接至数据路径。最后,在步骤912,控制逻辑和/或处理器子系统确定给定硬逻辑模块是否要结合软逻辑模组使用。如果是,则该处理继续至步骤914,其中接口(例如,互连、多路复用器和/或延迟线路)被配置成将硬逻辑模块连接至软逻辑模组。例如,通过将每个模块的输出连接至合并器电路。
[0059]在实践中,处理800和900中所示出的一个或多个步骤可以与其它步骤进行合并,以任意适当的顺序执行,并行(例如,同时或实质上同时)执行,或者被去除。例如,除非其另外有所确定,否则控制逻辑和/或处理器子系统可以缺省地连接所有硬逻辑模块。因此,步骤904和906可以被去除,并且硬逻辑模块可以仅响应于从配置数据确定需要这样的配置才被替换或扩充。在一些实施例中,接口(例如,互连、多路复用器和/或延迟线路)在设备上电时通过FPGA比特流进行配置。例如,多路复用器可以被作为FPGA配置例程的部分而使用存储在配置存储器(CRAM)中的数据进行配置。最后,处理800和/或900可以以任何适当方式使用硬件和/或软件的任何适当合并来实施。例如,如以上所讨论的,FPGA构造中的控制逻辑和处理器子系统之一或其二者可以对各种硬逻辑模块、软逻辑模组和接口连接进行配置。在接口在设备上电时通过FPGA比特流(例如,使用CRAM)进行配置的实施例中,控制逻辑和处理器子系统可以或不能另外对接口进行动态配置。
[0060]以上所描述的本发明实施例时出于说明而非限制的目的所给出,并且本发明仅被以下权利要求所限定。
【权利要求】
1.一种集成器件,包括: 硬逻辑部分,包括多个硬逻辑模块; 现场可编程门阵列(FPGA)构造,包括控制逻辑和多个软逻辑模组;以及 接口,被配置为在所述硬逻辑部分和所述FPGA构造之间路由信号; 其中,响应于来自所述控制逻辑的控制信号,所述接口进一步被配置为选择性地将所述硬逻辑部分中的第一节点耦合至所述多个软逻辑模组中的第一软逻辑模组和所述多个硬逻辑模块中的第一硬逻辑模块之一。
2.根据权利要求1所述的集成器件,其中所述第一节点是去往所述多个硬逻辑模块中的第二硬逻辑模块的输入,并且其中所述接口包括在所述硬逻辑部分中设置于所述第一硬逻辑模块和所述第二硬逻辑模块之间的多路复用器,所述多路复用器被配置为: 在所述控制信号具有第一值时向所述第二硬逻辑模块提供所述第一软逻辑模组的输出;以及 在所述控制信号具有第二值时向所述第二硬逻辑模块提供所述第一硬逻辑模块的输出 。
3.根据权利要求2所述的集成器件,其中所述第一软逻辑模组被配置为从所述第一硬逻辑模块接收输入信号。
4.根据权利要求2所述的集成器件,其中所述第一软逻辑模组和所述第一硬逻辑模块各自被配置为接收相同的输入信号,并且其中所述控制逻辑被配置为当所述多路复用器选择所述第一软逻辑模组的所述输出用于输出时将所述第一硬逻辑模块断电。
5.根据权利要求1所述的集成器件,其中所述接口包括设置在所述硬逻辑部分中的合并器电路以及多个多路复用器,并且其中: 所述多个多路复用器中的第一多路复用器被配置为基于所述控制信号向所述合并器电路提供第一数据信号和零值信号之一,其中所述第一数据信号由所述第一硬逻辑模块提供; 所述多个多路复用器中的第二多路复用器被配置为基于所述控制信号向所述合并器电路提供第二数据信号和所述零值信号之一,其中所述第二数据信号由所述第一软逻辑模组提供;以及 所述合并器电路被配置为将由所述第一多路复用器和所述第二多路复用器提供的所述信号进行合并,并且在所述硬逻辑部分中的所述第一节点处输出经合并的信号。
6.根据权利要求5所述的集成器件,其中响应于确定要单独使用所述第一硬逻辑模块: 所述控制逻辑对所述第一多路复用器进行配置以向所述合并器电路提供所述第一数据信号;以及 所述控制逻辑对所述第二多路复用器进行配置以向所述合并器电路提供所述零值信号; 其中所述合并器电路被配置为将所述第一数据信号与所述零值信号进行合并。
7.根据权利要求5所述的集成器件,其中,响应于确定要单独使用所述第一软逻辑模组: 所述控制逻辑对所述第一多路复用器进行配置以向所述合并器电路提供所述零值信号;以及 所述控制逻辑对所述第二多路复用器进行配置以向所述合并器电路提供所述第二数据信号; 其中所述合并器电路被配置为将所述零值信号与所述第二数据信号进行合并。
8.根据权利要求5所述的集成器件,其中,响应于确定要一起使用所述第一硬逻辑模块和所述第一软逻辑模组: 所述控制逻辑对所述第一多路复用器进行配置以向所述合并器电路提供所述第一数据信号;以及 所述控制逻辑对所述第二多路复用器进行配置以向所述合并器电路提供所述第二数据信号; 其中所述合并器电路被配置为将所述第一数据信号与所述第二数据信号进行合并。
9.根据权利要求5所述的集成器件,其中所述接口进一步包括设置在所述硬逻辑部分中的多个可配置延迟线路,并且其中: 所述多个可配置延迟线路中的第一可配置延迟线路被配置为延迟输入信号并且向所述第一软逻辑模组提供经延迟的输入信号; 所述多个可配置延迟线路中的第二可配置延迟线路被配置为延迟所述多个多路复用器中的第三多路复用器的输出信号,并且向所述多个多路复用器中的第四多路复用器以及所述多个多路复用器中的第五多路复用器提供经延迟的输出信号;` 所述第三多路复用器被配置为基于所述控制信号向所述第二可配置延迟线路提供所述第一数据信号和所述第二数据信号之一; 所述第四多路复用器被配置为基于延迟控制信号向所述第一多路复用器提供所述第一数据信号和所述经延迟的输出信号之一;以及 所述第五多路复用器被配置为基于所述延迟控制信号向所述第二多路复用器提供所述第二数据信号和所述经延迟的输出信号之一。
10.一种集成器件,包括: 硬逻辑部分,包括一个或多个硬逻辑模块; 现场可编程门阵列(FPGA)构造,包括配置逻辑;以及 配置接口,设置在所述硬逻辑部分中并且耦合至一个或多个硬逻辑模块,其中所述配置接口被配置为基于从所述FPGA构造中的所述配置逻辑接收的数据信号向所述一个或多个硬逻辑模块提供配置信号。
11.根据权利要求10所述的集成器件,进一步包括处理器子系统,所述处理器子系统包括一个或多个微处理器核心,其中所述配置接口进一步被配置为基于从所述处理器子系统接收的第二数据信号向所述一个或多个硬逻辑模块提供所述配置信号。
12.根据权利要求10所述的集成器件,进一步包括设置在所述硬逻辑部分中的调试接口,其中所述调试接口被配置为基于在外部存储器中存储的测试数据在包括所述一个或多个硬逻辑模块的数据路径中插入和提取测试信号,并且其中所述外部存储器由在所述FPGA构造中实施的存储器控制器进行访问。
13.一种用于在集成器件中的硬逻辑部分和FPGA构造之间进行对接的方法,所述方法包括:使用所述FPGA构造中的控制逻辑从存储器获取数据路径配置数据; 基于所述数据路径配置数据利用所述控制逻辑对所述硬逻辑部分和所述FPGA构造之间的接口进行配置,其中所述配置确定数据路径中是否包括所述硬逻辑部分中的一个或多个硬逻辑模块以及所述FPGA构造中的一个或多个软逻辑模组;以及 基于所述接口配置利用所述接口将所述硬逻辑部分中的节点耦合至所述一个或多个软逻辑模组中的第一软逻辑模组和所述一个或多个硬逻辑模块中的第一硬逻辑模块之一。
14.根据权利要求13所述的方法,进一步包括: 从所述数据路径配置数据确定是否要单独使用所述第一硬逻辑模块;以及响应于确定要单独使用所述第一硬逻辑模块,对所述接口进行配置以将所述硬逻辑部分中的节点耦合至所述第一硬逻辑模块的输出,其中所述第一软逻辑模组的输出从所述数据路径断开连接。
15.根据权利要求13所述的方法,进一步包括: 从所述数据路径配置数据确定是否要单独使用所述第一软逻辑模组; 响应于确定要单独使用所述第一软逻辑模组,对所述接口进行配置以将所述硬逻辑部分中的节点耦合至所述第一软逻辑模组的输出;以及将所述第一硬逻辑模块断电。
16.根据权利要求13的方法,进一步包括:
从所述数据路径配置数据确定是否要一起使用所述第一硬逻辑模块和所述第一软逻辑模组;以及
响应于确定要一起使用所述第一硬逻辑模块和所述第一软逻辑模组,对所述接口进行配置以将所述硬逻辑部分中的节点耦合至对所述第一硬逻辑模块的输出和所述第一软逻辑模组的输出进行合并的电路装置。
17.根据权利要求13所述的方法,进一步包括: 使用第一可配置延迟线路对所述第一硬逻辑模块的输出进行延迟,其中所述输出与所述FPGA构造的相对吞吐量速度成比例地进行延迟;以及 使用第二可配置延迟线路对所述第一软逻辑模组的输出进行延迟,其中所述输出与所述第一硬逻辑模块的相对吞吐量速度成比例地进行延迟。
18.根据权利要求13所述的方法,进一步包括: 利用所述硬逻辑部分中的配置接口从处理器子系统和在所述FPGA构造中实施的配置逻辑之一接收配置数据;以及 基于所述配置数据利用所述配置接口向所述一个或多个硬逻辑模块提供多个配置信号。
19.根据权利要求13所述的方法,进一步包括: 使用在所述FPGA构造中实施的存储器控制器利用所述硬逻辑部分中的调试接口从外部存储器接收测试数据; 利用所述调试接口在所述硬逻辑部分中的第一探测点处插入所述测试数据; 利用所述调试接口在所述硬逻辑部分中的第二探测点处提取调试数据;以及 使用所述存储器控制器将所提取的调试数据存储在所述外部存储器中。
20.根据权利要求13所述的方法,其中所述接口包括多个可用互连,所述方法进一步包括: 基于所述数据路径配置数据确定所述硬逻辑部分中的一个或多个数据路径节点是否要连接至所述FPGA构造;以及 基于所述确定选择性地将所述多个可用互连耦合至所述硬逻辑部分中的所述一个或多个数据路径节点。
【文档编号】G06F13/16GK103534692SQ201280023566
【公开日】2014年1月22日 申请日期:2012年5月17日 优先权日:2011年5月17日
【发明者】M·菲顿, K·德哈诺亚, B·T·科普, K·马克斯, 徐磊 申请人:阿尔特拉公司