CN103970665B - 一种模拟spi flash的fpga系统及调试方法 - Google Patents
一种模拟spi flash的fpga系统及调试方法 Download PDFInfo
- Publication number
- CN103970665B CN103970665B CN201410232779.XA CN201410232779A CN103970665B CN 103970665 B CN103970665 B CN 103970665B CN 201410232779 A CN201410232779 A CN 201410232779A CN 103970665 B CN103970665 B CN 103970665B
- Authority
- CN
- China
- Prior art keywords
- spi
- data
- interface
- memory
- communication information
- 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 49
- 238000003860 storage Methods 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 105
- 238000004891 communication Methods 0.000 claims description 83
- 238000004088 simulation Methods 0.000 claims description 63
- 238000004458 analytical method Methods 0.000 claims description 28
- 238000013500 data storage Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 230000003466 anti-cipated effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 235000015429 Mirabilis expansa Nutrition 0.000 description 2
- 244000294411 Mirabilis expansa Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 235000013536 miso Nutrition 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明实施例公开了一种模拟SPI FLASH的FPGA系统及调试方法,实现了模拟SPI FLASH的FPGA系统与主控设备板卡的调试平台的建立,且替代了实际SPI FLASH的功能,可以辅助主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的在调试的过程中的精力耗损和高昂的调试成本的技术问题。本发明实施例系统包括:FPGA芯片,存储器和USB驱动芯片,该FPGA芯片包括SPI接口,存储接口和USB接口,SPI接口用于与SPI连接,存储接口与存储器连接,USB接口用于与USB驱动芯片连接。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种模拟SPI FLASH的FPGA系统及调试方法。
背景技术
SPI FLASH就是以SPI(Serial Peripheral Interface,串行外设接口)作为接口,以NOR FLASH(或非结构闪存)作为存储单元的器件。
目前的嵌入式技术中,程序存储器主要是FLASH,程序小于16MB的系统通常采用SPI FLASH(NOR FLASH)作为程序存储器,并将剩余空间用作数据存储向主控设备提供数据或者是程序源,例如TV板卡等,另一方面在大系统中也会使用SPI FLASH做数据存储器或启动程序存储器。
然而,上述提及的主控设备在开发阶段由于其程序的不稳定,以及产品可靠性对程序健壮性的要求,需要反复对程序进行调试,更新,验证,调试等,不断地擦写SPI FLASH。而SPI FLASH的擦写速度非常慢,在SPI FLASH的擦写过程中,浪费了大量技术人员的时间。而对主控设备程序的健壮性要求,则需要连接高昂的分析器通过SPI对主控设备监听,同时,所述分析器又无法干预SPI总线。
发明内容
本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,实现了模拟SPIFLASH的FPGA系统与主控设备板卡的调试平台的建立,且替代了实际SPI FLASH的功能,可以辅助主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的在调试的过程中的精力耗损和高昂的调试成本的技术问题。
本发明实施例提供的一种模拟SPI FLASH的FPGA系统,包括FPGA芯片,存储器和USB驱动芯片,所述FPGA芯片包括SPI接口,存储接口和USB接口;
所述SPI接口用于与SPI连接;
所述存储接口与所述存储器连接;
所述USB接口用于与所述USB驱动芯片连接。
优选地,
所述SPI接口通过8个引脚与所述SPI连接。
优选地,
本发明实施例提供的一种模拟SPI FLASH的FPGA系统还包括:电源接口,与所述FPGA芯片,所述存储器和所述USB驱动芯片连接。
本发明实施例中提供的一种模拟SPI FLASH的调试方法,通过使用本发明实施例中提供的任意一项所述的模拟SPI FLASH的FPGA系统进行调试,包括:
S1:通过USB接口获取输入的数据,并通过存储接口将所述数据存储在存储器中;
S2:通过SPI接口将存储在所述存储器中的所述数据提供至SPI;
S3:将获取到来自所述SPI的通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据和SPI指令信息。
优选地,
步骤S2具体包括:
对存储在存储器中的所述数据进行预置SPI时钟数时间的提前缓存;
通过所述SPI接口将提前缓存的所述数据提供至所述SPI。
优选地,
所述步骤S3具体包括:
设定所述SPI的调试参数;
将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试,所述通信信息包括所述SPI地址、所述数据和所述SPI指令信息。
优选地,
将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试具体包括:
将获取到的来自所述SPI的所述通信信息发送至PC端执行预置过滤模式处理;
并通过所述PC端对过滤后的所述通信信息进行分析调试。
优选地,
步骤S3具体包括:
将获取到的来自所述SPI的所述通信信息发送至PC端按照预置改写模式对所述数据进行改写;
将改写后的所述数据存储在所述存储器中,并将所述数据提供至所述SPI;
将获取到通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据和SPI指令信息。
优选地,
将改写后的所述数据存储在所述存储器中具体包括:
将改写后的所述数据到所述模拟SPI FLASH的所述存储器对应所述地址中。
优选地,
步骤S3具体包括:
通过所述SPI接口跟踪所述SPI,并获取所述通信信息;
将获取到的来自所述SPI的所述通信信息发送至PC端与预期信息进行判断,若所述通信信息与所述预期信息不一致,则通过PC端对所述通信信息按照预期信息进行改写。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,其中,模拟SPIFLASH的FPGA系统包括:FPGA芯片,存储器和USB驱动芯片,该FPGA芯片包括SPI接口,存储接口和USB接口,SPI接口用于与SPI连接,存储接口与存储器连接,USB接口用于与USB驱动芯片连接。本发明实施例中,使用FPGA芯片通过SPI接口,存储接口和USB接口与SPI、存储器和USB驱动芯片连接,便能够将需要测试的主控设备板卡通过SPI与FPGA系统的SPI接口连接,另一方面通过USB接口连接USB驱动芯片的设计与电脑端建立通信关系,便实现了主控设备板卡的调试平台的建立,使得在调试中模拟SPI FLASH的FPGA系统替代了实际SPI FLASH的功能,可以是通过模拟SPI FLASH的FPGA系统对主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的技术人员 在调试的过程中的精力耗损和高昂的调试成本的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种模拟SPI FLASH的FPGA系统的结构示意图;
图2为本发明实施例提供的一种模拟SPI FLASH的FPGA系统的SPI接口引脚示意图;
图3为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个实施例的流程示意图;
图4为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流程示意图;
图5为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个应用例的示意图;
图6为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个应用例的预置SPI时钟数的曲线图;
图7为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流程示意图;
图8为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流程示意图;
图9为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流程示意图。
具体实施方式
本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,实现了模拟SPIFLASH的FPGA系统与主控设备板卡的调试平台的建立,且替代了实际SPI FLASH的功能,可以辅助主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的在调试的 过程中的精力耗损和高昂的调试成本的技术问题。
SPI(Serial Peripheral Interface,串行外设接口),是一种高速的,全双工,同步的通信总线;
FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于实现电脑与外部设备的连接和通讯。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供的一种模拟SPI FLASH的FPGA系统的一个实施例包括:
FPGA芯片101,存储器102和USB驱动芯片103,前述的FPGA芯片101包括SPI接口1011,存储接口1012和USB接口1013;
前述的SPI接口1011用于与SPI连接,需要说明的是该SPI为SPI总线,在该SPI总线另一端连接有SPI总线的切换开关或切换器,使得主控设备的板卡的MCU控制器可以是切换与模拟SPI FLASH的FPGA系统连接,还可以是切换与SPI FLASH连接,如图2所示,SPI接口1011可以是通过8个引脚与SPI连接,该8个引脚为8个数据/控制口,如CLK、MOSI、MISO、/CS、/WP、/HOLD,及地GND与电源脚VCC,进一步地对其8个数据/控制口的描述可以是如图2所示,/CS:片选,低电平有效;MISO:数据输出,复用为IO1;/WP:写保护,低电平有效,复用为IO2;GND:接地;MOSI:数据输入,复用为IO0;CLK:时钟输入;/HOLD:暂停模式,低电平有效,复用为IO3;VCC:电源,由外部供电,可以理解的是,该8个数据/控制口为公知技术,因此更为详细的阐述便不在此处进行说明;
存储接口1012与存储器102连接,可以理解的是,前述的存储器102可以是具备一定规格的存储设备,如RAM存储器,包括SRAM存储器和DDR SDRAM存储器,按照SPI接口的要求,对存储器进行选型。例如要求规格为持续速率为480Mbps(Quad read),突发响应速率为90MHz(Normal read),11.1ns的RAM,且RAM的工作频率要高于90MHz,且该RAM的满足:位宽×频率>480Mbps,具体此处不做限定,需要说明的是,前述的Quad read表示为4倍读取速率,前述的Normal read为正常读取速率。
USB接口1013用于与USB驱动芯片103连接,需要说明的是,USB接口1013与USB驱动芯片103的连接例如可以是采用USB2.0高速设备的芯片CY7C68013A做USB接口,与FPGA芯片101通过16位FIFO连接,具体此处不做限定。
需要说明的是,模拟SPI FLASH的FPGA系统还可以进一步包括:
电源接口104,与FPGA芯片101,存储器102和USB驱动芯片103连接,用于对模拟SPIFLASH的FPGA系统进行供电。
必须说明的是,当本发明实施例提供的模拟SPI FLASH的FPGA系统对主控设备进行模拟SPI FLASH的调试时,可以是对需要测试的主控设备的板卡增加切换电路,该切换电路可以是用于SPI总线上SPI的切换,切换电路只需要对FPGA系统的SPI接口1011的/CS脚操作即可,当模拟SPI FLASH的FPGA系统接通时,切换电路要把主控设备的板卡上的SPIFLASH的/CS脚强制拉高,并将真正的/CS信号引出到FPGA系统中,即实现了主控设备的板卡与模拟SPI FLASH的FPGA系统之间的通信。
本发明实施例中,使用FPGA芯片101通过SPI接口1011,存储接口1012和USB接口1013与SPI、存储器102和USB驱动芯片103连接,便能够将需要测试的主控设备板卡通过SPI与FPGA系统的SPI接口1011连接,另一方面通过USB接口1013连接USB驱动芯片103的设计与电脑端建立通信关系,便实现了主控设备板卡的调试平台的建立,使得在调试中模拟SPIFLASH的FPGA系统替代了实际SPI FLASH的功能,可以是通过模拟SPI FLASH的FPGA系统对主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的技术人员在调试的过程中的精力耗损和高昂的调试成本的技术问题。
上面是对本发明实施例提供的一种模拟SPI FLASH的FPGA系统进行详 细的描述,下面将对使用图1所示实施例的模拟SPI FLASH的FPGA系统的调试方法进行详细的描述,请参阅图3,本发明实施例提供的一种模拟SPIFLASH的调试方法的一个实施例包括:
S1:通过USB接口将数据输入,并通过存储接口将数据存储在存储器中;
本实施例中,当需要对主控设备的板卡进行模拟SPI FLASH的调试时,前述的板卡例如TV板卡,具体此处不做限定,首先PC端通过模拟SPI FLASH的FPGA系统的USB接口将数据输入,可以理解的是,该数据可以是程序文件,如BIN文件,然后数据通过模拟SPI FLASH的FPGA系统的存储接口存储在存储器中,该存储器,例如是RAM存储器,具体此处不做限定。
必须说明的是,当对主控设备的板卡进行模拟SPI FLASH的调试之前,需要PC端通过模拟SPI FLASH的FPGA系统的USB接口与模拟SPI FLASH的FPGA系统建立通信时,需要初始化连接在USB接口的USB驱动芯片,使得模拟SPI FLASH的FPGA系统的接口为初始状态,初始化USB驱动芯片的技术为公知技术,因此,此处便不再详细赘述。
S2:通过SPI接口将存储在存储器中的数据提供至SPI;
通过USB接口输入的数据存储在存储器中之后,当SPI需要读写存储器中的数据时,首先通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备板卡通过SPI及SPI接口可以是将数据读取出来,并加载前述的数据,例如SPI接口根据SPI总线的读或写请求指令,读取存储器中数据或写入数据到存储器中。
S3:将获取到来自SPI的通信信息发送至PC端进行分析调试。
本实施例中,通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备的板卡加载使用数据之后,可以是根据主控设备程序逻辑,继续对SPI进行访问,通过SPI及SPI接口对模拟SPI FLASH的FPGA系统的操作,将被本系统记录下来,主控设备的板卡将通信信息通过SPI再通过USB接口输送至PC端进行提取,可以理解的是,PC端具备相应的提取软件进行提取操作,使得PC端可以对获取到的SPI的通信信息进行分析调试,该分析调试的过程将在后续实施例中进行详细的说明,此处便不再赘述,可以理解的是,该通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包 还可以是包括有附加指令发生时刻的时间戳,需要说明的是,调试数据和指令信息具备相对应的关系。
本实施例中,PC端先通过模拟SPI FLASH的FPGA系统将数据传输至本系统内的存储器中,再通过SPI接口使得主控设备的板卡对存储器中的数据进行读写,便实现了模拟SPI FLASH的功能,同时,例如当USB的传输速度为480Mbps,模拟SPI FLASH的FPGA系统内部存储器的速度也可以达到480Mbps的情况时,假设更新文件大小如4MB时,该更新过程在1秒内就可以完成的推导例子看来,模拟SPI FLASH的调试方法进一步解决了由于FLASH擦写速度慢所导致的技术人员在调试的过程中的精力耗损和高昂的调试成本的技术问题。
上面是对模拟SPI FLASH的调试方法进行详细的描述,下面将对数据提供至SPI的过程进行详细的描述,请参阅图4,本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例包括:
401、通过USB接口将数据输入,并通过存储接口将数据存储在存储器中;
本实施例中,当需要对主控设备的板卡进行模拟SPI FLASH的调试时,前述的板卡例如TV板卡,具体此处不做限定,首先PC端通过模拟SPI FLASH的FPGA系统的USB接口将数据输入,可以理解的是,该数据可以是程序文件,如BIN文件,然后数据通过模拟SPI FLASH的FPGA系统的存储接口存储在存储器中,该存储器,例如是RAM存储器,具体此处不做限定,前述的数据可以是默认数据。
必须说明的是,当对主控设备的板卡进行模拟SPI FLASH的调试之前,需要PC端通过模拟SPI FLASH的FPGA系统的USB接口与模拟SPI FLASH的FPGA系统建立通信时,需要初始化连接在USB接口的USB驱动芯片,使得模拟SPI FLASH的FPGA系统的接口为初始状态,初始化USB驱动芯片的技术为公知技术,因此,此处便不再详细赘述。
402、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存;
当通过USB接口输入的数据存储在存储器中之后,当主控设备需要通过SPI读取存储器中的数据之前,则需要对存储在存储器中的数据进行预置SPI 时钟数时间的提前缓存,使得主控设备的板卡按照标准SPI协议进行读写数据。
403、通过SPI接口将提前缓存的数据提供至SPI;
本实施例中,对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存之后,便可以通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备的板卡按照标准SPI协议进行读写数据之后,通过SPI接口将提前缓存的数据提供至SPI。
404、将获取到的SPI的通信信息发送至PC端进行分析调试。
本实施例中,通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备的板卡加载使用数据之后,可以是根据主控设备程序逻辑,继续对SPI进行访问,通过SPI及SPI接口对模拟SPI FLASH的FPGA系统的操作,将被本系统记录下来,主控设备的板卡将通信信息通过SPI发送至FPGA系统获取,再通过USB接口输送至PC端进行提取,可以理解的是,PC端具备相应的提取软件进行提取操作,使得PC端可以对获取到的SPI的通信信息进行分析调试,该分析调试的过程将在后续实施例中进行详细的说明,此处便不再赘述,可以理解的是,该通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包还可以是包括有附加指令发生时刻的时间戳,需要说明的是,调试数据和指令信息具备相对应的关系。
本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据按照标准SPI协议进行读写,通过FPGA系统将SPI指令、地址与数据的通信信息返回至PC端进行过滤再分析,实现了通过FPGA系统模拟SPI FLASH的调试功能,由于对所有SPI操作都有监控,模拟SPI FLASH的FPGA系统可以找出非法SPI操作,进而找出常规方法难以发现的主控设备程序问题,解决了由于FLASH数据跟踪不便而产生的主控设备程序遗留的健壮性问题,同时,预先设定调试参数的设计,进一步提高了调试的效率。
上面是对数据提供至SPI进行调用的过程进行详细的描述,下面以一具体例子对上述的实施例的步骤402的预置SPI时钟数时间的提前缓存的过程通过以下例子进行说明:
如图5所示,例如存储器RAM的数据位宽为32bit,在SPI接口接收到读存储器指令及地址,在接收到21位地址数据后,由于在SPI FLASH对存储单元操作的指令中,对响应时间要求最高的就是普通读数据指令,即3个时钟周期,需要说明的是,该3个时钟周期的计算方式将在后续的应用例中进行说明,此处便不再详细赘述,因此在给出全部地址位的下一个时钟,便需要把数据输出,即对未收到的3位低位用0填充,对RAM进行寻址,例如SPI将要接收到的数据的对应地址为0x0000A3,当还没有收到最后3位(011)时,就对RAM寻址0x0000A0,读出对应数据并将数据存入FPGA内部缓存中,直至将缓存器填满后暂停缓存,待到SPI接口的24位地址都发送过来后,再以后收到的低3位地址来计算偏移地址对FPGA内部缓存寻址,将对应数据发给SPI接口,同时继续读取RAM后续地址的数据到FPGA缓存,对地址进行自动增址操作,来支持SPI端的连续读取操作,例如SPI接口收到最后的3位地址值为3,这时缓存器应该为填满的状态,在缓存器中查找地址为3的数据,输出0x04。在缓存器中的前3字节数据(0x010203)就是多读出来的无用字节,读出数据0x04后缓存器有4字节的空余空间,即可再对RAM读取数据来填满缓存器,需要说明的是,前述的填满缓存器为存储数据为大于2x个字节数据,x为要提前的SPI时钟周期数,例如如图5所示要提前3个SPI时钟周期,即在第28号CLK到来后系统收到21位地址,对未收到的3位地址用0代替形成24位地址,并对RAM进行寻址找出对应数据及后续相邻地址区域的数据,然后在第32号CLK的上升沿前读出这个区域的数据即可,区域的大小为8字节,即如果第29、30、31号CLK收到的地址为0、0、0,就输出这8字节的首字节,如果收到的是1、1、1就输出这8字节的尾字节,可以理解的是,在4个SPI时钟周期内读8字节数据,如果内存的位宽为4字节,就相当于4个SPI时钟周期内读取2次存储器RAM。
上面是对预置SPI时钟数时间的提前缓存的过程进行详细的说明,下面以一具体计算过程对图5所示的应用例的3个时钟周期进行计算,请参阅图6,计算过程如下:
设:Tspi为SPI接口的时钟周期,Tmem为RAM的时钟周期,tAA为RAM读数据延时,
其中,N为RAM的数据位宽,x为要提前的SPI时钟周期数,y为可预 读出数据与应预读出数据差。则:
应预读出的字节数据量为2x。
实际可预读出字节数据量为
求y的最大值,y′=0
例如采用异步SRAM作为存储器,Tspi=11.1nS(90MHz),假设tAA=Tmem,位宽选择N=32,得到图6,该图6可以是通过Excel生成,还可以是通过Matlab生成获取,具体此处不做限定,如图6所示,y>0,且y取整数,则Tmem(max)≈10.4nS,需要说明的是,可根据实际情况,选择10nS或8nS的SRAM,此处不做具体限定。
根据前述提及的应预读出的字节数据量为2x,则x需要取整为3,即提前3个SPI时钟周期来读RAM,并需要FPGA缓存至少8字节的数据。上面是对预置SPI时钟数的计算的过程进行详细的描述,下面将对获取到的SPI的通信信息进行分析调试进行详细的描述,在实际应用中,分析调试的方法有多种,下面分别进行说明。
一、过滤模式
请参阅图7,本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例包括:
701、通过USB接口将数据输入,并通过存储接口将数据存储在存储器 中;
此步骤与前述图4所示的实施例中的步骤401的内容相同,此处不再赘述。
702、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存;
此步骤与前述图4所示的实施例中的步骤402的内容相同,此处不再赘述。
703、通过SPI接口将提前缓存的数据提供至SPI;
此步骤与前述图4所示的实施例中的步骤403的内容相同,此处不再赘述。
704、将获取到的来自SPI的通信信息发送至PC端;
本实施例中,通过SPI接口将提前缓存的数据提供至SPI,使得主控设备的板卡加载使用数据之后,将通过SPI及SPI接口对模拟SPI FLASH的FPGA系统返回的基于前述的数据下操作的通信信息,可以理解的是,该通信信息可以包括SPI地址、数据和SPI指令信息等,需要说明的是,调试数据和指令信息具备相对应的关系。
需要说明的是,前述的通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包还可以是包括有附加指令发生时刻的时间戳。
705、设定SPI的调试参数;
本实施例中,通过SPI接口将提前缓存的数据提供至SPI,且主控设备的板卡加载使用数据之后,FPGA系统将SPI总线上的各条通信信息发送到PC端,PC端收到SPI总线上的各条通信信息,由PC端上的调试程序处理这些通信信息,设定调试参数来检查这些通信信息,例如设定调试参数可以是限制SPI总线写入存储地址的范围,用以保护特殊地址区域数据的调试参数,具体此处不做限定,可以理解的是,前述的设定调试参数还可以是由PC端将设定参数的相关指令发送至FPGA系统进行调试参数的设定,具体此处不做限定。
706、对来自SPI的通信信息执行预置过滤模式处理;
本实施例中,当获取到主控设备的板卡通过SPI的通信信息之后,需要对获取到的来自SPI的通信信息执行预置过滤模式,根据预置过滤模式将需 要的通信信息进行过滤,例如可以通过过滤出擦除指令使用的次数等,此处具体不做限定。
可以理解的是,前述的预置过滤模式可以是PC端将过滤指令发送给FPGA系统执行与过滤指令相对应的过滤模式,FPGA系统将执行过滤模式处理的数据传送至PC端进行后续步骤,还可以是PC端通过USB接口获取来自SPI的通信信息,对该通信信息进行预置过滤模式,此处具体不做限定。
707、对过滤后的通信信息进行分析调试。
当对获取到来自SPI的通信信息执行预置过滤模式之后,需要对过滤后的再次获取到的通信信息进行分析调试,例如过滤出擦除指令使用的次数之后,并统计擦除指令及其对应地址,从SPI FLASH的有效擦写周期数来评估产品使用寿命,此处具体不做限定。
本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据按照标准SPI协议进行读写,通过FPGA系统将SPI指令、地址与数据的通信信息返回至PC端进行过滤再分析,实现了通过FPGA系统模拟SPI FLASH的调试功能,由于对所有SPI操作都有监控,模拟SPI FLASH的FPGA系统可以找出非法SPI操作,进而找出常规方法难以发现的主控设备程序问题,解决了由于FLASH数据跟踪不便而产生的主控设备程序遗留的健壮性问题,同时,预先设定调试参数的设计,进一步提高了调试的效率。
二、改写模式;
请参阅图8,本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例包括:
801、通过USB接口将数据输入,并通过存储接口将数据存储在存储器中;
此步骤与前述图4所示的实施例中的步骤401的内容相同,此处不再赘述,需要说明的是,前述的输入的数据可以是默认数据,具体不做限定。
802、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存;
此步骤与前述图4所示的实施例中的步骤402的内容相同,此处不再赘述。
803、通过SPI接口将提前缓存的数据提供至SPI;
此步骤与前述图4所示的实施例中的步骤403的内容相同,此处不再赘述。
804、将获取到的来自SPI的通信信息发送至PC端;
本实施例中,通过SPI接口将提前缓存的数据提供至SPI,使得主控设备的板卡加载使用数据之后,将通过SPI及SPI接口对模拟SPI FLASH的FPGA系统返回的基于前述的数据下操作的通信信息,需要说明的是,数据和指令信息具备相对应的关系。需要说明的是,前述的通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包还可以是包括有附加指令发生时刻的时间戳。
805、将获取到的通信信息按照预置改写模式对数据进行改写,将改写后的数据存储在存储器中,并将数据提供至SPI;
本实施例中,当将获取到的来自SPI的通信信息发送至PC端之后,PC端需要依据主控设备程序逻辑的需求,例如需要对步骤801输入的默认数据按照SPI标准协议进行读写之后,首先需要通过改写FLASH内存储的数据来创造调试环境时,通过模拟SPI FLASH的FPGA系统,经USB接口和存储接口对存储器中的数据进行改写,可以理解的是,当对指定的地址和数据进行改写后,可以是通过USB接口将PC端改写后的数据通过存储接口存储至存储器的与前述的改写后的数据的对应地址中,改写后的数据需要通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备板卡通过SPI及SPI接口可以是将改写后的数据读取出来,并加载前述的数据,例如SPI接口根据SPI总线的读或写请求指令,读取存储器中数据或写入数据到存储器中
806、将获取到通信信息发送至PC端进行分析调试。
本实施例中,通过SPI接口将存储在存储器中改写后的数据提供至SPI,使得主控设备的板卡加载使用改写后的数据之后,使得主控板卡处于改写后的数据的调试环境下,然后在该调试环境下通过SPI及SPI接口对模拟SPIFLASH的FPGA系统的操作,将被本系统记录下来,当FPGA系统获取到通信信息之后,该通信信息需要通过USB接口输送至PC端进行提取,可以理解的是,PC端具备相应的提取软件进行提取操作,使得PC端可以对获取到 的SPI的通信信息进行分析调试。
本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据可以是按照标准SPI协议进行读写,并将改写的数据提供至主控设备的板卡,使得板卡在改写数据后的环境下,通过FPGA系统将SPI指令、地址与改写数据后的通信信息返回至PC端,PC端依据主控设备程序逻辑的需求,对模拟SPI FLASH的FPGA系统内存储器数据进行改写,实现了通过FPGA系统模拟SPI FLASH的调试功能,快速完成了对特定FLASH数据环境的搭建,进一步提高了调试的效率。
三、跟踪模式;
请参阅图9,本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例包括:
901、通过USB接口将数据输入,并通过存储接口将数据存储在存储器中;
此步骤与前述图4所示的实施例中的步骤401的内容相同,此处不再赘述,需要说明的是,前述的输入的数据可以是默认数据,具体不做限定。
902、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存;
此步骤与前述图4所示的实施例中的步骤402的内容相同,此处不再赘述。
903、通过SPI接口将提前缓存的数据提供至SPI;
此步骤与前述图4所示的实施例中的步骤403的内容相同,此处不再赘述。
904、将获取到的来自SPI的通信信息发送至PC端;
本实施例中,通过SPI接口将提前缓存的数据提供至SPI,使得主控设备的板卡加载使用数据之后,将通过SPI及SPI接口对模拟SPI FLASH的FPGA系统返回的基于前述的数据下操作的通信信息,需要说明的是,数据和指令信息具备相对应的关系。需要说明的是,前述的通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包还可以是包括有附加指令发生时刻的时间戳。
905、通过SPI接口跟踪SPI,并获取通信信息;
当将获取到的来自SPI的通信信息发送至PC端之后,需要通过SPI接口跟踪SPI在调试参数下的预置时间段的情况,可以理解的是,在跟踪前,PC端设定要跟踪的数据所在地址,在跟踪时,FPGA系统获取到主控设备的板卡SPI操作对应的通信信息,例如写入某存储地址的范围中的通信信息,可以理解的是,前述的通信信息可以包括调试SPI地址、数据和SPI指令信息等,需要说明的是,SPI指令、地址、数据信息是具备对应关系的一整包数据,并且信息中附加指令发生时刻的时间戳,具体此处不做限定。PC端对上述的通信信息进行分析,把与跟踪前所设定地址有关的擦除、写入操作指令,及操作后该地址上的数据值提取并记录下来。
906、将获取到的来自SPI的通信信息发送至PC端与预期信息进行判断,若通信信息与预期信息一致,则执行默认模式,若通信信息与预期信息不一致,则执行步骤907;
本实施例中,当通过SPI接口跟踪SPI,并获取通信信息之后,需要将获取到的来自SPI的通信信息发送至PC端与预期信息进行判断,若通信信息与预期信息一致,则执行默认模式,该默认模式可以是不进行任何操作,还可以将该步骤继续进行下去,此处具体不做限定,若通信信息与预期信息不一致,则执行步骤907,需要理解的是,前述的预期信息可以是依据主控设备程序逻辑,所推断出来特定地址存储的数据,在不同条件下对应的各种值,具体此处不做限定。
907、将存储器数据按照调试需要进行改写。
当判断通信信息与预期信息不一致之后,则认为主控设备程序逻辑出错,未能按照预期运行,此时可使用步骤905中所记录的日志进行辅助分析,亦可将所跟踪地址的存储单元按照调试需要进行改写,来进行辅助分析,例如可以是依据预期信息与实际信息之差异辅助进行主控设备程序的调试,判断主控设备程序异常。
本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据可以是按照标准SPI协议进行读写,通过FPGA系统将SPI 指令、地址与数据的通信信息返回至PC端与预期信息做比较,根据具体比较差异性进行分析调试,便实现了通过FPGA系统模拟SPI FLASH的调试功能,避免了主控设备系统在特殊条件下,例如掉电,所带来的数据跟踪问题。进一步解决了由于FLASH数据跟踪不便所导致的技术人员在调试的过程中的精力耗损。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步 骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种模拟SPI FLASH的调试方法,包括:
FPGA芯片,存储器和USB驱动芯片,其特征在于,所述FPGA芯片包括SPI接口,存储接口和USB接口;
所述SPI接口用于与SPI连接;
所述存储接口与所述存储器连接;
所述USB接口用于与所述USB驱动芯片连接;
所述SPI接口通过8个引脚与所述SPI连接;
方法步骤包括:
S1:通过USB接口获取输入的数据,并通过存储接口将所述数据存储在存储器中;
S2:通过SPI接口将存储在所述存储器中的所述数据提供至SPI;
S3:将获取到的来自所述SPI的通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据和SPI指令信息。
2.根据权利要求1所述的模拟SPI FLASH的调试方法,其特征在于,步骤S2具体包括:
对存储在存储器中的所述数据进行预置SPI时钟数时间的提前缓存;
通过所述SPI接口将提前缓存的所述数据提供至所述SPI。
3.根据权利要求1所述的模拟SPI FLASH的调试方法,其特征在于,所述步骤S3具体包括:
设定所述SPI的调试参数;
将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试,所述通信信息包括所述SPI地址、所述数据和所述SPI指令信息。
4.根据权利要求3所述的模拟SPI FLASH的调试方法,其特征在于,将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试具体包括:
对来自所述SPI的所述通信信息执行预置过滤模式处理;
并通过所述PC端对过滤后的所述通信信息进行分析调试。
5.根据权利要求1所述的模拟SPI FLASH的调试方法,其特征在于,步骤S3具体包括:
将获取到的来自所述SPI的所述通信信息发送至PC端按照预置改写模式 对所述数据进行改写;
将改写后的所述数据存储在所述存储器中,并将所述数据提供至所述SPI;
将获取到的通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据和SPI指令信息。
6.根据权利要求5所述的模拟SPI FLASH的调试方法,其特征在于,将改写后的所述数据存储在所述存储器中具体包括:
将改写后的所述数据存储至所述模拟SPI FLASH的所述存储器对应的所述地址中。
7.根据权利要求1所述的模拟SPI FLASH的调试方法,其特征在于,步骤S3具体包括:
通过所述SPI接口跟踪所述SPI,并获取所述通信信息;
将获取到的来自所述SPI的所述通信信息发送至PC端与预期信息进行判断,若所述通信信息与所述预期信息不一致,则通过PC端对所述通信信息按照预期信息进行改写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410232779.XA CN103970665B (zh) | 2014-05-28 | 2014-05-28 | 一种模拟spi flash的fpga系统及调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410232779.XA CN103970665B (zh) | 2014-05-28 | 2014-05-28 | 一种模拟spi flash的fpga系统及调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970665A CN103970665A (zh) | 2014-08-06 |
CN103970665B true CN103970665B (zh) | 2017-09-19 |
Family
ID=51240195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410232779.XA Active CN103970665B (zh) | 2014-05-28 | 2014-05-28 | 一种模拟spi flash的fpga系统及调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970665B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633867B (zh) * | 2017-09-20 | 2020-12-01 | 南京扬贺扬微电子科技有限公司 | 基于ft4222的spi闪存测试系统及方法 |
CN108132811B (zh) * | 2017-12-15 | 2021-09-21 | 杭州迪普科技股份有限公司 | 一种fpga程序数据的加载方法及装置 |
CN110737552B (zh) * | 2019-08-29 | 2022-06-21 | 瑞芯微电子股份有限公司 | 一种基于fpga的sfc接口测试设备与方法 |
CN110764956B (zh) * | 2019-08-29 | 2022-05-03 | 福州瑞芯微电子股份有限公司 | 一种基于fpga的sd或mmc接口测试装置和方法 |
CN111367850B (zh) * | 2020-02-11 | 2021-06-04 | 国电南瑞科技股份有限公司 | 一种fpga和mcu之间的快速通信方法 |
CN111651308B (zh) * | 2020-04-24 | 2024-01-30 | 广州视源电子科技股份有限公司 | Dp转hdmi芯片的调试数据获取方法、装置和智能设备 |
CN112000612A (zh) * | 2020-08-26 | 2020-11-27 | 中国科学技术大学 | 一种在嵌入式系统中使用fpga改进sd卡的方案 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN102609286A (zh) * | 2012-02-10 | 2012-07-25 | 株洲南车时代电气股份有限公司 | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI540438B (zh) * | 2011-10-13 | 2016-07-01 | 新唐科技股份有限公司 | 記憶體控制元件 |
-
2014
- 2014-05-28 CN CN201410232779.XA patent/CN103970665B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN102609286A (zh) * | 2012-02-10 | 2012-07-25 | 株洲南车时代电气股份有限公司 | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103970665A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103970665B (zh) | 一种模拟spi flash的fpga系统及调试方法 | |
CN105988718B (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
US20100205352A1 (en) | Multilevel cell nand flash memory storage system, and controller and access method thereof | |
CN104200843B (zh) | 闪存烧入器、烧入系统及烧入方法 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103366794B (zh) | 用于减少接脚数内存总线接口的装置及方法 | |
CN109542478A (zh) | 一种更新SPI Flash内FPGA程序的系统及方法 | |
CN108733578A (zh) | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
CN101454746A (zh) | 一种以多功能存储卡通讯的方法 | |
CN109062827A (zh) | 闪存控制装置、闪存控制系统以及闪存控制方法 | |
CN107911391A (zh) | 一种基于fpga的axi协议与spi协议转换的方法 | |
CN104461859B (zh) | 一种支持nvm软断点调试的仿真器和方法 | |
CN203260029U (zh) | 基于fpga的系统芯片原型验证调试装置 | |
CN113434162A (zh) | 远程在线更新fpga多版本程序的方法 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN113270137A (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
JP4180757B2 (ja) | シミュレーション装置 | |
CN204155612U (zh) | 闪存烧入器及烧入系统 | |
CN107704338A (zh) | 一种资料储存型闪存的数据恢复方法和装置 | |
CN104461796B (zh) | 用于嵌入式8051cpu的jtag调试模块及调试方法 | |
CN106571156B (zh) | 一种高速读写ram的接口电路及方法 | |
CN102193860A (zh) | 微控制器在线调试电路及方法、微控制器 | |
CN1321374C (zh) | 测试具有通用串行总线接口的存储装置的方法及存储装置 | |
CN103500585B (zh) | 一种用于控制单次可编程存储器的控制电路及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |