首页> 中国专利> 对接混合集成器件中的硬逻辑和软逻辑的系统和方法

对接混合集成器件中的硬逻辑和软逻辑的系统和方法

摘要

本发明公开了用于在集成器件上实施的硬逻辑元件和软逻辑元件之间进行对接的系统和方法。特别地,提供了一种可配置接口,其包括硬逻辑和软逻辑之间的互连,这使得信号能够有选择地在硬逻辑模块和软逻辑模组的输入和输出之间进行路由。该互连允许为了支持软逻辑功能而绕过某些硬逻辑模块。此外,该互连通过例如向硬逻辑模块提供附加信号而允许软逻辑对硬逻辑模块的处理进行扩充。

著录项

  • 公开/公告号CN103534692A

    专利类型发明专利

  • 公开/公告日2014-01-22

    原文格式PDF

  • 申请/专利权人 阿尔特拉公司;

    申请/专利号CN201280023566.5

  • 申请日2012-05-17

  • 分类号G06F13/14;G06F13/16;G11C7/10;H03K19/173;

  • 代理机构北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 美国加利福尼亚

  • 入库时间 2024-02-19 23:28:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-19

    授权

    授权

  • 2014-02-26

    实质审查的生效 IPC(主分类):G06F13/14 申请日:20120517

    实质审查的生效

  • 2014-01-22

    公开

    公开

说明书

相关申请的交叉引用

这里要求于2011年5月17日提交的共同未决的同一受让人的 美国临时专利申请号61/487046的权益和优先权,其因此通过引用全 文结合于此。

背景技术

可编程设备是公知的。通常,诸如现场可编程门阵列(FPGA) 的可编程设备包含多个软逻辑元件,它们可被配置为实施定制功能 的逻辑模块。FPGA为想要实施其自己的功能模组的顾客提供了低成 本且灵活的解决方案。然而,与诸如应用特定集成电路(ASIC)的 硬逻辑解决方案相比,FPGA通常运行较慢,并且需要更多功率以及 更大的面积。另一方面,ASIC是不可编程的并且因此对于想要在构 造之后对硬件进行定制的顾客所提供的灵活性较少。

由此,已经出现了包括硬逻辑和软逻辑的混合设备。硬逻辑通 常实施可能在各种应用中使用的标准功能模块,而软逻辑则实现定 制的功能。然而,这些设备在功能和灵活性方面是有限的。特别地, 硬逻辑模块经常以串行方式进行操作,并且没有机会为了支持软逻 辑而绕过个体模块。此外,硬逻辑模块很大程度上分离操作,从而 个体硬逻辑模块的内部功能不能利用软逻辑特征进行扩充。因此, 这些混合设备仍然要求顾客在需要软逻辑所提供的灵活性时放弃硬 逻辑的速度和低功率优势。

发明内容

本发明涉及用于在混合集成器件上所实施的硬逻辑元件和软 逻辑元件之间进行对接的系统和方法。特别地,在硬逻辑和软逻辑 之间提供可配置的互连,其使得信号能够在硬逻辑模块和软逻辑模 组的输入和输出之间进行路由。该互连允许为了实现软逻辑功能而 绕过某些硬逻辑模块。此外,该互连例如通过向该硬逻辑模块提供 附加信号而允许软逻辑对硬逻辑模块的处理进行扩充。

依据本发明的实施例,提供了一种集成器件,其具有硬逻辑部 分、现场可编程门阵列(FPGA)构造,以及被配置为在该硬逻辑部 分和FPGA构造之间路由信号的接口。该硬逻辑部分包括多个串行 连接的硬逻辑模块,而该FPGA构造包括控制逻辑和多个软逻辑模 组。该接口可以响应于来自该控制逻辑的控制信号而被配置为有选 择地将该硬逻辑部分中的节点(例如,硬逻辑数据路径中的节点) 连接至该软逻辑模组之一或该硬逻辑模块之一。

依据本发明另外的实施例,该第一节点可以是针对第二硬逻辑 模块的输入。因此,该接口可以包括在该硬逻辑部分中设置于该两 个硬逻辑模块之间的多路复用器。该多路复用器可以被配置为在该 控制信号具有第一值(即,比特值1或0)时向该第二硬逻辑模块的 该输入提供该软逻辑模组的输出,并且在该控制信号具有第二值时 向该第二硬逻辑模块提供该第一硬逻辑模块的输出。

该软逻辑模组可以被配置为从该第一硬逻辑模块或该数据路 径中的上游的另一模块接收输入信号。在一些方法中,该软逻辑模 组和该第一硬逻辑模块都被配置为接收相同的输入信号。此外,该 控制逻辑可以被配置为当通过该多路复用器选择该软逻辑模组的该 输出用来输出时关闭该第一硬逻辑模块。

在一些实施例中,该接口包括设置在该硬逻辑部分中的合并器 电路以及多个多路复用器。第一多路复用器可以被配置为基于该控 制信号向该合并器电路提供数据信号(例如,由该第一硬逻辑模块 所提供)或者零值。类似地,第二多路复用器可以被配置为基于该 控制信号向该合并器电路提供第二数据信号(例如,由该软逻辑模 组所提供)和零值。该合并器电路可以被配置为将该两个多路复用 器所提供的该信号进行合并并且在该硬逻辑部分中的前述节点处输 出该经合并的信号。

在一种方法中,该控制逻辑可以(例如,基于所存储的配置数 据)确定要单独使用的该第一硬逻辑模块。因此,该控制逻辑可以 对该第一多路复用器进行配置以向该合并器电路提供该第一硬逻辑 模块所提供的该数据信号。与此同时,该控制逻辑可以对该第二多 路复用器进行配置以向该合并器电路提供该零值。进而,该合并器 电路可以被配置为将该数据信号与该零值进行合并,由此有效输出 由该第一硬逻辑模块所提供的原始的数据信号。

在另一种方法中,该控制逻辑可以(例如,基于所存储的配置 数据)确定要单独使用的该第一软逻辑模组。因此,该控制逻辑可 以对第一多路复用器进行配置以向合并器电路提供零值,同时对该 第二多路复用器进行配置以向合并器电路提供该第二数据信号(例 如,由该软逻辑模组所提供)。该合并器电路可以被配置为将该第 二数据信号与该零值进行合并,由此有效地输出由该软逻辑模组所 提供的原始的第二数据信号。

在又一种方法中,该控制逻辑可以(例如,基于所存储的配置 数据)确定要一起使用的该第一硬逻辑模块和该第一软逻辑模组。 因此,该控制逻辑可以对该第一多路复用器和该第二多路复用器进 行配置以分别向该合并器电路提供该第一数据信号和该第二数据信 号。该合并器电路可以被配置为将该两个数据信号进行合并用来输 出(例如,利用逻辑加法运算)。

在一些实施例中,该接口包括设置在该硬逻辑部分之中的一个 或多个可配置延迟线路。第一可配置延迟线路可以被配置为延迟输 入信号并且向该软逻辑模组提供该经延迟的输入信号。第二可配置 延迟线路可以被配置为延迟第三多路复用器的输出信号,并且向第 四和第五多路复用器提供该经延迟的输出信号。在该情形中,该第 三多路复用器可以被配置为基于该控制信号向该第二可配置延迟线 路提供该第一数据信号或该第二数据信号。此外,该第四多路复用 器可以被配置为基于延迟控制信号向第一多路复用器提供该第一数 据信号或该经延迟的输出信号,而该第五多路复用器被配置为基于 该延迟控制信号向该第二多路复用器提供该第二数据信号或该经延 迟的输出信号。

在一些实施例中,该集成器件包括具有一个或多个微处理器核 心的处理器子系统。配置接口可以被设置在该硬逻辑部分之中并且 耦合至每个该硬逻辑模块。该配置接口可以被配置为基于从该FPGA 构造和/或该处理器子系统中的配置逻辑所接收的参数而向该硬逻辑 模块提供配置信号。

在一些实施例中,该集成器件包括设置在该硬逻辑部分中的调 试接口。该调试接口可以被配置为基于外部存储器中所存储的测试 数据而在包含该硬逻辑模块的数据路径中的某些探测点插入和提取 测试信号。该外部存储器可以由在该FPGA构造或该处理器子系统 中实施的存储器控制器进行访问。

还提供了对以上所描述的集成器件进行配置和操作的方法。

附图说明

通过结合附图考虑以下详细描述,本发明进一步的特征及其属 性和各种优点将会是显而易见的,附图中同样的附图标记始终指代 同样的部分,其中:

图1描绘了根据本发明的示范性实施例的具有硬逻辑部分和 FPGA构造的示范性混合设备;

图2描绘了根据本发明的示范性实施例的混合设备的主要功 能模块;

图3描绘了根据本发明的示范性实施例的被配置为以软逻辑 模组替换硬逻辑模块的混合设备的示例性实施方式;

图4描绘了根据本发明的示范性实施例的被配置为测试一个 或多个硬逻辑模块的混合设备的示例性实施方式;

图5描绘了根据本发明的示范性实施例的将硬逻辑耦合至软 逻辑的可配置互连的示例性实施方式;

图6描绘了根据本发明的示范性实施例的使得能够向硬逻辑 数据路径中插入软逻辑模组的可配置互连的示例性实施方式;

图7描绘了根据本发明的示范性实施例的使得能够扩充和/或 替换硬逻辑模块的可配置互连的示例性实施方式;

图8是根据本发明的示范性实施例的使用接口连接硬逻辑和 软逻辑时所执行的示范性步骤的流程图;以及

图9是根据本发明的示范性实施例的在对硬逻辑和软逻辑之 间的接口进行配置时所执行的示范性步骤的流程图。

具体实施方式

这里描述了用于在混合集成器件中的硬逻辑和软逻辑之间进 行对接的系统和方法。特别地,在硬逻辑和软逻辑之间提供可配置 的互连,其使得信号能够在硬逻辑模块和软逻辑模组的输入和输出 之间进行路由。该互连允许为了支持软逻辑功能而绕过某些硬逻辑 模块。此外,该互连例如通过向硬逻辑模块提供附加信号而允许软 逻辑对硬逻辑模块的处理进行扩充,例如用于与现有信号进行合并。 该混合设备可以是单个集成芯片,或者在其它实施例中,其可以是 两个或更多芯片的非单片集成形式(例如,相同封装中的两个模具)。

图1示出了示范性的混合设备100,其包括硬逻辑、软逻辑、 微处理器子系统以及依据本发明一些实施例的接口电路。该硬逻辑 包括接口110、存储器控制器112以及硬逻辑部分114和116。接口 110包含用于通过串化解串器(SERDES)电路142与外部组件(例 如,天线接口)进行对接的硬逻辑元件。存储器控制器112包含用 于控制通过接口140对外部存储器进行的访问(即,读取和写入) 的硬逻辑元件。硬逻辑部分114和116包含用于对输入信号进行处 理的硬逻辑元件—它们可以整合为硬逻辑模块。例如,硬逻辑部分 114和116可以实施收发器功能,诸如波峰因数缩小、数字预失真、 均衡化、滤波和/或模数转换接口。硬逻辑可以通过SERDES电路142 与例如数据转换器的外部组件进行对接。

软逻辑包括FPGA构造120,其具有用于对输入信号进行处理 的多个可编程逻辑要素—它们可以被整合为软逻辑模组。FPGA构造 120也可以实施收发器功能,其所增加的好处在于这些功能是顾客可 编程的。这些定制软逻辑模组在图1中由框122所表示。在一些情 况下,软逻辑模组可以被用来替换以硬逻辑部分114和116所实施 的功能。在其它情况下,软逻辑模组可以被用来向以硬逻辑部分114 和116所实施的功能中产生输入。FPGA构造120可以通过可定制互 连150与硬逻辑部分114和116进行对接。如以下将进一步解释的, 互连150可以由FPGA中的(即,在FPGA构造120中实施的)控 制电路进行配置以绕过某些硬逻辑模块或者向一个或多个硬逻辑模 块提供来自软逻辑的输入,或反之亦然。

微处理器子系统130包括一个或多个处理器核心,例如核心 132和134。例如,微处理器子系统130可以是具有双核处理器的片 上系统(SoC)。微处理器子系统130可以与该设备的其它部分进行 对接,或者使用处理器子系统IO144与外部组件进行对接。

应当理解的是,设备100的结构仅是示例性的,并且可以使用 任意适当的架构来实施既具有硬逻辑也具有软逻辑的混合设备。应 当进一步理解的是,硬逻辑部分包含硬逻辑模块,其实施针对并不 要求定制(也被称之为“差别化”)的功能实现了非常低功率的解 决方案的功能—例如,应用特定标准产品(ASSP)功能。然而,当 需要灵活性和差别化时,可配置互连(例如,到硬逻辑和微处理器 子系统之中的高带宽连接)使得硬逻辑能够与FPGA构造进行对接。 因此,硬逻辑、软逻辑和可配置互连的合并提供了有成本效益、功 率高效且灵活的解决方案。

在一个实施例中,硬逻辑部分114和116使用允许以491Mhz 的频率进行操作的28nm几何处理来实施。每个互连可以使得数据宽 度总线接口翻倍,这允许数据在硬逻辑模块的链中所识别的点往来 于FPGA构造120进行传输。如以上所讨论的,FPGA构造能够被用 来实施差别化功能或者对硬逻辑部分所提供的当前功能进行扩展。 在一个实施例中,FPGA构造120使用能够以每个时钟周期一个样本 支持高达245Msps的28nm低功率处理来实施。例如,能够使用超 样本速率实施方式来支持更高的样本速率。当然,以上频率仅是示 例性的,并且这里所描述的技术能够结合以更低或更高频率进行操 作的设备来使用。此外,应当理解的是,硬逻辑部分和软逻辑部分 可以以相同频率或不同频率进行操作。

图2描绘了依据本发明一些实施例的混合设备的主要功能模 块。特别地,图2示出了示范性的混合设备200,其可以基本上类似 于图1的设备100。如所示出的,设备200包括硬逻辑202、FPGA 构造204和微处理器子系统206,它们分别可以基本上类似于图1 的硬逻辑部分114和/或116、FPGA构造120和微处理器子系统130。 在一个实施例中,设备200通过在FPGA构造204的软逻辑内实施 的直接存储器访问(DMA)控制器294而与例如双倍数据速率(DDR) 存储器的外部存储器208进行对接。

硬逻辑202实施任意数量的功能。在收发器环境中,硬逻辑 202可以实施各种标准数字无线电功能。作为示例,图2示出了可以 包括在传送器前端之中的硬逻辑模块。特别地,硬逻辑202可以包 括网络接口(例如,通用公共无线接口(CPRI)或千兆以太网(GbE)) 模块212、数字上变频器(DUC)模块214、波峰因数缩小(CFR) 模块216、数字预失真(DPD)模块218、均衡器模块220、IQ不平 衡校正模块222和/或数模转换(DAC)接口224。硬逻辑202还可 以包括DPD反馈(FB)模数转换(ADC)接口226、FB前端228、 配置接口230和/或调试接口250。

如所示出的,模块212-224可以互相串行连接,其中一个模块 的输出连接至下一模块的输入。应当理解的是,模块212-224仅是示 例性的,并且在一些实施例中,可能缺少模块212-224中的一个或多 个和/或可能包括一个或多个其它功能模块(未描绘)。此外,模块 212-224的顺序仅是示例性的,并且应当理解的是,模块212-224可 以任意适当顺序进行排列。在一些实施例中,可以在硬逻辑202中 实施功能模块的附加并行路径。因此,硬逻辑202可以包括任意数 量的以任意适当顺序所连接的硬逻辑模块的串行链(例如,用来执 行接收器或传送器前端的功能)。

硬逻辑202可以包括配置接口230,其使得FPGA构造204和 /或微处理器子系统206中的控制逻辑能够向硬逻辑模块212-224提 供配置信号。特别地,在一个实施例中,配置接口230提供统一存 储器映射配置总线,如所示出的,其能够通过互连246连接至FPGA 构造204和/或微处理器子系统206。配置接口230因此从FPGA或 微处理器子系统接收信号,并且进而生成分别经由连接232-244而被 提供至每个模块212-224的配置信号。应当理解的是,配置接口230 可以是任意适当类型的统一接口,并且在一些实施例中,可以不是 存储器映射的。

在一些实施例中,配置接口230由FPGA构造中所实施的软处 理器和/或状态机进行控制。配置接口还支持从例如微处理器子系统 206的外部处理器进行配置。软逻辑或微处理器可以向硬逻辑中的存 储器映射配置接口提供配置信号,其进而可以对相关硬逻辑模块进 行配置。在一个实施例中,存储器映射接口包括例如以245MHz进 行操作的32位端口(例如,互连246)。

硬逻辑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比特流 进行配置,或者在运行期间进行动态配置。

再次参考图2,软逻辑204实施任意数量的可编程功能。作为 示例,图2示出了可以被包括以支持收发器前端的软逻辑模组。特 别地,软逻辑204可以包括捕捉缓冲器290、数字预失真(DPD)适 配模块292以及读/写直接存储器访问(DMA)控制器294。如所示 出的,软逻辑模块290-294可以彼此连接,或者处于任意其它的适当 配置形式。还应当理解的是,模块290-294仅是示例性的,并且在一 些实施中,可以缺少模块290-294中的一个或多个和/或可以实施一 个或多个其它软模块(未描绘)。总体而言,软逻辑204可以包括 以任意适当顺序互相连接和/或连接至硬逻辑202的硬逻辑模块的软 逻辑模组的任意数量的串行或并行链(例如,用来执行接收器或传 送器前端的功能)。

设备200还包括用于将硬逻辑202耦合至FPGA构造204的可 配置互连。如图2所示,可以提供互连270-282,每个该互连被设置 在两个顺序的硬逻辑模块之间的点。该布置允许数据信号从硬逻辑 模块的链中的任意第一点路由至FPGA构造中的可编程逻辑,并且 被送回硬逻辑模块的链中的任意第二点。可替换地,互连270-282 中的一个或多个可以被设置在一个硬逻辑模块内的点。该布置允许 数据信号从特定硬逻辑模块中的任意第一点被路由至FPGA构造中 的可编程逻辑,并且被送回相同或另一硬逻辑模块内的任意第二点。 当然,这些布置的合并也是可能的,即互连可以允许从硬逻辑点的 链中的任意第一点(无论其处于模块内还是链中的节点处)被路由 至任意其它点。因此,该路由特征实现了硬逻辑绕行、硬逻辑扩充 以及逻辑功能的增加。

硬逻辑绕行通过在一个或多个硬逻辑模块周围对信号进行路 由来实施,在一些情况下,以FPGA构造中的定制版本替代被绕过 的硬逻辑模块。例如,如果不需要模块216的功能,则可以将互连 272配置为将数据信号从模块214的输出路由至FPGA构造204,该 信号在那里可以被直接送至互连274,该互连274可以被配置为将该 数据信号路由至模块218的输入。作为另一个示例,如果模块216 的功能要被软逻辑模组所替代,则互连272可以被配置为将数据信 号从模块214的输出路由至FPGA构造204,该信号可以在那里被软 逻辑模组进行处理并且被输出至互连274,该互连274可以被配置为 将该数据信号路由至模块218的输入。以下结合图3和7对使用可 配置互连绕过和/或替换硬逻辑模块进行更为详细的讨论。

硬逻辑扩充通过将信号从FPGA构造204中的软逻辑模块路由 至硬逻辑模块(或硬逻辑模块内的逻辑元件)的输入而实施。特别 地,硬逻辑模块可以接受多个输入进行处理,并且那些输入之一可 以由软逻辑来提供,因此对硬逻辑模块的功能进行扩充。由软逻辑 所提供的信号可以或不能从硬逻辑路径中的数据信号所得出。例如, 互连274可以将输入信号从FPGA构造204提供至可以被配置为接 受多个输入的预失真模块218中。该输入信号可以由生成新信号的 软逻辑模块所产生,或者由对例如从硬逻辑链中的另一点处的互连 所接收的信号进行处理的软逻辑模块所产生。

逻辑功能的增加通过将信号从硬逻辑链中的点路由至FPGA 构造中的软逻辑模组并且送回硬逻辑链中的相同点而实现。因此, 软逻辑模块被“插入”到硬逻辑路径之中。例如,可以通过对互连 272进行配置以将信号从模块214的输出路由至FPGA构造204中所 实施的软逻辑模块,该信号在上述软逻辑模块处被处理并路由返回 至模块216的输入,而在模块214和216之间插入附加逻辑模块。 以下结合图3、6和7对硬逻辑扩充和逻辑功能的增加进行更为详细 的讨论。

如以上所讨论以及在图2中所描绘的,互连270-282中的每一 个可以被设置在两个顺序的硬逻辑模块之间的点。更一般地,互连 可以被连接至硬逻辑数据路径中(例如,硬逻辑模块之间和/或那些 模块之内)的任意数量的节点。然而,应当理解的是,这种布置本 质上是概念性的。具体地,节点的数量可以大于可用互连的数量。 例如,在带宽受限的系统中可能是这种情况。因此,可以使用选择 电路(例如,一个或多个多路复用器)将可用互连有选择地连接至 硬逻辑数据路径中的节点。根据配置数据,该选择电路可以被配置 为将特定节点与可用互连相连接(例如,通过FPGA中的控制逻辑、 微处理器子系统,或者在设备上电时通过FPGA比特流)。以这种 方式,可以基于配置数据将有限数量的互连连接至硬逻辑数据路径 中的任意节点。

图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无效(或者防止或最小化该模块的功 耗)的配置信号。

图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与存储器进行对接。

以上述的方式使用互连428、调试接口430和连接420-426允 许从存储器406获取测试数据并在任意预定探测点将其插入硬逻辑 数据路径之中。与此同时,可以在任意预定探测点提取数据并存储 在存储器406中。测试数据在不同探测点的插入和收集可以帮助对 硬逻辑402的硬逻辑模块进行测试和调试。应当理解的是,也可以 在当软逻辑替代或扩充任意硬逻辑模块时使用该调试特征。例如, 图3和图4中所描绘的互连可以如相应附图所示出和以上所描述的 同时进行配置。以这种方式,调试接口430也可以被用来测试硬逻 辑模块与软逻辑模组的集成。

图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构 造之间达到平衡。

图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 接收未经处理的信号。

应当理解的是,图6是简化的图示,并且其它适当的组件可以 提供附加的功能。例如,可以实施结合图5所描述的串行化器和并 行化器电路以对FPGA构造中的吞吐量信息进行补偿。此外,如图7 所示,图6的电路可以利用使得能够对硬逻辑模块进行扩充和/或替 换的附加电路进行扩充。

图7描绘了依据本发明一些实施例的使得能够对硬逻辑模块 进行扩充和/或替换的可配置互连的示例性实施方式。特别地,图7 示出了硬逻辑部分702和FPGA构造704。硬逻辑部分702可以包括 硬逻辑模块710、多路复用器720-728、合并器730以及可配置延迟 线路740和742。FPGA构造704可以包括软逻辑模组712。如将要 描述的,所描绘的组件布置允许硬逻辑模块710被软逻辑模组712 所替代,或者用于使用软逻辑模组712对硬逻辑进行扩充。在后者 的方法中,延迟电路确保了对硬逻辑和软逻辑组件之间的处理速度 的任何不匹配进行补偿。

当仅需要硬逻辑模块710所提供的功能时,多路复用器 720-728可以被配置为将硬逻辑模块710的输出直接送至合并器 730,其随后可以输出如所接收的信号。特别地,模块710所输出的 数据信号被直接提供至多路复用器722,其被配置为将该数据信号送 至多路复用器726。多路复用器726同样被配置为将该数据信号送至 合并器730,其将多路复用器728所输出的零值合并(例如,相加) 至该数据信号。在一些方法中,可能希望在硬逻辑模块710所输出 的数据信号被合并器730输出之前对其进行延迟。在这种情况下, 多路复用器722被配置为令延迟线路742所输出的数据信号通过, 该延迟线路742被设置为提供所期望数量的延迟。延迟线路742通 过多路复用器720从硬逻辑模块710接收数据信号,该多路复用器 720被配置为令其从逻辑模块710所接收的数据信号通过。

当软逻辑模组712要替代硬逻辑模块710时,多路复用器 720-728可以被配置为将软逻辑模组712的输出直接送至合并器 730,其随后可以输出如所接收的信号。特别地,由软逻辑模组712 所输出的数据信号被直接向多路复用器724提供,其被配置为将该 数据信号送至多路复用器728。多路复用器728同样被配置为将该数 据信号送至合并器730,其将多路复用器726所输出的零值合并(例 如,相加)至该数据信号。在一些方法中,可能期望在由软逻辑模 组712所输出的数据信号被合并器730输出之前对其进行延迟。在 这种情况下,多路复用器724被配置为令延迟线路742所输出的数 据信号通过,该延迟线路742被设置为提供所期望数量的延迟。延 迟线路742通过多路复用器720从软逻辑模组712接收数据信号, 该多路复用器720被配置为令其从软逻辑模组712所接收的数据信 号通过。

当硬逻辑模块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。

应当理解的是,图7的布置仅是示范性的,并且可以按照需要 去除或增加一个或多个组件。例如,多路复用器720、722和724和 延迟线路742可以被去除,而延迟线路740可以被用来在信号被模 组712接收之前对其进行延迟。选替地或附加地,延迟线路740可 以被一起去除。合并器电路730可以是加法器,或者适于合并两个 或更多信号的任何其它电路。此外,图7可以整合结合图5和6所 示出和所描述的任何组件。

图8示出了用于使用接口连接硬逻辑和软逻辑的说明性处理 800。在步骤802,数据路径配置数据可以被例如FPGA构造中的控 制逻辑所接收。该数据路径配置数据可以存储在外部存储器(例如, 图2的存储器208)中并且由FPGA构造中的存储器访问设备(例如, 图2中的DMA294)所获取。在步骤804,控制逻辑可以基于所获 取的配置数据而对硬逻辑部分和FPGA构造之间的接口进行配置。 例如,如以上所解释的,控制逻辑可以对任何互连270-282进行配置 以绕过硬逻辑模块,利用软逻辑模组替代硬逻辑模块,将软逻辑模 组插入数据路径之中,或者通过路由来自软逻辑的信号而扩充硬逻 辑。因此,控制逻辑可以对结合图5-7所描绘和所讨论的任何组件进 行配置。特别地,控制逻辑可以对一个或多个多路复用器、串行化 器或并行化器电路和/或延迟线路进行配置。在其它实施例中,除了 控制逻辑之外或者作为其替代,处理器子系统可以对这些组件进行 配置。例如,处理器子系统可以基于所获取的配置数据对硬逻辑部 分和FPGA构造之间的接口进行配置。

在步骤806,该接口可以基于配置将硬逻辑数据路径中的节点 (例如,两个硬逻辑模块之间或者处于硬逻辑模块之内)连接至软 逻辑模组或硬逻辑模块。例如,参考图6,该接口可以根据配置而将 逻辑模块612的输入连接至硬逻辑模块610或软逻辑模组614的输 出。作为另一个示例,参考图7,模块710和模组712之一或其二者 可以被连接至合并器730。在任一种情况下,配置数据被控制逻辑和 /或处理器子系统用来按照需要对多路复用器和/或延迟线路进行配 置。

图9示出了用于对硬逻辑和软逻辑之间的接口进行配置的示 范性处理900。处理900可以(例如,由控制逻辑和/或处理器子系 统)作为图8的步骤804的部分来执行。在步骤902,从数据路径配 置数据确定数据路径配置。也就是说,控制逻辑和/或处理器子系统 从存储器读取数据并且确定哪个互连要进行配置以及它们要被如何 配置。特别地,可以针对硬逻辑链的每个硬逻辑模块执行步骤 904-914。在步骤904,控制逻辑和/或处理器子系统确定是否要单独 使用给定硬逻辑模块,即并不被软逻辑模组所扩充或替代。如果是, 则该处理进行至步骤906,其中接口(例如,互连、多路复用器和/ 或延迟线路)被配置成将硬逻辑模块连接至数据路径。在步骤908, 控制逻辑和/或处理器子系统确定是否要单独使用给定软逻辑模组, 即替代硬逻辑模块。如果是,则该处理继续至步骤910,其中接口(例 如,互连、多路复用器和/或延迟线路)被配置成将软逻辑模组替代 硬逻辑模块连接至数据路径。最后,在步骤912,控制逻辑和/或处 理器子系统确定给定硬逻辑模块是否要结合软逻辑模组使用。如果 是,则该处理继续至步骤914,其中接口(例如,互连、多路复用器 和/或延迟线路)被配置成将硬逻辑模块连接至软逻辑模组。例如, 通过将每个模块的输出连接至合并器电路。

在实践中,处理800和900中所示出的一个或多个步骤可以与 其它步骤进行合并,以任意适当的顺序执行,并行(例如,同时或 实质上同时)执行,或者被去除。例如,除非其另外有所确定,否 则控制逻辑和/或处理器子系统可以缺省地连接所有硬逻辑模块。因 此,步骤904和906可以被去除,并且硬逻辑模块可以仅响应于从 配置数据确定需要这样的配置才被替换或扩充。在一些实施例中, 接口(例如,互连、多路复用器和/或延迟线路)在设备上电时通过 FPGA比特流进行配置。例如,多路复用器可以被作为FPGA配置例 程的部分而使用存储在配置存储器(CRAM)中的数据进行配置。 最后,处理800和/或900可以以任何适当方式使用硬件和/或软件的 任何适当合并来实施。例如,如以上所讨论的,FPGA构造中的控制 逻辑和处理器子系统之一或其二者可以对各种硬逻辑模块、软逻辑 模组和接口连接进行配置。在接口在设备上电时通过FPGA比特流 (例如,使用CRAM)进行配置的实施例中,控制逻辑和处理器子 系统可以或不能另外对接口进行动态配置。

以上所描述的本发明实施例时出于说明而非限制的目的所给 出,并且本发明仅被以下权利要求所限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号