CN201353157Y - 一种对设备内fpga芯片统一配置和管理的系统 - Google Patents

一种对设备内fpga芯片统一配置和管理的系统 Download PDF

Info

Publication number
CN201353157Y
CN201353157Y CNU2008202357634U CN200820235763U CN201353157Y CN 201353157 Y CN201353157 Y CN 201353157Y CN U2008202357634 U CNU2008202357634 U CN U2008202357634U CN 200820235763 U CN200820235763 U CN 200820235763U CN 201353157 Y CN201353157 Y CN 201353157Y
Authority
CN
China
Prior art keywords
configuration
fpga
management
cpld
equipment
Prior art date
Application number
CNU2008202357634U
Other languages
English (en)
Inventor
蒋颂平
黄嘉熙
李春彬
兰海
Original Assignee
深圳市蓝韵实业有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 深圳市蓝韵实业有限公司 filed Critical 深圳市蓝韵实业有限公司
Priority to CNU2008202357634U priority Critical patent/CN201353157Y/zh
Application granted granted Critical
Publication of CN201353157Y publication Critical patent/CN201353157Y/zh

Links

Abstract

本实用新型公开了一种对设备内FPGA芯片统一配置和管理的系统,包括配置和管理逻辑组件和至少一个现场可编程逻辑门阵列FPGA芯片,配置和管理逻辑组件与现场可编程逻辑门阵列FPGA相连,配置和管理逻辑组件包括微处理器、非易失性存储器、复杂可编程逻辑器件CPLD,微处理器、非易失性存储器和复杂可编程逻辑器件CPLD相互连接,复杂可编程逻辑器件CPLD与现场可编程逻辑门阵列FPGA连接,配置和管理逻辑组件用于按照串行方式或并行方式配置指定的一片或多片所述现场可编程逻辑门阵列FPGA。本实用新型对设备内FPGA芯片统一配置和管理的系统实现了对一台设备内FPGA芯片的统一配置和管理,大大提高了对设备内FPGA芯片的配置效率,从而提高了设备使用和维护时的效率。

Description

一种对设备内FPGA芯片统一配置和管理的系统
技术领域
本实用新型涉及嵌入式系统技术领域,具体涉及一种对设备内 FPGA芯片统一配置和管理的系统。
背景技术
现代的超声多普勒诊断仪越来越多的使用FPGA (Field Programmable Gate Array,现场可编程逻辑门阵列),通常要使用超过一 片的FPGA芯片。但是基于SRAM (Static RAM,静态随机存储器)工 艺的FPGA芯片在每次上电后需要进行配置,通常情况下FPGA芯片 的配置文件由一片外部专用的EPROM来加载。这种传统配置方式是在 FPGA芯片的功能相对稳定的情况下采用的。在系统设计要求配置速度 高、容量大、维修以及远程升级时,这种方法就显得很不实际也不方便。 在FPGA芯片正常工作时,配置数据存储在SRAM单元中,这个 SRAM单元也被称为配置存储(Configuration RAM)。由于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为本实用新型实施例CPLD Flash读取模块示意图;图8为本实用新型实施例CPLD内部总线仲裁模块状态机;
图9为本实用新型实施例CPLDFPGA配置模块示意图; 图10为本实用新型实施例CPLDFPGA并行配置模块状态机; 图11为本实用新型实施例CPLDFPGA串行配置模块状态机; 图12为本实用新型实施例CPLD FPGA校验模块状态机; 图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
配置标志位 说明 备注
0x55 FPGA芯片的配置 受微处理器命令的 控制 微处理器发送配置命令, CPLD取得Flash的控制权后 才开始配置FPGA芯片
CPLD自动配置 CPLD取得Flash的控制权即
9<table>table see original document page 10</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>table see original document page 10</column></row> <table>FPGA代码表示的是系统中使用的FPGA的代号。主要是基于这样 的考虑,在多普勒超声诊断设备中,有可能需要多片FPGA使用同一个 的配置数据,使用FPGA的代号可以进行简单的校验:不同型号的FPGA 不能使用同一个配置数据,相同型号的FPGA才可以使用同一个配置数 据。如表3所示,表示的是在本配置模块的一个应用实例上,连接的8 片FPGA的代号。其中XC3S1400A有2片、XC3S1600E有4片。这些 相同的FPGA就可以使用同一个配置数据。
表3
<table>table see original document page 11</column></row> <table>
FPGA配置数据起始地址和FPGA配置数据长度存放的是FPGA配 置数据的起始地址和大小。通过这两个信息段,CPLD可以从指定区域 读出指定长度的配置数据,从而对FPGA进行配置。
FPGA配置数据校验值是保存FPGA配置数据的校验值,这个主要 是为了防止存取过程中出现错误,导致配置完成后的FPGA的工作状态 不是我们所预期的。CPLD在从Flash的数据区读取FPGA配置数据时, 同时按照一定的校验算法进行计算,直到FPGA配置数据起始地址和 FPGA配置数据长度指定的区域的FPGA配置数据被读取完成,此时校 验算法也完成,将得到的校验结果与FPGA配置数据校验值比较,表示FPGA配置数据存取过程中没有失误。如果两个值不相等,表示有失误, CPLD必须向微处理器返回一个错误状态。根据开发难度和CPLD的容 量,校验算法可以使用任何成熟的校验算法,本配置模块的一个应用实 例上使用的是CRC-16 (Cyclic Redundancy Check,循环冗余校验)校验算法。
Flash的数据区就用于存放FPGA配置数据, 一般的根据CPLD的 配置通道顺序存放。只要将FPGA配置数据的起始地址和大小正确的反 应到FPGA配置数据起始地址和FPGA配置数据长度即可。
CPLD
如图3所示,CPLD包括串行接口、命令分析模块、三态缓冲器、Flash 读取模块、内部中线仲裁模块、FPGA配置模块等。Flash采用8M字 节,16位宽度的芯片;串行接口采用SPI (Serial Peripherals Interface, 串行外设接口 );对上述8片FPGA进行配置,其中7片采用Slave Serial 配置方式,另一片采用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>table see original document page 14</column></row> <table>
说明:命令都为一个字节,其中高两位用于区别配置命令和获取命令, 低六位用于指示命令的对象。除上面列出的命令代码之外的,都属于 无效命令。 '如图6所示,三态缓冲器用于CPLD与外部的Flash总线的相互隔 离。因为微处理器、CPLD都连接到Flash,当微处理器、CPLD中的一个需要访问Flash,另一个就必须把自己与Flash总线隔离,否则引起访 问错误。通过多个的三态门将CPLD内部总线和Flash总线隔离开,三 态门的禁止和使能由微处理器的EN弁控制,如果EN弁有效,则三态门 使能,CPLD内部总线和Flash Bus直接相连,可以正常从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弁信号将使数 据锁存器锁定这些数据,并写入F】ash读取数据缓冲区,并发送OK弁信 号到内部总线仲裁模块,表明完成一次Flash读操作,可以读取结果。
.如图8所示,内部总线仲裁模块用于总线仲裁,因为有多个模块需 要通过Flash读取模块来访为Flash,为了防止多个模块同时访问Flash 而互相干扰,需要一个根据模块的优先级作一个排列,使访问依次完成。 有两个并行的处理进程(并行处理是CPLD/FPGA等的特点), 一个是用 于将进程按照先后顺序以及优先级将其他模块发送的读请求排列,另一 个进程是用于将队列里的读请求取出,发送到Flash读取模块,并将数 据读回,发送给请求者。
从CPLD上电后,本模块进入空闲状态,如果FRE^信号有效,则 判断是否有多个读请求同时产生,如果不是,直接将本读请求放入队列的末尾,接着返回空闲状态。如果是多个读请求同时产生,则根据读请 求的优先级(表5),从优先级高到低排列,依次放入队列中,接着返回 空闲状态。
在空闲状态时,如果队列中有读请求,则取出最前面的一个读请求,
并发送到Flash读取模块,读取flash中的数据,等到OK弁有效时,就 可以从Flash读取数据缓冲区读取数据发送给读请求者。接着进入空闲 状态。
如表5所示是实施例的优先级说明。将命令分析模块设置为最高优 先级,因为这是读取命令的。将Virtex-5设置为次级优先级,因为这个 FPGA很重要,需要尽快被配置完成。而其余的FPGA也都根据其重要 性,设置了相应的优先级。
表5<table>table see original document page 16</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的状态存在,都表示不成功。
表6
Bit0 Bitl Bit2 Bit3 Bit4 Bit5 Bit6 Bit7
0 Init一B 校验 DONE 保留, 保留, 保留, 保留, 空闲
状态 结果 信号 未使 未使 未使 未使
无效 不匹 无效 用,总 用,总 用,总 用,总
酉己 是o 是o 是0 是o
1 Init—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上电后,进入空闲状态, 当命令分析模块发过来一个启动配置的命令后,则马上将PROG n拉低 (n取值为1到7),使FPGA进入待配置状态,此时需要检测Init n引 脚的状态,以确定FPGA是否进入了待配置状态,并根据Initn的状态 设置状态寄存器。如果FPGA已经进入待配置状态,则根据起始地址寄 存器、数据长度寄存器的值启动一个Flash读请求到内部总线仲裁模块,并等待配置数据返回。数据返回之后,将数据写入移位寄存器,同时令 CRC—S=0,并将数据复制给校验模块,使数据校验模块继续进行。之后,
从移位寄存器移一位数据到CfgData n,并产生一个CfgCLK n信号给 FPGA,由于一次只向FPGA写一位数据,因此FPGA能够及时响应, 之后,判断移位寄存器是否为空,如果不空,重复移位和CfgCLK n, 直到移位寄存器为空。之后,根据数据长度寄存器的值判断是否已经将 所有的配置数据写如FPGA,如果没有,再发起一个Flash读请求。这样 循环,直到所有配置数据都写入FPGA,就检测DONE的状态,根据 DONE的状态,设置状态寄存器。最后返回空闲状态。
如图12所示,校验模块是用于校验Flash中的FPGA配置数据的, 以防止FPGA配置数据在存储、读取过程中发生意外的修改,导致FPGA 不能正常工作。CPLD上电后,进入空闲状态,当Init一B(或Init n)等于 K则开始计算校验值的进程,进入等待CRC—S=0的状态,当CRC—S=0 时,接受配置模块发过来的数据,使用该数据计算校验值,并在计算完 成之后令CRC—S=l。之后判断是否所有数据都计算完成,如果没有,则 进入等待CRC—S=0的状态。如果已经计算完成,将计算结果与校验值 寄存器的值比较,根据结果设置状态寄存器。这样,完成一次配置数据 的校验。
微处理器
•微处理器的连接如图13所示,微处理器通过USB (Universal Serial Bus,通用串行总线)接口与上位机器实现通讯,实现与上位机实现数 据、命令、状态的通讯,这里的上位机一般使用带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

Claims (10)

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接口。
CNU2008202357634U 2008-12-30 2008-12-30 一种对设备内fpga芯片统一配置和管理的系统 CN201353157Y (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNU2008202357634U CN201353157Y (zh) 2008-12-30 2008-12-30 一种对设备内fpga芯片统一配置和管理的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNU2008202357634U CN201353157Y (zh) 2008-12-30 2008-12-30 一种对设备内fpga芯片统一配置和管理的系统

Publications (1)

Publication Number Publication Date
CN201353157Y true CN201353157Y (zh) 2009-12-02

Family

ID=41409498

Family Applications (1)

Application Number Title Priority Date Filing Date
CNU2008202357634U CN201353157Y (zh) 2008-12-30 2008-12-30 一种对设备内fpga芯片统一配置和管理的系统

Country Status (1)

Country Link
CN (1) CN201353157Y (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087606A (zh) * 2011-02-16 2011-06-08 电子科技大学 一种fpga配置文件更新装置
CN102289381A (zh) * 2011-08-24 2011-12-21 中兴通讯股份有限公司 一种可编程逻辑器件的升级方法及系统
CN102789190A (zh) * 2011-05-20 2012-11-21 中国科学院微电子研究所 适用于不同类型fpga电路编程的列地址分配器电路
CN103531228A (zh) * 2013-09-30 2014-01-22 中国科学院微电子研究所 一种用于可配置位宽ram的读取路径选择及控制电路
CN103530234A (zh) * 2013-09-30 2014-01-22 中国科学院微电子研究所 一种用于可配置位宽ram的写入路径选择及控制电路
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN106682296A (zh) * 2016-12-19 2017-05-17 西安微电子技术研究所 一种面向fpga的多路通用化配置加载控制系统及方法
CN108472058A (zh) * 2015-11-25 2018-08-31 伊西康有限责任公司 用于外科器械的受限使用特征
CN108472058B (zh) * 2015-11-25 2021-04-23 伊西康有限责任公司 用于外科器械的受限使用特征

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087606A (zh) * 2011-02-16 2011-06-08 电子科技大学 一种fpga配置文件更新装置
CN102087606B (zh) * 2011-02-16 2014-02-05 电子科技大学 一种fpga配置文件更新装置
CN102789190B (zh) * 2011-05-20 2015-03-25 中国科学院微电子研究所 适用于不同类型fpga电路编程的列地址分配器电路
CN102789190A (zh) * 2011-05-20 2012-11-21 中国科学院微电子研究所 适用于不同类型fpga电路编程的列地址分配器电路
CN102289381A (zh) * 2011-08-24 2011-12-21 中兴通讯股份有限公司 一种可编程逻辑器件的升级方法及系统
CN103531228A (zh) * 2013-09-30 2014-01-22 中国科学院微电子研究所 一种用于可配置位宽ram的读取路径选择及控制电路
CN103530234A (zh) * 2013-09-30 2014-01-22 中国科学院微电子研究所 一种用于可配置位宽ram的写入路径选择及控制电路
CN103531228B (zh) * 2013-09-30 2016-08-31 中国科学院微电子研究所 一种用于可配置位宽ram的读取路径选择及控制电路
CN103530234B (zh) * 2013-09-30 2016-07-06 中国科学院微电子研究所 一种用于可配置位宽ram的写入路径选择及控制电路
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN108472058A (zh) * 2015-11-25 2018-08-31 伊西康有限责任公司 用于外科器械的受限使用特征
CN108472058B (zh) * 2015-11-25 2021-04-23 伊西康有限责任公司 用于外科器械的受限使用特征
CN106682296A (zh) * 2016-12-19 2017-05-17 西安微电子技术研究所 一种面向fpga的多路通用化配置加载控制系统及方法

Similar Documents

Publication Publication Date Title
US7729153B2 (en) 276-pin buffered memory module with enhanced fault tolerance
CN102087606B (zh) 一种fpga配置文件更新装置
Huebner et al. Real-time LUT-based network topologies for dynamic and partial FPGA self-reconfiguration
CN104704563B (zh) 具有双模式引脚的闪存存储器控制器
US6259271B1 (en) Configuration memory integrated circuit
CN101626016B (zh) 半导体器件
DK169366B1 (da) Databehandlingssystem med valgfri kort til indsætning og fremgangsmåde til automatisk opstilling af operationelle data for operation af valgfri kort.
US8719458B2 (en) Apparatus and methods for communicating with programmable devices
US6721830B2 (en) I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN101957726B (zh) 双列直插式存储模块中的相变存储器
CN102084428B (zh) 多模式存储器装置和方法
US8332569B2 (en) Nonvolatile memory system using data interleaving scheme
US6721820B2 (en) Method for improving performance of a flash-based storage system using specialized flash controllers
CN101226765B (zh) 多芯片封装快闪存储器器件以及从中读取状态数据的方法
US6888733B2 (en) Multiple chip system including a plurality of non-volatile semiconductor memory devices
CN103559053B (zh) 一种板卡系统及通信接口卡fpga在线升级方法
CN102609287B (zh) 一种通过cpu远程更新fpga的装置及其方法
US7822888B2 (en) Data buffer control which controls selection of path and operation of data buffer, based on stored configuration information
KR100843280B1 (ko) 메모리 시스템 및 그것의 데이터 전송 방법
EP0300406B1 (en) Write protect mechanism for non-volatile memory
US7539810B2 (en) System, method and storage medium for a multi-mode memory buffer device
EP2502125B1 (en) Power management of memory systems
TW421798B (en) A flash memory device, non-volatile memory device, and method for enabling simultaneous read and write operation in a flash or the like semiconductor device
US9436631B2 (en) Chip including memory element storing higher level memory data on a page by page basis

Legal Events

Date Code Title Description
GR01 Patent grant
C14 Grant of patent or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091202

Termination date: 20141230

EXPY Termination of patent right or utility model