现场可编程门阵列(fpga)的容错系统内编程的制作方法

文档序号:6570810阅读:114来源:国知局
专利名称:现场可编程门阵列(fpga)的容错系统内编程的制作方法
技术领域
本发明涉及一种对可编程器件如现场可编程门阵列进行编程的技术。
背景技术
某些电子系统包括一个或多个可编程器件,如现场可编程门阵列 (FPGA)。典型FPGA包括半导体器件,该半导体器件具有多个由可配置 逻辑块形成的可编程电路,这些逻辑块能够被设置,以生成不同逻辑关系。 在电子系统内使用FPGA提供了重新配置一个或多个逻辑块来改变 FPGA、由此改变该电子系统操作的能力。例如,重新配置FPGA的能力 提供了以下机会定位在电子系统制造和分发后发现的缺陷(如"故障")。 而且,FPGA的可重新配置特性允许重新编程,以便向电子系统添加新特 征和能力。
虽然对于FPGA重新编程目前存在容错方法,但是这种方法缺乏简 易性,且需要附加的外部部件。例如, 一种技术要求使用多个外部存储器 存储元件,并且只有当验证过程成功时才选择性地对其中一个存储元件编 程以供使用。另一种技术用于实现本地CPU(中央处理单元),该本地CPU
4能够接收编程数据,并且在把编程数据转发给FPGA或FPGA关联的存储 器存储元件之前验证这种编程数据。另一种一般用于为现场可编程器件提 供代码更新的方法需要使用现场更换存储元件。为了为这些器件更新操作 码,必须使设备停止服务,以更换存储元件。另一种技术需要物理连接到 外部编程设备,以便向现场可编程存储元件提供更新。该手动方法需要监 督,因为编程过程中间发生的电源中断将造成可编程器件从存储器存储元 件读取不正确数据。
因而,需要一种为系统内的可编程器件提供容错编程且克服先有技术 上述缺点的技术。

发明内容
简而言之,根据本发明原理的优选实施例,提供一种对可编程器件例 如但不限于FPGA进行编程的技术。该技术开始于通过边界扫描接口来査 询可编程器件以识别该器件。然后,利用与器件身份标识对应的至少一个 程序对该器件进行编程。然后,进行编程验证。


图1描述了包含可编程器件的系统的示意框图,根据本发明原理的说 明性实施例,通过主控制器对该可编程器件进行编程;以及
图2描述了根据本发明原理对图1的可编程器件进行编程的方法的步 骤流程图。
具体实施方式
如以下更详细讨论的,根据本发明原理,提供一种以自动方式通过边 界扫描接口对可编程器件如FPGA进行容错编程的技术。实际上,存在两
种对FPGA重新编程的方法, 一种是临时的,另一种是永久的。虽然以下
描述的本发明原理的技术可适用于临时编程和永久编程,但是以下描述集
中于FPGA的永久编程。FPGA—般包括存储元件,用于存储描述其行为 的定制程序。该存储元件可位于FPGA内,或者可位于外部。如下所述, 本发明原理的技术能够对该存储元件进行永久编程,使得FPGA能够在随 后的上电状态期间读取存储元件中存储的新程序。
通过参考图1可以最佳地理解本发明原理的编程技术,图1包括系统 10,该系统10包括至少一个,并且优选地包括多个执行各种信号处理功 能的模块12,-12n。例如,这些模块中的一个或多个模块能够处理视频、音 频、时间码和辅助信息中的一种或多种信息。至少一个模块如模块12p 具有至少一个可编程器件如FPGA 14,并且可以包括其它器件如存储元件 16,例如如上所述,该存储元件16可以经历根据本发明原理的编程。在 操作期间,FPGA14能够读存储元件16,以改变FPGA行为。
实际上,FPGA 14具有一个或多个可配置逻辑块(未示出),可以响 应于通过接口的FPGA的编程,对这些可配置逻辑块进行置位、然后复位。 过去,对模块12t上的FPGA 14进行容错编程典型地要求技术人员到系统 IO的位置,以得到模块的物理访问。技术人员常常需要专用设备来执行该 任务,使得这种重新编程成本高且费时。
利用本发明原理的技术,可以在没有手动介入的情况下对FPGA 14 进行容错编程,本发明原理的技术利用了电子系统10和主控制器20之间的边界扫描接口 18。为了理解边界扫描接口 18的特性,边界扫描测试技 术的简要论述将是有用的。如IEEE 1149.1联合测试行动组(JTAG)标准 (在此被引入作为参考)定义的边界扫描技术,提供一种无需访问每个电 路上单个管脚就可测试大规模集成电路(或互连电路组合)的机制。相反, 集成电路的一个或多个管脚(或两个或多个电路的管脚)连接到边界扫描 接口,该边界扫描接口提供一种将外部源的信号连接到这种管脚电路的机 制。连接到边界扫描接口的集成电路管脚在各自集成电路内具有关联的边 界扫描单元,这些边界扫描单元以串联链的形式连接,使得进入一个管脚 的信号通过该链接顺次移位,并通过另一个管脚移出。经由边界扫描接口 进入特定集成电路或互连电路组合中的给定信号将产生指示该电路或电 路组合的信号。
主控制器20承担在中央处理器(CPU) 22的控制下对模块12!上的 FPGA14进行编程(如果适当的话,也对其它模块上的其它可编程器件进 行编程)的工作。主控制器20的CPU 22能够通过网络接口 24接收命令 和程序信息。响应启动编程的命令,CPU 22将首先识别模块,然后将编 程提供给与模块标识对应的模块12p从而由那个模块上的FPGA 14或存 储元件16接收编程。例如,在模块识别之后,CPU22可以通过以下方式 实现这种编程首先对和主控制器20关联的FPGA 26编程,然后将该程 序复制到模块12i上的FPGA 14或存储元件16。其它模块上的其它可编程 器件可以经历相同方式的编程。主控制器20可以采用其它类型存储器来 实现该目的,而不利用主控制器20上的FPGA 26来存储随后将要传送给 模块如模块12,上的可编程器件如FPGA 14的编程信息。主控制器20对FPGA 14标识的识别涉及利用在制造时就指定给 FPGA 14的JTAG识别码。主控制器20利用FPGA的JTAG识别码和指定 I/O管脚来唯一识别模块的目标程序。该方法允许,使用相同类型FPGA (具有相同识别码的那些FPGA)的多个模块基于指定FPGA I/O管脚的 附加配置来获得不同程序。利用识别码和指定FPGA I/O管脚,主控制器 20能够正确识别目标程序,由此允许使用相同或不同类型FPGA的多个模 块与单个主控制器通信,以获得正确目标程序码。在多个模块的情况下, 模块典型地以一个或多个JTAG链的形式通过它们的边界扫描接口互连。
图2以流程图形式描述了图1的主控制器20所采用的对图1的模块 12p42n中的一个或多个模块上的可编程器件(如FPGA 14)进行编程的示 例方法的步骤。该方法始于图2的步骤100的执行,在步骤100主控制器 20初始化基于边界扫描的模块识别。为此,主控制器20典型地以包括多 个已知值的向量形式将信号送入图1的边界扫描接口 18中,使图1的模 块12,基于模块特性产生特定响应。然后,主控制器20分析该响应,如前 所述考虑JTAG识别码和指定的FPGA 1/0管脚。通过将信号送入模块、然 后分析响应,由此主控制器20用于査询模块以查明其身份标识。在步骤 100后,在图2的步骤102主控制器20确定它是否能够基于从模块收到的 响应来识别模块。如果图1的主控制器20不能成功识别模块,则重复步 骤100,直到成功识别模块为止。注意,模块如模块12,可以包含单个可编 程器件如FPGA14。因而,通过在步骤100启动对这种模块12t的查询,主 控制器可有效地査询可编程器件。
一旦成功识别模块,在步骤104主控制器20就将为对应的被识别模块检索一个或多个特定程序。实际上,图1的主控制器20典型地通过图1 的网络接口 24从外部源(未示出)检索对应模块特定的程序文件。作为
选择,主控制器20可以从本地存储器(未示出)检索对应模块特定的程
序文件。
在步骤104检索对应模块特定的程序文件之后,在步骤106主控制器 20初始化基于边界扫描的模块编程。为此,主控制器20通过图1的边界 扫描接口 18下载模块特定的程序文件,以便对给定模块中的FPGA 14内 的可编程逻辑块进行编程。(如果模块上的可编程器件以不同方式操作, 则主控制器20将下载模块特定的程序文件以对那个器件重新编程。)
在步骤108主控制器20检查编程是否已完成。如果没有完成,则程 序执行返回到步骤IOO及之后的步骤。返回到编程过程中的第一步(步骤 100)而不是重复步骤106,有利于使编程过程容错。 一旦在步骤108确定 编程没有完成就简单重复步骤106,可能造成最终执行的编程可能导致缺 陷的风险。相反, 一旦在步骤108确定编程没有完成就返回到步骤100、 由此重新开始编程过程,大大降低了编程缺陷的可能性。
在执行图2的步骤108后接着执行步骤110,在步骤110图1的主控 制器20初始化基于边界扫描的编程验证。在步骤112,主控制器20确定 编程验证是否己成功发生。如果没有,则重新执行步骤100及其后的步骤, 以便以和上述相同的方式保证容错。 一旦在步骤112成功进行编程验证, 则在步骤114图1的主控制器20结束基于边界扫描的模块识别和编程过 程。
以上描述了 一种不需要手动介入的、对可编程元件进行容错编程的技术。
9
权利要求
1.一种对至少一个可编程器件进行编程的方法,所述方法包括以下步骤(a)通过边界扫描接口查询所述至少一个可编程器件,以查明器件标识;(b)利用与所述器件标识对应的至少一个程序,通过所述边界扫描接口对所述器件进行编程;以及(c)验证是否已对所述可编程器件成功编程。
2. 根据权利要求1所述的方法,其中所述查询步骤包括以下步骤(d) 通过所述边界扫描接口将信号送入所述可编程器件,以使所述可编程器件产生响应;以及(e) 分析所述响应,以识别所述器件。
3. 根据权利要求2所述的方法,其中重复所述步骤(d)和(e),直到成功识别所述器件为止。
4. 根据权利要求1所述的方法,其中重复所述步骤(a)和(b),直到成功验证器件编程为止。
5. —种操作可编程器件、以实现器件重新编程的方法(a) —旦收到被送入所述器件中以查明器件标识的信号,就通过与所述器件关联的边界扫描接口产生响应信号;(b) 通过所述边界扫描接口接收具有与所述器件标识对应的至少一个程序的程序文件;以及(C)验证所述可编程器件是否己被成功编程。
6. —种对通过至少一个联合测试行动组(JTAG)链连接到主控制器的可编程器件进行编程的方法,所述方法包括以下步骤(a) 只通过所述联合测试行动组链中的边界扫描接口査询所述至少一个可编程器件,以査明器件标识;(b) 利用与所述器件标识对应的至少一个程序,通过所述边界扫描接口对所述器件编程;以及(c) 验证所述可编程器件是否已被成功编程。
7. 用于对可编程器件编程的设备,包括连接到所述可编程器件的边界扫描接口 ;用于通过所述边界扫描接口查询所述可编程器件、以査明器件标识的装置;用于利用与所述器件标识对应的至少一个程序、通过所述边界扫描接口对所述器件进行编程的装置;以及用于验证所述可编程器件是否己被成功编程的装置。
8. 根据权利要求7所述的设备,其中所述査询装置和所述验证装置共同包括中央处理单元。
9. 根据权利要求7所述的设备,其中所述编程装置包括可编程器件。
10. 根据权利要求8所述的设备,其中所述可编程器件包括现场可编程门阵列。
全文摘要
通过主控制器(20)对可编程器件(14)进行有利的容错编程,该主控制器(20)首先通过边界扫描接口(18)查询可编程器件,以识别该器件。然后,该主控制器(20)根据该器件身份标识选择程序文件,随后通过边界扫描接口下载该程序文件以便对可编程器件进行编程。然后,该主控制器(20)验证编程是否成功。
文档编号G06F17/50GK101529426SQ200680056131
公开日2009年9月9日 申请日期2006年11月21日 优先权日2006年10月16日
发明者兰德尔·G·雷东多, 托马斯·迈克尔·理查兹 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1