首页> 中国专利> 一种灵活配置的FPGA芯片及其配置方法

一种灵活配置的FPGA芯片及其配置方法

摘要

本发明涉及一种灵活配置的现场可编程门阵列FPGA芯片及其方法,所述芯片包括集成在同一芯片内的下列模块中的一个或多个:输入/输出模块;FPGA内核模块;锁相环模块;还包括MCU,其与存储器连接,用以控制对所述FPGA芯片的配置;配置控制器,在MCU控制下调用配置程序对所述FPGA芯片的FPGA内核模块、输入/输出模块、以及锁相环中的一个或多个进行配置。方法包括:系统上电复位后,选择配置模式;判断是否选择MCU配置模式,若是,则加载boot指令给MCU;MCU执行boot指令,对整个芯片进行配置。依照本发明采用的技术方案,可实现对FPGA芯片的灵活配置,达到提高配置效率和降低功耗的效果。

著录项

  • 公开/公告号CN103257612A

    专利类型发明专利

  • 公开/公告日2013-08-21

    原文格式PDF

  • 申请/专利权人 京微雅格(北京)科技有限公司;

    申请/专利号CN201210057975.9

  • 申请日2012-03-07

  • 分类号G05B19/05(20060101);

  • 代理机构11309 北京亿腾知识产权代理事务所;

  • 代理人陈霁

  • 地址 100473 北京市大兴区北京经济技术开发区地盛北街1号A区9号楼303室

  • 入库时间 2024-02-19 19:46:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-06

    专利权的保全 IPC(主分类):G05B19/05 授权公告日:20160316 登记生效日:20180601 申请日:20120307

    专利权的保全及其解除

  • 2016-03-16

    授权

    授权

  • 2013-09-18

    实质审查的生效 IPC(主分类):G05B19/05 申请日:20120307

    实质审查的生效

  • 2013-08-21

    公开

    公开

说明书

技术领域

本发明涉及集成电路领域,具体涉及到一种灵活配置的现场可编程门阵 列FPGA芯片及其配置方法。

背景技术

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是 在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。其作为专 用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的 不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内 部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB (Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门 阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及 CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM) 来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱 动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序 逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到 I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的, 存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块 与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限 次的编程。

FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方 式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行 PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理 器对其编程。

FPGA也越来越多地被应用在便携式电子设备,例如手持设备中。而由于 手持设备是一种依赖电池的电子设备,因此,希望内部芯片的功耗能够越来 越低,从而延长电池的使用寿命。但是以上的几种FPGA配置模式的配置方 式,都比较单一。也就是说以上的配置方式,都是在系统上电复位后,对整 个FPGA芯片的所有模块进行整体配置,然后进入工作模式。用户在配置的 过程中,无法控制配置的过程,也无法按照面向对象,实际应用对芯片进行 灵活配置。因此,芯片的功耗较大。

那么如何提供一种能够对FPGA芯片进行灵活配置的集成电路,以达到 降低功耗的效果,是业内亟待解决的问题。

发明内容

有鉴于此,本发明的目的是提供一种可灵活配置的FPGA芯片及其配 置方法,以解决现有技术下的FPGA芯片配置方式不灵活,配置过程 无法控制,配置及工作功耗较大的问题。

为实现上述目的,本发明一方面提供了一种灵活配置的FPGA芯片,包 括集成在同一芯片内的下列模块中的一个或多个:输入/输出模块;FPGA内 核模块;锁相环模块,用以生成时钟信号;还包括:微处理器MCU,其与存 储器连接,用以控制对所述FPGA芯片的配置;配置控制器,其在所述MCU 控制下调用配置程序对所述FPGA芯片的输入/输出模块、FPGA内核模块以 及锁相环中的一个或多个进行配置。

本发明另一方面还提供了一种配置方法,该方法包括:在系统上电复位后, 选择配置模式;在选择MCU配置模式的情况下,加载启动boot指令给MCU; MCU执行boot指令,对FPGA芯片进行配置。

本发明的实施例提供了一种集成了MCU的FPGA芯片,其由MCU对 FPGA的配置模式进行主导,用户可以通过MCU来控制FPGA芯片的配置过 程,并且根据具体应用。提供了一种面向用户的配置模式,可以灵活地配置 相应的模块,以达到超低功耗和最小系统启动的效果,从而提高配置灵活性, 并减少芯片的功耗。

附图说明

图1为根据本发明实施例的FPGA芯片的架构图;

图2为根据本发明另一实施例的FPGA芯片的架构图;

图3是根据本发明实施例的FPGA芯片配置方法流程图;

图4是图3中步骤S307的流程图;

图5是根据本发明另一实施例的FPGA芯片配置方法的流程图;

图6是本发明提供的FPGA芯片的应用举例。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

图1为根据本发明实施例的FPGA芯片的架构图。如图1所示,FPGA 芯片包括集成在同一芯片内的若干个功能模块、FPGA内核模块、锁相环模块、 配置控制器config controller以及微处理器MCU。其中,MCU连接有一存储 器SRAM,可读取用户程序或数据。若干个功能模块例如有输入/输出单元IOB 等。FPGA内核模块则是完成现场可编程逻辑阵列的具体阵列。配置控制器在 所述MCU控制下调用存储在闪存FLASH中的配置程序对所述FPGA芯片的 若干个功能模块、FPGA内核以及锁相环中的一个或多个进行配置。各个组成 部分之间通过逻辑阵列或者信号总线等彼此连接,在此不对具体的走线多做 介绍,所述领域的技术人员应该能够理解各模块之间的连接实现关系。

所述的FLASH中存储了用户预定义在其中的配置程序数据流,其中包括 用来配置不同模块的子程序,以及启动boot程序段,或被称之为boot code。 虽然图1所示的实施例中FLASH是设在芯片外的,但是事实上也可以将 FLASH闪存一并与配置控制器config controller集成封装在一起,以缩小芯片 尺寸。

SRAM作为存储数据的载体,其与所述MCU连接,用以存储从所述 FLASH中加载的boot指令,供所述MCU读取并执行。此外,在配置完毕, 进入到用户工作模式中以后,其还可以去取用户的工作指令。

在芯片被上电之后,可以选择通过MCU对芯片进行配置。将FLASH闪 存中的boot code加载到SRAM中,MCU根据从SRAM中读取boot code,并 执行boot code。MCU发出配置指令给配置控制器。配置指令中可以包含所需 配置的模块名称,配置顺序以及子程序起始地址。例如,如果需要配置PLL 锁相环模块,则配置指令包括PLL模块,PLL模块配置子程序的起始地址等。 配置控制器依照这些配置指令调用依照给出的起始地址在FLASH中存储的 配置程序内查找相应的子程序并对所述FPAG芯片中的对应模块进行配置。

从配置控制器的FLASH中加载boot code使得配置顺序最大程度上与 FPGA内核模块本身独立开。例如可以在boot code中编程并选择时钟信号源, 从而在加载用户指令之前使得配置控制器的传输速率最大。如果需要配置的 模块较多,那么可以在boot code中增设指令,先对PLL锁相环进行配置,在 配置完PLL后再对其余的模块进行配置。其原因是PLL需要较长的时间才能 锁定,在等待锁定的时间对其余模块进行配置,在其余模块配置完成后PLL 也已经锁定完毕,MCU就能正常工作,而不需要额外的等待时间。

采用上述的实施例,在配置芯片的过程中,所述MCU可发出指令使得所 述FPGA内核模块处于上电或掉电状态,选择对FPGA内核模块进行配置或 者不对FPGA内核模块进行配置。而在FPGA内核模块处于上电或掉电状态, 所述MCU都能够对其余的模块进行部分配置。而将每个部分的配置相互独 立,不需要象传统配置那样在每次上电都要使得FPGA内核处于上电状态, 造成较大的电量损耗。

但是,由于MCU和FPGA内核通过信号连接,在使得FPGA从断电切 换到上电或者相反的过程中,有供电的模块和没有供电的模块之间连接可能 会造成漏电的问题。为此,在图2中,提出了另一种实施例,也就是在所述 FPGA内核模块和所述MCU之间设置隔离模块isolation cell,其用以维持所 述FPGA内核模块和所述MCU之间信号线固定成一种固定的电平状态,使得 MCU不会因为FPGA内核处于不确定的状态而影响其工作。

以下,介绍一种配置FPGA芯片的方法。图3是根据本发明实施例的FPGA 芯片配置方法流程图。该方法包括:

在步骤S301,首先给芯片供电,在上电复位后,可首先核实FPGA芯片 的固化ID与软件是否匹配,若匹配则执行步骤S303。

在步骤S303,选择配置模式。

用户可选择通过传统全局配置模式,或者是MCU配置模式进行芯片配 置。若选择了MCU配置模式,则执行步骤S305。反之,则执行全部重新配 置。

在步骤S305:加载boot指令给MCU。

在此步骤中配置控制器首先将BOOT指令加载到SRAM中,MCU从所 述SRAM中读取。一旦将boot code加载到MCU之后,MCU开始从复位状 态释放,并顺序执行boot code。Boot code是通过配置控制器调用子程序完成 的,这实际上也控制了其余的配置顺序。如果在BOOT指令中,没有调用任 何的配置操作,那么器件将按照缺省配置设置或者系统默认配置设置来工作。

从配置控制器的FLASH中加载boot code使得配置顺序最大程度上与 FPGA内核模块本身独立开。例如可以由用户在boot code中编程并选择时钟 频率,从而在加载用户指令之前使得配置控制器的传输速率最大。如果需要 配置的模块较多,那么可以在boot code中增设指令,先对PLL锁相环进行配 置,在配置完PLL后再对其余的模块进行配置。其原因是PLL需要较长的时 间才能锁定,在等待锁定的时间,对其余模块进行配置,在配置完成后PLL 也已经锁定完毕,MCU就能正常工作,而不需要额外的等待时间。

在步骤S307,MCU执行boot指令,对FPGA芯片进行配置。

请进一步参考图4。图4是图3中步骤S307的流程图。在S307中进一步 包括:

在步骤S3071,MCU执行boot指令,发送配置指令给配置控制器。配置 指令包括目标配置模块名称、配置子程序起始地址以及配置顺序。

例如首先对PLL进行配置,之后再对其余模块进行配置。在配置指令当 中也可以包含对FPGA内核模块的上电和断电指令,以控制配置和工作功耗。 这些步骤用户可以根据实际需求设计,若不需要则不设计。

在步骤S3072,配置控制器依照指令调用FLASH中的配置程序。

在此步骤中,包括调用对应FAGA芯片中不同功能模块的配置子程序, 对FAGA芯片中不同功能模块选择性配置。其中,可以将FPGA内核断电, 只对其余的某些或某个模块配置,也可以对FPGA内核一起配置。这都是配 置控制器通过调用FLASH中对应FAGA芯片中不同功能模块的配置子程序, 对FAGA芯片中不同功能模块选择性配置来实现的。例如PLL、SRAM、FPGA 以及IOB等。

用户通过调用子程序,实现了对配置映像的选择,完成了单独面向具体模 块的配置。例如用户可以决定配置哪个模块,以及是否使用FPGA内核模块。 这使得用户可以决定在复位之后需要调整FPGA内核的电力状态,而不是像 传统配置中,FPGA内核模块一直处于上电状态。

请参考图5,图5是根据本发明另一实施例的FPGA芯片配置方法的流程 图。其与图3的实施方式的区别在于:在配置完成之后,可以对FPGA内核 上电,在上电状态下,再通过MCU对各个模块进行配置,其具体过程同上, 不再多做重复。或者,将FPGA内核停用,在此状态下,同样,可以通过MCU 对各个模块进行配置,其具体过程同上,不再多做重复。

并且,FPGA内核上电和FPGA内核停用两个状态之间,MCU也可以通 过指令来配置实现。

在配置结束以后,还可以选择是否需要对FPGA芯片进行配置,如需要, 则跳转到步骤S301,反正则退出,进入用户工作模式。

请参考图6,其列举了本发明提供的FPGA配置芯片的集中简单的应用方 案。

第一种应用方案中,点亮外设灯lamp-2,其路径1为一种直接的通道 MCU-PAD,在此种应用中,MCU只需要配置lamp-2左侧的IOB即可。

第二种应用方案中,点亮外设灯lamp-1,其路径2为通道MCU-FPGA 内核-PAD,在此种应用中,MCU则需要配置lamp-1左侧的IOB以及FPGA 内核。

第三种应用方案中,MCU从通道3,MCU-IOB-PAD接收外部用户芯 片的终端请求,在此种应用中,MCU则需要配置用户芯片左侧的IOB以及 SRAM。

第四种应用方案中,MCU应答中断,MCU开始重新配置FPGA内核, 并发送配置数据给FPGA内核和相应的IOB接口,最终可以按需要点亮外设 的LED显示器,其通道为5,MCU->FP->PAD->LED。

第五种应用方案中,MCU通过外部输入接收输入信号,通过路径5, PAD->FP->MCU,其仅需要配置FPGA内核和相应的IOB。

以下讨论一种在实际应用中可能存在的问题。在MCU运行的过程中,可 能需要向SRAM中加载用户指令user code。此时配置通道和MCU通道对于 SRAM的访问存在冲突。为了避免MCU和配置控制器之间的冲突,可以在所 述MCU向SRAM发送配置请求之后,使MCU保持等待或者空闲,在配置完 成后,配置控制器向MCU发送反馈信号,MCU开始控制SRAM读取用户指 令,这样就可以避免冲突。

也可以通过第二种方式解决冲突,也就是将BOOT指令和用户指令一起 加载到SRAM,在指令成功执行完毕后自动执行用户指令,此种方式易于实 现并且更加可靠。但是此种问题是boot code将占用SRAM的部分空间,通常 小于例如1Kbit(比特)。

采用传统的配置方式和本发明提供的配置方式,用户能够看到的唯一不 同就是在复位执行之后,在执行用户指令之前需要执行一些其余的配置指令。 但是这将带来芯片功耗的降低,和配置灵活性上的极大改进。

通过采用本发明提供的配置模式和配置芯片,提供了一种面向用户的模 块化FPGA配置模式,使得FPGA的配置方式更加灵活。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的 各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为 超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理 器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程 ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意 其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而 已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做 的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号