用于使用DMA来初始化PLD的方法、系统和集成电路技术方案

技术编号:2826849 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了用于使用直接存储器访问(DMA)来初始化可编程逻辑器件(PLD)的方法、系统和集成电路。其中该方法包括操纵PLD的控制线路以将该PLD配置为编程模式,以DMA速度从DMA控制器接收PLD编程数据,以及将PLD编程数据写入数据缓冲器。该方法还包括从数据缓冲器读取PLD编程数据,以及以PLD编程速度将PLD编程数据发送到PLD上的编程端口。

【技术实现步骤摘要】

本专利技术一般地涉及对可编程逻辑器件进行初始化,并且更特别地涉 及用于使用直接存储器访问来初始化可编程逻辑器件的方法、系统和计算机程序产品。
技术介绍
很多计算机/电子系统使用配置为执行应用特定(application specific)功能的可编程逻辑器件(PLD)。 PLD可以包括各种各样的可 编程逻辑器件,诸如可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)、 通用阵列逻辑(GAL)、复杂可编程逻辑器件(CPLD)、现场可编程门 阵列(FPGA)以及本领域已知的其他技术。很多PLD技术是现场可编 程的,诸如FPGA,并且这种器件在它们每次上电时可能都需要编程。 在每个断电/上电循环中都需要编程的PLD典型地称为易失性PLD, 并且在上电时依靠静态随机访问存储器(SRAM)来得到已编程的器件 配置。易失性PLD还可能需要周期性的刷新,或者如果发生瞬时或软 (可恢复的)错误则可能需要重新编程。软错误可能来自于环境影响, 诸如电磁干扰(EMI)、宇宙射线、a粒子、热中子、噪声以及其他类似 的源。包括易失性PLD的系统通常设计为支持频繁的重新编程,即称为 可重配置计算的技术。在采用可重配置计算的系统中,对PLD进行编 程所需要的时间可能是系统性能和整体响应度方面的关键因素。在这种 系统中,可能存在必须作为系统初始化的一部分而加载的多个PLD程 序,从而导致很长的系统初始化时间。可以对PLD进行现场编程,而不需要使用特殊的测试设备接口,诸如具有符合联合测试行动组(JTAG)的接口的板级或部件级加载器。 通常只有制造或测试设施才能对PLD上的JTAG端口进行访问。现场 编程可以包括在封闭系统中客户设施处或在厂商外部的位置处编程, 其中对特殊测试设备的访问是受限的或不可能的。还可以在制造或测试 设施上^l行不使用特殊测试设备的可用编程^支术。在一种对PLD进行现场编程的方法中,PLD自动从串行电可擦除 可编程只读存储器(EEPROM)或闪速存储设备加栽它的配置。每个 PLD可以具有作为同一系统板上的分立部件直接连接到该PLD的专用 串行EEPROM。这种编程方法称为主动串行编程或加载。主动串行编 程可以提供的益处在于能够隔离用于每个PLD的特定程序,以最小化 PLD程序与目标PLD不匹配的风险。但是,如果串行编程速度很慢,一个比特),那么主动串行编程可能很慢。只要利用主动串行编程的PLD 从复位被释放,该PLD就可以开始加载它的PLD程序,这可能使得系 统的复位设计变复杂。如果其他系统部件并不会只要加载了 PLD程序 就会被复位,那么就可能发生复杂化。主动串行编程可能会表现出很多 其他问题,诸如对串行EEPROM中的PLD程序的版本控制管理,特别 是在更新和验证PLD程序的正确/最新版本时。串行EEPROM可能不支 持现场重新编程,需要重新制作板或者对插座式串行EEPROM部件进 行物理上的部分替换。串行EEPROM中的错误或故障也可能很难检测 和隔离,导致更多的系统故障模式。对串行EEPROM的使用可能在成 本、板面积、功耗、热量、重量和制造过程中的报废问题上有附加的损 失。部编程来进行。PLD编程可以由通用处理器通过数据总线写入来执行, 并且PLD控制信号可以通过在该处理器上执行的软件程序而被操纵。 处理器典型地读取PLD编程数据,在数据总线上直接一次一字节地将 该数据写入PLD,并且操纵适当的控制信号使得PLD将该数据作为编 程信息而接受。尽管通过处理器主动控制PLD编程过程可以提供灵活性,但PLD编程可能在很长的持续时间内消耗处理器的带宽,特别是 在PLD编程文件很大的情况下。在处理器忙于主动对PLD进行编程时, 处理器必须等待执行其他系统初始化任务,导致初始化整个系统的时间 延迟延长。如果在系统中有带有不同PLD程序的多个PLD,那么这个 问题就更复杂了,因为在处理器的资源专门用于对PLD进行编程时, 该处理器不能执行其他任务。随着更先进技术的发展,PLD编程文件的大小持续增长,执行主动 PLD编程的处理器的需求将持续增加,导致更长的系统初始化时间。更 进一步地,更大的PLD编程文件将影响串行EEPROM所需要的存储容 量,潜在地导致更大的部件、更长的编程时间和更高的系统成本。因此, 在本领域中需要一种在不依靠由处理器进行的直接主动控制或主动串 行编程的情况下对PLD进行编程的方法。
技术实现思路
实施例包括一种用于使用直接存储器访问(DMA)来初始化可编 程逻辑器件(PLD)的方法。该方法包括操纵PLD的控制线路以将该 PLD配置为编程模式,以DMA速度从DMA控制器接收PLD编程数据, 以及将该PLD编程数据写入数据緩沖器。该方法还包括从数据緩沖器 读取PLD编程数据,以及以PLD编程速度将PLD编程数据发送到PLD 上的编禾呈端口。附加的实施例包括一种用于使用DMA来初始化PLD的集成电路 (IC ),该IC可操作地连接到PLD。该IC包括输入/输出(I/O )接口和 PLD接口。 1/0接口在IC和PLD之间转换信号格式。PLD接口包括配 置和状态寄存器、数据緩沖器和调步逻辑(pacing logic )。配置和状态 寄存器适合于操纵PLD的控制线路以通过I/O接口将PLD配置为编程 模式。数据緩冲器临时保存以DMA速度从DMA控制器接收到的PLD 编程数据。调步逻辑控制以PLD编程速度通过I/O接口将PLD编程数 据发送到PLD上的编程端口的速度。进一步的实施例包括一种用于初始化PLD的方法。该方法包括才喿纵PLD的控制线路以将PLD配置为编程冲莫式,从DMA控制器和处理 器中的至少一个选择PLD编程数据源,从所选择的数据源接收PLD编 程数据,并将这些PLD编程数据发送到PLD上的编程端口 。进一步的实施例包括一种用于使用DMA来初始化PLD的系统。该 系统包括PLD和IC。 PLD包括带有控制线路的编程端口 ,该PLD位于 组件上。该IC可操作地连接到PLD的编程端口 ,该IC位于组件上。 该IC包括输入输出(I/O)接口和PLD接口,该I/0接口用于在IC和 PLD之间转换信号格式。PLD接口包括配置和状态寄存器、数据緩沖器 和调步逻辑。配置和状态寄存器适合于通过I/O接口来操纵PLD的编程 端口的控制线路。数据緩沖器临时保存以DMA速度从DMA控制器接 收到的PLD编程数据。调步逻辑控制以PLD编程速度通过I/O接口将 PLD编程数据发送到PLD上的编程端口的速度。附加的实施例包括一种用于支持使用DMA来初始化PLD的计算机 程序产品。该计算机程序产品包括存储介质,该存储介质是处理电路可 读的并且存储供处理电路执行的用于实现一种方法的指令。该计算机程 序产品方法包括操纵PLD的控制线路以将PLD配置为编程模式,以 DMA速度从DMA控制器接收PLD编程数据,以及以PLD编程速度将 PLD编程数据发送到PLD上的编程端口 。通过研究以下附图和详细描述,根据实施例的其他系统、方法和/ 或计算机程序产品对本领域的普通技术人员将会变得明显。所有这种附 加的系统、方法和/或计算机程序产品旨在包括在这一描述中、在本专利技术 的范围内并且由所附权利要求书保护。附图说明现在参考附图,其中在多本文档来自技高网
...

【技术保护点】
一种用于使用直接存储器访问(DMA)来初始化可编程逻辑器件(PLD)的方法,所述方法包括:    操纵所述PLD的控制线路以将所述PLD配置为编程模式;    以DMA速度从DMA控制器接收PLD编程数据;    将所述PLD编程数据写入数据缓冲器;    从所述数据缓冲器读取所述PLD编程数据;以及    以PLD编程速度将所述PLD编程数据发送到所述PLD上的编程端口。

【技术特征摘要】
US 2007-2-1 11/670,0171.一种用于使用直接存储器访问(DMA)来初始化可编程逻辑器件(PLD)的方法,所述方法包括操纵所述PLD的控制线路以将所述PLD配置为编程模式;以DMA速度从DMA控制器接收PLD编程数据;将所述PLD编程数据写入数据缓冲器;从所述数据缓冲器读取所述PLD编程数据;以及以PLD编程速度将所述PLD编程数据发送到所述PLD上的编程端口。2. 根据权利要求1所述的方法,进一步包括配置所述DMA控制器以从非易失性存储器设备(NVM)读取所述 PLD编程数据;以及使用处理器来使得所述DMA控制器开始从所述NVM读取所述 PLD编程数据。3. 根据权利要求1所述的方法,进一步包括使用处理器和所述DMA控制器中的至少 一个来开始操纵所述PLD 的所述控制线路,以通过配置和状态寄存器来将所述PLD配置为所述 编程模式。4. 根据权利要求1所述的方法,进一步包括提供备选路径以通过配置和状态寄存器将所述PLD编程数据发送 到所述PLD上的编程端口;以及将所述PLD编程数据写入所述配置和状态寄存器。5. 根据权利要求1所述的方法,其中当从所述数据緩冲器读取所述 PLD编程数据时,修改写入所述数据緩沖器的所述PLD编程数据的数 据字宽度。6. 根据权利要求1所述的方法,其中当从所述数据緩沖器读取所述 PLD编程数据时,修改写入所述数据緩沖器的所述PLD编程数据的字 节顺序。7. 根据权利要求1所述的方法,进一步包括读取所述PLD的状态以验证使用所述PLD编程数据对所述PLD的 成功编,呈。8. 根据权利要求1所述的方法,进一步包括当所述PLD不处于所述编程模式下时,阻断对所述PLD上的所述 编禾呈端口的i方问。9. 一种用于使用直接存储器访问(DMA)来初始化可编程逻辑器 件(PLD)的集成电路(IC),所述IC可操作地连接到所述PLD,所述 IC包括输入输出(1/0)接口,所述I/0接口在所述IC和所述PLD之间转 换信号格式;以及PLD接口,所述PLD接口包括配置和状态寄存器,所述配置和状态寄存器适合于操纵所述 PLD的控制线路以通过所述I/O接口来将所述PLD配置为编程模式;数据緩沖器,所述数据缓沖器用于临时保存以DMA速度从 DMA控制器接收到的PLD编程数据;以及调步逻辑,所述调步逻辑控制以PLD编程速度通过所述I/O 接口将所述PLD编程数据发送到所述PLD上的编程端口的速度。10. 根据权利要求9所述的IC,进一步包括DMA控制器,所述DMA控制器可操作地连接到所述PLD接口 。11. 根据权利要求10所述的IC,其中所述DMA控制器可操作地连 接到非易失性存储器设备(NVM ),所述NVM存储所述PLD编程数据。12. 根据权利要求11所述的IC,进一步包括所述NVM。13. 根据权利要求11所述的IC,进一步包括处理器,所述处理器可t喿作地连t妻到所述PLD ^!妄口和所述DMA控 制器,并且其中所述处理器执行一种方法,所述方法包括将值写入所述PLD接口的配置和状态寄存器,所述值用于通过所 述I/O接口来操纵所述PLD的所述控制线路以将所述PLD配置为编程 模式;配置所述DMA控制器以从所述NVM读取所述PLD编程数据; 初始化所述DMA控制器以开始从所述NVM读取所述PLD编程数 据;以及读取所述PLD接口的配置和状态寄存器以验证使用所述PLD编程 数据对所述PLD的成功编程。14. 根据权利要求9所述的IC,其中当从所述数据緩沖器读取所述 PLD编程数据时,所述PLD接口修改写入所述数据緩冲器的所述PLD 编程数据的数据字宽度和字节顺序中的至少一个。15. 根据权利要求9所述的IC,其中当所述PLD不处于所述编程 才莫式下时,阻断对所述PLD上的所述编程端口的访问。16. 根据权利要求9所...

【专利技术属性】
技术研发人员:TD尼达姆AR兰克
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利