可编程器件配置系统及方法

xiaoxiao2020-10-23  14

可编程器件配置系统及方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种可编程器件配置及方法。
【背景技术】
[0002]目前,随着数字通信协议的增多,可编程器件如现场可编程门阵列(Field—Programmable Gate Array,FPGA)器件及复杂可编程逻辑(Complex Programmable LogicDevice,CPLD)器件的应用也越来越广泛,由于可编程器件灵活可编程性的软件特性与快速升级构架能力的硬件特性,可编程器件远程更新升级能力及可编程器件的下载速度较为关键。
[0003]然而,可编程器件的更新升级通常采用JTAG电缆下载或者仿真JTAG时序模式下载,速度相对较慢,而且可编程器件的更新升级一般都会在上电初始化后进行,因此可编程器件的配置设备上电初始化处理速度较慢,从而导致设备启动初始化等待时间比较长,配置速度相对也较慢。

【发明内容】

[0004]有鉴于此,本发明提供一种能提高可编程器件的更新升级速度的可编程器件配置系统及方法。
[0005]一种可编程器件配置系统,其用于实现可编程器件的配置,所述可编程器件配置系统包括一个控制模块、一个现场可编程门阵列(Field — Programmable Gate Array,FPGA)器件、一个复杂可编程逻辑(Complex Programmable Logic Device,CPLD)器件及一个存储单元。所述存储单元中存储相应的FPGA程序版本信息及CPLD程序版本信息,在所述可编程器件配置系统上电后所述控制模块分别对所述FPGA器件及所述CPLD器件进行初始化且所述控制模块通过所述CPLD器件对所述存储单元进行初始化,在初始化正常后所述控制模块比对所述FPGA器件中的FPGA程序版本信息及所述CPLD器件中的CPLD程序的版本信息分别与所述存储单元内存储的所述FPGA程序版本信息及所述CPLD程序版本信息是否相同对并根据比对结果是否相同来确定是否更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。
[0006]一种可编程器件配置方法,其用于实现现场可编程门阵列器件(Field -Programmable Gate Array,FPGA)及复杂可编程逻辑器件(Complex Programmable LogicDevice, CPLD)的配置,所述可编程器件配置方法包括以下步骤:
[0007]上电初始化;
[0008]初始化正常后比对所述FPGA器件中的FPGA程序版本信息与已存储的FPGA程序版本信息是否相同;
[0009]初始化正常后比对所述CPLD器件中的CPLD程序的版本信息与已存储的CPLD程序版本信息是否相同;及
[0010]根据比对结果是否相同来确定是否更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。
[0011]与现有技术相比,本发明提供的可编程器件配置系统及方法通过所述控制模块来比对FPGA器件中的FPGA程序版本信息及CPLD器件中的CPLD程序的版本信息分别与所述存储单元内存储的FPGA程序版本信息及CPLD程序版本信息是否相同来确定是否进行更新,由于控制模块的比对使配置系统上电后根据实际需要来进行相应更新,提高了 FPGA器件及CPLD器件的更新升级速度,从而也相对提高了配置系统的配置速度。
【附图说明】
[0012]图1是本发明提供的可编程器件配置系统模块示意图。
[0013]图2是图1中控制单元与双路缓存器、FPGA及CPLD的连接关系示意图。
[0014]图3是本发明提供的可编程器件配置方法的流程图。
[0015]主要元件符号说明
[0016]可编程配置系统100
[0017]控制模块110
[0018]控制单元112
[0019]双路缓存器114
[0020]FPGA 器件120
[0021]CPLD 器件140
[0022]存储单元160
[0023]第一存储器162
[0024]第二存储器164
[0025]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0026]请参阅图1,其为本发明实施方式提供的一种可编程器件配置系统100,其用于实现可编程器件的配置,所述可编程配置系统100包括一个控制模块110、一个现场可编程门阵列(Field — Programmable Gate Array, FPGA)器件 120、一个复杂可编程逻辑(ComplexProgrammable Logic Device,CPLD)器件 140 及一个存储单元 160。
[0027]控制模块110包括一个控制单元112及一个双路缓存器114,所述控制单元112与所述双路缓存器114相连接,双路缓存器114分别与FPGA器件120及CPLD器件140相连接以从控制单元112将相应的FPGA程序及CPLD程序分别下载到对应的FPGA器件120及CPLD器件140。本实施方式中,控制单元112为中央处理器(Central Processing Unit,CPU),控制单元112通过双路缓存器114下载程序的模式包括联合测试工作组(Joint TestAct1n Group, JTAG)电缆模式及仿真JTAG时序模式。
[0028]可以理解的是,对于CPLD器件140通过JTAG电缆模式下载程序后掉电数据不会丢失,而FPGA器件120通过JTAG电缆模式下载程序在掉电后配置数据会丢失,因此调测初始阶段FPGA器件120会采用CPU仿真JTAG时序模式下载程序。
[0029]如图2所示,CPU的管脚的GP101,GP102,GP103,GP109分别通过双路缓存器114连接 FPGA 器件 120 的管脚 TDI_FPGA,TCK_FPGA,TMS_FPGA,TD0_FPGA,CPU 的管脚 GP104,GP105,GP106,GP109分别通过双路缓存器114连接CPLD器件140的管脚TDI_CPLD,TCK_CPLD, TMS_CPLD,TD0_CPLD。
[0030]本实施方式中,设置CPU的GP107管脚为高时,控制单元112采用JTAG电缆下载FPGA程序,设置GP107管脚为低时,控制单元112采用仿真JTAG时序模式下载FPGA,设置CPU的GP108管脚为高时,控制单元112采用JTAG电缆下载CPLD程序,设置GP108管脚为低时,控制单元112采用仿真JTAG时序模式下载CPLD。
[0031]本实施方式中,设置控制单元112的管脚GP107,GP108为开漏模式,从而可以“线与”,即当多个漏极开路器件的输出连在一起,只要是其中一个导通输出就为“0”,为使电平状态读取稳定,在CPU的管脚GP107,管脚GP108的外部需要上拉10千欧姆(ΚΩ)的电阻。
[0032]控制单元112分别对FPGA器件120及CPLD器件140进行初始化时,控制单元112通过外设部件互连标准(Peripheral Component Interconnect, PCIE)总线读写FPGA器件120的寄存器以验证FPGA器件120是否初始化正常,控制单元112通过本地总线读写CPLD器件140的寄存器以验证CPLD器件140是否正常。控制单元112的本地总线包括:地址总线、数据总线、读写控制信号以及片选信号等,本实施方式中,CPU连接CPLD器件140的本地总线将数据以并行方式送给CPLD器件140。
[0033]存储单元160包括一个第一存储器162及一个第二存储器164,控制单元112经串行外设接口(Serial Peripheral Interface,SPI)总线通过CPLD器件140分别与所述第一存储器162及所述第二存储器164相连接,第一存储器162内存储最新保存的FPGA程序版本信息及所述CPLD程序版本信息。可以理解的是,当FPGA器件120中的FPGA程序及CPLD器件120中的CPLD程序更新后均需重新保存至第一存储器162。
[0034]在控制单元112通过CPLD器件对第一存储器162及第二存储器164进行初始化时,控制单元112经串行外设接口(Serial Peripheral Interface,SPI)总线通过CPLD器件140分别读写第一存储器162的寄存器及第二存储器164的寄存器以验证第一存储器162及第二存储器164是否正常。
[0035]本实施方式中,第一存储器162为铁电存储器,第二存储器为串行NOR FLASH(非易失存储器),铁电存储器用于存储FPGA程序及CPLD程序的编程时间的版本信息,NORFLASH用来存储从CPU经SPI总线通过CPLD器件140下载的FPGA程序的配置比特流、代码以及数据或者参数等重要信息。可以理解的是,第一存储器162及第二存储器164为稳定性能好且可读可写并在系统重新启动或关机之后仍能保存数据的存储器即可。
[0036]可以理解的是,对串行N0RFLASH的初始化过程为主设备控制单元112通过片选使能信号选中串行NOR FLASH与串行NOR FLASH进行通信,按照从器件串行NOR FLASH的器件资料手册读写时序波形,并设置CPU与串行NOR FLASH的SPI主从工作的时钟极性及相位保持一致。
[0037]可以理解的是,对铁电存储器的初始化过程为主设备控制单元112通过片选使能信号选中铁电存储器与铁电存储器进行通信,按从器件铁电存储器的器件资料手册读写时序波形,并设置CPU与铁电存储器的SPI主从工作的时钟极性及相位保持一致。
[0038]在FPGA器件120、CPLD器件140、第一存储器162及第二存储器164初始化均正常后,控制模块112将FPGA器件120中的FPGA程序版本信息及CPLD器件140中的CPLD程序的版本信息分别与第一存储器162内存储的FPGA程序版本信息及CPLD程序版本信息进行比对并根据比对结果是否相同确定是否更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。
[0039]本实施方式中,当CPLD器件140中的CPLD程序的版本信息与第一存储器162内存储的CPLD程序版本信息相同时,控制单元112不更新CPLD器件140中的CPLD程序,当CPLD器件140中的CPLD程序的版本信息与第一存储器162内存储的CPLD程序版本信息不相同时,控制单元112更新CPLD器件140中的CPLD程序,即控制单元112采用仿真JTAG时序模式通过双路缓存器114下载CPLD程序到CPLD器件140中。
[0040]本实施方式中,当FPGA器件120中的FPGA程序的版本信息与第一存储器162内存储的FPGA程序版本信息相同时,控制单元112不更新FPGA器件中的FPGA程序,当FPGA器件中的FPGA程序的版本信息与第一存储器162内存储的FPGA程序版本信息不相同时,控制单元112更新FPGA器件中的FPGA程序。
[0041]本实施方式中,更新FPGA器件140中的FPGA程序包括两种更新模式,第一种为仿真JTAG时序模式,即控制单元112采用仿真JTAG时序模式通过双路缓存器114下载FPGA程序到FPGA器件120中,另一种模式为主动串行模式,具体描述如下:控制单元112通过CPLD器件将FPGA器件120复位,即清空FPGA器件120内部数据配置后将FPGA程序经SPI总线通过CPLD器件140下载到第二存储器162,并在程序下载完成后使FPGA器件140从第二存储器162中获取相应的FPGA程序以更新FPGA器件120中FPGA程序。其中,控制单元112将FPGA程序通过CPLD器件140下载到第二存储器162的通信链路为第一通道,FPGA器件120从第二存储器162中获取相应的FPGA程序的通信链路为第二通道。
[0042]FPGA器件120包括一个配置控制输入管脚(NCONFIG)及一个配置使能输入管脚(NCE),控制单元112通过设置配置控制输入管脚在仿真JTAG时序模式及主动串行模式两种更新模式中选择,在选择主动串行模式更新时,控制单元112通过CPLD器件140设置所述配置使能输入管脚的电平的高低及所述配置控制输入管脚的电平的高低以在所述第一通道及所述第二通道之间选择相应通道进行通信。
[0043]本实施方式中,控制单元112设置配置控制输入管脚为高阻态时,控制单元112通过双路缓存器114采用仿真JTAG时序模式下载FPGA程序到FPGA器件120中以更新,控制单元112设置配置控制输入管脚的高/低电平时,CPU更新FPGA器件中FPGA程序的模式为主动串行模式。其中,在更新模式为主动串行模式时,控制单元112通过CPLD器件140设置配置控制输入管脚为低电平时,FPGA器件120复位清空配置且断开第二通道并开启第一通道进行通信,在第一通道中下载完成后控制单元112通过CPLD器件140设置配置使能输入管脚的电平及配置控制输入管脚的电平为高电平,控制单元112通过CPLD器件140控制第一通道通信断开,控制单元112通过CPLD器件140设置配置使能输入管脚的电平为低电平以开启第二通道进行通信来更新FPGA器件中的FPGA程序。
[0044]请参阅图3,其为本发明实施方式提供的一种可编程器件配置方法,其用于实现现场可编程门阵列器件(Field — Programmable Gate Array, FPGA)及复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)的配置,所述可编程器件配置方法包括以下步骤:
[0045]SllO:上电初始化;
[0046]S120:比对FPGA器件中的FPGA程序版本信息及CPLD器件中的CPLD程序的版本信息分别与已存储的FPGA程序版本信息及CPLD程序版本信息以判断是否相同,若是,则不更新,若否,则进入步骤S130;
[0047]S130:更新CPLD器件中的CPLD程序及更新FPGA器件中的FPGA程序。
[0048]在步骤SllO中,利用控制单元112分别对FPGA器件120、CPLD器件140、第一存储器162及第二存储器164进行初始化,控制单元112通过外设部件互连标准(PeripheralComponent Interconnect,PCIE)总线读写FPGA器件120的寄存器以验证FPGA器件120是否初始化正常,控制单元112通过本地总线读写CPLD器件140的寄存器以验证CPLD器件140是否正常,控制单元112经串行外设接口 (Serial Peripheral Interface,SPI)总线通过CPLD器件140分别读写第一存储器162的寄存器及第二存储器164的寄存器以验证第一存储器162及第二存储器164是否正常。
[0049]在步骤S120中,利用控制单元112将FPGA器件120中的FPGA程序版本信息及CPLD器件140中的CPLD程序版本信息分别与第一存储器162中存储的FPGA程序版本信息及CPLD程序版本信息进行比对以判断是否相同,若相同,则不更新,若不相同,则更新FPGA器件120中的FPGA程序及CPLD器件140中的CPLD程序。
[0050]在步骤S130中,对于CPLD器件140的更新,利用控制单元112采用仿真JTAG时序模式通过双路缓存器114下载CPLD程序到CPLD器件140中以更新。对于FPGA器件120的更新,利用控制单元112设置配置控制输入管脚以在仿真JTAG时序模式与主动串行模式之间选择相应模式更新FPGA器件。其中,在选择仿真JTAG时序模式更新FPGA器件时,利用控制单元112设置配置控制输入管脚为高阻态,控制单元112通过双路缓存器114采用仿真JTAG时序模式下载FPGA程序到FPGA器件120中以更新。
[0051]选择主动串行模式更新FPGA器件的步骤中包括以下步骤:
[0052]S131:对所述FPGA器件进行复位;
[0053]S132:通过所述CPLD器件下载FPGA程序;
[0054]S133:获取相应的FPGA程序以更新所述FPGA器件。
[0055]在步骤S131中,利用控制单元112 通过CPLD器件140设置配置控制输入管脚为低电平以使FPGA器件120复位清空配置且断开第二通道并开启第一通道进行通信。
[0056]在步骤S132中,利用控制单元112在第一通道下载完成后,即控制单元112将FPGA程序经SPI总线通过CPLD器件140下载到第二存储器164后,通过CPLD器件140设置FPGA器件140的配置使能输入管脚的电平及配置控制输入管脚的电平为高电平以控制第一通道通信断开。
[0057]在步骤S133中,利用控制单元112通过CPLD器件140设置配置使能输入管脚的电平为低电平以开启第二通道进行通信,即FPGA器件140从第二存储器164中获取下载的FPGA程序来更新。
[0058]本发明提供的可编程器件配置系统100及方法中,在系统初始化时通过控制单元112先比对FPGA器件120中的FPGA程序版本信息及CPLD器件140中的CPLD程序的版本信息是否与第一存储器162中存储的程序最新版本信息,并在比对结果不相同时,也即只在有更新的情况下才会对FPGA器件120中的FPGA程序及CPLD器件140中的CPLD程序进行更新,配置系统100不会每次重启上电后都进行更新,相对提高了配置系统100的更新升级速度,同时用户可以通过控制单元112设置FPGA器件120的配置控制输入管脚以在FPGA器件120中的FPGA的程序需要更新时可以在仿真JTAG时序模式与主动串行模式之间依据需要进行选择,尤其对于配置的升级速度有严格要求的用户,可以选择主动串行模式进行在线升级,从而保证可编程器件配置系统100根据实际应用情况灵活对FPGA器件120升级。
[0059]可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其他各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
【主权项】
1.一种可编程器件配置系统,其用于实现可编程器件的配置,所述可编程器件配置系统包括一个控制模块、一个现场可编程门阵列(Field — Programmable Gate Array,FPGA)器件、一个复杂可编程逻辑(Complex Programmable Logic Device,CPLD)器件及一个存储单元,所述存储单元中存储相应的FPGA程序版本信息及CPLD程序版本信息,在所述可编程器件配置系统上电后所述控制模块分别对所述FPGA器件及所述CPLD器件进行初始化且所述控制模块通过所述CPLD器件对所述存储单元进行初始化,在初始化正常后所述控制模块比对所述FPGA器件中的FPGA程序版本信息及所述CPLD器件中的CPLD程序的版本信息分别与所述存储单元内存储的所述FPGA程序版本信息及所述CPLD程序版本信息是否相同对并根据比对结果是否相同来确定是否更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。2.如权利要求1所述的可编程器件配置系统,其特征在于,所述控制模块包括一个控制单元及一个双路缓存器,所述存储单元包括一个第一存储器,所述FPGA器件包括一个配置控制输入管脚,所述控制单元将所述FPGA器件中的FPGA程序版本信息及所述CPLD器件中的CPLD程序的版本信息分别与所述第一存储器内存储的所述FPGA程序版本信息及所述CPLD程序版本信息进行比对并在比对结果不相同时通过所述CPLD器件设置所述配置控制输入管脚以通过所述双路缓存器更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。3.如权利要求2所述的可编程器件配置系统,其特征在于,所述存储单元还包括一个第二存储器,在所述FPGA器件中的FPGA程序版本信息与所述第一存储器内存储的所述FPGA程序版本信息不相同时,所述控制单元通过所述CPLD器件设置所述FPGA器件的配置使能输入管脚对所述FPGA器件进行复位后将FPGA程序通过所述CPLD器件下载到所述第二存储器中并使所述FPGA器件从所述第二存储器中获取相应的FPGA程序以更新所述FPGA器件中的FPGA程序。4.如权利要求3所述的可编程器件配置系统,其特征在于,所述控制单元通过外设部件互连标准(Peripheral Component Interconnect, PCIE)总线读写所述FPGA器件的寄存器以验证所述FPGA器件是否初始化正常,所述控制单元通过本地总线读写所述CPLD器件的寄存器以验证所述CPLD器件是否正常,所述控制单元经串行外设接口(SerialPeripheral Interface, SPI)总线通过所述CPLD器件分别读写所述第一存储器及所述第二存储器的寄存器以验证所述第一存储器及所述第二存储器是否正常。5.如权利要求3所述的可编程器件配置系统,其特征在于,所述第一存储器为铁电存储器,所述第二存储器为NOR FLASH存储器。6.如权利要求3所述的可编程器件配置系统,其特征在于,所述控制单元将FPGA程序通过所述CPLD器件下载到所述第二存储器的通信链路为第一通道,所述FPGA器件从所述第二存储器中获取相应的FPGA程序的通信链路为第二通道,所述FPGA器件还包括一个配置使能输入管脚,所述控制单元通过所述CPLD器件设置所述配置使能输入管脚的电平的高低及所述配置控制输入管脚的电平的高低以在所述第一通道及所述第二通道之间选择相应通道进行通信。7.如权利要求6所述的可编程器件配置系统,其特征在于,所述控制单元通过所述CPLD器件设置所述配置控制输入管脚及所述配置使能输入管脚的电平为低电平时及所述FPGA复位且断开所述第二通道并开启所述第一通道进行通信,在所述第一通道中下载完成后所述控制单元通过所述CPLD器件设置所述配置使能输入管脚的电平及所述配置控制输入管脚的电平为高电平,所述控制单元经通过所述CPLD器件控制所述第一通道通信断开,所述控制单元经通过所述CPLD器件设置所述配置使能输入管脚的电平为低电平以开启所述第二通道进行通信更新所述FPGA器件中的FPGA程序。8.—种可编程器件配置方法,其用于实现现场可编程门阵列器件(Field—Programmable Gate Array,FPGA)及复杂可编程逻辑器件(Complex Programmable LogicDevice, CPLD)的配置,所述可编程器件配置方法包括以下步骤: 上电初始化; 初始化正常后比对所述FPGA器件中的FPGA程序版本信息及所述CPLD器件中的CPLD程序的版本信息分别与已存储的FPGA程序版本信息及CPLD程序版本信息是否相同;及根据比对结果来确定是否更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。9.如权利要求8所述的可编程器件配置方法,其特征在于,在根据比对是否相同来确定是否更新步骤中包括以下步骤: 若是,则不更新,若否,则更新所述FPGA器件中的FPGA程序及所述CPLD器件中的CPLD程序。10.如权利要求9所述的可编程器件配置方法,其特征在于,所述更新FPGA器件的步骤包括以下步骤: 对所述FPGA器件进行复位; 通过所述CPLD器件下载FPGA程序; 获取相应的FPGA程序以更新所述FPGA器件。
【专利摘要】本发明提供一种可编程器件配置系统,其用于实现可编程器件的配置,可编程器件配置系统包括控制模块、FPGA器件、CPLD器件及存储单元,存储单元中存储相应FPGA程序及CPLD程序版本信息,控制模块分别对FPGA器件、CPLD器件及存储单元进行初始化,在初始化正常后控制模块比对FPGA器件中的FPGA程序版本信息及CPLD器件中的CPLD程序的版本信息分别与存储单元内存储的FPGA程序及CPLD程序版本信息是否相同对并根据比对结果确定是否更新FPGA器件及CPLD器件。该配置系统通过控制模块比对使配置系统根据实际需要来进行更新,提高了更新升级速度。本发明还提供了一种可编程配置器件配置方法。
【IPC分类】G06F9/445, G06F9/44
【公开号】CN104881286
【申请号】CN201510287163
【发明人】朱冬艳, 段毅, 李飞, 吴海波, 柳光全, 余尧
【申请人】烽火通信科技股份有限公司
【公开日】2015年9月2日
【申请日】2015年5月28日
转载请注明原文地址:https://www.famiwei.com/read-8138789.html

最新回复(0)