CN107704285B - 现场可编程门阵列多版本配置芯片、***和方法 - Google Patents
现场可编程门阵列多版本配置芯片、***和方法 Download PDFInfo
- Publication number
- CN107704285B CN107704285B CN201710889479.2A CN201710889479A CN107704285B CN 107704285 B CN107704285 B CN 107704285B CN 201710889479 A CN201710889479 A CN 201710889479A CN 107704285 B CN107704285 B CN 107704285B
- Authority
- CN
- China
- Prior art keywords
- fpga
- version
- configuration
- control unit
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 26
- 230000003993 interaction Effects 0.000 claims abstract description 3
- 230000008569 process Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 229920002120 photoresistant polymer Polymers 0.000 description 2
- 238000000137 annealing Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种FPGA多版本配置芯片,所述芯片为一个封装体,包括:至少一个存储单元,用于存储FPGA的配码数据文件;控制单元,与存储单元相连接,能够对存储单元进行读取、擦除、写入操作,包括:版本切换通信接口,用于控制单元接收数据、地址和控制信息,实现配码数据文件在线切换,所述控制单元接收到配码版本的首地址后,按照指定的地址、读取相应版本的配码数据并完成FPGA配置;FPGA配置接口,用于控制单元与FPGA的交互,完成FPGA的在线配置功能。本公开为FPGA版本配置提供了更多选择,并且可以在***不掉电的情况下进行版本切换。
Description
技术领域
本公开涉及可编程逻辑器件配置领域,尤其涉及一种现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)多版本配置芯片、***和方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)是现代电子***中非常常用的通用逻辑器件,其功能可以由用户自行定制,在实际应用中,用户可以通过更换不同的配置码流来令FPGA实现各种不同的功能。由于其优异的灵活性和良好的通用性,FPGA在各种电子***中正在得到越来越广泛的应用。
在目前的主流应用中,最常见的是SRAM型FPGA,其配码存储于FPGA芯片内部的SRAM存储器中。SRAM是易失性存储器,FPGA掉电后则配置信息即全部丢失,因此在实际应用中,FPGA常常与相应的配置存储器芯片(也称“配置芯片”)相连接,二者配合使用。每次上电后,FPGA都需要从配置芯片中读取配置信息,以完成自身的初始化。
配置芯片用于在上电后向FPGA提供配码数据,在目前的主流应用中,一个配置芯片可以只存储一个码流文件,这时FPGA每次上电后获取的配码都相同,FPGA执行的功能是固定不变的。而存储多个码流文件需要以固定字节为单位进行切分,每个版本的配码可以占用1个或多个8Mbit的数据块,导致存储空间浪费,并且在FPGA正常工作期间,无法再更换配码,必须***掉电才能切换。
公开内容
(一)要解决的技术问题
本公开提供了一种FPGA多版本配置芯片、***和方法,以至少部分解决以上所提出的技术问题。
(二)技术方案
根据本公开的一个方面,提供了一种FPGA多版本配置芯片,所述芯片为一个封装体,包括:至少一个存储单元,用于存储FPGA的配码数据文件;控制单元,与存储单元相连接,能够对存储单元进行读取、擦除、写入操作,所述控制单元能够获取存储单元中的数据,并且修改存储单元中的数据内容,并对存储单元进行控制,所述控制单元包括:版本切换通信接口,用于在控制单元与外界之间传输数据、地址、控制信息,实现配码数据文件在线切换,其中,外界可以将当前选择的配码版本的首地址传输给控制单元,控制单元会按照指定的地址、读取相应版本的配码数据并完成FPGA配置;FPGA配置接口,用于控制单元与FPGA的交互实现FPGA的配置,包括工作时序信号及控制信号接口。
在本公开一些实施例中,所述的FPGA多版本配置芯片包括三个存储单元,通过对三个存储单元中的数据进行三模冗余处理,通过投票表决电路对来自三个存储单元的数据进行投票表决,所述投票表决电路的输入分别是三个存储单元的输出。
在本公开一些实施例中,所述控制单元的版本切换通信接口为SPI通信接口、UART串口或IIC通信接口。
根据本公开的另一个方面,提供了一种FPGA多版本配置的***,采用如权利要求1-3中任一项所述的FPGA多版本配置芯片,***还包括:版本切换模块,用于控制在线切换FPGA的配码版本,通过所述版本切换模块,在FPGA正常工作期间,可以实时更改FPGA的功能、或者在线切换FPGA的配码版本。
在本公开一些实施例中,当需要更新FPGA的功能时,即需要更新FPGA的配码版本时,所述版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给控制单元,然后通过PROG_B信号将FPGA的配置逻辑复位;当PROG_B的复位信号撤销后,控制单元会按照之前控制单元的版本切换通信接口接收到的首地址从存储单元中读取相应版本的配码,并将其传输给FPGA。
在本公开一些实施例中,所述版本切换模块设置在FPGA中或FPGA片外的第三方控制器;在采用第三方控制器的情况下,设置一上级控制器用于判断FPGA何时需要更新版本、并在正确的时间通知第三方控制器进行版本切换,所述上级控制器连接到FPGA与第三方版本切换模块。
在本公开一些实施例中,FPGA进行配码版本切换的时机可以由FPGA内部自身的用户逻辑来决定或由另外的上位机来决定;当上位机认为需要切换FPGA的配码版本时,可以通过指令链路向FPGA发送版本切换指令、以及新版本在存储单元中的首地址,FPGA在收到指令和地址之后,通过版本切换模块完成相应的版本切换操作。
根据本公开的另一个方面,提供了一种FPGA多版本配置的方法,包括:
步骤S1,FPGA多版本配置芯片及待配置FPGA上电,FPGA进行初始化配置,在FPGA上电时默认加载最低地址空间的配码,即第1个版本的配码的配码;
步骤S2,FPGA进入正常工作模式,在FPGA正常工作模式时,若需要更新FPGA的功能,即需要更新FPGA的配码版本,则转至步骤S3;若不需要更新FPGA的功能,则继续返在正常模式运行;
步骤S3,版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片中的控制单元;
步骤S4,通过复位信号重启新一轮FPGA配置,配置结束后返回步骤S2,FPGA进入正常工作模式。
在本公开一些实施例中,所述步骤S3中,包括:
子步骤S31,版本切换模块首先将片选信号CS#置为有效,然后翻转时钟信号SCLK和输出数据信号SO,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片中的控制单元;
子步骤S32,控制单元成功接收到目标版本的首地址之后,将SO置为预定状态作为握手应答;
子步骤S33,版本切换模块在SI信号端上检测到控制单元传输的输出数据信号SO配置为预定状态,则认为控制单元成功接收到目标版本的首地址,握手过程已经完成;
子步骤S34,版本切换模块将连接FPGA复位管脚的PROG_B置为低电平并保持一段时间,将FPGA自身的配置逻辑复位;
子步骤S35,版本切换模块将PROG_B再次被释放为高电平之后,FPGA脱离复位状态并从存储单元中开始新一轮加载操作,加载的目标配码即是之前通过所述版本切换通信接口所指定的目标版本的配码。
在本公开一些实施例中,所述预定状态可以为持续预定时间以上的高电平或特定的电平序列。
(三)有益效果
从上述技术方案可以看出,本公开FPGA多版本配置芯片、***和方法至少具有以下有益效果其中之一:
(1)由于存储单元中可以容纳多种配码版本,并且配码的版本数量不受限制,因此在存储单元中可以存储任意多个配码版本,为FPGA版本配置提供了更多选择,并且可以在***不掉电的情况下进行版本切换;
(2)由于存储单元中各版本配码的起始地址不受限制,从而各版本的配码在存储单元中可以连续排列,不存在存储空间浪费的问题;
(3)存储单元可以选择使用128Mbit、256Mbit或者更大容量的存储器,能够在不进行多片级联的情况下即能够应用于大规模FPGA的配置;
(4)通过将控制单元、存储单元封装于1个封装体之中,其实体外观形态为1颗芯片,这能够减少FPGA***中的芯片数量,进而降低***重量、提高***可靠性。
附图说明
图1为本公开实施例FPGA多版本配置芯片的结构示意图。
图2为本公开实施例具有三个存储单元的FPGA多版本配置芯片的结构示意图。
图3为本公开实施例具有三个存储单元的FPGA多版本配置芯片的控制单元中投票表决电路的结构示意图。
图4为本公开实施例FPGA多版本配置的***的结构示意图。
图5为本公开实施例版本切换模块的一种工作时序示意图。
图6为本公开实施例由第三方控制器作为版本切换模块的结构示意图。
图7为本公开实施例由上位机指令决定FPGA进行配码版本切换的时机的结构示意图。
图8为本公开实施例FPGA多版本配置的方法的流程图。
具体实施方式
本公开提供了一种现场可编程门阵列多版本配置芯片、***和方法。为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
本公开某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本公开的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本公开满足适用的法律要求。
在本公开的第一个示例性实施例中,提供了一种FPGA多版本配置芯片。图1为本公开第一实施例FPGA多版本配置芯片的结构示意图。如图1所示,本公开FPGA多版本配置芯片为一个封装体,包括至少一个存储单元、控制单元。
以下分别对本实施例FPGA多版本配置芯片的各个组成部分进行详细描述。
至少一个存储单元,与控制单元相连接、且受控制单元的控制;存储单元中存储的是FPGA的配码数据文件。在搭建***时,可以选用容量较大(如128Mbit、256Mbit等)的存储器型号,以提供更多的配码数据存储空间。
在存储单元中,可以存储多个版本的FPGA配码,对每个版本的配码的起始地址不作限制。在这多个版本的配码文件中,有一个配码用来作为引导区,其含义是,每次***上电后,控制单元默认从引导区的首地址开始读取、对FPGA进行配置。待读取完引导区的全部数据后,则FPGA配置完成。在默认情况下,上电后的初始配置,控制单元不会读取存储单元中其他版本的配码文件。
控制单元,能够对存储单元进行读取、擦除、写入等操作,通过这些操作,控制单元能够获取存储单元中的数据,也可以修改存储单元中的数据内容。控制单元对外具有JTAG接口、FPGA配置接口、版本切换通信接口。通过JTAG接口,控制单元可以与外部的JTAG上位机进行通信,获得上位机的控制信息及数据,向上位机返回自身工作状态及数据。以控制单元作为桥梁,JTAG上位机可以通过控制单元实现对存储单元的读取、擦除、写入等操作。将本公开FPGA多版本配置芯片用于对FPGA进行配置时,JTAG上位机可以将FPGA工作所需的配码写入至存储单元中。
控制单元的版本切换通信接口用于在控制单元与外界之间传输数据、地址、控制信息等,其中,外界可以将当前选择的配码版本的首地址传输给控制单元,控制单元会按照指定的地址、读取相应版本的配码数据并完成FPGA配置。在FPGA每次上电时都默认加载引导区的配码,即上电后FPGA默认加载最低地址空间的第1个版本的配码。之后,在FPGA正常工作期间,可以通过控制单元实现版本的更换,版本更换期***不掉电。外界还可以通过版本切换通信接口,经由控制单元来访问存储单元、对存储单元中的数据进行读取、擦除、写入等操作。
控制单元的FPGA配置接口的工作时序、各信号间的控制关系,均与FPGA产品的配置接口的工作规范相兼容。通过FPGA配置接口,控制单元能够与FPGA相配合,完成FPGA的上电配置功能。执行这一功能时,控制单元对存储单元中的配码数据进行读取,将其整理成与FPGA配置接口规范相兼容的数据格式,并通过FPGA配置接口传输给FPGA。
在一实施例中,存储单元中存储的是Xilinx FPGA的配码数据文件,FPGA配置接口为与Xilinx FPGA相兼容的配置接口,在不同的实施例中,存储单元中存储的是其他任何厂家的FPGA产品配码数据文件,FPGA配置接口可以替换为与其他任何厂家的FPGA产品相兼容的FPGA配置接口。
在一实施例中,控制单元的版本切换通信接口为SPI通信接口,在不同的实施例中,控制单元的版本切换通信接口可以为UART串口、IIC等其他任何类型的通信接口。
在一实施例中,FPGA多版本配置芯片包括一个存储单元,在不同的实施例中,FPGA多版本配置芯片包括三个存储单元,通过对三个存储单元中的数据进行三模冗余处理,可以大大提高配码数据的可靠性。图2为本公开实施例具有三个存储单元的FPGA多版本配置芯片的结构示意图。如图2所示,在这一场景下,在控制单元中应当有投票表决电路对来自3个存储单元的数据进行投票表决。图3为本公开实施例具有三个存储单元的FPGA多版本配置芯片的控制单元中投票表决电路的结构示意图。如图3所示,投票表决电路的输入分别是3个存储单元的输出。所述投票表决电路是一种电路处理机制,其基本思想就是3取2,万一有1路输入出现错误,输出仍能给出正确的结果。
所述FPGA多版本配置芯片采用晶圆进行薄膜淀积、涂布光阻、曝光、光阻去除、刻蚀、掺杂及热退火等工艺制备,其封装形式包括:QFP、QFN、PGA、BGA等类型。
至此,本公开第一实施例FPGA多版本配置芯片介绍完毕。
在本公开的第二个示例性实施例中,提供了一种FPGA多版本配置的***。图4为本公开实施例FPGA多版本配置的***的结构示意图。如图4所示,***包括JTAG上位机、FPGA多版本配置芯片及版本切换模块,其中:
JTAG上位机用于将FPGA配码文件下载到FPGA多版本配置芯片,配码文件的下载可以通过USB口或者其他接口,经由下载线、扩展出一组JTAG数据线,JTAG数据线连接至FPGA多版本配置芯片的JTAG接口,通过这一方式,即可建立FPGA多版本配置芯片与JTAG上位机的连接。在图4中,JTAG上位机通过JTAG链路,可以对存储单元进行读取、擦除、写入等操作,可以对任意的1个或多个版本的配码数据文件进行改写和更新。FPGA开发者进行FPGA产品开发调试期间,通过JTAG上位机可以方便地改写存储单元中的目标FPGA配码数据。当FPGA开发者通过JTAG上位机完成存储单元中的数据更新后,也可以将JTAG上位机与FPGA多版本配置芯片的JTAG接口之间的连接断开。一般而言,当用户完成开发调试之后,不再需要使用JTAG上位机来频繁修改存储单元中的FPGA配码,这时仅需要FPGA多版本配置芯片即可完成对FPGA的配置。
FPGA多版本配置芯片用于进行多版本FPGA配置。在图4中,用户通过JTAG上位机完成存储单元中的配码数据更新之后,将***断电并重新上电,则FPGA多版本配置芯片的控制单元会读取存储单元中引导区对应的版本配码数据,通过FPGA配置接口将数据传输给FPGA,完成FPGA的配置。FPGA完成上电初始化配置之后,即进入正常工作状态。
版本切换模块用于控制在线切换FPGA的配码版本。通过图4中的版本切换模块,在FPGA正常工作期间,可以实时更改FPGA的功能、或者在线切换FPGA的配码版本。当需要更新FPGA的功能时,即需要更新FPGA的配码版本时,版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给控制单元,然后通过PROG_B信号将FPGA的配置逻辑复位。当PROG_B的复位信号撤销后,FPGA就会开始新一轮配置过程,在这一轮的配置过程中,控制单元会按照之前控制单元的版本切换通信接口接收到的首地址从存储单元中读取相应版本的配码,并将其传输给FPGA。通过这种方式,能够在不掉电的情况下,将FPGA中的配码从一个版本切换到另一个版本。
在本公开一实施例中,图4的版本切换模块的一种工作时序如图5所示,该工作时序如下:
FPGA中的用户逻辑判断认为需要切换配码版本时,版本切换模块首先将片选信号CS#置为有效(即低电平),然后翻转时钟信号SCLK和输出数据信号SO,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片配置存储器当中的控制单元。控制单元成功接收到目标版本的首地址之后,将SO拉高一段时间作为握手应答。FPGA中的版本切换模块在信号SI上检测到高电平,则认为握手过程已经完成。随后,版本切换模块将PROG_B置为低电平并保持一段时间,将FPGA自身的配置逻辑复位。待PROG_B再次被释放为高电平之后,FPGA就会从FPGA多版本配置芯片存储器中开始新一轮加载操作,加载的目标配码即是之前通过SPI接口所指定的目标版本的配码。
在一实施例中,所述版本切换模块设置在FPGA中,在不同的实施例中,设置于FPGA内部的版本切换模块,根据***的特定需求,可以替换为FPGA片外的第三方控制器。图6为本公开实施例由第三方控制器作为版本切换模块的结构示意图。如图6所示,所述第三方控制器可以为CPLD,单片机或其他FPGA等。在采用第三方控制器的情况下,需设置一上级控制器(图未示)用于判断FPGA何时需要更新版本、并在正确的时间通知第三方控制器进行版本切换。所述上级控制器连接到FPGA与第三方版本切换模块。
在一实施例中,FPGA进行配码版本切换的时机可以由FPGA内部自身的用户逻辑来决定,在不同的实施例中,所述配码版本切换时机也可以由另外的上位机来决定。图7为本公开实施例由上位机指令决定FPGA进行配码版本切换的时机的结构示意图。如图7所示,FPGA通过指令链路与另外的上位机相连接。当上位机认为需要切换FPGA的配码版本时,可以通过指令链路向FPGA发送版本切换指令、以及新版本在存储单元中的首地址,FPGA在收到指令和地址之后,通过版本切换模块完成相应的版本切换操作。
当然,上述硬件结构还可以包含电源模块(图未示)等功能模块,这些是本领域内的一般技术人员可以理解的,本领域内一般技术人员也可以根据功能的需要,添加相应的功能模块,在此不作赘述。
为了达到简要说明的目的,上述第一实施例中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。
至此,本公开第二实施例FPGA多版本配置的***介绍完毕。
在本公开的第三个示例性实施例中,提供了一种FPGA多版本配置的方法。图8为本公开实施例FPGA多版本配置的方法的流程图。如图8所示,所述对FPGA进行多版本配置的方法,其完整步骤的工作流程如下:
步骤S1,FPGA多版本配置芯片及待配置FPGA上电,FPGA进行初始化配置,在FPGA上电时默认加载引导区的配码;
步骤S2,FPGA进入正常工作模式,在FPGA正常工作模式时,若需要更新FPGA的功能,即需要更新FPGA的配码版本,则转至步骤S3;若不需要更新FPGA的功能,则继续返在正常模式运行;
步骤S3,版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给控制单元;
进一步,所述步骤S3中,包括:
子步骤S31,版本切换模块首先将片选信号CS#置为有效(即低电平),然后翻转时钟信号SCLK和输出数据信号SO,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片配置存储器当中的控制单元;
子步骤S32,控制单元成功接收到目标版本的首地址之后,将SO置为预定状态作为握手应答;
子步骤S33,版本切换模块在SI信号端上检测到控制单元传输的输出数据信号SO配置为预定状态,则认为控制单元成功接收到目标版本的首地址,握手过程已经完成;所述预定状态可以为持续预定时间以上的高电平或特定的电平序列;
子步骤S34版本切换模块将PROG_B置为低电平并保持一段时间,将FPGA自身的配置逻辑复位;
子步骤S35待PROG_B再次被释放为高电平之后,FPGA就会从FPGA多版本配置芯片存储单元中开始新一轮加载操作,加载的目标配码即是之前通过版本切换通信接口所指定的目标版本的配码。
步骤S4,通过复位信号重启新一轮FPGA配置,配置结束后返回步骤S2,FPGA进入正常工作模式。
进一步,所述步骤S4中,版本切换模块通过PROG_B复位信号将FPGA的配置逻辑复位。当PROG_B的复位信号撤销后,FPGA就会开始新一轮配置过程,在这一轮的配置过程中,控制单元会按照之前控制单元的版本切换通信接口接收到的首地址从存储单元中读取相应版本的配码,并将其传输给FPGA。
至此,本公开第三实施例一种FPGA多版本配置的方法介绍完毕。
本公开通过在FPGA的用户电路中增加一个版本切换模块,实现了在线更新FPGA的多种配码版本,从而实时更新FPGA的功能。通过这种方式,能够在不掉电的情况下,将FPGA中的配码从一个版本切换到另一个版本。
至此,已经结合附图对本公开实施例进行了详细描述。需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
再者,单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的相关设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (5)
1.一种FPGA多版本配置的***,该***包括:
一种FPGA多版本配置芯片,所述芯片为一个封装体,包括:
至少一个存储单元,用于存储FPGA的配码数据文件;
控制单元,与存储单元相连接,能够对存储单元进行读取、擦除、写入操作,所述控制单元能够获取存储单元中的数据,修改存储单元中的数据内容,并对存储单元进行控制,所述控制单元包括:
版本切换通信接口,用于控制单元接收数据、地址和控制信息,实现配码数据文件在线切换,所述控制单元接收到配码版本的首地址后,按照指定的地址、读取相应版本的配码数据并完成FPGA配置;
FPGA配置接口,用于控制单元与FPGA的交互实现FPGA的配置,包括工作时序信号及控制信号接口;版本切换模块,用于控制在线切换FPGA的配码版本,通过所述版本切换模块,在FPGA正常工作期间,实时更改FPGA的功能、或者在线切换FPGA的配码版本;
当需要更新FPGA的功能时,即需要更新FPGA的配码版本时,所述版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给控制单元,然后通过PROG_B信号将FPGA的配置逻辑复位;当PROG_B的复位信号撤销后,控制单元会按照之前控制单元的版本切换通信接口接收到的首地址从存储单元中读取相应版本的配码,并将其传输给FPGA;
所述版本切换模块设置在FPGA中或FPGA片外的第三方控制器;在采用第三方控制器的情况下,设置一上级控制器用于判断FPGA何时需要更新版本、并在正确的时间通知第三方控制器进行版本切换,所述上级控制器连接到FPGA与第三方版本切换模块。
2.根据权利要求1所述的***,FPGA进行配码版本切换的时机由FPGA内部自身的用户逻辑来决定或由另外的上位机来决定;当上位机认为需要切换FPGA的配码版本时,通过指令链路向FPGA发送版本切换指令、以及新版本在存储单元中的首地址,FPGA在收到指令和地址之后,通过版本切换模块完成相应的版本切换操作。
3.一种FPGA多版本配置的方法,采用如权利要求1-2中任一项所述的FPGA多版本配置的***,包括:
步骤S1,FPGA多版本配置芯片及待配置FPGA上电,FPGA进行初始化配置,在FPGA上电时默认加载最低地址空间的配码,即第1个版本的配码;
步骤S2,FPGA进入正常工作模式,在FPGA正常工作模式时,若需要更新FPGA的功能,即需要更新FPGA的配码版本,则转至步骤S3;若不需要更新FPGA的功能,则继续返在正常模式运行;
步骤S3,版本切换模块通过FPGA多版本配置芯片中控制单元的版本切换通信接口,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片中的控制单元;
步骤S4,通过复位信号重启新一轮FPGA配置,配置结束后返回步骤S2,FPGA进入正常工作模式。
4.根据权利要求3所述的方法,所述步骤S3中,包括:
子步骤S31,版本切换模块首先将片选信号CS#置为有效,然后翻转时钟信号SCLK和输出数据信号SO,将期望的目标版本在存储单元中的首地址传输给FPGA多版本配置芯片中的控制单元;
子步骤S32,控制单元成功接收到目标版本的首地址之后,将SO置为预定状态作为握手应答;
子步骤S33,版本切换模块在SI信号端上检测到控制单元传输的输出数据信号SO配置为预定状态,则认为控制单元成功接收到目标版本的首地址,握手过程已经完成;
子步骤S34,版本切换模块将连接FPGA复位管脚的PROG_B置为低电平并保持一段时间,将FPGA自身的配置逻辑复位;
子步骤S35,版本切换模块将PROG_B再次释放为高电平之后,FPGA脱离复位状态并从存储单元中开始新一轮加载操作,加载的目标配码即是之前通过所述版本切换通信接口所指定的目标版本的配码。
5.根据权利要求4所述的方法,所述预定状态为持续预定时间以上的高电平或特定的电平序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710889479.2A CN107704285B (zh) | 2017-09-27 | 2017-09-27 | 现场可编程门阵列多版本配置芯片、***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710889479.2A CN107704285B (zh) | 2017-09-27 | 2017-09-27 | 现场可编程门阵列多版本配置芯片、***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704285A CN107704285A (zh) | 2018-02-16 |
CN107704285B true CN107704285B (zh) | 2021-01-05 |
Family
ID=61176186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710889479.2A Active CN107704285B (zh) | 2017-09-27 | 2017-09-27 | 现场可编程门阵列多版本配置芯片、***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704285B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319465B (zh) * | 2018-04-09 | 2024-04-05 | 中国科学院微电子研究所 | 对fpga配置数据进行升级的电路及方法 |
CN111124459B (zh) * | 2018-10-31 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种fpga云服务器服务逻辑的更新方法及装置 |
CN110262811A (zh) * | 2019-06-18 | 2019-09-20 | 深圳创维-Rgb电子有限公司 | 外挂芯片的通用配置方法、装置和存储介质 |
CN111241020B (zh) * | 2019-12-31 | 2022-04-22 | 广州展讯信息科技有限公司 | 一种基于fpga的串口切换装置、方法及存储介质 |
CN111680000B (zh) * | 2020-05-07 | 2023-08-18 | 中国科学院微电子研究所 | 现场可编程逻辑门阵列的配置***和方法 |
CN111966378B (zh) * | 2020-08-18 | 2024-01-09 | 深圳市康冠商用科技有限公司 | 一种板卡版本的升级方法、装置及介质 |
CN113157334B (zh) * | 2021-03-30 | 2022-09-02 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga多版本程序加载方法 |
CN115202752B (zh) * | 2022-06-27 | 2023-04-07 | 深圳市科楠科技开发有限公司 | 用于加载fpga版本的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495743A (zh) * | 2011-11-28 | 2012-06-13 | 曙光信息产业股份有限公司 | 一种利用Xilinx PROM实现FPGA配置的装置和方法 |
CN103699399A (zh) * | 2012-09-27 | 2014-04-02 | 中国科学院微电子研究所 | 一种使可部分配置的fpga芯片***具有高可靠性的方法 |
US9230112B1 (en) * | 2013-02-23 | 2016-01-05 | Xilinx, Inc. | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis |
CN106445544A (zh) * | 2016-10-08 | 2017-02-22 | 中国科学院微电子研究所 | 一种对可编程逻辑器件进行配置或更新的装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5948806B2 (ja) * | 2011-11-16 | 2016-07-06 | 富士通株式会社 | プラグインカード収容装置及びプラグインカード制御方法 |
-
2017
- 2017-09-27 CN CN201710889479.2A patent/CN107704285B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495743A (zh) * | 2011-11-28 | 2012-06-13 | 曙光信息产业股份有限公司 | 一种利用Xilinx PROM实现FPGA配置的装置和方法 |
CN103699399A (zh) * | 2012-09-27 | 2014-04-02 | 中国科学院微电子研究所 | 一种使可部分配置的fpga芯片***具有高可靠性的方法 |
US9230112B1 (en) * | 2013-02-23 | 2016-01-05 | Xilinx, Inc. | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis |
CN106445544A (zh) * | 2016-10-08 | 2017-02-22 | 中国科学院微电子研究所 | 一种对可编程逻辑器件进行配置或更新的装置和方法 |
Non-Patent Citations (3)
Title |
---|
USING MULTIBOOT TECHNIQUE TO CREATE A MULTIPLE EMBEDDED DESIGNED SYSTEMS;M. R. KHALIL,ect;《Journal of Theoretical and Applied Information Technology》;20111215;正文第8节 * |
基于SPI FLASH 的FPGA 多重配置;李平,等;《现代电子技术》;20131115;全文 * |
基于Xilinx-Spartan6 FPGA的MultiBoot设计的实现;网络;《http://xilinx.eepw.com.cn/news/article/a/621》;20120415;正文第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107704285A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、***和方法 | |
TWI408597B (zh) | 透過嵌入式控制器之快閃儲存器初始化 | |
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新***及其方法 | |
US7237145B2 (en) | Fault-tolerant architecture for in-circuit programming | |
JP4051091B2 (ja) | Romとフラッシュメモリーを有する回路内プログラミング構造 | |
US11294660B2 (en) | Apparatus and method for configuring or updating programmable logic device | |
CN108319465B (zh) | 对fpga配置数据进行升级的电路及方法 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和*** | |
US20070101166A1 (en) | Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer | |
US20090198770A1 (en) | System and method of updating codes in controller | |
CN110941444B (zh) | 一种升级配置逻辑电路、方法、***及可编程逻辑器件 | |
JP2000065899A (ja) | 半導体装置およびそのデータ書き換え方法 | |
CN108664264A (zh) | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 | |
CN111190855A (zh) | 一种fpga多重远程配置***及方法 | |
CN112925569A (zh) | 一种固件数据处理方法、装置、设备及存储介质 | |
CN100437485C (zh) | 用于配置计算机***的***和方法 | |
CN207264382U (zh) | 现场可编程门阵列多版本配置的芯片及*** | |
CN112445540B (zh) | 程序运行方法、***、终端及存储介质 | |
CN101465754A (zh) | 加载复位配置字的方法、设备及通信单板 | |
CN109426511A (zh) | 软核更新方法和*** | |
US7266680B1 (en) | Method and apparatus for loading configuration data | |
US20030120860A1 (en) | Processor with embedded in-circuit programming structures | |
CN114489743A (zh) | 一种片上可编程***的程序烧写及加载运行方法 | |
CN208314757U (zh) | 对fpga配置数据进行升级的电路 | |
US6240377B1 (en) | Integrated circuit with embedded reprogrammable EEPROM and emulation method to facilitate debugging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |