一种对设备内fpga芯片统一配置和管理的系统的制作方法

文档序号:1141819阅读:199来源:国知局

专利名称::一种对设备内fpga芯片统一配置和管理的系统的制作方法
技术领域
:本实用新型涉及嵌入式系统
技术领域
,具体涉及一种对设备内FPGA芯片统一配置和管理的系统。
背景技术
:现代的超声多普勒诊断仪越来越多的使用FPGA(FieldProgrammableGateArray,现场可编程逻辑门阵列),通常要使用超过一片的FPGA芯片。但是基于SRAM(StaticRAM,静态随机存储器)工艺的FPGA芯片在每次上电后需要进行配置,通常情况下FPGA芯片的配置文件由一片外部专用的EPROM来加载。这种传统配置方式是在FPGA芯片的功能相对稳定的情况下采用的。在系统设计要求配置速度高、容量大、维修以及远程升级时,这种方法就显得很不实际也不方便。在FPGA芯片正常工作时,配置数据存储在SRAM单元中,这个SRAM单元也被称为配置存储(ConfigurationRAM)。由于SRAM是易失性的存储器,因此,FPGA芯片在上电之后,外部电路需要将配置数据重新载入到片内的配置RAM中。在芯片配置完成后,内部的寄存器以及I/0管脚必须进行初始化。等初始化完成以后,芯片才会按照用户设计的功能正常工作。目前有两种方案可以实现,一种是使用专用的PROM,这些专用的PROM内部集成控制电路,能够提供FPGA芯片的配置时序,只要将PROM和FPGA芯片的专用引脚相连,上电时就能够自动加载PROM中的配置数据到FPGA芯片的SRAM中;另一种是在含有微处理器的系统中采用其他非易失性存储器如E2PROM、Flash存储配置数据,微处理器模拟FPGA芯片的配置时序将ROM中的数据置入FPGA芯片。与第一种方案相比,该方案节省成本、縮小系统体积。适用于对成本和体积苛刻要求的系统。但是对于多普勒超声诊断设备,一台设备上有多个的FPGA芯片,并分布于不同的单板上。按照上述的方案,必须每个FPGA芯片都配套一片PROM,会增加成本,并且维修升级都不方便,必须将PROM从单板上取下,在专用的设备上将FPGA芯片的配置数据写入PROM,再焊接到单板上。第二种方案要求单板上必须由含有微处理器,如果没有微处理器,就必需在单板上增加一个微处理器,增加成本。^Ka,微处理器的运行速度一般比较慢,配置一片FPGA芯片需要比较长的时间,FPGA芯片的配置数据越大,需要的时间越长。由于微处理器无法进行并行操作,如果单板上的微处理器需要配置多个FPGA芯片,就必须逐一配置FPGA芯片,这样需要等待的时间就更长。并且对于多普勒超声诊断设备,也必须对所有的FPGA芯片的配置数据进行管理,目前的方案都是针对单片FPGA芯片的配置数据或者单板上所有FPGA芯片的配置数据的管理,无法对一台设备内所有的FPGA芯片的配置数据进行统一的、集成的管理。因此对于多普勒超声诊断设备,如何使用一种低成本、简单有效的方案对整机的FPGA芯片的配置数据进行有效的配置和管理配置FPGA芯片、存取数据、升级数据,就摆在业内人士的面前。
实用新型内容本实用新型要解决的技术问题是提供一种对设备内FPGA芯片统一配置和管理的系统及方法,克服现有技术只能对单一的FPGA芯片进行配置,配置效率低下的缺陷。本实用新型为解决上述技术问题所采用的技术方案为-一种对设备内FPGA芯片统一配置和管理的系统,包括配置和管理逻辑组件和至少一个现场可编程逻辑门阵列FPGA,所述配置和管理逻辑组件与所述现场可编程逻辑门阵列FPGA相连,所述配置和管理逻辑组件包括微处理器、非易失性存储器、复杂可编程逻辑器件CPLD,所述微处理器、所述非易失性存储器和所述复杂可编程逻辑器件CPLD相互连接,所述复杂可编程逻辑器件CPLD与所述现场可编程逻辑门阵列FPGA连接,所述配置和管理逻辑组件用于按照串行方式或并行方式配置指定的一片或多片所述现场可编程逻辑门阵列FPGA。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述配置和管理逻辑组件对所述现场可编程逻辑门阵列FPGA的配置数据进行读取、更新或升级。.所述的对设备内FPGA芯片统一配置和管理的系统,其中所述微处理器设置通讯接口,通过所述通讯接口与上位机进行通讯。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述微处理器对所述非易失性存储器的内容进行读写或修改。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述微处理器向所述复杂可编程逻辑器件CPLD发送命令并读取所述复杂可编程逻辑器件CPLD的状态值。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述非易失性存储器存储所述现场可编程逻辑门阵列FGPA的配置数据和相关信息。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述复杂可编程逻辑器件CPLD根据所述非易失性存储器存储的有关所述现场可编程逻辑门阵列FPGA的配置信息,读取所述非易失性存储器的数据并配置所述现场可编程逻辑门阵列FPGA。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述复杂可编程逻辑器件CPLD向所述微处理器返回所述现场可编程逻辑门阵列FPGA的配置结果。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述非易失性存储器设为Flash存储器或EEPROM存储器。所述的对设备内FPGA芯片统一配置和管理的系统,其中所述通讯接口设为USB接口。本实用新型的有益效果本实用新型对设备内FPGA芯片统一配置和管理的系统实现了对一台设备内FPGA芯片的统一配置和管理,大大提高了对设备内FPGA芯片的配置效率,从而提高了设备使用和维护时的效率。本实用新型包括如下附图图1为本实用新型为对设备内FPGA芯片统一配置和管理的系统示意图2为本实用新型实施例Flash区域划分示意图3为本实用新型实施例CPLD内部组成示意图4为本实用新型实施例SPI接口示意图5为本实用新型实施例CPLD命令分析模块状态机;图6为本实用新型实施例CPLD三态缓冲器示意图7为本实用新型实施例CPLDFlash读取模块示意图;图8为本实用新型实施例CPLD内部总线仲裁模块状态机;图9为本实用新型实施例CPLDFPGA配置模块示意图;图10为本实用新型实施例CPLDFPGA并行配置模块状态机;图11为本实用新型实施例CPLDFPGA串行配置模块状态机;图12为本实用新型实施例CPLDFPGA校验模块状态机;图13为本实用新型实施例配置和管理逻辑组件示意图;图14为本实用新型实施例微处理器操作流程图。具体实施方式下面根据附图和实施例对本实用新型作进一步详细说明如图1所示,本实用新型对设备内FPGA芯片统一配置和管理的系统,包括配置和管理逻辑组件和至少一个现场可编程逻辑门阵列FPGA,配置和管理逻辑组件与现场可编程逻辑门阵列FPGA相连,配置和管理逻辑组件包括微处理器、非易失性存储器、复杂可编程逻辑器件CPLD,微处理器、非易失性存储器和复杂可编程逻辑器件CPLD相互连接,复杂可编程逻辑器件CPLD与现场可编程逻辑门阵列FPGA连接,配置和管理逻辑组件用于按照串行方式或并行方式配置指定的一片或多片现场可编程逻辑门阵列FPGA。配置和管理逻辑组件对现场可编程逻辑门阵列FPGA的配置数据进行读取、更新或升级。微处理器设置通讯接口,通过通讯接口与上位机进行通讯。微处理器对非易失性存储器的内容进行读写或修改。微处理器向复杂可编程逻辑器件CPLD发送命令并读取复杂可编程逻辑器件CPLD的状态值。非易失性存储器存储现场可编程逻辑门阵列FGPA的配置数据和相关信息。复杂可编程逻辑器件CPLD根据非易失性存储器存储的有关现场可编程逻辑门阵列FPGA的配置信息,读取非易失性存储器的数据配置现场可编程逻辑门阵列FPGA。复杂可编程逻辑器件CPLD向微处理器返回现场可编程逻辑门阵列FPGA的配置结果。非易失性存储器设为Flash存储器或EEPROM存储器。通讯接口设为USB接口。具体实施方式Flash如图2所示,Flash是用于存储FPGA芯片的配置信息以及FPGA芯片的配置数据。因此我们将Flash的存储空间分成两个区域,其中一个区域用于存放FPGA芯片的配置信息,称为信息区;另一个区域用于存放FPGA芯片的配置数据,称为数据区。信息区的开始部分存放的是配置标志位,用于指示CPLD是否需要等待微处理器的命令才开始进行FPGA芯片的配置。如果配置标志位=0xAA,则CPLD无需等待微处理器的配置命令,只要获得Flash的总线控制权,就可以开始FPGA芯片的配置;如果配置标志位^0x55,CPLD必须等待微处理器的配置命令,才可以开始FPGA芯片的配置;如果配置标志位为上述两个值之外的其他值,则CPLD不进行任何的FPGA芯片配置活动,并向微处理器返回一个错误状态。如表1所示。这样,如果我们需要FPGA芯片尽快地被配置完成,我们就可以通过微处理器将配置标志位设置为OxAA。而如果我们有其他的需要而不希望CPLD自动配置FPGA芯片,希望使用命令一个一个的配置FPGA芯片,则可以通过微处理器将配置标志位设置为0x55。表l配置标志位说明备注0x55FPGA芯片的配置受微处理器命令的控制微处理器发送配置命令,CPLD取得Flash的控制权后才开始配置FPGA芯片CPLD自动配置CPLD取得Flash的控制权即9<table>tableseeoriginaldocumentpage10</column></row><table>接下来的信息区存放的是FPGA数目,表示系统中连接到配置模块的FPGA的数量。0表示系统中没有任何的FPGA连接到配置模块,1表示系统中有1片FPGA连接到配置模块,以此类推。本配置模块能连接的FPGA数量受Flash的容量、CPLD的引脚数量的限制。例如,在本配置模块的一个应用实例上,连接的FPGA是8片。接下来的是存放FPGA配置数据的相关信息的FPGA配置数据信息,通过这个信息,CPLD可以得到连接在CPLD某一个配置通道上的FI>GA代号、FPGA的配置顺序、以及FPGA的配置数据的存放区域、校验值。其中,FPGA配置次序是用于指示FPGA的配置顺序。如表2所示,根据不同的配置等级,即可CPLD即可得到FPGA的配置顺序。如果有多个FPGA具有相同的配置等级,则表示这些FPGA需要并行配置。<table>tableseeoriginaldocumentpage10</column></row><table>FPGA代码表示的是系统中使用的FPGA的代号。主要是基于这样的考虑,在多普勒超声诊断设备中,有可能需要多片FPGA使用同一个的配置数据,使用FPGA的代号可以进行简单的校验不同型号的FPGA不能使用同一个配置数据,相同型号的FPGA才可以使用同一个配置数据。如表3所示,表示的是在本配置模块的一个应用实例上,连接的8片FPGA的代号。其中XC3S1400A有2片、XC3S1600E有4片。这些相同的FPGA就可以使用同一个配置数据。表3<table>tableseeoriginaldocumentpage11</column></row><table>FPGA配置数据起始地址和FPGA配置数据长度存放的是FPGA配置数据的起始地址和大小。通过这两个信息段,CPLD可以从指定区域读出指定长度的配置数据,从而对FPGA进行配置。FPGA配置数据校验值是保存FPGA配置数据的校验值,这个主要是为了防止存取过程中出现错误,导致配置完成后的FPGA的工作状态不是我们所预期的。CPLD在从Flash的数据区读取FPGA配置数据时,同时按照一定的校验算法进行计算,直到FPGA配置数据起始地址和FPGA配置数据长度指定的区域的FPGA配置数据被读取完成,此时校验算法也完成,将得到的校验结果与FPGA配置数据校验值比较,表示FPGA配置数据存取过程中没有失误。如果两个值不相等,表示有失误,CPLD必须向微处理器返回一个错误状态。根据开发难度和CPLD的容量,校验算法可以使用任何成熟的校验算法,本配置模块的一个应用实例上使用的是CRC-16(CyclicRedundancyCheck,循环冗余校验)校验算法。Flash的数据区就用于存放FPGA配置数据,一般的根据CPLD的配置通道顺序存放。只要将FPGA配置数据的起始地址和大小正确的反应到FPGA配置数据起始地址和FPGA配置数据长度即可。CPLD如图3所示,CPLD包括串行接口、命令分析模块、三态缓冲器、Flash读取模块、内部中线仲裁模块、FPGA配置模块等。Flash采用8M字节,16位宽度的芯片;串行接口采用SPI(SerialPeripheralsInterface,串行外设接口);对上述8片FPGA进行配置,其中7片采用SlaveSerial配置方式,另一片采用SdectMAP配置方式。'串行接口模块用于CPLD与微处理器之间的通讯,两者之间没有很多的数据需要传送,因此采用引线较少的串行接口是比较合适的。本实施例中采用SPI接口,其中CPLD属于从器件,微处理器属于主器件,所有的操作均由主器件引起。SPI接口只需4根信号线:LE弁为片选信号,当其有效电平为低电平,表示从器件被选中;CLK是由主器件发送给从器件的时钟信号,用于同步主从器件的工作时序;MOSI是数据传输线,由主器件输出,从器件输入;MISO也是数据传输线,由从器件输出,主器件输入。SPI接口如图4所示。当LE弁有效时,三个三态门打开,CLK、MOSI、MISO也可以输入。在CLK的推动下,MOSI的数据进入接收移位寄存器,发送移位寄存器的数据出现在MISO。当一个字节的数据发送接收完成之后,通过接收状态和发送状态产生RxIFG和TxIFG到命令分析模块,由这个模块读取接收缓冲寄存器的数据和写数据到发送缓冲寄存器。如图5所示,命令分析模块分析微处理器发送过来的命令和数据,并执行相应的动作,以及从Flash中读取信息区的数据并执行相应动作。这个模块比较复杂,采用状态机实现,其中虚线框部分,适用于CPLD自动从Flash中读取数据,并根据Flash信息区的信息自动配置FPGA。.当本配置装置上电幵始工作时,需要检测EN^信号是否有效,EN#信号是微处理器发送给CPLD的,是用于指示CPLD是否可以使用Flash的总线。在命令分析模块里只需要检测一次EN^是否有效即可。如果EN弁无效,则等待。如果ENS有效,则通过Flash读取模块从Flash读取配置标志位,并判断。如果配置标志位-0x55,表示需要等待微处理器的命令才进行FPGA的配置,此时状态机进入空闲状态,等待微处理器的命令。如果配置标志位-Oxaa,表示CPLD根据Flash的信息自动进行FPGA的配置,则再次从Flash中读取FPGA数目。如果FPGA数目=0表示没有FPGA需要进行配置,此时状态机进入空闲状态,等待微处理器的命令。如果FPGA数目>0,表示有FPGA需要配置,则状态机将读取的次数设置为FPGA数目。接着从Flash读取FPGA配置数据信息并写入对应FPGA配置模块;如果没有达到预设的次数,则继续读取下一个FPGA配置数据信息;如果达到预设的次数,则启动配置,之后进入空闲状态,等待微处理器的命令。具体的配置事务将交给FPGA配置模块完成。当状态机处于空闲状态,等待微处理器的命令时,如果串行接口的R^IFG有效,则从串行接口的接收缓冲寄存器读取微处理器的命令,并进入命令分析[表4是一个实例的命令列表]。如果分析结果是该命令无效,则又返回空闲状态;如果命令是配置,则进入配置FPGA状态,从13命令中获得配置的通道,并设置读取次数为l;接着从Flash读取FPGA配置数据信息并写入对应FPGA配置模块,然后启动配置,最后进入空闲状态。如果命令是获取,则进入读取状态,从命令中读取读取的目标,然后等待串行接口的TxIFG有效,如果有效,则将数据写入串行接口的发送缓冲寄存器,每发送一个字节都必须等待TxIFG有效,直到数据发送完成,最后进入空闲状态。表4<table>tableseeoriginaldocumentpage14</column></row><table>说明命令都为一个字节,其中高两位用于区别配置命令和获取命令,低六位用于指示命令的对象。除上面列出的命令代码之外的,都属于无效命令。'如图6所示,三态缓冲器用于CPLD与外部的Flash总线的相互隔离。因为微处理器、CPLD都连接到Flash,当微处理器、CPLD中的一个需要访问Flash,另一个就必须把自己与Flash总线隔离,否则引起访问错误。通过多个的三态门将CPLD内部总线和Flash总线隔离开,三态门的禁止和使能由微处理器的EN弁控制,如果EN弁有效,则三态门使能,CPLD内部总线和FlashBus直接相连,可以正常从Flash中读取数据。如果EN弁无效,则三态门将CPLD内部总线和Flash总线隔开,禁止CPLD访问Flash。如图7所示,Flash读取模块从Flash中读取数据。因为不同的Flash有不同的读取时序特性,需要通过本模块来实现对不同的Flash的兼容性。EN#(在CPLD内部成为CEN"从无效变成有效,将使RST信号发生器产生一个RST射言号,使Flash恢复到读状态。从内部总线仲裁模块发过来两组信号读信号FRD存和地址FA0:22(FRD^和FA0:22是由命令分析模块和FPGA配置模块等在需要读取flash数据时产生的,并通过内部总线仲裁模块发送到Flash读取模块)。FRDW吏CE信号发生器、OE信号发生器产生CE^OE弁信号,同时CE弁使地址锁存器输出CA0:22信号到Flash,使Flash输出指定地址的数据;而CE#、OE弁信号将使数据锁存器锁定这些数据,并写入Fash读取数据缓冲区,并发送OK弁信号到内部总线仲裁模块,表明完成一次Flash读操作,可以读取结果。.如图8所示,内部总线仲裁模块用于总线仲裁,因为有多个模块需要通过Flash读取模块来访为Flash,为了防止多个模块同时访问Flash而互相干扰,需要一个根据模块的优先级作一个排列,使访问依次完成。有两个并行的处理进程(并行处理是CPLD/FPGA等的特点),一个是用于将进程按照先后顺序以及优先级将其他模块发送的读请求排列,另一个进程是用于将队列里的读请求取出,发送到Flash读取模块,并将数据读回,发送给请求者。从CPLD上电后,本模块进入空闲状态,如果FRE^信号有效,则判断是否有多个读请求同时产生,如果不是,直接将本读请求放入队列的末尾,接着返回空闲状态。如果是多个读请求同时产生,则根据读请求的优先级(表5),从优先级高到低排列,依次放入队列中,接着返回空闲状态。在空闲状态时,如果队列中有读请求,则取出最前面的一个读请求,并发送到Flash读取模块,读取flash中的数据,等到OK弁有效时,就可以从Flash读取数据缓冲区读取数据发送给读请求者。接着进入空闲状态。如表5所示是实施例的优先级说明。将命令分析模块设置为最高优先级,因为这是读取命令的。将Virtex-5设置为次级优先级,因为这个FPGA很重要,需要尽快被配置完成。而其余的FPGA也都根据其重要性,设置了相应的优先级。表5<table>tableseeoriginaldocumentpage16</column></row><table>如图9所示,FPGA配置模块将Flash中的数据转为FPGA可识别的格式并产生合适的配置信号,以及计算配置数据的校验值。FPGA配置模块由配置模块和校验模块两个模块,以及起始地址寄存器、数据长度寄存器、校验值寄存器、状态寄存器四个寄存器组成。.其中,起始地址寄存器存放的是本配置通道上的FPGA的配置数据在Flash中的起始地址;数据长度寄存器存放的是本配置通道上的FPGA的配置数据有多少个字节;校验值寄存器存放的是本配置通道上的FPGA的配置数据的校验值;状态寄存器用于存放本通道配置的结果。起始地址寄存器、数据长度寄存器、校验值寄存器的内容是由命令分析模块写入的,状态寄存器是在配置过程中,由配置模块和校验模块写入的,其各位代表的意义如表6所示。如果读取的状态数据的Bit7-l,表示正在配置FPGA,bit0-bit3的状态不可信,因为还没配置完成;Bit6-Bit3没有使用,读回总是0;Bit2-Bit0是表示配置过程的状态,只有四位同时为1才表示配置是成功的,如果有不是1的状态存在,都表示不成功。表6Bit0BitlBit2Bit3Bit4Bit5Bit6Bit70Init一B校验DONE保留,保留,保留,保留,空闲状态结果信号未使未使未使未使无效不匹无效用,总用,总用,总用,总酉己是o是o是0是o1Init—B校验DONE正在状态结果信号配置有效正常有效FPGA配置模块是实际执行FPGA配置功能的模块。在本实例上,由于使用了两种配置方式-串行配置和并行配置,就需要两种不同的配置模块。如图IO所示的是本实例的并行配置模块,如图ll所示的是本实例的串行配置模块。采用并行配置,一次可以将16位的配置数据写入17FPGA,配置速度快,对于大容量的FPGA来说,可以显著的縮短时间。而串行配置方式每次只能写一位数据,不适合大容量的FPGA,但是这种方法的引线显然是很少的。并行配置模块的一个实例如图IO所示,CPLD上电后,进入空闲状态,当命令分析模块发过来一个启动配置的命令后,则马上将PROG—B、RDWR—B拉低,使FPGA进入待配置状态,此时需要检测Init一B引脚的状态,以确定FPGA是否进入了待配置状态,并根据Init—B的状态设置状态寄存器。如果FPGA已经进入待配置状态,则根据起始地址寄存器、数据长度寄存器的值启动一个Flash读请求到内部总线仲裁模块,并等待配置数据返回。数据返回之后,将数据写入配置端口CfgD[0:15],并使CSI—B=0,同时令CRC—S=0,并将数据复制给校验模块,使数据校验模块继续进行。之后,根据Busy的状态,等待FPGA读取配置端口CfgD[0:15]的数据。之后就可以令CSI—B=l,表明完成一次的FPGA配置数据的写入。之后,根据数据长度寄存器的值判断是否己经将所有的配置数据写如FPGA,如果没有,再发起一个Flash读请求,进行一次的FPGA配置数据的写入。这样循环,直到所有配置数据都写入FPGA,就检测DONE的状态,根据DONE的状态,设置状态寄存器。最后返回空闲状态。串行配置模块的一个实例如图ll所示,与并行配置模块差不多,差别是串行配置模块必须将并行数据串行化,一位一位传给FPGA,这个工作由移位寄存器完成。工作过程如下CPLD上电后,进入空闲状态,当命令分析模块发过来一个启动配置的命令后,则马上将PROGn拉低(n取值为1到7),使FPGA进入待配置状态,此时需要检测Initn引脚的状态,以确定FPGA是否进入了待配置状态,并根据Initn的状态设置状态寄存器。如果FPGA已经进入待配置状态,则根据起始地址寄存器、数据长度寄存器的值启动一个Flash读请求到内部总线仲裁模块,并等待配置数据返回。数据返回之后,将数据写入移位寄存器,同时令CRC—S=0,并将数据复制给校验模块,使数据校验模块继续进行。之后,从移位寄存器移一位数据到CfgDatan,并产生一个CfgCLKn信号给FPGA,由于一次只向FPGA写一位数据,因此FPGA能够及时响应,之后,判断移位寄存器是否为空,如果不空,重复移位和CfgCLKn,直到移位寄存器为空。之后,根据数据长度寄存器的值判断是否已经将所有的配置数据写如FPGA,如果没有,再发起一个Flash读请求。这样循环,直到所有配置数据都写入FPGA,就检测DONE的状态,根据DONE的状态,设置状态寄存器。最后返回空闲状态。如图12所示,校验模块是用于校验Flash中的FPGA配置数据的,以防止FPGA配置数据在存储、读取过程中发生意外的修改,导致FPGA不能正常工作。CPLD上电后,进入空闲状态,当Init一B(或Initn)等于K则开始计算校验值的进程,进入等待CRC—S=0的状态,当CRC—S=0时,接受配置模块发过来的数据,使用该数据计算校验值,并在计算完成之后令CRC—S=l。之后判断是否所有数据都计算完成,如果没有,则进入等待CRC—S=0的状态。如果已经计算完成,将计算结果与校验值寄存器的值比较,根据结果设置状态寄存器。这样,完成一次配置数据的校验。微处理器微处理器的连接如图13所示,微处理器通过USB(UniversalSerialBus,通用串行总线)接口与上位机器实现通讯,实现与上位机实现数据、命令、状态的通讯,这里的上位机一般使用带USB接口的PC。另外,微处理器与CPLD之间的连接线主要有两组,一组用于实现微处理器与ARM的通讯,如前所述的SPI接口的4根信号线和Busy、EN弁信号线,以实现向CPLD发送命令并从CPLD得到一些状态值;另一组是配置连接线,用于微处理器配置CPLD的,包括CfgCLKc、CfgDatac、Progc、Initc、Donec等五根信号线,用以实现更新CPLD的配置数据,实现CPLD的升级。最后,微处理器通过三态缓冲器与Flash连接,以实现对Flash的内容进行写、读、修改,又可以与Flash的总线断开,使得CPLD可以无障碍的访问Flash。因此,微处理器的固件需要完成以下事务1、与上位机进行的USB通讯;2、对Flash的操作读、写、校验;3、与CPLD的SPI命令处理模块;4、配置CPLD的模块其主程序流程图如图14所示。本领域技术人员不脱离本实用新型的实质和精神,可以有多种变形方案实现本实用新型,以上所述仅为本实用新型较佳可行的实施例而已,并非因此局限本实用新型的权利范围,凡运用本实用新型说明书及附图内容所作的等效结构变化,均包含于本实用新型的权利范围之内。20权利要求1、一种对设备内FPGA芯片统一配置和管理的系统,其特征在于包括配置和管理逻辑组件和至少一个现场可编程逻辑门阵列FPGA,所述配置和管理逻辑组件与所述现场可编程逻辑门阵列FPGA相连,所述配置和管理逻辑组件包括微处理器、非易失性存储器、复杂可编程逻辑器件CPLD,所述微处理器、所述非易失性存储器和所述复杂可编程逻辑器件CPLD相互连接,所述复杂可编程逻辑器件CPLD与所述现场可编程逻辑门阵列FPGA连接,所述配置和管理逻辑组件用于按照串行方式或并行方式配置指定的一片或多片所述现场可编程逻辑门阵列FPGA。2、根据权利要求1所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述配置和管理逻辑组件对所述现场可编程逻辑门阵列FPGA的配置数据进行读取、更新或升级。3、根据权利要求2所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述微处理器设置通讯接口,通过所述通讯接口与上位机进行通讯。4、根据权利要求3所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述微处理器对所述非易失性存储器的内容进行读写或修改。5、根据权利要求4所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述微处理器向所述复杂可编程逻辑器件CPLD发送命令并读取所述复杂可编程逻辑器件CPLD的状态值。6、根据权利要求5所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述非易失性存储器存储所述现场可编程逻辑门阵列FGPA的配置数据和相关信息。7、根据权利要求6所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述复杂可编程逻辑器件CPLD根据所述非易失性存储器存储的有关所述现场可编程逻辑门阵列FPGA的配置信息,读取所述非易失性存储器的数据并配置所述现场可编程逻辑门阵列FPGA。8、根据权利要求7所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述复杂可编程逻辑器件CPLD向所述微处理器返回所述现场可编程逻辑门阵列FPGA的配置结果。9、根据权利要求8所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述非易失性存储器设为Flash存储器或EEPROM存储器。10、根据权利要求9所述的对设备内FPGA芯片统一配置和管理的系统,其特征在于所述通讯接口设为USB接口。专利摘要本实用新型公开了一种对设备内FPGA芯片统一配置和管理的系统,包括配置和管理逻辑组件和至少一个现场可编程逻辑门阵列FPGA芯片,配置和管理逻辑组件与现场可编程逻辑门阵列FPGA相连,配置和管理逻辑组件包括微处理器、非易失性存储器、复杂可编程逻辑器件CPLD,微处理器、非易失性存储器和复杂可编程逻辑器件CPLD相互连接,复杂可编程逻辑器件CPLD与现场可编程逻辑门阵列FPGA连接,配置和管理逻辑组件用于按照串行方式或并行方式配置指定的一片或多片所述现场可编程逻辑门阵列FPGA。本实用新型对设备内FPGA芯片统一配置和管理的系统实现了对一台设备内FPGA芯片的统一配置和管理,大大提高了对设备内FPGA芯片的配置效率,从而提高了设备使用和维护时的效率。文档编号A61B8/00GK201353157SQ20082023576公开日2009年12月2日申请日期2008年12月30日优先权日2008年12月30日发明者海兰,李春彬,蒋颂平,黄嘉熙申请人:深圳市蓝韵实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1