《一种模拟SPIFLASH的FPGA系统及调试方法.pdf》由会员分享,可在线阅读,更多相关《一种模拟SPIFLASH的FPGA系统及调试方法.pdf(21页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103970665 A (43)申请公布日 2014.08.06 C N 1 0 3 9 7 0 6 6 5 A (21)申请号 201410232779.X (22)申请日 2014.05.28 G06F 11/36(2006.01) (71)申请人广州视源电子科技股份有限公司 地址 510663 广东省广州市广州高新技术产 业开发区科学城科珠路192号4楼 (72)发明人肖文鲲 (74)专利代理机构北京集佳知识产权代理有限 公司 11227 代理人曹志霞 (54) 发明名称 一种模拟SPI FLASH的FPGA系统及调试方法 (57) 摘要 本发明实施例公开了一种。
2、模拟SPI FLASH的 FPGA系统及调试方法,实现了模拟SPI FLASH的 FPGA系统与主控设备板卡的调试平台的建立,且 替代了实际SPI FLASH的功能,可以辅助主控设 备板卡进行调试,解决了现有技术中由于FLASH 擦写速度慢、FLASH数据追踪困难,所导致的在调 试的过程中的精力耗损和高昂的调试成本的技术 问题。本发明实施例系统包括:FPGA芯片,存储器 和USB驱动芯片,该FPGA芯片包括SPI接口,存储 接口和USB接口,SPI接口用于与SPI连接,存储 接口与存储器连接,USB接口用于与USB驱动芯片 连接。 (51)Int.Cl. 权利要求书2页 说明书12页 附图6页。
3、 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书12页 附图6页 (10)申请公布号 CN 103970665 A CN 103970665 A 1/2页 2 1.一种模拟SPI FLASH的FPGA系统,包括FPGA芯片,存储器和USB驱动芯片,其特征 在于,所述FPGA芯片包括SPI接口,存储接口和USB接口; 所述SPI接口用于与SPI连接; 所述存储接口与所述存储器连接; 所述USB接口用于与所述USB驱动芯片连接。 2.根据权利要求1所述的模拟SPI FLASH的FPGA系统,其特征在于,所述SPI接口通 过8个引脚与所述SPI连接。 3.根据权利。
4、要求1所述的模拟SPI FLASH的FPGA系统,其特征在于,还包括:电源接 口,与所述FPGA芯片,所述存储器和所述USB驱动芯片连接。 4.一种模拟SPI FLASH的调试方法,通过使用如权利要求1和2所述的模拟SPI FLASH 的FPGA系统进行调试,其特征在于,包括: S1:通过USB接口获取输入的数据,并通过存储接口将所述数据存储在存储器中; S2:通过SPI接口将存储在所述存储器中的所述数据提供至SPI; S3:将获取到来自所述SPI的通信信息发送至PC端进行分析调试,所述通信信息包括 SPI地址、数据和SPI指令信息。 5.根据权利要求4所述的模拟SPI FLASH的调试方法,。
5、其特征在于,步骤S2具体包括: 对存储在存储器中的所述数据进行预置SPI时钟数时间的提前缓存; 通过所述SPI接口将提前缓存的所述数据提供至所述SPI。 6.根据权利要求4所述的模拟SPI FLASH的调试方法,其特征在于,所述步骤S3具体 包括: 设定所述SPI的调试参数; 将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试,所述通信信息包 括所述SPI地址、所述数据和所述SPI指令信息。 7.根据权利要求6所述的模拟SPI FLASH的调试方法,其特征在于,将获取到的来自所 述SPI的所述通信信息发送至PC端进行分析调试具体包括: 对来自所述SPI的所述通信信息执行预置过滤模式。
6、处理; 并通过所述PC端对过滤后的所述通信信息进行分析调试。 8.根据权利要求4所述的模拟SPI FLASH的调试方法,其特征在于,步骤S3具体包括: 将获取到的来自所述SPI的所述通信信息发送至PC端按照预置改写模式对所述数据 进行改写; 将改写后的所述数据存储在所述存储器中,并将所述数据提供至所述SPI; 将获取到通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据和SPI 指令信息。 9.根据权利要求8所述的模拟SPI FLASH的调试方法,其特征在于,将改写后的所述数 据存储在所述存储器中具体包括: 将改写后的所述数据到所述模拟SPI FLASH的所述存储器对应所述地址中。
7、。 10.根据权利要求4所述的模拟SPI FLASH的调试方法,其特征在于,步骤S3具体包 括: 通过所述SPI接口跟踪所述SPI,并获取所述通信信息; 权 利 要 求 书CN 103970665 A 2/2页 3 将获取到的来自所述SPI的所述通信信息发送至PC端与预期信息进行判断,若所述通 信信息与所述预期信息不一致,则通过PC端对所述通信信息按照预期信息进行改写。 权 利 要 求 书CN 103970665 A 1/12页 4 一种模拟 SPI FLASH 的 FPGA 系统及调试方法 技术领域 0001 本发明涉及嵌入式技术领域,尤其涉及一种模拟SPI FLASH的FPGA系统及调试方。
8、 法。 背景技术 0002 SPI FLASH就是以SPI(Serial Peripheral Interface,串行外设接口)作为接口, 以NOR FLASH(或非结构闪存)作为存储单元的器件。 0003 目前的嵌入式技术中,程序存储器主要是FLASH,程序小于16MB的系统通常采用 SPI FLASH(NOR FLASH)作为程序存储器,并将剩余空间用作数据存储向主控设备提供数据 或者是程序源,例如TV板卡等,另一方面在大系统中也会使用SPI FLASH做数据存储器或 启动程序存储器。 0004 然而,上述提及的主控设备在开发阶段由于其程序的不稳定,以及产品可靠性对 程序健壮性的要求,需。
9、要反复对程序进行调试,更新,验证,调试等,不断地擦写SPI FLASH。 而SPI FLASH的擦写速度非常慢,在SPI FLASH的擦写过程中,浪费了大量技术人员的时 间。而对主控设备程序的健壮性要求,则需要连接高昂的分析器通过SPI对主控设备监听, 同时,所述分析器又无法干预SPI总线。 发明内容 0005 本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,实现了模拟 SPI FLASH的FPGA系统与主控设备板卡的调试平台的建立,且替代了实际SPI FLASH的功 能,可以辅助主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数 据追踪困难,所。
10、导致的在调试的过程中的精力耗损和高昂的调试成本的技术问题。 0006 本发明实施例提供的一种模拟SPI FLASH的FPGA系统,包括FPGA芯片,存储器和 USB驱动芯片,所述FPGA芯片包括SPI接口,存储接口和USB接口; 0007 所述SPI接口用于与SPI连接; 0008 所述存储接口与所述存储器连接; 0009 所述USB接口用于与所述USB驱动芯片连接。 0010 优选地, 0011 所述SPI接口通过8个引脚与所述SPI连接。 0012 优选地, 0013 本发明实施例提供的一种模拟SPI FLASH的FPGA系统还包括:电源接口,与所述 FPGA芯片,所述存储器和所述USB驱。
11、动芯片连接。 0014 本发明实施例中提供的一种模拟SPI FLASH的调试方法,通过使用本发明实施例 中提供的任意一项所述的模拟SPI FLASH的FPGA系统进行调试,包括: 0015 S1:通过USB接口获取输入的数据,并通过存储接口将所述数据存储在存储器中; 0016 S2:通过SPI接口将存储在所述存储器中的所述数据提供至SPI; 说 明 书CN 103970665 A 2/12页 5 0017 S3:将获取到来自所述SPI的通信信息发送至PC端进行分析调试,所述通信信息 包括SPI地址、数据和SPI指令信息。 0018 优选地, 0019 步骤S2具体包括: 0020 对存储在存储。
12、器中的所述数据进行预置SPI时钟数时间的提前缓存; 0021 通过所述SPI接口将提前缓存的所述数据提供至所述SPI。 0022 优选地, 0023 所述步骤S3具体包括: 0024 设定所述SPI的调试参数; 0025 将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试,所述通信信 息包括所述SPI地址、所述数据和所述SPI指令信息。 0026 优选地, 0027 将获取到的来自所述SPI的所述通信信息发送至PC端进行分析调试具体包括: 0028 将获取到的来自所述SPI的所述通信信息发送至PC端执行预置过滤模式处理; 0029 并通过所述PC端对过滤后的所述通信信息进行分析调试。
13、。 0030 优选地, 0031 步骤S3具体包括: 0032 将获取到的来自所述SPI的所述通信信息发送至PC端按照预置改写模式对所述 数据进行改写; 0033 将改写后的所述数据存储在所述存储器中,并将所述数据提供至所述SPI; 0034 将获取到通信信息发送至PC端进行分析调试,所述通信信息包括SPI地址、数据 和SPI指令信息。 0035 优选地, 0036 将改写后的所述数据存储在所述存储器中具体包括: 0037 将改写后的所述数据到所述模拟SPI FLASH的所述存储器对应所述地址中。 0038 优选地, 0039 步骤S3具体包括: 0040 通过所述SPI接口跟踪所述SPI,并。
14、获取所述通信信息; 0041 将获取到的来自所述SPI的所述通信信息发送至PC端与预期信息进行判断,若所 述通信信息与所述预期信息不一致,则通过PC端对所述通信信息按照预期信息进行改写。 0042 从以上技术方案可以看出,本发明实施例具有以下优点: 0043 本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,其中,模拟SPI FLASH的FPGA系统包括:FPGA芯片,存储器和USB驱动芯片,该FPGA芯片包括SPI接口, 存储接口和USB接口,SPI接口用于与SPI连接,存储接口与存储器连接,USB接口用于与 USB驱动芯片连接。本发明实施例中,使用FPGA芯片通过SPI。
15、接口,存储接口和USB接口与 SPI、存储器和USB驱动芯片连接,便能够将需要测试的主控设备板卡通过SPI与FPGA系统 的SPI接口连接,另一方面通过USB接口连接USB驱动芯片的设计与电脑端建立通信关系, 便实现了主控设备板卡的调试平台的建立,使得在调试中模拟SPI FLASH的FPGA系统替代 了实际SPI FLASH的功能,可以是通过模拟SPI FLASH的FPGA系统对主控设备板卡进行调 说 明 书CN 103970665 A 3/12页 6 试,解决了现有技术中由于FLASH擦写速度慢、FLASH数据追踪困难,所导致的技术人员 在 调试的过程中的精力耗损和高昂的调试成本的技术问题。。
16、 附图说明 0044 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其它的附图。 0045 图1为本发明实施例提供的一种模拟SPI FLASH的FPGA系统的结构示意图; 0046 图2为本发明实施例提供的一种模拟SPI FLASH的FPGA系统的SPI接口引脚示 意图; 0047 图3为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个实施例的流程 示意图; 0048 图4为本发。
17、明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流 程示意图; 0049 图5为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个应用例的示意 图; 0050 图6为本发明实施例提供的一种模拟SPI FLASH的调试方法的一个应用例的预置 SPI时钟数的曲线图; 0051 图7为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流 程示意图; 0052 图8为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流 程示意图; 0053 图9为本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施例的流 程示意图。 具。
18、体实施方式 0054 本发明实施例提供了一种模拟SPI FLASH的FPGA系统及调试方法,实现了模拟 SPI FLASH的FPGA系统与主控设备板卡的调试平台的建立,且替代了实际SPI FLASH的功 能,可以辅助主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH数 据追踪困难,所导致的在调试的 过程中的精力耗损和高昂的调试成本的技术问题。 0055 SPI(Serial Peripheral Interface,串行外设接口),是一种高速的,全双工,同 步的通信总线; 0056 FPGA(Field Programmable Gate Array),即现场可编程门阵。
19、列,它是在PAL、GAL、 CPLD等可编程器件的基础上进一步发展的产物。 0057 USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标 准,用于实现电脑与外部设备的连接和通讯。 0058 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述 说 明 书CN 103970665 A 4/12页 7 的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域 普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发。
20、明保护 的范围。 0059 请参阅图1,本发明实施例提供的一种模拟SPI FLASH的FPGA系统的一个实施例 包括: 0060 FPGA芯片101,存储器102和USB驱动芯片103,前述的FPGA芯片101包括SPI接 口1011,存储接口1012和USB接口1013; 0061 前述的SPI接口1011用于与SPI连接,需要说明的是该SPI为SPI总线,在该SPI 总线另一端连接有SPI总线的切换开关或切换器,使得主控设备的板卡的MCU控制器可以 是切换与模拟SPI FLASH的FPGA系统连接,还可以是切换与SPI FLASH连接,如图2所示, SPI接口1011可以是通过8个引脚与S。
21、PI连接,该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个数据/控制 口为公知技术,因此更为详细的阐述便不在此处进行说明; 0062 存储接口1012与存储器102连接,可以理解的是,前述的存储器102可以是具备。
22、 一定规格的存储设备,如RAM存储器,包括SRAM存储器和DDR SDRAM存储器,按照SPI接口 的要求,对存储器进行选型。例如要求规格为持续速率为480Mbps(Quad read),突发响应速 率为90MHz(Normal read),11.1ns的RAM,且RAM的工作频率要高于90MHz,且该RAM的满 足:位宽频率480Mbps,具体此处不做限定,需要说明的是,前述的Quad read表示为4 倍读取速率,前述的Normal read为正常读取速率。 0063 USB接口1013用于与USB驱动芯片103连接,需要说明的是,USB接口1013与USB 驱动芯片103的连接例如可以是。
23、采用USB2.0高速设备的芯片CY7C68013A做USB接口,与 FPGA芯片101通过16位FIFO连接,具体此处不做限定。 0064 需要说明的是,模拟SPI FLASH的FPGA系统还可以进一步包括: 0065 电源接口104,与FPGA芯片101,存储器102和USB驱动芯片103连接,用于对模 拟SPI FLASH的FPGA系统进行供电。 0066 必须说明的是,当本发明实施例提供的模拟SPI FLASH的FPGA系统对主控设备进 行模拟SPI FLASH的调试时,可以是对需要测试的主控设备的板卡增加切换电路,该切换电 路可以是用于SPI总线上SPI的切换,切换电路只需要对FPGA。
24、系统的SPI接口1011的/ CS脚操作即可,当模拟SPI FLASH的FPGA系统接通时,切换电路要把主控设备的板卡上的 SPI FLASH的/CS脚强制拉高,并将真正的/CS信号引出到FPGA系统中,即实现了主控设备 的板卡与模拟SPI FLASH的FPGA系统之间的通信。 0067 本发明实施例中,使用FPGA芯片101通过SPI接口1011,存储接口1012和USB接 口1013与SPI、存储器102和USB驱动芯片103连接,便能够将需要测试的主控设备板卡通 过SPI与FPGA系统的SPI接口1011连接,另一方面通过USB接口1013连接USB驱动芯片 103的设计与电脑端建立通信。
25、关系,便实现了主控设备板卡的调试平台的建立,使得在调试 中模拟SPI FLASH的FPGA系统替代了实际SPI FLASH的功能,可以是通过模拟SPI FLASH 说 明 书CN 103970665 A 5/12页 8 的FPGA系统对主控设备板卡进行调试,解决了现有技术中由于FLASH擦写速度慢、FLASH 数据追踪困难,所导致的技术人员在调试的过程中的精力耗损和高昂的调试成本的技术问 题。 0068 上面是对本发明实施例提供的一种模拟SPI FLASH的FPGA系统进行详 细的描 述,下面将对使用图1所示实施例的模拟SPI FLASH的FPGA系统的调试方法进行详细的描 述,请参阅图3,本。
26、发明实施例提供的一种模拟SPIFLASH的调试方法的一个实施例包括: 0069 S1:通过USB接口将数据输入,并通过存储接口将数据存储在存储器中; 0070 本实施例中,当需要对主控设备的板卡进行模拟SPI FLASH的调试时,前述的板 卡例如TV板卡,具体此处不做限定,首先PC端通过模拟SPI FLASH的FPGA系统的USB接 口将数据输入,可以理解的是,该数据可以是程序文件,如BIN文件,然后数据通过模拟SPI FLASH的FPGA系统的存储接口存储在存储器中,该存储器,例如是RAM存储器,具体此处不 做限定。 0071 必须说明的是,当对主控设备的板卡进行模拟SPI FLASH的调试。
27、之前,需要PC端 通过模拟SPI FLASH的FPGA系统的USB接口与模拟SPI FLASH的FPGA系统建立通信时, 需要初始化连接在USB接口的USB驱动芯片,使得模拟SPI FLASH的FPGA系统的接口为初 始状态,初始化USB驱动芯片的技术为公知技术,因此,此处便不再详细赘述。 0072 S2:通过SPI接口将存储在存储器中的数据提供至SPI; 0073 通过USB接口输入的数据存储在存储器中之后,当SPI需要读写存储器中的数据 时,首先通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备板卡通过SPI及 SPI接口可以是将数据读取出来,并加载前述的数据,例如SPI接口根。
28、据SPI总线的读或写 请求指令,读取存储器中数据或写入数据到存储器中。 0074 S3:将获取到来自SPI的通信信息发送至PC端进行分析调试。 0075 本实施例中,通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备的 板卡加载使用数据之后,可以是根据主控设备程序逻辑,继续对SPI进行访问,通过SPI及 SPI接口对模拟SPI FLASH的FPGA系统的操作,将被本系统记录下来,主控设备的板卡将通 信信息通过SPI再通过USB接口输送至PC端进行提取,可以理解的是,PC端具备相应的提 取软件进行提取操作,使得PC端可以对获取到的SPI的通信信息进行分析调试,该分析调 试的过程将在后。
29、续实施例中进行详细的说明,此处便不再赘述,可以理解的是,该通信信息 可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包 还可以是包括有附加指 令发生时刻的时间戳,需要说明的是,调试数据和指令信息具备相对应的关系。 0076 本实施例中,PC端先通过模拟SPI FLASH的FPGA系统将数据传输至本系统内的存 储器中,再通过SPI接口使得主控设备的板卡对存储器中的数据进行读写,便实现了模拟 SPI FLASH的功能,同时,例如当USB的传输速度为480Mbps,模拟SPI FLASH的FPGA系统 内部存储器的速度也可以达到480Mbps的情况时,假设更新文件大小如4MB时,该更新过。
30、程 在1秒内就可以完成的推导例子看来,模拟SPI FLASH的调试方法进一步解决了由于FLASH 擦写速度慢所导致的技术人员在调试的过程中的精力耗损和高昂的调试成本的技术问题。 0077 上面是对模拟SPI FLASH的调试方法进行详细的描述,下面将对数据提供至SPI 的过程进行详细的描述,请参阅图4,本发明实施例提供的一种模拟SPI FLASH的调试方法 的另一个实施例包括: 说 明 书CN 103970665 A 6/12页 9 0078 401、通过USB接口将数据输入,并通过存储接口将数据存储在存储器中; 0079 本实施例中,当需要对主控设备的板卡进行模拟SPI FLASH的调试时,。
31、前述的板 卡例如TV板卡,具体此处不做限定,首先PC端通过模拟SPI FLASH的FPGA系统的USB接 口将数据输入,可以理解的是,该数据可以是程序文件,如BIN文件,然后数据通过模拟SPI FLASH的FPGA系统的存储接口存储在存储器中,该存储器,例如是RAM存储器,具体此处不 做限定,前述的数据可以是默认数据。 0080 必须说明的是,当对主控设备的板卡进行模拟SPI FLASH的调试之前,需要PC端 通过模拟SPI FLASH的FPGA系统的USB接口与模拟SPI FLASH的FPGA系统建立通信时, 需要初始化连接在USB接口的USB驱动芯片,使得模拟SPI FLASH的FPGA系。
32、统的接口为初 始状态,初始化USB驱动芯片的技术为公知技术,因此,此处便不再详细赘述。 0081 402、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存; 0082 当通过USB接口输入的数据存储在存储器中之后,当主控设备需要通过SPI读取 存储器中的数据之前,则需要对存储在存储器中的数据进行预置SPI 时钟数时间的提前缓 存,使得主控设备的板卡按照标准SPI协议进行读写数据。 0083 403、通过SPI接口将提前缓存的数据提供至SPI; 0084 本实施例中,对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存之 后,便可以通过SPI接口将存储在存储器中的数据提供至SPI,使。
33、得主控设备的板卡按照标 准SPI协议进行读写数据之后,通过SPI接口将提前缓存的数据提供至SPI。 0085 404、将获取到的SPI的通信信息发送至PC端进行分析调试。 0086 本实施例中,通过SPI接口将存储在存储器中的数据提供至SPI,使得主控设备的 板卡加载使用数据之后,可以是根据主控设备程序逻辑,继续对SPI进行访问,通过SPI及 SPI接口对模拟SPI FLASH的FPGA系统的操作,将被本系统记录下来,主控设备的板卡将通 信信息通过SPI发送至FPGA系统获取,再通过USB接口输送至PC端进行提取,可以理解的 是,PC端具备相应的提取软件进行提取操作,使得PC端可以对获取到的S。
34、PI的通信信息进 行分析调试,该分析调试的过程将在后续实施例中进行详细的说明,此处便不再赘述,可以 理解的是,该通信信息可以是包括SPI地址、数据和SPI指令信息等的数据包,该数据包还 可以是包括有附加指令发生时刻的时间戳,需要说明的是,调试数据和指令信息具备相对 应的关系。 0087 本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA 系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据按照标准 SPI协议进行读写,通过FPGA系统将SPI指令、地址与数据的通信信息返回至PC端进行过 滤再分析,实现了通过FPGA系统模拟SPI FLAS。
35、H的调试功能,由于对所有SPI操作都有监 控,模拟SPI FLASH的FPGA系统可以找出非法SPI操作,进而找出常规方法难以发现的主 控设备程序问题,解决了由于FLASH数据跟踪不便而产生的主控设备程序遗留的健壮性问 题,同时,预先设定调试参数的设计,进一步提高了调试的效率。 0088 上面是对数据提供至SPI进行调用的过程进行详细的描述,下面以一具体例子对 上述的实施例的步骤402的预置SPI时钟数时间的提前缓存的过程通过以下例子进行说 明: 0089 如图5所示,例如存储器RAM的数据位宽为32bit,在SPI接口接收到读存储器指 说 明 书CN 103970665 A 7/12页 10。
36、 令及地址,在接收到21位地址数据后,由于在SPI FLASH对存储单元操作的指令中,对响应 时间要求最高的就是普通读数据指令,即3个时钟周期,需要说明的是,该3个时钟周期的 计算方式将在后续的应用例中进行说明,此处便不再详细赘述,因此在给出全部地址位的 下一个时钟,便需要把数据输出,即对未收到的3位低位用0填充,对RAM进行寻址,例如 SPI将要接收到的数据的对应地址为0x0000A3,当还没有收到最后3位(011)时,就对RAM 寻址0x0000A0,读出对应数据并将数据存入FPGA内部缓存中,直至将缓存器填满后暂停缓 存,待到SPI接口的24位地址都发送过来后,再以后收到的低3位地址来计。
37、算偏移地址对 FPGA内部缓存寻址,将对应数据发给SPI接口,同时继续读取RAM后续地址的数据到FPGA 缓存,对地址进行自动增址操作,来支持SPI端的连续读取操作,例如SPI接口收到最后的3 位地址值为3,这时缓存器应该为填满的状态,在缓存器中查找地址为3的数据,输出0x04。 在缓存器中的前3字节数据(0x010203)就是多读出来的无用字节,读出数据0x04后缓存 器有4字节的空余空间,即可再对RAM读取数据来填满缓存器,需要说明的是,前述的填满 缓存器为存储数据为大于2x个字节数据,x为要提前的SPI时钟周期数,例如如图5所示 要提前3个SPI时钟周期,即在第28号CLK到来后系统收到。
38、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。 0090 上面是对预置SPI时钟数时间的提前缓存的过程进行详细的说明,下面以一具体 计算过程对图5所示的应用例的3个时钟周期进行计算,请参阅图6,计算过程。
39、如下: 0091 设:T spi 为SPI接口的时钟周期,T mem 为RAM的时钟周期,t AA 为RAM读数据延时, 0092 其中,N为RAM的数据位宽,x为要提前的SPI时钟周期数,y为可预 读出数据与 应预读出数据差。则: 0093 应预读出的字节数据量为2 x 。 0094 实际可预读出字节数据量为 0095 0096 求y的最大值,y0 0097 0098 说 明 书CN 103970665 A 10 8/12页 11 0099 0100 0101 例如采用异步SRAM作为存储器,T spi 11.1nS(90MHz),假设t AA T mem ,位宽选择 N32,得到图6,该图。
40、6可以是通过Excel生成,还可以是通过Matlab生成获取,具体此处 不做限定,如图6所示,y0,且y取整数,则T mem (max)10.4nS,需要说明的是,可根据实 际情况,选择10nS或8nS的SRAM,此处不做具体限定。 0102 根据前述提及的应预读出的字节数据量为2 x ,则x需要取整为3,即提前3个SPI 时钟周期来读RAM,并需要FPGA缓存至少8字节的数据。上面是对预置SPI时钟数的计 算的过程进行详细的描述,下面将对获取到的SPI的通信信息进行分析调试进行详细的描 述,在实际应用中,分析调试的方法有多种,下面分别进行说明。 0103 一、过滤模式 0104 请参阅图7,。
41、本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施 例包括: 0105 701、通过USB接口将数据输入,并通过存储接口将数据存储在存储器 中; 0106 此步骤与前述图4所示的实施例中的步骤401的内容相同,此处不再赘述。 0107 702、对存储在存储器中的数据进行预置SPI时钟数时间的提前缓存; 0108 此步骤与前述图4所示的实施例中的步骤402的内容相同,此处不再赘述。 0109 703、通过SPI接口将提前缓存的数据提供至SPI; 0110 此步骤与前述图4所示的实施例中的步骤403的内容相同,此处不再赘述。 0111 704、将获取到的来自SPI的通信信息发送至P。
42、C端; 0112 本实施例中,通过SPI接口将提前缓存的数据提供至SPI,使得主控设备的板卡加 载使用数据之后,将通过SPI及SPI接口对模拟SPI FLASH的FPGA系统返回的基于前述的 数据下操作的通信信息,可以理解的是,该通信信息可以包括SPI地址、数据和SPI指令信 息等,需要说明的是,调试数据和指令信息具备相对应的关系。 0113 需要说明的是,前述的通信信息可以是包括SPI地址、数据和SPI指令信息等的数 据包,该数据包还可以是包括有附加指令发生时刻的时间戳。 0114 705、设定SPI的调试参数; 0115 本实施例中,通过SPI接口将提前缓存的数据提供至SPI,且主控设备的。
43、板卡加载 使用数据之后,FPGA系统将SPI总线上的各条通信信息发送到PC端,PC端收到SPI总线上 的各条通信信息,由PC端上的调试程序处理这些通信信息,设定调试参数来检查这些通信 信息,例如设定调试参数可以是限制SPI总线写入存储地址的范围,用以保护特殊地址区 域数据的调试参数,具体此处不做限定,可以理解的是,前述的设定调试参数还可以是由PC 端将设定参数的相关指令发送至FPGA系统进行调试参数的设定,具体此处不做限定。 说 明 书CN 103970665 A 11 9/12页 12 0116 706、对来自SPI的通信信息执行预置过滤模式处理; 0117 本实施例中,当获取到主控设备的板。
44、卡通过SPI的通信信息之后,需要对获取到 的来自SPI的通信信息执行预置过滤模式,根据预置过滤模式将需 要的通信信息进行过 滤,例如可以通过过滤出擦除指令使用的次数等,此处具体不做限定。 0118 可以理解的是,前述的预置过滤模式可以是PC端将过滤指令发送给FPGA系统执 行与过滤指令相对应的过滤模式,FPGA系统将执行过滤模式处理的数据传送至PC端进行 后续步骤,还可以是PC端通过USB接口获取来自SPI的通信信息,对该通信信息进行预置 过滤模式,此处具体不做限定。 0119 707、对过滤后的通信信息进行分析调试。 0120 当对获取到来自SPI的通信信息执行预置过滤模式之后,需要对过滤后。
45、的再次获 取到的通信信息进行分析调试,例如过滤出擦除指令使用的次数之后,并统计擦除指令及 其对应地址,从SPI FLASH的有效擦写周期数来评估产品使用寿命,此处具体不做限定。 0121 本实施例中,PC端先通过模拟SPI FLASH的FPGA系统,将默认数据传送至FPGA 系统内在存储器中,使得主控设备的板卡通过SPI接口将存储在存储器中的数据按照标准 SPI协议进行读写,通过FPGA系统将SPI指令、地址与数据的通信信息返回至PC端进行过 滤再分析,实现了通过FPGA系统模拟SPI FLASH的调试功能,由于对所有SPI操作都有监 控,模拟SPI FLASH的FPGA系统可以找出非法SPI。
46、操作,进而找出常规方法难以发现的主 控设备程序问题,解决了由于FLASH数据跟踪不便而产生的主控设备程序遗留的健壮性问 题,同时,预先设定调试参数的设计,进一步提高了调试的效率。 0122 二、改写模式; 0123 请参阅图8,本发明实施例提供的一种模拟SPI FLASH的调试方法的另一个实施 例包括: 0124 801、通过USB接口将数据输入,并通过存储接口将数据存储在存储器中; 0125 此步骤与前述图4所示的实施例中的步骤401的内容相同,此处不再赘述,需要说 明的是,前述的输入的数据可以是默认数据,具体不做限定。 0126 802、对存储在存储器中的数据进行预置SPI时钟数时间的提前。
47、缓存; 0127 此步骤与前述图4所示的实施例中的步骤402的内容相同,此处不再赘述。 0128 803、通过SPI接口将提前缓存的数据提供至SPI; 0129 此步骤与前述图4所示的实施例中的步骤403的内容相同,此处不再赘述。 0130 804、将获取到的来自SPI的通信信息发送至PC端; 0131 本实施例中,通过SPI接口将提前缓存的数据提供至SPI,使得主控设备的板卡加 载使用数据之后,将通过SPI及SPI接口对模拟SPI FLASH的FPGA系统返回的基于前述的 数据下操作的通信信息,需要说明的是,数据和指令信息具备相对应的关系。需要说明的 是,前述的通信信息可以是包括SPI地址、。
48、数据和SPI指令信息等的数据包,该数据包还可 以是包括有附加指令发生时刻的时间戳。 0132 805、将获取到的通信信息按照预置改写模式对数据进行改写,将改写后的数据存 储在存储器中,并将数据提供至SPI; 0133 本实施例中,当将获取到的来自SPI的通信信息发送至PC端之后,PC端需要依据 主控设备程序逻辑的需求,例如需要对步骤801输入的默认数据按照SPI标准协议进行读 说 明 书CN 103970665 A 12 10/12页 13 写之后,首先需要通过改写FLASH内存储的数据来创造调试环境时,通过模拟SPI FLASH的 FPGA系统,经USB接口和存储接口对存储器中的数据进行改写。
49、,可以理解的是,当对指定的 地址和数据进行改写后,可以是通过USB接口将PC端改写后的数据通过存储接口存储至存 储器的与前述的改写后的数据的对应地址中,改写后的数据需要通过SPI接口将存储在存 储器中的数据提供至SPI,使得主控设备板卡通过SPI及SPI接口可以是将改写后的数据读 取出来,并加载前述的数据,例如SPI接口根据SPI总线的读或写请求指令,读取存储器中 数据或写入数据到存储器中 0134 806、将获取到通信信息发送至PC端进行分析调试。 0135 本实施例中,通过SPI接口将存储在存储器中改写后的数据提供至SPI,使得主控 设备的板卡加载使用改写后的数据之后,使得主控板卡处于改写后的数据的调试环境下, 然后在该调试环境下。