CN116432574B - 一种fpga配置控制器自动回读flash数据方法及装置 - Google Patents
一种fpga配置控制器自动回读flash数据方法及装置 Download PDFInfo
- Publication number
- CN116432574B CN116432574B CN202310701104.4A CN202310701104A CN116432574B CN 116432574 B CN116432574 B CN 116432574B CN 202310701104 A CN202310701104 A CN 202310701104A CN 116432574 B CN116432574 B CN 116432574B
- Authority
- CN
- China
- Prior art keywords
- data
- flash
- instruction
- read
- configuration controller
- 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 73
- 238000004891 communication Methods 0.000 claims abstract description 45
- 230000002093 peripheral effect Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 14
- 230000004069 differentiation Effects 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 238000013461 design Methods 0.000 description 15
- 238000012827 research and development Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明提供了一种FPGA配置控制器自动回读FLASH数据方法及装置,包括:预定义上位机和FPGA配置控制器的通讯协议;所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;所述上位机将所述FLASH内部存储的数据保存成第一文件。本发明利用FPGA已有的接口,可以节省硬件资源,同时实现了上位机回读FLASH的功能。
Description
技术领域
本发明属于现场可编程门阵列设计技术领域,尤其涉及一种FPGA配置控制器自动回读FLASH数据方法及装置。
背景技术
配置FPGA需要存储码流数据的器件。例如FLASH可以作为存储码流数据的器件来配置FPGA。FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。
如果FPGA使用的是Master SPI的配置方式,则在上电的时候,FPGA会自动启动加载功能,从FLASH中读取码流数据,并将数据传送给SRAM阵列实现特定的功能。
FLASH一般是搭配可编程逻辑器件使用的,作为产品时其已经在PCB板上焊接固定了,此时若想使用专门的FLASH读取器来获取FLASH中的数据非常的不方便。
获取与FPGA相连的FLASH中的数据通常采样的方法都是自行设计逻辑电路,利用常规的FPGA开发流程实现对FLASH的擦除、读写等操作。这种方案不仅对使用人员有较高的FPGA设计技术要求,还带来了极大的不便性。同时,这种方案有一个亟需克服的缺陷,就是其必须保证FLASH中的码流数据能够成功使FPGA加载起来,FPGA成功进入用户模式使得与FLASH相连的SPI接口释放为用户接口。若本身FLASH中的码流遭到了破坏或者在国产FPGA研发过程中为了调试使用,此时FPGA不能成功加载起来,而此时想得到FLASH中的数据内容就无法通过此方法实现。
发明内容
本发明是为解决上述现有技术的全部或部分问题,提供了一种FPGA配置控制器自动回读FLASH数据方法及装置,以利用FPGA已有的接口,实现了上位机回读FLASH的功能,降低了电路设计的复杂度,节省了硬件资源开销同时可提供给用户在FPGA中的使用过程进行调试自己开发的FPGA用户电路,也极大的方便了FPGA研发人员在研发过程中对FPGA加载功能的调试,特别利于国产FPGA的研发。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例第一方面提供一种自动回读FLASH数据方法,包括:
预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述FPGA配置控制器至少包括第一类接口,第二类接口;所述FPGA配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;所述上位机将所述FLASH内部存储的数据保存成第一文件;通过文本编辑工具打开所述第一文件并读取所述FLASH内部存储的数据。
所述上位机至少包括程序软件,其中所述程序软件用于设置控制参数。
所述控制参数至少包括以下至少之一:回读数据口位宽的回读方式;寻址容量大小的地址的指令区分方式;回读数据起始地址;回读数据字节长度。如此,可提供给用户在FPGA中的使用过程进行调试自己开发的FPGA用户电路,也极大的方便了国产FPGA研发人员在研发过程中对FPGA加载功能的调试。
所述通讯协议至少包括回读指令,还至少包括以下至少之一:同步头;回读数据口位宽的回读方式;寻址容量大小的地址的指令区分方式;回读数据的起始地址;回读任意长度字节的数据。
所述FPGA配置控制器至少包括第一类接口,第二类接口;其中所述第一类接口用于接收回读指令和发送所述FLASH内部存储的数据,第二类接口用于发送串行外设接口指令和接收所述FLASH内部存储的数据。无需额外设计接口逻辑,降低了电路设计的复杂度,节省了硬件资源开销,方便了用户的使用。
所述FPGA配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令,还包括:上位机通过下载器将回读指令发送到FPGA配置控制器的第一类接口上;FPGA配置控制器若收到符合预定义通讯协议的回读指令,则将所述回读指令转化为串行外设接口指令;FPGA配置控制器将所述串行外设接口指令通过第二类接口发送给FLASH。
所述串行外设接口指令至少包括以下至少之一:回读数据口位宽的回读方式;寻址容量大小的地址的指令区分方式;回读数据的起始地址;回读任意长度字节的数据。
所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机,还包括:FPGA配置控制器将所述FLASH内部存储数据储存到所述FPGA的片内数据缓存中;若当前工作状态为加载过程,则将所述FLASH内部存储数据从所述片内数据缓存发送到FPGA的片内芯核中;若当前工作状态为回读过程,则将所述FLASH内部存储数据从所述片内数据存储器通过第一类接口发送到所述上位机。这种与加载共用接口的方式,降低了电路设计的复杂度,节省了硬件资源开销,方便了用户的使用。
本公开实施例第二方面提供一种FPGA配置控制器自动回读FLASH数据装置,所述装置包括:定义模块,用于预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述FPGA配置控制器至少包括第一类接口,第二类接口;第一处理模块,用于所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;第二处理模块,用于 FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;判断模块,用于所述FPGA控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;生成模块,用于所述上位机将所述FLASH内部存储的数据保存成第一文件。
本公开实施例第三方面提供一种电子设备,包括:存储器;处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,并能够实现前述任意第一方面或第二方面任意技术方案提供的所述FPGA配置控制器自动回读FLASH数据方法。
本公开实施例第四方面提供一种计算机存储介质,包括:所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现前述任意第一方面或第二方面任意技术方案提供的所述FPGA配置控制器自动回读FLASH数据方法。
与现有技术相比,本发明的主要有益效果:回读FLASH数据的方法复用了加载过程中的串行外设接口逻辑和数据采集后的片内数据存储器,不需额外设计读通道的串行外设接口逻辑,极大的节省了硬件资源开销;同时对于回读FLASH数据使用条件不受限制,不需要使FPGA进入用户模式即可实现回读FLASH功能,即不管FLASH中存储的是正常的码流数据还是受到破坏的码流,亦或是单纯的用户数据,都可以实现正确的回读FLASH;此外该方法不仅可提供给用户在FPGA中的使用过程进行调试自己开发的FPGA用户电路,也特别有利于国产FPGA研发人员在研发过程中更便捷地对FPGA加载功能的进行调试。
附图说明
图1为本发明实施例提供的一种FPGA配置控制器自动回读FLASH数据方法的流程示意图;
图2为本发明实施例提供的一种FPGA配置控制器自动回读FLASH数据方法的数据流向示意图;
图3为本发明实施例提供的一种FPGA配置控制器自动回读FLASH数据方法的内部数据处理示意图;
图4为本发明实施例提供的一种FPGA配置控制器自动回读FLASH数据方法的软件界面示意图;
图5为本发明实施例提供的一种FPGA配置控制器自动回读FLASH数据装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
实施方式
为了能够更加详尽地了解本申请的特点与技术内容,下面结合附图对本申请的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请。
如图1所示,本公开实施例提供了一种FPGA配置控制器自动回读FLASH数据方法,所述方法包括:
S110:预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述FPGA配置控制器至少包括第一类接口,第二类接口;
S120:所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;
S130:FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA控制器;
S140:所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;
S150:所述上位机将所述FLASH内部存储的数据保存成第一文件。
本公开实施例提供FPGA配置控制器自动回读FLASH数据方法可以应用于各种电子设备,该电子设备包括但不限于:集成电路。
所述上位机是指可以直接发出操控命令的计算机,而所述上位机往往需要对应下位机。所述下位机是直接控制设备获取设备状况的计算机,在本发明中所述下位机指的是FPGA配置控制器,其中FPGA配置控制器包括第一类接口和第二类接口,其中第一类接口是指JTAG(Joint Test Action Group,联合测试工作组)接口,第二类接口是指SPI(SerialPeripheral Interface,串行外设接口)接口。上位机发出的命令通过JTAG接口发送给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机实时读取设备状态数据,转换成数字信号反馈给上位机。上位机和下位机的通讯需要预先设定通讯协议。
所述通讯协议是指接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程,所述通讯协议可以是RS232,也可以是用户自定义的与上位机通讯的通讯协议,在本实施例中,所述通讯协议是用户自定义的FPGA配置控制器与上位机通讯的通讯协议。
在一些实施例中,所述S110的过程可包括:
预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述FPGA控制器至少包括第一类接口,第二类接口;所述通讯协议至少包括回读指令,还至少包括以下至少之一:同步头;回读数据口位宽的回读方式;寻址容量大小的地址的指令区分方式;回读数据的起始地址;回读任意长度字节的数据。
示例的同步头是指一段自己定义的标识,接收到该标识才表示该数据是有效的,才能被FPGA配置控制器所识别。
所述数据口位宽的回读方式是指根据SPI接口的线宽决定的回读方式,包括x1、x2、x4、2x4、x8的回读方式,数据口的位宽越大,则传输数据的速度越快。
所述寻址容量大小的地址的指令区分方式包括4byte指令和3byte指令,其中所述4byte指令可以寻址128Mb容量以上的地址,而3byte指令则不可以。
所述回读数据的起始地址是指FLASH内部存储的数据起始的位置,可以是在内存中开头的位置,也可以是用户自己定义的位置。
所述回读任意长度字节的数据是指FLASH内部存储的数据的长度,例如,长度可为1024、2048或3072等预先确定的经验值或者实验值。
在本实施例中,FPGA与上位机之间的通信协议是根据FPGA的硬件设计及相应功能编写的。
在一些实施例中,
所述上位机至少包括程序软件,其中所述程序软件用于设置控制参数;
在一些实施例中,所述控制参数至少包括以下至少之一:回读数据口位宽的回读方式;寻址容量大小的地址的指令区分方式;回读数据起始地址;回读数据字节长度。所述数据口位宽的回读方式是指根据SPI接口的线宽决定的回读方式,包括x1、x2、x4、2x4、x8的回读方式,数据口的位宽越大,则传输数据的速度越快。
所述寻址容量大小的地址的指令区分方式包括4byte指令和3byte指令,其中所述4byte指令可以寻址128Mb容量以上的地址,而3byte指令不可以。
所述回读数据的起始地址是指flash内部存储的数据起始的位置,可以是在内存中开头的位置,也可以是用户自己定义的位置。
此外,对控制参数的设定主要是控制SPI接口的位宽,4byte指令与3byte指令是否相同,x8模式是dual x4还是octal。FPGA在识别出关键字后才会对后面的指令进行处理,而回读FLASH指令则是控制FPGA进行相应的回读操作,而回读控制字段则是规定了回读数据的线宽,指的是x1,x2,x4还是2x4的回读方式,同时规定了FLASH的4byte模式下的回读指令是否与3byte模式下的回读指令相同。回读数据首地址则是规定从FLASH的哪个地址开始回读,回读数据字节长度则是规定从FLASH中读出多少个字节的数据。如此,可提供给用户在FPGA中的使用过程进行调试自己开发的FPGA用户电路,也极大的方便了国产FPGA研发人员在研发过程中对FPGA加载功能的调试。
在一些实施例中,所述FPGA控制器至少包括第一类接口,第二类接口;其中第一类接口用于接收回读指令和发送所述FLASH内部存储的数据,第二类接口用于发送串行外设接口指令和接收所述FLASH内部存储的数据。其中第一类接口是指JTAG(Joint TestAction Group,联合测试工作组)接口,第二类接口是指SPI(Serial PeripheralInterface,串行外设接口)接口。如此,无需额外设计接口逻辑,降低了电路设计的复杂度,节省了硬件资源开销,方便了用户的使用。
在一些实施例中,所述S120可包括:
所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;
上位机通过下载器将回读指令发送到FPGA配置控制器的第一类接口上;
FPGA配置控制器若收到符合预定义通讯协议的回读指令,则将所述回读指令转化为串行外设接口指令;
FPGA配置控制器将所述串行外设接口指令通过第二类接口发送给FLASH。
例如,当上位机向FPGA发送回读FLASH指令时,其会先向FPGA发送复位指令,使FPGA进入配置模式,让配置控制器接管SPI接口的使用权。此时,当FPGA收到正确的,符合预定义的回读FLASH指令时,便会将其转换为对应的SPI接口命令,将其发送给FLASH,同时将线宽值,4byte回读指令是否与3byte回读指令相同,回读的起始地址,回读的字节长度值发送给FLASH。
在一些实施例中,所述S130可包括:
FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;
在一些实施例中,所述串行外设接口指令至少包括以下至少之一:
回读数据口位宽的回读方式;
寻址容量大小的地址的指令区分方式;
回读数据的起始地址;
回读任意长度字节的数据。
所述数据口位宽的回读方式是指根据SPI接口的线宽决定的回读方式,包括x1、x2、x4、2x4、x8的回读方式,数据口的位宽越大,则传输数据的速度越快。
所述寻址容量大小的地址的指令区分方式包括4byte指令和3byte指令,其中所述4byte指令可以寻址128Mb容量以上的地址,而3byte指令不可以。
所述回读数据的起始地址是指FLASH内部存储的数据起始的位置,可以是在内存中开头的位置,也可以是用户自己定义的位置。
所述回读任意长度字节的数据是指FLASH内部存储的数据的长度,例如,长度可为1024、2048或3072等预先确定的经验值或者实验值。
在一些实施例中,所述S140可包括:
所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;FPGA配置控制器将所述FLASH内部存储数据储存到所述FPGA的片内数据存储器中;若当前工作状态为加载过程,则将所述FLASH内部存储数据从所述片内数据存储器发送到FPGA的片内芯核中,其中所述FPGA的片内芯核可以是SRAM阵列控制模块;若当前工作状态为回读过程,则将所述FLASH内部存储数据从所述片内数据存储器通过第一类接口发送到所述上位机。
此外,FPGA的加载过程是由FPGA上电或者管脚上PROG_B来触发的,而回读FLASH的过程是由上位机给FPGA发送回读指令来触发的。FPGA从FLASH中取到数据后会先将数据存储到FIFO(First Input First Output,先进先出)中,如果此时是加载过程,则FIFO中的数据下一步会发送给芯核来实现对SRAM的配置。如果此时是回读过程,则FIFO中的数据会回传到JTAG接口上,进而发送给上位机,同时上位机将接收到的数据保存为PSK或BIN文件的形式,供用户查看。通过这种与加载共用SPI接口和FIFO的方式,降低了电路设计的复杂度,节省了硬件资源开销,方便了用户的使用。
在一些实施例中,所述S150可包括:所述上位机将所述FLASH内部存储的数据保存成第一文件;所述第一文件是指回读出来的FLASH中的数据以文件的方式存储,可选存储为PSK文件或BIN文件。
如图2所示,本实施例中提供了一种FPGA配置控制器自动回读FLASH数据方法的数据流向示意图;
在一些实施例中,FPGA配置控制器通过JTAG接口接收上位机发送的回读指令,然后通过SPI接口发送回读指令给FLASH,,并通过SPI接口接收FLASH返回的FLASH 内部存储数据,最后将FLASH内部存储数据通过JTAG接口返还给上位机,其中在FPGA内部的数据流向中,实线描述的是加载过程的数据流向,虚线描述的是回读过程的数据流向。FPGA的加载过程是由FPGA上电或者管脚上PROG_B来触发的,而回读FLASH的过程是由上位机给FPGA发送回读指令来触发的。FPGA从FLASH中取到数据后会先将数据存储到FIFO中,如果此时是加载过程,则FIFO中的数据下一步会发送给芯核来实现对SRAM的配置。如果此时是回读过程,则FIFO中的数据会回传到JTAG接口上,进而发送给上位机,同时上位机将接收到的数据保存为PSK或BIN文件的形式,供用户查看。通过这种与加载共用SPI接口和FIFO的方式,降低了电路设计的复杂度,节省了硬件资源开销,方便了用户的使用。
如图3所示,本公开实施例提供了一种FPGA配置控制器自动回读FLASH数据方法的内部数据处理示意图;
在一些实施例中,预定义上位机与FPGA的通信协议,包括同步头,回读FLASH指令,回读SPI接口线宽及4byte回读指令是否与3byte相同,回读起始地址和回读数据字节长度;在FPGA的配置控制器中加入回读FLASH的功能电路设计,该设计与FPGA的加载功能共用一个SPI接口通道和数据缓存FIFO;上位机通过Elinx(与FPGA配套的EDA工具)中内嵌的programmer(EDA中的烧录软件)发送回读FLASH指令,通过JTAG接口将相应的参数发送给FPGA;FPGA中配置控制器部分将JTAG接口收到的回读FLASH指令转换为对应的SPI接口命令,发送给FLASH;FLASH将内部的存储数据回传给FPGA,由FPGA的JTAG接口再回传给上位机;回读FLASH电路与配置控制器中的加载功能电路共用SPI接口及FIFO。
FPGA与上位机之间的通信协议是根据FPGA的硬件设计及相应功能编写的。当上位机向FPGA发送回读FLASH指令时,其会先向FPGA发送复位指令,使FPGA进入配置模式,让配置控制器接管SPI接口的使用权。此时,当FPGA收到正确的,符合预定义的回读FLASH指令时,便会将其转换为对应的SPI接口命令,将其发送给FLASH,同时将线宽值,4byte回读指令是否与3byte回读指令相同,回读的起始地址,回读的字节长度值发送给FLASH。FLASH在接收到指令后就会按照指令要求,将其存储的数据内容回传给FPGA。FPGA再通过JTAG接口将数据传输给上位机,并存储为PSK文件或者BIN文件。通信协议包括关键字(AA996677),回读FLASH指令(BB335511),回读控制(CC4488XX),回读数据首地址,回读数据字节长度,其中回读控制主要是控制SPI接口的位宽,4byte指令与3byte指令是否相同,x8模式是dual x4还是octal。FPGA在识别出关键字后才会对后面的指令进行处理,而回读FLASH指令则是控制FPGA进行相应的回读操作,而回读控制字段则是规定了回读数据的线宽,指的是x1、x2、x4还是2x4的回读方式,同时规定了FLASH的4byte模式下的回读指令是否与3byte模式下的回读指令相同。回读数据首地址则是规定从FLASH的哪个地址开始回读,回读数据字节长度则是规定从FLASH中读出多少个字节的数据。如此,配置控制器中回读FLASH的电路设计复用了加载过程中的SPI接口逻辑和数据采集后的FIFO,不需额外设计读通道的SPI接口逻辑,极大的节省了硬件资源开销;使用条件不受限制,不需要使FPGA进入用户模式即可实现回读FLASH功能,即不管FLASH中存储的是正常的码流数据还是受到破坏的码流,亦或是单纯的用户数据,都可以实现正确的回读FLASH。
此外,回读功能支持x1、x2、x4、2x4、octal的回读方式,即spi接口回读速度可调,4byte回读指令控制,同时支持回读任意地址开始,任意字节长度的数据,回读后的数据可选择保存为PSK文件或BIN文件;该功能不仅可提供给用户在FPGA中的使用过程进行调试自己开发的FPGA用户电路,也极大的方便了国产FPGA研发人员在研发过程中对FPGA加载功能的调试。
如图4所示,本发明实施例提供了一种FPGA配置控制器自动回读FLASH数据方法的软件示意图;
在一些实施例中,所述上位机至少包括程序软件,其中所述程序软件用于设置控制参数;其中所述程序软件可以是配套FPGA的软件,用于预定义上位机和FPGA控制器通讯协议,回读FLASH时的指令下发及控制参数传递;通过在软件界面上设置好相应的所述控制参数后,点击start即可开始回读,生成的数据文件可选择目录存放。
如图5所示,本实施例中提供的一种FPGA配置控制器自动回读FLASH数据装置的结构示意图;
定义模块110,用于预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述FPGA配置控制器至少包括第一类接口,第二类接口;
第一处理模块120,用于所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;
第二处理模块130,用于 FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;
判断模块140,用于所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;
生成模块150,用于所述上位机将所述FLASH内部存储的数据保存成第一文件。
在一些实施例中,所述定义模块110、所述第一处理模块120、所述第二处理模块130、所述判断模块140、所述生成模块150可为程序模块;所述程序模块被处理器执行后,可以实现上述各个模块的操作。
在另一些实施例中,所述定义模块110、所述第一处理模块120、所述第二处理模块130、所述判断模块140、所述生成模块150可为软硬结合模块;所述软硬结合模块包括但不限于:各种可编程阵列;该可编程阵列包括但不限于:现场可编程阵列和/或复杂可编程阵列。
在还有一些实施例中,所述定义模块110、所述第一处理模块120、所述第二处理模块130、所述判断模块140、所述生成模块150可为纯硬件模块;所述纯硬件模块包括但不限于:专用集成电路。
如图6所示,本公开实施例提供一种电子设备,其特征在于,所述电子设备包括:
存储器;
处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,能够实现前述任意实施例提供的方法,例如执行如图1至图4任意所示的方法。
该电子设备可为终端设备和/或服务平台中的服务器。
如图6所示,该电子设备还可包括网络接口,该网络接口可用于通过网络和对端设备进行交互。
本公开实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述任意实施例提供的方法,例如执行如图1至图4任意所示的方法。
应该理解到,在本申请所提供的几个实施例中,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种FPGA配置控制器自动回读FLASH数据方法,其特征在于,包括:
预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述回读指令至少包括;同步头、回读数据口位宽的回读方式、寻址容量大小的地址的指令区分方式、回读数据的起始地址和回读任意长度字节的数据;所述FPGA配置控制器至少包括第一类接口,第二类接口;其中,所述第一类接口用于接收回读指令和发送所述FLASH内部存储的数据,第二类接口用于发送串行外设接口指令和接收所述FLASH内部存储的数据;
所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;
FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;
所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机,其中:
所述FPGA配置控制器将所述FLASH内部存储数据储存到FPGA的片内数据缓存中;
若当前工作状态为加载过程,则将所述FLASH内部存储数据从所述片内数据缓存发送到FPGA的片内芯核中;
若当前工作状态为回读过程,则将所述FLASH内部存储数据从所述片内数据缓存通过第一类接口发送到所述上位机;
所述上位机将所述FLASH内部存储的数据保存成第一文件。
2.根据权利要求1所述的FPGA配置控制器自动回读FLASH数据方法,其特征在于,所述上位机至少包括程序软件,其中所述程序软件用于设置控制参数。
3.根据权利要求2所述的FPGA配置控制器自动回读FLASH数据方法,其特征在于,所述控制参数至少包括以下:
回读数据口位宽的回读方式;
寻址容量大小的地址的指令区分方式;
回读数据起始地址;
回读数据字节长度。
4.根据权利要求1所述的FPGA配置控制器自动回读FLASH数据方法,其特征在于, 所述FPGA配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令,还包括:
上位机通过下载器将回读指令发送到FPGA配置控制器的第一类接口上;
FPGA配置控制器若收到符合预定义通讯协议的回读指令,则将所述回读指令转化为串行外设接口指令;
FPGA配置控制器将所述串行外设接口指令通过第二类接口发送给FLASH。
5.根据权利要求1所述的FPGA配置控制器自动回读FLASH数据方法,其特征在于,所述串行外设接口指令至少包括以下:
回读数据口位宽的回读方式;
寻址容量大小的地址的指令区分方式;
回读数据的起始地址;
回读任意长度字节的数据。
6.一种FPGA配置控制器自动回读FLASH数据装置,其特征在于,包括:
定义模块,用于预定义上位机和FPGA配置控制器的通讯协议;其中,所述通讯协议至少包括回读指令;所述回读指令至少包括;同步头、回读数据口位宽的回读方式、寻址容量大小的地址的指令区分方式、回读数据的起始地址和回读任意长度字节的数据;所述FPGA配置控制器至少包括第一类接口,第二类接口;其中所述第一类接口用于接收回读指令和发送所述FLASH内部存储的数据,第二类接口用于发送串行外设接口指令和接收所述FLASH内部存储的数据;
第一处理模块,用于所述FPGA 配置控制器根据所述通讯协议通过第一类接口获取上位机发送的所述回读指令,将所述回读指令转化为串行外设接口指令;
第二处理模块,用于 FLASH通过第二类接口接收所述串行外设接口指令,并将FLASH内部存储的数据按照所述串行外设接口指令通过所述第二类接口发送到FPGA配置控制器;
判断模块,用于所述FPGA配置控制器判断当前工作状态,并将所述FLASH内部存储的数据通过第一类接口发送到所述上位机;其中,所述FPGA配置控制器将所述FLASH内部存储数据储存到FPGA的片内数据缓存中;
若当前工作状态为加载过程,则将所述FLASH内部存储数据从所述片内数据缓存发送到FPGA的片内芯核中;
若当前工作状态为回读过程,则将所述FLASH内部存储数据从所述片内数据缓存通过第一类接口发送到所述上位机;
生成模块,用于所述上位机将所述FLASH内部存储的数据保存成第一文件。
7.一种电子设备,其特征在于,包括:
存储器;
处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,并能够实现权利要求1至5任一项提供的所述FPGA配置控制器自动回读FLASH数据方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现权利要求1至5任一项提供的所述FPGA配置控制器自动回读FLASH数据方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310701104.4A CN116432574B (zh) | 2023-06-14 | 2023-06-14 | 一种fpga配置控制器自动回读flash数据方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310701104.4A CN116432574B (zh) | 2023-06-14 | 2023-06-14 | 一种fpga配置控制器自动回读flash数据方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116432574A CN116432574A (zh) | 2023-07-14 |
CN116432574B true CN116432574B (zh) | 2023-09-19 |
Family
ID=87091170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310701104.4A Active CN116432574B (zh) | 2023-06-14 | 2023-06-14 | 一种fpga配置控制器自动回读flash数据方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432574B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138779A (zh) * | 2021-04-21 | 2021-07-20 | 中科亿海微电子科技(苏州)有限公司 | 基于多功能接口的fpga在线程序更新装置及方法 |
CN114237122A (zh) * | 2021-12-17 | 2022-03-25 | 合肥腾芯微电子有限公司 | 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 |
CN115495135A (zh) * | 2022-09-14 | 2022-12-20 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga烧录方法及终端设备 |
-
2023
- 2023-06-14 CN CN202310701104.4A patent/CN116432574B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138779A (zh) * | 2021-04-21 | 2021-07-20 | 中科亿海微电子科技(苏州)有限公司 | 基于多功能接口的fpga在线程序更新装置及方法 |
CN114237122A (zh) * | 2021-12-17 | 2022-03-25 | 合肥腾芯微电子有限公司 | 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 |
CN115495135A (zh) * | 2022-09-14 | 2022-12-20 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga烧录方法及终端设备 |
Non-Patent Citations (2)
Title |
---|
"一种基于SPI配置模式FPGA在线升级方案";李伟等;《电子世界》;第37、38页 * |
"基于FPGA片内Flash实现数据的动态加载和读取";周刚等;通信技术;第52卷(第3期);第750-757页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116432574A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
CN102955474A (zh) | 一种汽车ecu的测控方法及其系统 | |
CN109783340B (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
CN114116378B (zh) | 获取PCIe设备温度的方法、系统、终端及存储介质 | |
CN113553081A (zh) | 一种基于zynq芯片的fpga加载方法 | |
CN109558359A (zh) | 嵌入式芯片的串口加载装置及方法 | |
CN105721568A (zh) | 一种远程调试系统、方法及装置 | |
CN114356671A (zh) | 板卡调试装置、系统及方法 | |
CN116432574B (zh) | 一种fpga配置控制器自动回读flash数据方法及装置 | |
CN112579506A (zh) | Bios与bmc通信的方法、bios、bmc和服务器 | |
CN116300780B (zh) | 零部件配置方法、装置、电子设备及存储介质 | |
CN115134427B (zh) | 通信协议协调方法、装置、计算机设备和存储介质 | |
CN112800001B (zh) | 一种基于arm平台架构的高性能物联网硬件平台及方法 | |
CN107908418B (zh) | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 | |
CN113219319B (zh) | 集成测试板卡、芯片测试系统及芯片测试方法 | |
CN112445728B (zh) | 一种支持多种硬件接口的机器人开发板ros通讯系统 | |
CN111176164B (zh) | 一种扩展多个远程输入输出模块的方法、装置及介质 | |
CN113626057A (zh) | 一种基于GigE Vision接口的相机远程固件升级系统和方法 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN111142950B (zh) | 使用jtag实现emmc启动操作系统的设备 | |
CN113765827B (zh) | 一种交换机固件保护系统 | |
CN109871281B (zh) | 一种基于inSE安全芯片的数据交互方法和装置 | |
KR100339205B1 (ko) | Imt-2000 시스템에서의 통신 보드내 프로세서 제어장치 | |
CN110442548B (zh) | 片上系统及其接口数据处理方法和装置 | |
CN115543755B (zh) | 一种性能监管方法、装置、系统、设备和介质 |
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 |