CN118295605A - SPI Flash后门读写操作系统、方法及计算机设备 - Google Patents
SPI Flash后门读写操作系统、方法及计算机设备 Download PDFInfo
- Publication number
- CN118295605A CN118295605A CN202410727086.1A CN202410727086A CN118295605A CN 118295605 A CN118295605 A CN 118295605A CN 202410727086 A CN202410727086 A CN 202410727086A CN 118295605 A CN118295605 A CN 118295605A
- Authority
- CN
- China
- Prior art keywords
- data
- spi
- system bus
- control module
- spi flash
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 85
- 230000001360 synchronised effect Effects 0.000 claims description 66
- 238000004891 communication Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 abstract description 35
- 238000012795 verification Methods 0.000 description 37
- 230000007547 defect Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000033772 system development Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种SPI Flash后门读写操作系统、方法及计算机设备,设置了两个访问外接SPI Flash芯片的通道:SPI控制器通道和系统总线通道,系统总线通道和SPI控制器通道中的一者用于向SPI Flash芯片指定的扇区地址写入数据,另一者从SPI Flash芯片指定的扇区地址读取数据,以验证写入数据与读取数据是否一致。SPI控制器通道作为用户端的通道,系统总线通道为后门通道,通过SPI控制器通道的用户读写,与系统总线通道的后门读写相结合,可以快速定位芯片设计中存在的问题,实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。
Description
技术领域
本申请涉及FPGA(现场可编程逻辑阵列)原型验证技术领域,特别是涉及一种SPIFlash后门读写操作系统、方法及计算机设备。
背景技术
近年来,我国的集成电路迎来了快速发展期,芯片验证的需求不断增加。在芯片设计行业,设计完成的芯片流片一次的成本非常高昂,在流片之前必须尽量验证其代码功能完备,消除其前端逻辑RTL(Register Transfer Level)设计及架构设计中的所有错误,并且能够支持驱动软件和应用软件在芯片流片之前进行测试。使用FPGA原型验证平台是现在芯片验证最为先进的方法。FPGA可以以接近实际芯片的工作速度运行整颗芯片的各项功能,相较于软件仿真工作的速度缺陷,FPGA原型验证更容易发现RTL设计的缺陷和错误。成为大型芯片验证的重要方法,而且FPGA可以反复擦写,能够适应芯片设计验证的反复迭代。
SPI Flash是最常用的一种存储器件,当然也就成为FPGA原型验证的重要组成部分。现有技术对SPI Flash后门读写原型验证方面的研究相对匮乏,然而SPI Flash后门读写可以更容易发现RTL设计的缺陷和错误,因此芯片验证的效率低,无法实现在芯片设计的早期开展验证工作。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种SPI Flash后门读写操作系统、方法及计算机设备,用于解决在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作的技术问题,提高芯片系统开发验证的效率。
为实现上述目的及其他相关目的,本申请的第一方面提供一种SPI Flash后门读写操作系统,用于访问外接的SPI Flash芯片,包括SPI控制器通道和系统总线通道,所述SPI控制器通道和系统总线通道均能向所述SPI Flash芯片中写入数据和读取数据;其中:所述系统总线通道和SPI控制器通道中的一者用于向SPI Flash芯片指定的扇区地址写入数据,另一者从SPI Flash芯片指定的扇区地址读取数据,以验证写入数据与读取数据是否一致;SPI控制器通道上设置有SPI控制器,所述SPI控制器通过串行接口接入所述系统总线通道,对外接的SPI Flash芯片进行读写操作;所述系统总线通道上设置有系统总线控制模块、同步转换存储模块以及SPI控制模块,所述同步转换存储模块分别与系统总线控制模块、SPI控制模块通信连接,其中:系统总线控制模块,用于对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;同步转换存储模块,用于缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;SPI控制模块,用于对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
于本申请的第一方面的一些实施例中,所述同步转换存储模块包括第一时钟同步模块、第一数据转换模块、第二时钟同步模块、第二数据转换模块;
第一时钟同步模块,用于缓存由系统总线控制模块根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第一数据转换模块;所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据;
第一数据转换模块,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块;
第二时钟同步模块,用于缓存由SPI控制模块根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第二数据转换模块;所述操作指令包括读取操作指令;所生成的数据包括从SPIFlash芯片指定扇区地址中读取的数据;
第二数据转换模块,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至系统总线控制模块。
于本申请的第一方面的一些实施例中,所述系统总线通道通过如下方式向SPIFlash芯片中写入数据:
所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至第一时钟同步模块;所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据;
所述第一时钟同步模块对所生成的数据进行缓存并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第一数据转换模块;
所述第一数据转换模块对同步时钟域后的数据进行缓存并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块;
所述SPI控制模块对接收到的写入操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并向当前锁定的扇区地址中写入转换数据位宽后的数据。
于本申请的第一方面的一些实施例中,所述系统总线通道通过如下方式从SPIFlash芯片中读取数据:
所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并将从当前锁定的扇区地址中所读取的数据发送至第二时钟同步模块;所述操作指令包括读取操作指令;
所述第二时钟同步模块对所读取的数据进行缓存并同步时钟域,并将同步时钟域后的所读取的数据通过所述系统总线控制模块发送至第二数据转换模块;
所述第二数据转换模块对同步时钟域后的所读取的数据进行缓存并转换数据位宽,并将转换数据位宽后的所读取的数据发送至系统总线控制模块。
于本申请的第一方面的一些实施例中,所述系统总线通道上还包设置有PCIe控制模块,所述PCIe控制模块与系统总线控制模块通信连接,用于将操作指令转换成系统总线识别的数据类型并发送给所述系统总线控制模块。
为实现上述目的及其他相关目的,本申请的第二方面提供一种SPI Flash后门读写操作方法,应用于如上所述的SPI Flash后门读写操作系统,所述方法包括:
通过所述SPI控制器通道向SPI Flash芯片指定的扇区地址写入数据;
所述系统总线通道从SPI Flash芯片指定的扇区地址读取通过所述SPI控制器通道写入的数据,以验证写入数据与读取数据是否一致;或者:
通过所述系统总线通道向SPI Flash芯片指定的扇区地址写入数据;
所述SPI控制器通道从SPI Flash芯片指定的扇区地址读取通过所述系统总线通道写入的数据,以验证写入数据与读取数据是否一致;其中:
SPI控制器通道上设置有SPI控制器,所述SPI控制器通过串行接口接入所述系统总线通道,对外接的SPI Flash芯片进行读写操作;
所述系统总线通道上设置有系统总线控制模块、同步转换存储模块以及SPI控制模块,所述同步转换存储模块分别与系统总线控制模块、SPI控制模块通信连接,其中:
系统总线控制模块,用于对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;
同步转换存储模块,用于缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;
SPI控制模块,用于对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
于本申请的第二方面的一些实施例中,所述系统总线通道访问外接SPI Flash芯片的方式包括:
所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;
所述同步转换存储模块缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;
所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
为实现上述目的及其他相关目的,本申请的第三方面提供一种计算机设备,装载有如上所述的SPI Flash后门读写操作系统;所述计算机设备外接有SPI Flash芯片;所述计算机设备通过其内置的SPI Flash后门读写操作系统对外接的SPI Flash芯片进行访问。
如上所述,本申请的SPI Flash后门读写操作系统、方法及计算机设备,具有以下有益效果:通过设置的SPI控制器通道和系统总线通道两个通道访问外接的SPI Flash芯片,SPI控制器通道作为用户端的通道,用户可以从该通道读写SPI Flash芯片,系统总线通道为后门通道,也可以进行读写SPI Flash芯片。用户通过SPI控制器通道向SPI Flash芯片指定的扇区地址写入数据,然后通过系统总线通道从SPI Flash芯片指定的扇区地址读取用户写入的数据,以此来验证用户读写数据的正确性。通过SPI控制器通道的用户读写,与系统总线通道的后门读写相结合,可以快速定位芯片设计中存在的问题,实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。
附图说明
图1显示为本申请一实施例中的SPI Flash后门读写操作系统的结构示意图。
图2显示为本申请一实施例中的一种SPI Flash后门读写操作方法的流程示意图。
图3显示为本申请一实施例中的另一种SPI Flash后门读写操作方法的流程示意图。
图4显示为本申请一实施例中的系统总线通道访问外接SPI Flash芯片的流程示意图。
图5显示为本申请一实施例中的系统总线通道向SPI Flash芯片中写入数据的流程示意图。
图6显示为本申请一实施例中的系统总线通道从SPI Flash芯片中读取数据的流程示意图。
图7显示为本申请一实施例中的计算机设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本申请的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
在芯片设计行业,设计完成的芯片流片一次的成本非常高昂,在流片之前必须尽量验证其代码功能完备,消除其前端逻辑RTL(Register Transfer Level)设计及架构设计中的所有错误,并且能够支持驱动软件和应用软件在芯片流片之前进行测试。使用FPGA原型验证平台是现在芯片验证最为先进的方法。SPI Flash是最常用的一种存储器件,是FPGA原型验证的重要组成部分。现有技术对SPI Flash后门读写原型验证方面的研究相对匮乏,然而SPI Flash后门读写可以更容易发现RTL设计的缺陷和错误,因此芯片验证的效率低,无法实现在芯片设计的早期开展验证工作。
为解决上述背景技术中的问题,本发明提供一种SPI Flash后门读写操作系统、方法及计算机设备,旨在解决在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。
与此同时,为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
<1>芯片流片:是指像流水线一样通过一系列工艺步骤制造芯片,在集成电路设计领域,“流片”指的是“试生产”。
<2>FPGA(Field Programmable Gate Array)原型验证:用于通过将RTL移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(),专用标准(ASSP)和片上系统(SoC)的功能和性能。
<3>系统总线:是一种用于处理器和其他计算机组件之间传输数据的总线,它是计算机系统的基础结构,是一种串行总线。
<4>PCIe(Peripheral Component Interconnect Express)总线:是一种高速总线,用于连接处理器和其他组件之间的数据传输,一种并行总线。
<5>RTL(Register Transfer Level):一种硬件描述语言,用于描述同步数字电路操作的抽象级。
<6>FIFO(First In First Out):是一种先进先出数据存储、缓冲器。
本发明实施例提供一种SPI Flash后门读写操作系统、方法及计算机设备。就一种SPI Flash后门读写操作系统的实施而言,本发明实施例将对SPI Flash后门读写操作系统的示例性实施场景进行说明。
如图1所示,展示了本发明实施例中的SPI Flash后门读写操作系统的结构示意图。本发明的SPI Flash后门读写操作系统,用于访问外接的SPI Flash芯片,该SPI Flash后门读写操作系统100包括:SPI控制器通道101和系统总线通道102,所述SPI控制器通道101和系统总线通道102均能向所述SPI Flash芯片中写入数据和读取数据;其中:
所述系统总线通道102和SPI控制器通道101中的一者用于向SPI Flash芯片指定的扇区地址写入数据,另一者从SPI Flash芯片指定的扇区地址读取数据,以验证写入数据与读取数据是否一致。
于本实施例中,通过所述SPI控制器通道101向SPI Flash芯片指定的扇区地址写入数据;所述系统总线通道102从SPI Flash芯片指定的扇区地址读取通过所述SPI控制器通道写入的数据,以验证写入数据与读取数据是否一致。
于本实施例中,通过所述系统总线通道102向SPI Flash芯片指定的扇区地址写入数据;所述SPI控制器通道101从SPI Flash芯片指定的扇区地址读取通过所述系统总线通道写入的数据,以验证写入数据与读取数据是否一致。
于本实施例中,通过SPI控制器通道101或者系统总线通道102对SPI Flash芯片指定扇区地址中的数据进行擦除操作。
于本实施例中,SPI Flash芯片通常是指FPGA支持的SPI类型,包括但不限于单线、双线和四线等。
于本实施例中,所述SPI控制器通道101上设置有SPI控制器1011,所述SPI控制器1011通过串行接口接入所述系统总线通道102,对外接的SPI Flash芯片进行读写操作。对芯片进行FPGA原型验证时,SPI控制器通道101作为用户端的通道,通过FPGA芯片内部配置的SPI控制器1011向SPI Flash芯片指定的扇区地址写入RTL代码数据。所述系统总线通道102作为FPGA原型验证的后门使用,读取用户写入到SPI Flash芯片指定扇区地址中的RTL代码数据,验证写入的RTL代码数据与读取的RTL代码数据是否一致。若一致,则确定用户写入的RTL代码数据是正确的,对应芯片设计的RTL代码不存在缺陷和错误;若不一致,则确定用户写入的RTL代码数据是错误的,对应芯片设计的RTL代码存在缺陷和错误,以对芯片设计的RTL代码进行改进,从而实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。上述对SPI Flash芯片进行读写的数据是RTL代码数据,RTL代码数据仅仅是本发明的一个实施例,并不用于限制本发明,实际应用中根据使用需求可向SPI Flash芯片写入、读取或者擦除其他类型的数据。
值得说明的是,本发明设置了SPI控制器通道101和系统总线通道102两个通道访问外接的SPI Flash芯片,SPI控制器通道101作为用户端的通道,用户可以从该通道读写SPI Flash芯片,系统总线通道102为后门通道,也可以进行读写SPI Flash芯片。用户通过SPI控制器通道101向SPI Flash芯片指定的扇区地址写入数据,然后通过系统总线通道102从SPI Flash芯片指定的扇区地址读取用户写入的数据,以此来验证用户读写数据的正确性。通过SPI控制器通道101的用户读写,与系统总线通道102的后门读写相结合,可以快速定位芯片设计中存在的问题,提高芯片系统开发验证的效率。
于本实施例中,所述系统总线通道102上设置有系统总线控制模块1021、同步转换存储模块1022以及SPI控制模块1023,所述同步转换存储模块1022分别与系统总线控制模块1021、SPI控制模块1023通信连接。下文对系统总线通道102上设置的各个模块的功能做详尽的解释说明:
系统总线控制模块1021,用于对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块1022中。
同步转换存储模块1022,用于缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块1023。
SPI控制模块1023,用于对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
于本实施例中,所述操作指令包括写入操作指令、读取操作指令和擦除操作指令中的一种或者多种的组合。
于本实施例中,所述系统总线通道102上还包设置有PCIe控制模块1024,所述PCIe控制模块1024与系统总线控制模块1021通信连接,用于将操作指令转换成系统总线识别的数据类型并发送给所述系统总线控制模块1021。对芯片进行FPGA原型验证时,所述系统总线通道102作为FPGA原型验证的后门使用,对接的是电脑或者服务器通过PCIe控制模块的接口转换出来的系统总线,最高的时钟频率可高达100MHz。所述PCIe控制模块1024将电脑或者服务器发送的操作指令转换成系统总线识别的数据类型并发送给所述系统总线控制模块1021。
于本实施例中,所述同步转换存储模块1022包括第一时钟同步模块FIFO 0、第一数据转换模块FIFO 2、第二时钟同步模块FIFO 3、第二数据转换模块FIFO 1。下文对各个模块的功能做详尽的解释说明:
第一时钟同步模块FIFO 0,用于缓存由系统总线控制模块1021根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块1021发送至第一数据转换模块FIFO 2。所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据。
第一数据转换模块FIFO 2,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块1023。
第二时钟同步模块FIFO 3,用于缓存由SPI控制模块1023根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块1021发送至第二数据转换模块FIFO 1。所述操作指令包括读取操作指令;所生成的数据包括从SPI Flash芯片指定扇区地址中读取的数据。
第二数据转换模块FIFO 1,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至系统总线控制模块1021。
于本实施例中,所述FIFO 0~FIFO 3为同步FIFO,即先进先出存储器,与系统总线控制模块1021、SPI控制模块1023进行地址和数据信息的交换。FIFO先进先出存储器,与其他普通存储器的区别是没有外部读写地址线,这样使用起来非常简单。FIFO先进先出存储器对连续的数据流进行缓存,防止在进机和存储操作时丢失数据。FIFO先进先出存储器将数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻CPU的负担。
于本实施例中,所述系统总线通道102通过如下方式向SPI Flash芯片中写入数据:
(1)所述系统总线控制模块1021对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至第一时钟同步模块FIFO 0。所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据。
于本实施例中,所述系统总线控制模块1021对接收到的写入操作指令进行解码并执行写入操作后,将所生成的需要写入到SPI Flash芯片指定扇区地址中的数据发送至第一时钟同步模块FIFO 0。
(2)所述第一时钟同步模块FIFO 0对所生成的数据进行缓存并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块1021发送至第一数据转换模块FIFO 2。
于本实施例中,第一时钟同步模块FIFO 0对写入SPI Flash芯片指定扇区地址中的数据进行缓存并同步时钟域,使其与SPI总线上的时钟频率保持一致。
(3)所述第一数据转换模块FIFO 2对同步时钟域后的数据进行缓存并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块1023。
于本实施例中,第一数据转换模块FIFO 2对同步时钟域后的写入SPI Flash芯片指定扇区地址中的数据进行缓存并转换数据位宽,使其与SPI总线上的数据位宽保持一致,举例来说,系统总线上的数据位宽是256比特,SPI总线上的数据位宽是8比特。
(4)所述SPI控制模块1023对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并向当前锁定的扇区地址中写入转换数据位宽后的数据。
于本实施例中,SPI控制模块1023对系统总线控制模块1021发送的写入操作指令进行解码,并执行向锁定的扇区地址中写入转换数据位宽后的数据的操作。
值得说明的是,通过所述系统总线通道102向SPI Flash芯片中写入数据,可以通过SPI控制器通道101读取出来,以验证写入数据和读出数据的一致性。
于本实施例中,所述系统总线通道102通过如下方式从SPI Flash芯片中读取数据:
(1)所述SPI控制模块1023对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并将从当前锁定的扇区地址中所读取的数据发送至第二时钟同步模块FIFO 3。所述操作指令包括读取操作指令。
于本实施例中,SPI控制模块1023对系统总线控制模块1021发送的读取操作指令进行解码,并执行从SPI Flash芯片指定的扇区地址中读取数据的操作。
(2)所述第二时钟同步模块FIFO 3对所读取的数据进行缓存并同步时钟域,并将同步时钟域后的所读取的数据通过所述系统总线控制模块1021发送至第二数据转换模块FIFO 1。
于本实施例中,第二时钟同步模块FIFO 3对从SPI Flash芯片指定扇区地址中读取的数据进行缓存并同步时钟域,使其与系统总线上的时钟频率保持一致。
(3)所述第二数据转换模块FIFO 1对同步时钟域后的所读取的数据进行缓存并转换数据位宽,并将转换数据位宽后的所读取的数据发送至系统总线控制模块1021。
于本实施例中,第二数据转换模块FIFO 1对同步时钟域后的所读取的数据进行缓存并转换数据位宽,使其与系统总线上的数据位宽保持一致,举例来说,系统总线上的数据位宽是256比特,SPI总线上的数据位宽是8比特。
于本实施例中,系统总线控制模块1021将接收到所读取的数据通过PCIe控制模块发送至电脑或者服务器,从而验证写入数据与读取数据是否一致。
值得说明的是,SPI控制器通道101作为用户端的通道,用户可以从该通道向SPIFlash芯片指定的扇区地址写入数据,通过系统总线通道102上设置的系统总线控制模块1021、同步转换存储模块FIFO 0 ~ FIFO 3以及SPI控制模块1023进行地址和数据信息的转换,可以读回用户写入指定扇区地址中的数据,以验证写入数据与读取数据是否一致,从而发现芯片设计的缺陷,快速定位芯片设计中存在的问题,实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。
进一步地,本发明提供了一种通过后门访问SPI Flash芯片数据的手段,方便在FPGA原型验证时进行调试。如可以通过SPI控制器通道101预先将bootloader(引导程序)和kernel(操作系统内核)写入到SPI Flash芯片的特定地址段,从系统总线通道102直接读取出来,以验证写入数据与读取码数据是否一致。另外,还可以在调试过程中通过系统总线通道102随时读取SPI Flash芯片中某些地址的数据。最后,本发明实现了使用一种SPI Flash芯片,能够支持多种芯片的FPGA原型验证,即支持使用4比特地址读写数据,同时也支持3比特地址读写数据。
更进一步地,本发明对芯片进行FPGA原型验证时,直接在系统总线控制模块1021进行协议转换,避免了接入SPI Flash芯片的模型,也就是说不管芯片设计里面使用何种类型的SPI Flash,都只需直接将SPI控制器的接口接入到所述系统总线通道102中,就能实现多种芯片的FPGA原型验证。
如图2所示,展示了本发明实施例中的一种SPI Flash后门读写操作方法的流程示意图,应用于如上所述的SPI Flash后门读写操作系统,所述方法包括:
S201:通过所述SPI控制器通道向SPI Flash芯片指定的扇区地址写入数据。
于本实施例中,所述SPI控制器通道101上设置有SPI控制器1011,所述SPI控制器1011通过串行接口接入所述系统总线通道102,对外接的SPI Flash芯片进行读写操作。
S202:所述系统总线通道从SPI Flash芯片指定的扇区地址读取通过所述SPI控制器通道写入的数据,以验证写入数据与读取数据是否一致。
于本实施例中,所述系统总线通道102上设置有系统总线控制模块1021、同步转换存储模块1022、SPI控制模块1023以及PCIe控制模块1024,所述同步转换存储模块1022分别与系统总线控制模块1021、SPI控制模块1023通信连接,所述PCIe控制模块1024与系统总线控制模块1021通信连接。所述同步转换存储模块1022包括第一时钟同步模块FIFO 0、第一数据转换模块FIFO 2、第二时钟同步模块FIFO 3、第二数据转换模块FIFO 1。系统总线通道102上设置的各个模块的结构及功能已在上文进行描述,此处不再赘述。
于本实施例中,对芯片进行FPGA原型验证时,SPI控制器通道101作为用户端的通道,通过FPGA芯片内部配置的SPI控制器1011向SPI Flash芯片指定的扇区地址写入RTL代码数据。所述系统总线通道102作为FPGA原型验证的后门使用,读取用户写入到SPI Flash芯片指定扇区地址中的RTL代码数据,验证写入的RTL代码数据与读取的RTL代码数据是否一致。若一致,则确定用户写入的RTL代码数据是正确的,对应芯片设计的RTL代码不存在缺陷和错误;若不一致,则确定用户写入的RTL代码数据是错误的,对应芯片设计的RTL代码存在缺陷和错误,以对芯片设计的RTL代码进行改进,从而实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。上述对SPI Flash芯片进行读写的数据是RTL代码数据,RTL代码数据仅仅是本发明的一个实施例,并不用于限制本发明,实际应用中根据使用需求可向SPI Flash芯片写入、读取或者擦除其他类型的数据。
如图3所示,展示了本发明实施例中的另一种SPI Flash后门读写操作方法的流程示意图,应用于如上所述的SPI Flash后门读写操作系统,所述方法包括:
S301:通过所述系统总线通道向SPI Flash芯片指定的扇区地址写入数据。
S302:所述SPI控制器通道从SPI Flash芯片指定的扇区地址读取通过所述系统总线通道写入的数据,以验证写入数据与读取数据是否一致。
于本实施例中,通过所述系统总线通道102向SPI Flash芯片中写入数据,可以通过SPI控制器通道101读取出来,以验证写入数据和读取数据的一致性。
于本实施例中,如图4所示,展示了本发明实施例中的系统总线通道访问外接SPIFlash芯片的流程示意图,主要包括如下步骤:
S401:所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中。
于本实施例中,所述操作指令包括写入操作指令、读取操作指令和擦除操作指令中的一种或者多种的组合。
S402:所述同步转换存储模块缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块。
S403:所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
于本实施例中,如图5所示,展示了本发明实施例中的系统总线通道向SPI Flash芯片中写入数据的流程示意图,主要包括如下步骤:
S501:所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至第一时钟同步模块。所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据。
S502:所述第一时钟同步模块对所生成的数据进行缓存并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第一数据转换模块。
S503:所述第一数据转换模块对同步时钟域后的数据进行缓存并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块。
S504:所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并向当前锁定的扇区地址中写入转换数据位宽后的数据。
于本实施例中,如图6所示,展示了本发明实施例中的系统总线通道从SPI Flash芯片中读取数据的流程示意图,主要包括如下步骤:
S601:所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPIFlash芯片中指定的扇区地址,并将从当前锁定的扇区地址中所读取的数据发送至第二时钟同步模块。所述操作指令包括读取操作指令。
S602:所述第二时钟同步模块对所读取的数据进行缓存并同步时钟域,并将同步时钟域后的所读取的数据通过所述系统总线控制模块发送至第二数据转换模块。
S603:所述第二数据转换模块对同步时钟域后的所读取的数据进行缓存并转换数据位宽,并将转换数据位宽后的所读取的数据发送至系统总线控制模块。
如图7所示,展示了本发明实施例中的计算机设备的结构示意图。所述计算机设备700装载有如上所述的SPI Flash后门读写操作系统100;所述计算机设备外接有SPI Flash芯片;所述计算机设备通过其内置的SPI Flash后门读写操作系统对外接的SPI Flash芯片进行访问。
综上所述,本申请提供的SPI Flash后门读写操作系统、方法及计算机设备,设置了SPI控制器通道和系统总线通道两个通道访问外接的SPI Flash芯片,SPI控制器通道作为用户端的通道,用户可以从该通道读写SPI Flash芯片,系统总线通道为后门通道,也可以进行读写SPI Flash芯片。用户通过SPI控制器通道向SPI Flash芯片指定的扇区地址写入数据,然后通过系统总线通道从SPI Flash芯片指定的扇区地址读取用户写入的数据,以此来验证用户读写数据的正确性。通过SPI控制器通道的用户读写,与系统总线通道的后门读写相结合,可以快速定位芯片设计中存在的问题,实现了在芯片设计的早期开展芯片启动、操作系统启动、驱动程序验证、应用软件验证等工作,提高芯片系统开发验证的效率。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (8)
1.一种SPI Flash后门读写操作系统,用于访问外接的SPI Flash芯片,其特征在于,包括SPI控制器通道和系统总线通道,所述SPI控制器通道和系统总线通道均能向所述SPIFlash芯片中写入数据和读取数据;其中:
所述系统总线通道和SPI控制器通道中的一者用于向SPI Flash芯片指定的扇区地址写入数据,另一者从SPI Flash芯片指定的扇区地址读取数据,以验证写入数据与读取数据是否一致;
SPI控制器通道上设置有SPI控制器,所述SPI控制器通过串行接口接入所述系统总线通道,对外接的SPI Flash芯片进行读写操作;
所述系统总线通道上设置有系统总线控制模块、同步转换存储模块以及SPI控制模块,所述同步转换存储模块分别与系统总线控制模块、SPI控制模块通信连接,其中:
系统总线控制模块,用于对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;
同步转换存储模块,用于缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;
SPI控制模块,用于对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
2.根据权利要求1所述的SPI Flash后门读写操作系统,其特征在于,所述同步转换存储模块包括第一时钟同步模块、第一数据转换模块、第二时钟同步模块、第二数据转换模块;
第一时钟同步模块,用于缓存由系统总线控制模块根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第一数据转换模块;所述操作指令包括写入操作指令;所生成的数据包括向SPIFlash芯片指定扇区地址中写入的数据;
第一数据转换模块,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块;
第二时钟同步模块,用于缓存由SPI控制模块根据操作指令的解码结果而执行对应操作后所生成的数据并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第二数据转换模块;所述操作指令包括读取操作指令;所生成的数据包括从SPI Flash芯片指定扇区地址中读取的数据;
第二数据转换模块,用于缓存同步时钟域后的数据并转换数据位宽,并将转换数据位宽后的数据发送至系统总线控制模块。
3.根据权利要求2所述的SPI Flash后门读写操作系统,其特征在于,所述系统总线通道通过如下方式向SPI Flash芯片中写入数据:
所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至第一时钟同步模块;所述操作指令包括写入操作指令;所生成的数据包括向SPI Flash芯片指定扇区地址中写入的数据;
所述第一时钟同步模块对所生成的数据进行缓存并同步时钟域,并将同步时钟域后的数据通过所述系统总线控制模块发送至第一数据转换模块;
所述第一数据转换模块对同步时钟域后的数据进行缓存并转换数据位宽,并将转换数据位宽后的数据发送至SPI控制模块;
所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并向当前锁定的扇区地址中写入转换数据位宽后的数据。
4.根据权利要求2所述的SPI Flash后门读写操作系统,其特征在于,所述系统总线通道通过如下方式从SPI Flash芯片中读取数据:
所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并将从当前锁定的扇区地址中所读取的数据发送至第二时钟同步模块;所述操作指令包括读取操作指令;
所述第二时钟同步模块对所读取的数据进行缓存并同步时钟域,并将同步时钟域后的所读取的数据通过所述系统总线控制模块发送至第二数据转换模块;
所述第二数据转换模块对同步时钟域后的所读取的数据进行缓存并转换数据位宽,并将转换数据位宽后的所读取的数据发送至系统总线控制模块。
5.根据权利要求1所述的SPI Flash后门读写操作系统,其特征在于,所述系统总线通道上还包设置有PCIe控制模块,所述PCIe控制模块与系统总线控制模块通信连接,用于将操作指令转换成系统总线识别的数据类型并发送给所述系统总线控制模块。
6.一种SPI Flash后门读写操作方法,应用于如权利要求1~5中任一项所述的SPIFlash后门读写操作系统,其特征在于,所述方法包括:
通过所述SPI控制器通道向SPI Flash芯片指定的扇区地址写入数据;
所述系统总线通道从SPI Flash芯片指定的扇区地址读取通过所述SPI控制器通道写入的数据,以验证写入数据与读取数据是否一致;或者:
通过所述系统总线通道向SPI Flash芯片指定的扇区地址写入数据;
所述SPI控制器通道从SPI Flash芯片指定的扇区地址读取通过所述系统总线通道写入的数据,以验证写入数据与读取数据是否一致;其中:
SPI控制器通道上设置有SPI控制器,所述SPI控制器通过串行接口接入所述系统总线通道,对外接的SPI Flash芯片进行读写操作;
所述系统总线通道上设置有系统总线控制模块、同步转换存储模块以及SPI控制模块,所述同步转换存储模块分别与系统总线控制模块、SPI控制模块通信连接,其中:
系统总线控制模块,用于对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;
同步转换存储模块,用于缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;
SPI控制模块,用于对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
7.根据权利要求6所述的SPI Flash后门读写操作方法,其特征在于,所述系统总线通道访问外接SPI Flash芯片的方式包括:
所述系统总线控制模块对接收到的操作指令进行解码,并将根据操作指令的解码结果执行对应操作后所生成的数据发送至同步转换存储模块中;
所述同步转换存储模块缓存所生成的数据并进行同步转换,并将同步转换后的数据发送至SPI控制模块;
所述SPI控制模块对接收到的操作指令进行解码,根据解码结果锁定SPI Flash芯片中指定的扇区地址,并在当前锁定的扇区地址中对同步转换后的数据执行对应操作。
8.一种计算机设备,其特征在于,装载有如权利要求1~5中任一项所述的SPI Flash后门读写操作系统;所述计算机设备外接有SPI Flash芯片;所述计算机设备通过其内置的SPI Flash后门读写操作系统对外接的SPI Flash芯片进行访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410727086.1A CN118295605A (zh) | 2024-06-06 | 2024-06-06 | SPI Flash后门读写操作系统、方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410727086.1A CN118295605A (zh) | 2024-06-06 | 2024-06-06 | SPI Flash后门读写操作系统、方法及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118295605A true CN118295605A (zh) | 2024-07-05 |
Family
ID=91682571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410727086.1A Pending CN118295605A (zh) | 2024-06-06 | 2024-06-06 | SPI Flash后门读写操作系统、方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118295605A (zh) |
-
2024
- 2024-06-06 CN CN202410727086.1A patent/CN118295605A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392686B2 (en) | System and method for read synchronization of memory modules | |
US10002218B2 (en) | Verification of a multichip coherence protocol | |
US9058463B1 (en) | Systems and methods for specifying. modeling, implementing and verifying IC design protocols | |
JP4599266B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
US20080008021A1 (en) | Method for recognizing and verifying fifo structures in integrated circuit designs | |
US8301936B2 (en) | Apparatus and method for performing a screening test of semiconductor integrated circuits | |
US5815509A (en) | Method and system for testing memory | |
CN114902187A (zh) | 非易失性存储器模块的错误恢复 | |
CN114902197A (zh) | 非易失性双列直插式存储器模块的命令重放 | |
CN117609137A (zh) | 一种基于复杂片内多种高速接口通信测试系统 | |
US6529979B1 (en) | Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement | |
JP2005518042A (ja) | クロックの異なるバス間におけるデータ転送 | |
CN118295605A (zh) | SPI Flash后门读写操作系统、方法及计算机设备 | |
EP2194458A2 (en) | Request processing device, request processing system, and access testing method | |
US7526691B1 (en) | System and method for using TAP controllers | |
JP2002149591A (ja) | プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置 | |
Kakoee et al. | A resilient architecture for low latency communication in shared-L1 processor clusters | |
CN109726149B (zh) | 一种axi总线访问nand flash的方法及装置 | |
CN108053856B (zh) | 读写sram的电路及sram数据访问方法 | |
KR100642158B1 (ko) | 슬레이브 그룹 인터페이스 장치와, 슬레이브 그룹 인터페이스 장치를 통해 버스와 주변 장치를 인터페이스하는 방법 및 시스템 | |
US8612687B2 (en) | Latency-tolerant 3D on-chip memory organization | |
CN117312210B (zh) | 一种通用扩展risc-v处理器性能的方法 | |
US6292908B1 (en) | Method and apparatus for monitoring internal bus signals by using a reduced image of the internal bus | |
US6493775B2 (en) | Control for timed access of devices to a system bus | |
US6510480B1 (en) | Data transfer circuit and data processing method using data transfer circuit for handling interruption processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |