CN111931442B - Fpga内嵌flash控制器及电子装置 - Google Patents
Fpga内嵌flash控制器及电子装置 Download PDFInfo
- Publication number
- CN111931442B CN111931442B CN202011012135.1A CN202011012135A CN111931442B CN 111931442 B CN111931442 B CN 111931442B CN 202011012135 A CN202011012135 A CN 202011012135A CN 111931442 B CN111931442 B CN 111931442B
- Authority
- CN
- China
- Prior art keywords
- flash
- module
- fpga
- register
- bus
- 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
- 230000015654 memory Effects 0.000 claims abstract description 132
- 230000006870 function Effects 0.000 claims abstract description 71
- 238000004891 communication Methods 0.000 claims description 81
- 230000005540 biological transmission Effects 0.000 claims description 59
- 230000003993 interaction Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 14
- 238000011161 development Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 14
- 230000018109 developmental process Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Logic Circuits (AREA)
Abstract
本发明提供了一种FPGA内嵌FLASH控制器及电子装置,所述FPGA内嵌FLASH控制器基于FPGA的逻辑资源实现,具有接口模块、FLASH逻辑控制模块以及多个FLASH功能模块,接口模块连接主设备,多个FLASH功能模块与不同类型的FLASH存储器一一对应设置并连接相应类型的FLASH存储器。本发明的技术方案,能够利用FPGA可重复编程的特点,来根据不同的应用场景动态配置,以兼容不同类型的FLASH存储器。该设计提高了FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低了FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高了FPGA逻辑资源和FLASH存储资源的应用灵活性,提高了产品的开发的效率和速度。
Description
技术领域
本发明涉及FPGA内嵌FLASH控制器设计技术领域,特别涉及一种FPGA内嵌FLASH控制器及电子装置。
背景技术
随机读取是指存储器进行读写操作时,所需要的读取操作时间与所访问的地址无关,FLASH存储器是一种可以通过地址指令随机访问到各个存储单元的一种存储器,具有随机读取特性、数据掉电不易丢失,支持存储单元数据的高速读取,通常可以将FLASH存储器作为永久存储数据的存储介质。
FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种在制造后可以被用户编程修改的电路,可以通过硬件描述语言编程,完成某种特定任务。同时FPGA以其硬件并行程度高、验证效率高而被广泛应用。在实际应用中,不同厂家生产的FPGA型号不同,其内嵌或者外连FLASH存储器的型号也有所不同,导致在应用FPGA内嵌或者外连FLASH存储器时需要花费大量时间来熟悉其型号和接口时序,从而增加了应用复杂度,大大降低了产品的开发的效率和速度。
发明内容
本发明的目的在于提供一种FPGA内嵌FLASH控制器及电子装置,能够提高FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高产品的开发的效率和速度。
为解决上述技术问题,本发明提供一种FPGA内嵌FLASH控制器,所述FPGA内嵌FLASH控制器,并包括:
接口模块,用于建立与主设备的通信连接,使得主设备能够访问和控制FLASH逻辑控制模块;
多个FLASH功能模块,与不同类型的FLASH存储器一一对应设置并连接相应类型的FLASH存储器,用于实现对所连接的FLASH进行相应的功能操作;
FLASH逻辑控制模块,连接所述接口模块和所述多个FLASH功能模块。
可选地,所述FLASH逻辑控制模块用于将所述主设备发送的操作指令映射为相应的寄存器的相关操作,并选择和匹配对应的所述FLASH功能模块,控制所选择的FLASH功能模块根据所述寄存器的相关操作,对所连接的FLASH存储器进行相应的功能操作,以实现不同类型的FLASH存储器的兼容。
可选地,所述接口模块与所述主设备通过相应的通信协议总线通信连接,所述通信协议总线为AHB总线、APB总线、AXI总线、WISHBONE总线或Avalon总线;或者,所述接口模块与所述主设备的寄存器接口连接。
可选地,所述接口模块还用于译码所述主设备的存储地址空间,解析所述FLASH逻辑控制模块中的各个寄存器,并将各个所述寄存器映射到所述主设备的存储地址空间的不同地址区域中。
可选地,所述接口模块包括:
地址判断模块,连接所述主设备,并用于判断所述主设备发送的地址信号是否有效,若否,则所述接口模块不使能,与所述FPGA内嵌FLASH控制器连接的FLASH存储器维持原状,若是,则所述接口模块使能,继续后续操作;
操作判断模块,连接所述地址判断模块,用于对所述主设备发送的操作指令进行判断,并输出相应的判断结果;
信息传输模块,连接所述操作判断模块,用于根据所述操作判断模块的判断结果,将所述主设备所发出的数据信号和操作信号传输至所述FLASH信号生成模块;
FLASH信号生成模块,连接所述信息传输模块和所述FLASH逻辑控制模块,用于在所述信息传输模块的控制下使能,并将所述信息传输模块所传输的操作信号转换成操作所述FLASH逻辑控制模块所需的标准操作信号,将所述信息传输模块传输的数据信号转换成所述FLASH逻辑控制模块所需的标准数据信号。
可选地,当所述主设备与所述接口模块通过AHB总线连接时,所述操作判断模块还用于对所述主设备发送的操作指令进行操作模式判断,所述信息传输模块包括基础模式传输模块、Burst模式传输模块和先进先出队列缓存器;当所述操作判断模块判断操作模式为基础传输模式时,使能所述基础模式传输模块,所述基础模式传输模块用于根据AHB通信协议规定的基础传输模式,对将所述主设备所发出的数据信号和操作信号进行解析,生成所述FLASH逻辑控制模块所需的操作信号和数据信号;当所述操作判断模块判断操作模式为Burst传输模式时,使能所述Burst模式传输模块,所述Burst模式传输模块用于根据AHB通信协议所规定的Burst传输模式,对将所述主设备所发出的数据信号和操作信号进行解析,生成所述FLASH逻辑控制模块所需的操作信号和数据信号。
可选地,当所述主设备与所述接口模块通过WISHBONE总线连接时,所述操作判断模块还用于对所述主设备发送的操作指令进行判断,同时将判断的结果传输至FLASH信号生成模块,以生成相应的操作信号;所述信息传输模块包括数据传输模块,用于在所述操作判断模块的控制下使能,用于根据WISHBONE通信协议,对将所述主设备所发出的数据信号进行解析,生成所述FLASH逻辑控制模块所需的数据信号。
可选地,所述接口模块为通用总线接口模块,其内部含有至少两种通信协议,以与不同类型的主设备或者同一主设备的不同类型的通信协议总线,建立相应的通信协议链路;所述FPGA内嵌FLASH控制器还包括与所述主设备均连接的总线接口仲裁使能模块和总线类型模块,其中,
所述总线接口仲裁使能模块,连接所述主设备和所述接口模块,并由所述总线类型模块驱动并使能,用于通过分析所述主设备的通信协议总线的类型,从所述接口模块中选择相应的通信协议链路,以建立所述接口模块和所述主设备之间的通信连接;
所述总线类型模块,连接所述主设备和所述总线接口仲裁使能模块,且对不同类型的通信协议总线有相应的标注,用于获得所述主设备的通信协议总线的类型信息,并根据所述类型信息使能所述接口模块,以使所述接口模块和主设备之间建立相应的通信协议链路。
可选地,所述总线接口仲裁使能模块包括多路选择器。
可选地,所述FLASH逻辑控制模块包括至少一个通用寄存器组,每个所述通用寄存器组包括控制寄存器、状态寄存器、读写数据寄存器、擦除数据寄存器和FLASH类型选择寄存器;所述通用寄存器组中的各个寄存器连接各个所述FLASH功能模块的相应引脚。
可选地,所述FLASH功能模块,包括FLASH内部接口以及FLASH操作模块,所述FLASH内部接口用于实现FLASH功能模块与所述FLASH逻辑控制模块之间的交互,所述FLASH操作模块连接相应的FLASH存储器,用于实现对所连接的FLASH存储器的随机读、写、擦除或控制。
可选地,所述FLASH内部接口的引脚包括:时钟引脚、复位引脚、控制类引脚、状态类引脚、读写数据引脚、擦除数据引脚、FLASH类型选择引脚;其中,所述时钟引脚外接通信协议总线上的时钟信号,所述复位引脚外接通信协议总线上的复位信号,所述控制类引脚连接所述控制寄存器,所述状态类引脚连接所述状态寄存器,所述读写数据引脚连接所述读写数据寄存器,所述擦除数据引脚连接所述擦除数据寄存器,所述FLASH类型选择引脚连接所述FLASH类型选择寄存器。
可选地,当所述主设备通过所述FPGA内嵌FLASH控制器同时连接多个FLASH存储器时,所述FLASH逻辑控制模块还包括组合逻辑电路,所述组合逻辑电路连接所述控制寄存器和所述状态寄存器,用于将各个所述FLASH功能模块的中断信号,按照规定的优先级映射到所述主设备的中断向量表中,以实现所述主设备对各个所述FLASH存储器的优先级控制。
可选地,所述主设备通过所述FPGA内嵌FLASH控制器连接一个FLASH存储器,或者,所述主设备通过所述FPGA内嵌FLASH控制器同时连接多个FLASH存储器,且多个FLASH存储器中的至少两个的类型不同。
可选地,所述FLASH存储器与所述FPGA内嵌FLASH控制器内嵌在同一FPGA中,或者,所述FLASH存储器设置在所述FPGA内嵌FLASH控制器所在的FPGA的外部;所述主设备内嵌在所述FPGA内嵌FLASH控制器所在的FPGA中,或者,所述主设备设置在所述FPGA内嵌FLASH控制器所在的FPGA的外部。
基于同一发明构思,本发明还提供一种电子装置,包括如本发明所述的FPGA内嵌FLASH控制器,以及与所述FPGA内嵌FLASH控制器通信连接的主设备和至少一个FLASH存储器。
与现有技术相比,本发明的技术方案具有以下技术效果之一:
本发明的FPGA内嵌FLASH控制器,基于FPGA的逻辑资源实现,能够利用FPGA可重复编程的特点,来根据不同的应用场景动态配置,以兼容不同类型的FLASH存储器。该设计提高了FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低了FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高了FPGA逻辑资源和FLASH存储资源的应用灵活性,提高了产品的开发的效率和速度。
进一步地,能够识别主设备的总线类型,以支持多种通信协议,从而兼容不同类型的主设备,以及,兼容具有多种不同类型的通信协议总线的主设备,提高了主设备资源的应用灵活性。
附图说明
图1是本发明一实施例的FPGA内嵌FLASH控制器的系统架构示意图。
图2是图1所示的FPGA内嵌FLASH控制器的接口模块的系统架构示意图。
图3是图1所示的FPGA内嵌FLASH控制器中的FLASH逻辑控制模块和FLASH功能模块的系统架构示意图。
图4是图1所示的FPGA内嵌FLASH控制器的应用实例一的系统架构示意图(应用于主设备与FLASH通过AHB总线传输数据的情况)。
图5是图4中的AHB接口模块的系统架构示意图。
图6是图4所示的FPGA内嵌FLASH控制器的工作流程示意图。
图7是图1所示的FPGA内嵌FLASH控制器的应用实例二的系统架构示意图(应用于主设备与FLASH通过WISHBONE总线传输数据的情况)。
图8是图7中的WISHBONE接口模块的系统架构示意图。
图9是图7所示的FPGA内嵌FLASH控制器的工作流程示意图。
图10是图1所示的FPGA内嵌FLASH控制器的应用实例三的系统架构示意图(应用于主设备与FLASH通过寄存器接口传输数据的情况)。
图11是本发明另一实施例的FPGA内嵌FLASH控制器的架构示意图。
图12是图11所示的FPGA内嵌FLASH控制器的工作流程示意图。
图13是本发明一实施例的具有本发明的FPGA内嵌FLASH控制器的片上系统的架构示意图。
图14是本发明另一实施例的具有本发明的FPGA内嵌FLASH控制器的片上系统的架构示意图。
图15是本发明又一实施例的具有本发明的FPGA内嵌FLASH控制器的片上系统的架构示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的技术方案作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
请参考图1,本发明一实施例提供一种FPGA内嵌FLASH控制器10,所述FPGA内嵌FLASH控制器10基于一FPGA(未图示)内部的逻辑资源实现,即所述FPGA内嵌FLASH控制器10内嵌在该FPGA中。FPGA内部的逻辑资源主要包括逻辑控制区块(Logical ControlBlock,LCB) 资源、时钟网络资源、时钟处理资源、块随机存储器(Block RAM)、数字信号处理资源(DSP核)和接口资源。逻辑控制区块资源包括显示查找表、加法器、乘法器、除法器、寄存器、多路选择器等等。
本实施例中,FPGA内嵌FLASH控制器10包括接口模块11、FLASH逻辑控制模块12以及n个FLASH功能模块101~10n,n不小于2。
接口模块11通过FPGA的逻辑连线连接和匹配主设备20,用于建立与所述主设备20的通信连接,使得主设备20能够访问和控制所述FLASH逻辑控制模块12。具体地,所述接口模块11与所述主设备20之间,可以通过相应的主流通信协议总线通信连接,所述主流通信协议总线为AHB总线、APB总线、AXI总线、WISHBONE总线或Avalon总线等等,或者,所述接口模块11与所述主设备20的寄存器接口连接。接口模块11根据所述FLASH逻辑控制模块12中的寄存器的地址深度,以及各个FLASH功能模块101~10n所连接的FLASH存储器的存储容量分配情况,来对所述主设备20的存储地址空间进行地址分段,并在所述地址分段与所述寄存器的寄存器地址之间形成映射关系,并进一步将所述映射关系发送至所述主设备20中,以使得所述主设备20能够根据所述映射关系产生相应的存储地址信号,进而通过译码主设备20的存储地址空间,来分析FLASH逻辑控制模块12中的FLASH类型选择寄存器中的信息,实现对不同类型FLASH的支持。简单来说就是,接口模块11能译码主设备20的存储地址空间,解析所述FLASH逻辑控制模块12中的各个寄存器,并将各个所述寄存器映射到所述主设备20的存储地址空间的不同地址区域中;还进一步分析FLASH逻辑控制模块12中的FLASH类型选择寄存器,进而控制FLASH逻辑控制模块12选定对应的FLASH功能模块,以实现对不同类型FLASH存储器的支持。
其中,主设备20可以是任意能够生成操作时序、操作指令等的装置,例如MCU或者FPGA中的部分逻辑资源(例如DSP核、逻辑控制区块)等等。作为一种示例,请参考图13,主设备20可以是基于FPGA内嵌FLASH控制器10所在的FPGA的逻辑资源实现的,即此时主设备20和FPGA内嵌FLASH控制器10位于同一片FPGA上。作为另一种示例,请参考图14,主设备20可以设置在FPGA内嵌FLASH控制器10所在的FPGA外部,并基于MCU实现,且可选地,所述MCU与所述FPGA集成在同一片上系统中。作为又一种示例,请参考图15,主设备20可以设置在FPGA内嵌FLASH控制器10所在的片上系统的外部。
n个FLASH功能模块101~10n与n个FLASH 存储器31~3n一一对应设置并连接,n个FLASH存储器 31~3n的类型不同,且n个FLASH 存储器31~3n可以不同时接入到FPGA内嵌FLASH控制器10上,此时,没有连接FLASH存储器的FLASH功能模块是闲置的。各个FLASH功能模块用于实现对其所连接的FLASH存储器进行相应的功能操作,例如读数据、写数据、擦除数据或者其他控制操作。FLASH逻辑控制模块12连接所述接口模块11和各个FLASH功能模块101~10n,用于将所述主设备20发送的操作指令映射为其内部相应的寄存器的相关操作,并从FLASH功能模块101~10n中选择和匹配对应的所述FLASH功能模块,控制所选择的FLASH功能模块根据所述寄存器的相关操作,对所连接的FLASH存储器进行相应的功能操作,以实现不同类型的FLASH存储器的兼容。
需要说明的是,各个FLASH存储器可以是FPGA内部的存储资源,也可以是FPGA外部的存储资源。作为一种示例,请参考图13,主设备20和各个FLASH 存储器31~3n均可以是基于FPGA内嵌FLASH控制器10所在的FPGA的逻辑资源实现的,即此时主设备20、各个FLASH 存储器31~3n以及FPGA内嵌FLASH控制器10位于同一片FPGA上。作为另一种示例,请参考图14,主设备20可以设置在FPGA内嵌FLASH控制器10所在的FPGA外部,并基于MCU实现,各个FLASH存储器31~3n均是基于FPGA内嵌FLASH控制器10所在的FPGA的逻辑资源实现的,即此时,各个FLASH存储器 31~3n以及FPGA内嵌FLASH控制器10位于同一片FPGA上,且所述MCU与所述FPGA集成在同一片上系统中。作为又一种示例,请参考图15,主设备20和各个FLASH 存储器31~3n均设置在FPGA内嵌FLASH控制器10所在的片上系统的外部。
此外,当主设备20与接口模块11连接后,接口模块11能分析主设备20的操作指令是读数据、写数据、还是对数据进行擦除操作或其他操作,如果主设备20发出的是读数据操作指令,则接口模块11根据主设备20发出的地址信号选中FLASH逻辑控制模块12中对应的寄存器,FLASH逻辑控制模块12从FLASH功能模块101~10n中选择相应的FLASH功能模块来执行该指令,从其连接的FLASH存储器中读出数据;如果主设备20发出的是写数据操作指令,则接口模块11根据主设备20发出的地址信号选中FLASH逻辑控制模块12中对应的寄存器,FLASH逻辑控制模块12从FLASH功能模块101~10n中选择相应的FLASH功能模块来执行该指令,向其连接的FLASH存储器中写入相应的数据。对于擦除操作来说,也是,则接口模块11根据主设备20发出的地址信号选中FLASH逻辑控制模块12中对应的寄存器,进而对相应的FLASH存储器进行数据的擦除操作。
作为一种示例,请参考图2,所述接口模块11包括:地址判断模块110、操作判断模块111、信息传输模块112和FLASH信号生成模块113。
其中,地址判断模块110连接所述主设备20和操作判断模块111,并用于判断所述主设备20发送的地址信号是否有效,若否,则所述接口模块11不使能,与所述FPGA内嵌FLASH控制器10连接的各个FLASH存储器维持原状,若是,则所述接口模块11使能,继续后续操作。
操作判断模块111连接所述地址判断模块110和信息传输模块112,操作判断模块111用于对所述主设备20发送的操作指令进行判断,并输出相应的判断结果。
信息传输模块112连接所述操作判断模块111和FLASH信号生成模块113,信息传输模块112用于根据所述操作判断模块111的判断结果,将所述主设备20所发出的数据信号和操作信号传输至所述FLASH信号生成模块113。
FLASH信号生成模块113连接所述信息传输模块112和所述FLASH逻辑控制模块12,FLASH信号生成模块113用于在所述信息传输模块112的控制下使能,并将所述信息传输模块112所传输的操作信号转换成操作所述FLASH逻辑控制模块12所需的标准操作信号,将所述信息传输模块112传输的数据信号转换成所述FLASH逻辑控制模块12所需的标准数据信号。
作为一种示例,请参考图3,所述FLASH逻辑控制模块12包括至少一个通用寄存器组,每个所述通用寄存器组包括控制寄存器121、状态寄存器122、读写数据寄存器123、擦除数据寄存器124和FLASH类型选择寄存器125;所述通用寄存器组中的各个寄存器连接各个所述FLASH功能模块101~10n的相应引脚。各个所述FLASH功能模块101~10n包括FLASH内部接口(未图示)以及FLASH操作模块(未图示),所述FLASH内部接口用于实现FLASH功能模块与所述FLASH逻辑控制模块12之间的交互,所述FLASH操作模块连接相应的FLASH存储器,用于实现对所连接的FLASH存储器的随机读、写、擦除或控制。可选地,所述FLASH内部接口的引脚包括:时钟引脚、复位引脚、控制类引脚、状态类引脚、读写数据引脚、擦除数据引脚、FLASH类型选择引脚;其中,所述时钟引脚外接通信协议总线上的时钟信号,所述复位引脚外接通信协议总线上的复位信号,所述控制类引脚连接所述控制寄存器121,所述状态类引脚连接所述状态寄存器122,所述读写数据引脚连接所述读写数据寄存器123,所述擦除数据引脚连接所述擦除数据寄存器124,所述FLASH类型选择引脚连接所述FLASH类型选择寄存器125。
可选地,请请参考图3,当主设备20通过所述FPGA内嵌FLASH控制器10同时连接不少于2个FLASH存储器时,所述FLASH逻辑控制模块12还包括组合逻辑电路126,所述组合逻辑电路126连接所述控制寄存器121和所述状态寄存器122,用于将各个所述FLASH功能模块101~10n的中断信号,按照规定的优先级映射到所述主设备20的中断向量表中,以实现所述主设备20对各个所述FLASH存储器的优先级控制。
需要说明的是,图3中仅仅显示了一个通用寄存器组,各个FLASH功能模块101~10n共用同一个所述通用寄存器组,但是本发明的技术方案并不仅仅限定于此,在本发明的其他实施例中,FLASH逻辑控制模块12中可以包括n个通用寄存器组,且n个通用寄存器组、FLASH功能模块101~10n 一一对应设置且连接。
本实施例的FPGA内嵌FLASH控制器,基于FPGA的逻辑资源实现,能够利用FPGA可重复编程的特点,来根据不同的应用场景动态配置,以兼容不同类型的FLASH存储器。该设计提高了FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低了FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高了FPGA逻辑资源和FLASH存储资源的应用灵活性,进而最终提高了产品的开发的效率和速度。本实施例的FPGA内嵌FLASH控制器,可以应用于主设备通过固定的一种通信协议与FLASH存储器之间进行通信的情况,以及,主设备通过寄存器接口与FLASH存储器之间进行通信的情况。为了更好地理解本实施例的FPGA内嵌FLASH控制器10的设计方案,下面结合三个应用实例和附图3至附图10来详细说明。
应用实例一 FPGA内嵌FLASH控制器应用于AHB通信协议
请参考图4,本应用实例一的FPGA内嵌FLASH控制器10应用于AHB通信协议,记作FPGA内嵌FLASH控制器10A,主设备20为AHB主设备,记作AHB主设备20A,其系统总线为AHB通信协议下的AHB总线,当该AHB总线也是基于FPGA内部的逻辑连线来实现的。FPGA内嵌FLASH控制器10A可以同时连接n个FLASH 存储器31~3n。且请结合图13至图15,AHB主设备20A和各个FLASH 存储器31~3n可以分别基于FPGA内嵌FLASH控制器10A所在的FPGA的逻辑资源实现,即此时AHB主设备20A、各个FLASH 存储器31~3n和FPGA内嵌FLASH控制器10A位于同一片FPGA上;或者,AHB主设备20A可以设置在FPGA内嵌FLASH控制器10A所在的FPGA外部,并基于MCU实现,且可选地,所述MCU与所述FPGA集成在同一片上系统中,此时,各个FLASH 存储器31~3n可以分别基于FPGA内嵌FLASH控制器10A所在的FPGA的逻辑资源实现,即和FPGA内嵌FLASH控制器10A位于同一片FPGA上;或者,AHB主设备20A和各个FLASH存储器 31~3n均设置在FPGA内嵌FLASH控制器10A所在的片上系统的外部。
所述FPGA内嵌FLASH控制器10A包括AHB接口模块11A、FLASH逻辑控制模块12以及n个FLASH功能模块101~10n。
AHB接口模块11A通过AHB总线连接AHB主设备20A的AHB接口,并与之建立通信连接, 通过解析AHB总线上的数据传输给FLASH逻辑控制模块12。其具体功能包括:译码AHB主设备20A的存储地址空间,解析FLASH逻辑控制模块12中的各个寄存器,根据解析出来的FLASH类型选择寄存器125,在AHB主设备20A的存储地址空间的不同地址区域中映射对应的FLASH功能模块,实现对不同类型FLASH存储器 31~3n的支持。
请参考图3,FLASH逻辑控制模块12连接AHB接口模块11A和各个FLASH功能模块101~10n,将各个FLASH功能模块101~10n中的FLASH功能映射为控制寄存器121、状态寄存器122、读写数据寄存器123、擦除数据寄存器124和FLASH类型选择寄存器125。各个寄存器通过AHB接口模块11A映射到AHB主设备20的存储地址空间,实现AHB主设备20A对各个FLASH功能模块101~10n所连接的不同类型的FLASH存储器的读、写、擦除和控制等操作。通过设置FLASH类型选择寄存器125,从FLASH功能模块101~10n中选择所对应的FLASH功能模块,完成不同类型的FLASH存储器的兼容。
各个FLASH功能模块101~10n基于FPGA逻辑资源,实现对FLASH的随机存取、擦除等功能控制,包括FLASH内部接口(未图示)和FLASH操作模块(未图示)。FLASH内部接口模块实现FLASH操作模块与FLASH逻辑控制模块12的交互,是AHB主设备20A与该FLASH功能模块的片内数据交互接口。FLASH操作模块实现对连接的FLASH存储器的随机读、写、擦除和控制等功能操作,作为AHB主设备20A的数据存储控制模块。
请参考图5,所述AHB接口模块11A包括地址判断模块110、操作判断模块111、信息传输模块112A和 FLASH信号生成模块113。其中,信息传输模块112A包括基础模式传输模块1121、Burst模式传输模块1122以及FIFO(先进先出队列)缓存器1123。FLASH信号生成模块113包括FLASH操作信号生成模块1131和FLASH交换数据生成模块1132。
地址判断模块110对AHB主设备20A发送的地址信号进行逻辑判断,分析AHB主设备20A发送的地址是否匹配相应寄存器或者FLASH的地址,如果判定不匹配,则AHB主设备20A发送的地址是无效地址,该AHB接口模块11A不使能。如果判定匹配,AHB主设备20A发送的地址是有效地址,则该AHB接口模块11A被使能,进行下一步操作。
操作判断模块111在AHB接口模块11A被使能之后,对AHB接口模块11A的数据传输方式进行识别,即对所述主设备发送的操作指令进行操作模式判断。如果是基础传输模式,将会使能基础模式传输模块1121,基础模式传输模块1121根据AHB通信协议规定的基础传输模式,对将所述AHB主设备20A所发出的数据信号和操作信号(包括读数据信号、写数据信号、擦除数据信号以及控制信号等)进行解析,生成所述FLASH逻辑控制模块12所需的操作信号和数据信号。如果是BURST传输模式,则使能所述Burst模式传输模块1122,所述Burst模式传输模块1122根据AHB通信协议所规定的Burst传输模式,对将所述AHB主设备20A所发出的数据信号和操作信号进行解析,生成所述FLASH逻辑控制模块12所需的操作信号和数据信号。Burst模式传输模块1122生成的信号写入到后接的FIFO缓存器1123中,用以缓存。因为对于AHB总线来说,BURST传输模式相对基础传输模式而言,数据传输速度较快,每个时钟都会产生一个数据,对于FPGA内嵌FLASH控制器10A来说,其速度需要和其连接的FLASH存储器相匹配,然而,FLASH存储器的读写擦除速度相比AHB主设备20A而言较慢,所以需要FIFO缓存器1123进行缓冲。
FLASH操作信号生成模块1131和FLASH交换数据生成模块1132用于将基础模式传输模块1121或者Burst模式传输模块1122生成的信号转换成操作FLASH逻辑控制模块12中的寄存器的标准信号,并传输给FLASH逻辑控制模块12。
请结合图3、图4和图6,本应用实例一的FPGA内嵌FLASH控制器10A的工作流程如下:
当AHB主设备20A与AHB接口模块11A连接后,AHB接口模块11A分析AHB主设备20A的读数据、写数据、擦除数据等指令。如果AHB主设备20A下发读数据指令,则AHB接口模块11A根据对应的地址信号,选中FLASH逻辑控制模块12中的读数据寄存器,执行读数据操作。如果AHB主设备20A下发写数据指令,则AHB接口模块11A根据对应的地址信号,选中FLASH逻辑控制模块12中的写数据寄存器,执行写数据操作。如果AHB主设备20A下发擦除数据指令,则AHB接口模块11A根据对应的地址选中FLASH逻辑控制模块12中的擦除数据寄存器,执行擦除数据操作。
本应用实例一提出的FPGA内嵌FLASH控制器,能够在AHB主设备的AHB接口和FLASH存储器之间搭建起通信桥梁,该设计秉承FPGA可编程的特点,具有良好的扩展性和易用性,用户可以动态兼容不同类型的FLASH存储器,提高了FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低了FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高了AHB接口MCU与FPGA片上系统存储资源的应用灵活性。
应用实例二 FPGA内嵌FLASH控制器应用于WISHBONE通信协议
请参考图7,本应用实例二的FPGA内嵌FLASH控制器10应用于WISHBONE通信协议,记作FPGA内嵌FLASH控制器10B,主设备20为WISHBONE主设备,记作WISHBONE主设备20B,其系统总线为WISHBONE通信协议下的WISHBONE总线,当该WISHBONE总线也是基于FPGA内部的逻辑连线来实现的。FPGA内嵌FLASH控制器10B可以同时连接n个FLASH 存储器31~3n。且请结合图13至图15,WISHBONE主设备20B和各个FLASH 存储器31~3n可以分别基于FPGA内嵌FLASH控制器10B所在的FPGA的逻辑资源实现,即此时WISHBONE主设备20B、各个FLASH 存储器31~3n和FPGA内嵌FLASH控制器10B位于同一片FPGA上;或者,WISHBONE主设备20B可以设置在FPGA内嵌FLASH控制器10B所在的FPGA外部,并基于MCU实现,且可选地,所述MCU与所述FPGA集成在同一片上系统中,此时,各个FLASH存储器 31~3n可以分别基于FPGA内嵌FLASH控制器10B所在的FPGA的逻辑资源实现,即和FPGA内嵌FLASH控制器10B位于同一片FPGA上;或者,WISHBONE主设备20B和各个FLASH存储器 31~3n均设置在FPGA内嵌FLASH控制器10B所在的片上系统的外部。
所述FPGA内嵌FLASH控制器10B包括AHB接口模块11B、FLASH逻辑控制模块12以及n个FLASH功能模块101~10n。
WISHBONE接口模块11B通过WISHBONE总线连接WISHBONE主设备20B的WISHBONE接口,并与之建立通信连接,通过解析WISHBONE总线上的数据传输给FLASH逻辑控制模块12。其具体功能包括:译码WISHBONE主设备20B的存储地址空间,解析FLASH逻辑控制模块12中的各个寄存器,根据解析出来的FLASH类型选择寄存器125,在WISHBONE主设备20B的存储地址空间的不同地址区域中映射对应的FLASH功能模块,实现对不同类型FLASH 存储器31~3n的支持。
请参考图3,FLASH逻辑控制模块12连接WISHBONE接口模块11B和各个FLASH功能模块101~10n,将各个FLASH功能模块101~10n中的FLASH功能映射为控制寄存器121、状态寄存器122、读写数据寄存器123、擦除数据寄存器124和FLASH类型选择寄存器125。各个寄存器通过WISHBONE接口模块11B映射到WISHBONE主设备20B的存储地址空间,实现WISHBONE主设备20B对各个FLASH功能模块101~10n所连接的不同类型的FLASH存储器的读、写、擦除和控制等操作。通过设置FLASH类型选择寄存器125,从FLASH功能模块101~10n中选择所对应的FLASH功能模块,完成不同类型的FLASH存储器的兼容。
各个FLASH功能模块101~10n基于FPGA逻辑资源,实现对相应的FLASH存储器的随机存取、擦除等功能控制,包括FLASH内部接口(未图示)和FLASH操作模块(未图示)。FLASH内部接口模块实现FLASH操作模块与FLASH逻辑控制模块12的交互,是WISHBONE主设备20B与该FLASH功能模块的片内数据交互接口。FLASH操作模块实现对连接的FLASH存储器的随机读、写、擦除和控制等功能操作,作为WISHBONE主设备20B的数据存储控制模块。
请参考图8,所述WISHBONE接口模块11B包括地址判断模块110、操作判断模块111、信息传输模块112B和 FLASH信号生成模块113。其中,信息传输模块112B包括数据传输模块1124。FLASH信号生成模块113包括FLASH操作信号生成模块1131和FLASH交换数据生成模块1132。
地址判断模块110对WISHBONE主设备20B发送的地址信号进行逻辑判断,分析WISHBONE主设备20B发送的地址是否匹配相应寄存器或者FLASH存储器的地址,如果判定不匹配,则WISHBONE主设备20B发送的地址是无效地址,该WISHBONE接口模块11B不使能。如果判定匹配,WISHBONE主设备20B发送的地址是有效地址,则该WISHBONE接口模块11B被使能,进行下一步操作。
操作判断模块111在WISHBONE接口模块11B被使能之后,对WISHBONE主设备20B发送的读、写、擦除等操作指令进行判断,同时将判断的结果传输至FLASH操作信号生成模块1131,以生成FLASH逻辑控制模块12的操作信号。
数据传输模块1124将WISHBONE总线上的数据变换成FLASH逻辑控制模块12能够接收的数据信息,同时使能FLASH交换数据生成模块1132。以输出WISHBONE总线传输的数据。
FLASH操作信号生成模块1131用于根据操作判断模块111的判断的结果,生成FLASH逻辑控制模块12的操作信号;FLASH交换数据生成模块1132用于根据WISHBONE通信协议,将数据传输模块1124生成的信号(即所述WISHBONE主设备20B所发出的数据信号)进行解析,转换成操作FLASH逻辑控制模块12中的寄存器的标准信号,并传输给FLASH逻辑控制模块12。即FLASH信号生成模块113能够向FLASH逻辑控制模块12传输WISHBONE总线上的地址信号和需要读、写或擦除的数据信号,完成对FLASH逻辑控制模块12的控制和数据传输。
请结合图3、图7和图9,本应用实例二的FPGA内嵌FLASH控制器10B的工作流程如下:
当WISHBONE主设备20B与WISHBONE接口模块11B连接后,WISHBONE接口模块11B分析WISHBONE主设备20B的读数据、写数据、擦除数据等操作指令。如果WISHBONE主设备20B下发读数据指令,则WISHBONE接口模块11B根据对应的地址信号选中FLASH逻辑控制模块12中的读数据寄存器,执行读数据操作。如果WISHBONE主设备20B下发写数据指令,则WISHBONE接口模块11B根据对应的地址信号选中FLASH逻辑控制模块12中的写数据寄存器,执行写数据操作。如果WISHBONE主设备20B下发擦除数据指令,则WISHBONE接口模块11B根据对应的地址信号选中FLASH逻辑控制模块12中的擦除数据寄存器,执行擦除数据操作。
本应用实例二提出的FPGA内嵌FLASH控制器,能够在主设备的WISHBONE接口和FLASH存储器之间搭建起通信链路,该设计秉承FPGA可编程的特点,具有良好的扩展性和易用性,用户可以动态兼容不同类型的FLASH存储器,提高了WISHBONE协议下的FPGA内嵌或外连FLASH存储器的扩展性和易用性,降低了WISHBONE协议下的FPGA内嵌或外连FLASH存储器设计和应用的复杂度,提高了WISHBONE协议下MCU与FPGA片上系统存储资源的应用灵活性。
应用实例三 FPGA内嵌FLASH控制器连接主设备的寄存器(Register)接口
请参考图10,本应用实例三的FPGA内嵌FLASH控制器10C连接在Register主设备20C和FLASH 存储器31~3n之间,n大于等于1。且请结合图13至图15,Register主设备20C和各个FLASH存储器 31~3n可以分别基于FPGA内嵌FLASH控制器10C所在的FPGA的逻辑资源实现,即此时Register主设备20C、各个FLASH存储器 31~3n和FPGA内嵌FLASH控制器10C位于同一片FPGA上;或者,Register主设备20C可以设置在FPGA内嵌FLASH控制器10C所在的FPGA外部,并基于MCU实现,且可选地,所述MCU与所述FPGA集成在同一片上系统中,此时,各个FLASH存储器 31~3n可以分别基于FPGA内嵌FLASH控制器10C所在的FPGA的逻辑资源实现,即和FPGA内嵌FLASH控制器10C位于同一片FPGA上;或者,Register主设备20C和各个FLASH存储器31~3n均设置在FPGA内嵌FLASH控制器10C所在的片上系统的外部。
所述FPGA内嵌FLASH控制器10B包括Register接口模块11C、FLASH逻辑控制模块12以及n个FLASH功能模块101~10n。
Register接口模块11C通过FPGA逻辑连线连接Register主设备20C的Register接口,并与之建立通信连接,通过解析系统总线上的数据传输给FLASH逻辑控制模块12。其具体功能包括:译码Register主设备20C的存储地址空间,解析FLASH逻辑控制模块12中的各个寄存器,根据解析出来的FLASH类型选择寄存器125,在Register主设备20C的存储地址空间的不同地址区域中映射对应的FLASH功能模块,实现对不同类型FLASH 存储器31~3n的支持。
请参考图3,FLASH逻辑控制模块12连接Register接口模块11C和各个FLASH功能模块101~10n,将各个FLASH功能模块101~10n中的FLASH功能映射为控制寄存器121、状态寄存器122、读写数据寄存器123、擦除数据寄存器124和FLASH类型选择寄存器125。各个寄存器通过Register接口模块11C映射到Register主设备20C的存储地址空间,实现Register主设备20C对各个FLASH功能模块101~10n所连接的不同类型的FLASH的读、写、擦除和控制等操作。通过设置FLASH类型选择寄存器125,从FLASH功能模块101~10n中选择所对应的FLASH功能模块,完成不同类型的FLASH存储器的兼容。
各个FLASH功能模块101~10n基于FPGA逻辑资源,实现对相应的FLASH存储器的随机存取、擦除等功能控制,包括FLASH内部接口(未图示)和FLASH操作模块(未图示)。FLASH内部接口模块实现FLASH操作模块与FLASH逻辑控制模块12的交互,是Register主设备20C与该FLASH功能模块的片内数据交互接口。FLASH操作模块实现对连接的FLASH存储器的随机读、写、擦除和控制等功能操作,作为Register主设备20C的数据存储控制模块。
请结合图3和图10,本应用实例三的FPGA内嵌FLASH控制器10C的工作流程如下:
当Register主设备20C与Register接口模块11C连接后,Register接口模块11C分析Register主设备20C的读数据、写数据、擦除数据等操作指令。如果Register主设备20C下发读数据指令,则Register接口模块11C根据对应的地址信号选中FLASH逻辑控制模块12中的读数据寄存器,执行读数据操作。如果Register主设备20C下发写数据指令,则Register接口模块11C根据对应的地址信号选中FLASH逻辑控制模块12中的写数据寄存器,执行写数据操作。如果Register主设备20C下发擦除数据指令,则Register接口模块11C根据对应的地址信号选中FLASH逻辑控制模块12中的擦除数据寄存器,执行擦除数据操作。Register主设备20C发送相应的操作指令后,Register接口模块11C通过状态标识信号返回操作成功的状态,同时使能Register接口模块11C的状态标识信号,反馈状态信息给Register主设备20C,Register主设备20C执行下步操作。
本应用实例三提出的FPGA内嵌FLASH控制器,能够在主设备的Register接口与FLASH存储器之间搭建起通信链路,该设计秉承FPGA可编程,具有良好的兼容性和扩展性。用户可以动态配置以兼容不同类型的FLASH存储器,降低了应用复杂度和难度,提高了连接主设备的Register接口的FPGA内嵌或外连FLASH存储器的易用性,提高了FPGA内嵌或外连FLASH存储器应用灵活性。
请参考图11,本发明另一实施例还提供一种FPGA内嵌FLASH控制器,能够支持多种通信协议(也可以称为总线协议),可识别主设备的通信协议总线类型(也可以称为系统总线类型)。FPGA内嵌FLASH控制器10具体包括总线接口仲裁使能模块14、总线类型模块13、接口模块11、FLASH逻辑控制模块12以及n个FLASH功能模块101~10n,n不小于1。
其中FLASH逻辑控制模块12和n个FLASH功能模块101~10n与上述实施例中的结构和功能相同,可参考上文对FLASH逻辑控制模块12和n个FLASH功能模块101~10n的有关描述,在此不再赘述。
总线接口仲裁使能模块14通过FPAG逻辑连线连接主设备20、接口模块11以及总线类型模块13,用来连接主设备20和接口模块11,总线接口仲裁使能模块14由总线类型模块13驱动并使能,能通过分析主设备20的通信协议总线的类型,从所述接口模块11中选择相应的通信协议链路,以建立所述接口模块11和所述主设备20之间的通信连接,从而能支持同一主设备20的不同系统总线接口的连接,以及,支持不同通信协议类型的主设备的连接。总线接口仲裁使能模块14可以基于FPGA内部的多路选择器来实现。
总线类型模块13连接所述主设备20和所述总线接口仲裁使能模块14,主要是用来表示主设备系统总线接口的类型。一般来说,主设备的系统总线接口通常可以分为AHB、APB、AXI、WISHBONE、Avalon等总线接口,所以总线类型模块13对不同类型的系统总线接口均有相应的标注,对于不同类型的通信协议总线(即系统总线)也有相应的序号,总线类型模块13能够获得所述主设备20的通信协议总线的类型信息,并根据所述类型信息使能所述接口模块11,以使所述接口模块11和主设备20之间建立相应的通信协议链路。具体地,总线类型模块13能通过获得通信协议总线的类型信息,控制总线接口仲裁使能模块14切换相应的通信链路,以使得接口模块11和主设备20之间能够在相应通信协议下建立通信连接,两者之间的数据传输遵循所对应的通信协议的各项规定。
接口模块11为通用总线接口模块,能够支持多种通信协议(即总线协议),例如能够支持AHB、APB、AXI、WISHBONE、Avalon等比较主流的总线协议,通过总线类型模块13的输出,总线接口仲裁使能模块14能够控制接口模块11从内部选择其中与主设备10的系统总线接口的通信协议总线类型相匹配的总线协议,以支持主设备的通信协议总线,进而使得主设备20可以通过系统总线访问到FLASH逻辑控制模块12内部的寄存器,将FLASH逻辑控制模块12内部的寄存器映射到主设备20对应的内存区域(即存储地址空间中的地址区域),实现主设备20对FLASH逻辑控制模块12的控制,进一步通过FLASH逻辑控制模块12选择相应的FLASH功能模块,最终达到对相应类型的FLASH存储器的读、写、擦除等操作和控制。
请结合图11和图12,本实施例的FPGA内嵌FLASH控制器的工作流程如下:先判断所连接的主设备20的系统总线接口的通信协议总线的类型,并根据判断结果,建立相应通信协议下的通信协议链路。接口模块11分析主设备20的读数据、写数据、擦除数据等操作指令。如果主设备20C下发读数据指令,则接口模块11根据对应的地址信号选中FLASH逻辑控制模块12中的读数据寄存器,执行读数据操作。如果主设备20下发写数据指令,则接口模块11根据对应的地址信号选中FLASH逻辑控制模块12中的写数据寄存器,执行写数据操作。如果主设备20下发擦除数据指令,则接口模块11根据对应的地址信号选中FLASH逻辑控制模块12中的擦除数据寄存器,执行擦除数据操作。
本实施例的FPGA内嵌FLASH控制器,能够秉承FPGA可编程的特点,动态配置不同类型的FLASH存储器,能够识别主设备的总线类型,以支持多种通信协议,从而兼容不同类型的主设备,以及,兼容具有多种不同类型的通信协议总线的主设备,提高了主设备资源的应用灵活性,同时提高了FPGA内嵌或外连FLASH存储器的易用性和灵活性,进而最终提高了产品的开发的效率和速度。
基于同一发明构思,请参考图1至图15,本发明一实施例还提供一种电子装置,包括本发明任一实施例的FPGA内嵌FLASH控制器10,以及,与所述FPGA内嵌FLASH控制器10通信连接的主设备20和n个FLASH存储器 31~3n,n 大于或等于1。
可选地,主设备通过所述FPGA内嵌FLASH控制器10连接一个FLASH存储器,或者,主设备通过所述FPGA内嵌FLASH控制器10同时连接多个FLASH存储器,且多个FLASH存储器中的至少两个的类型不同。
可选地,请参考图13至图15,所述电子装置中,各个所述FLASH存储器内嵌在所述FPGA中,或者,设置在所述FPGA的外部;所述主设备20内嵌在所述FPGA中,或者,设置在所述FPGA的外部。所述电子装置可以是FPGA芯片,也可以是MCU与FPGA 集成在一起的片上系统。
此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
而且还应该理解的是,本发明并不限于此处描述的特定的方法、材料、制造技术、用法和应用,它们可以变化。还应该理解的是,此处描述的术语仅仅用来描述特定实施例,而不是用来限制本发明的范围。必须注意的是,此处的以及所附权利要求中使用的单数形式“一个”、“一种”以及“该”包括复数基准,除非上下文明确表示相反意思。因此,例如,对“一个步骤”或“一个装置”的引述意味着对一个或多个步骤或装置的引述,并且可能包括次级步骤以及次级装置。应该以最广义的含义来理解使用的所有连词。因此,词语“或”应该被理解为具有逻辑“或”的定义,而不是逻辑“异或”的定义,除非上下文明确表示相反意思。此处描述的结构将被理解为还引述该结构的功能等效物。可被解释为近似的语言应该被那样理解,除非上下文明确表示相反意思。
Claims (14)
1.一种FPGA内嵌FLASH控制器,其特征在于,所述FPGA内嵌FLASH控制器,包括:
接口模块,用于建立与主设备的通信连接,使主设备能够访问和控制FLASH逻辑控制模块;
多个FLASH功能模块,与不同类型的FLASH存储器一一对应设置并连接相应类型的FLASH存储器,用于实现对所连接的FLASH存储器进行相应的功能操作;
FLASH逻辑控制模块,连接所述接口模块和所述多个FLASH功能模块;
其中,所述FLASH逻辑控制模块包括至少一个通用寄存器组,每个所述通用寄存器组包括控制寄存器、状态寄存器、读写数据寄存器、擦除数据寄存器和FLASH类型选择寄存器,所述通用寄存器组中的各个寄存器连接各个所述FLASH功能模块的相应引脚,所述FLASH逻辑控制模块用于将所述主设备发送的操作指令映射为相应的寄存器的相关操作,并选择和匹配对应的所述FLASH功能模块,控制所选择的FLASH功能模块根据所述寄存器的相关操作,对所连接的FLASH存储器进行相应的功能操作,以实现不同类型的FLASH存储器的兼容。
2.如权利要求1所述的FPGA内嵌FLASH控制器,其特征在于,所述接口模块与所述主设备通过相应的通信协议总线通信连接,所述通信协议总线为AHB总线、APB总线、AXI总线、WISHBONE总线或Avalon总线;或者,所述接口模块与所述主设备的寄存器接口连接。
3.如权利要求1所述的FPGA内嵌FLASH控制器,其特征在于,所述接口模块还用于译码所述主设备的存储地址空间,解析所述FLASH逻辑控制模块中的各个寄存器,并将各个所述寄存器映射到所述主设备的存储地址空间的不同地址区域中。
4.如权利要求1所述的FPGA内嵌FLASH控制器,其特征在于,所述接口模块包括:
地址判断模块,连接所述主设备,并用于判断所述主设备发送的地址信号是否有效,若否,则所述接口模块不使能,与所述FPGA内嵌FLASH控制器连接的FLASH存储器维持原状,若是,则所述接口模块使能,继续后续操作;
操作判断模块,连接所述地址判断模块,用于对所述主设备发送的操作指令进行判断,并输出相应的判断结果;
信息传输模块,连接所述操作判断模块,用于根据所述操作判断模块的判断结果,将所述主设备所发出的数据信号和操作信号传输至FLASH信号生成模块;
FLASH信号生成模块,连接所述信息传输模块和所述FLASH逻辑控制模块,用于在所述信息传输模块的控制下使能,并将所述信息传输模块所传输的操作信号转换成操作所述FLASH逻辑控制模块所需的标准操作信号,将所述信息传输模块传输的数据信号转换成所述FLASH逻辑控制模块所需的标准数据信号。
5.如权利要求4所述的FPGA内嵌FLASH控制器,其特征在于,当所述主设备与所述接口模块通过AHB总线连接时,所述操作判断模块还用于对所述主设备发送的操作指令进行操作模式判断,所述信息传输模块包括基础模式传输模块、Burst模式传输模块和先进先出队列缓存器;当所述操作判断模块判断操作模式为基础传输模式时,使能所述基础模式传输模块,所述基础模式传输模块用于根据AHB通信协议规定的基础传输模式,对将所述主设备所发出的数据信号和操作信号进行解析,生成所述FLASH逻辑控制模块所需的操作信号和数据信号;当所述操作判断模块判断操作模式为Burst传输模式时,使能所述Burst模式传输模块,所述Burst模式传输模块用于根据AHB通信协议所规定的Burst传输模式,对将所述主设备所发出的数据信号和操作信号进行解析,生成所述FLASH逻辑控制模块所需的操作信号和数据信号。
6.如权利要求4所述的FPGA内嵌FLASH控制器,其特征在于,当所述主设备与所述接口模块通过WISHBONE总线连接时,所述操作判断模块还用于对所述主设备发送的操作指令进行判断,同时将判断的结果传输至FLASH信号生成模块,以生成相应的操作信号;所述信息传输模块包括数据传输模块,用于在所述操作判断模块的控制下使能,用于根据WISHBONE通信协议,对将所述主设备所发出的数据信号进行解析,生成所述FLASH逻辑控制模块所需的数据信号。
7.如权利要求1~6中任一项所述的FPGA内嵌FLASH控制器,其特征在于,所述接口模块为通用总线接口模块,其内部含有至少两种通信协议,以与不同类型的主设备或者同一主设备的不同类型的通信协议总线,建立相应的通信协议链路;所述FPGA内嵌FLASH控制器还包括与所述主设备均连接的总线接口仲裁使能模块和总线类型模块,其中,
所述总线接口仲裁使能模块,连接所述主设备和所述接口模块,并由所述总线类型模块驱动并使能,用于通过分析所述主设备的通信协议总线的类型,从所述接口模块中选择相应的通信协议链路,以建立所述接口模块和所述主设备之间的通信连接;
所述总线类型模块,连接所述主设备和所述总线接口仲裁使能模块,且对不同类型的通信协议总线有相应的标注,用于获得所述主设备的通信协议总线的类型信息,并根据所述类型信息使能所述接口模块,以使所述接口模块和主设备之间建立相应的通信协议链路。
8.如权利要求7所述的FPGA内嵌FLASH控制器,其特征在于,所述总线接口仲裁使能模块包括多路选择器。
9.如权利要求1所述的FPGA内嵌FLASH控制器,其特征在于,所述FLASH功能模块,包括FLASH内部接口以及FLASH操作模块,所述FLASH内部接口用于实现FLASH功能模块与所述FLASH逻辑控制模块之间的交互,所述FLASH操作模块连接相应的FLASH存储器,用于实现对所连接的FLASH存储器的随机读、写、擦除或控制。
10.如权利要求9所述的FPGA内嵌FLASH控制器,其特征在于,所述FLASH内部接口的 引脚包括:时钟引脚、复位引脚、控制类引脚、状态类引脚、读写数据引脚、擦除数据引脚、FLASH类型选择引脚;其中,所述时钟引脚外接通信协议总线上的时钟信号,所述复位引脚外接通信协议总线上的复位信号,所述控制类引脚连接所述控制寄存器,所述状态类引脚连接所述状态寄存器,所述读写数据引脚连接所述读写数据寄存器,所述擦除数据引脚连接所述擦除数据寄存器,所述FLASH类型选择引脚连接所述FLASH类型选择寄存器。
11.如权利要求8所述的FPGA内嵌FLASH控制器,其特征在于,当所述主设备通过所述FPGA内嵌FLASH控制器同时连接多个FLASH存储器时,所述FLASH逻辑控制模块还包括组合逻辑电路,所述组合逻辑电路连接所述控制寄存器和所述状态寄存器,用于将各个所述FLASH功能模块的中断信号,按照规定的优先级映射到所述主设备的中断向量表中,以实现所述主设备对各个所述FLASH存储器的优先级控制。
12.如权利要求1所述的FPGA内嵌FLASH控制器,其特征在于,所述主设备通过所述FPGA内嵌FLASH控制器连接一个FLASH存储器,或者,所述主设备通过所述FPGA内嵌FLASH控制器同时连接多个FLASH存储器,且多个FLASH存储器中的至少两个的类型不同。
13.如权利要求12所述的FPGA内嵌FLASH控制器,其特征在于,所述FLASH存储器与所述FPGA内嵌FLASH控制器内嵌在同一FPGA中,或者,所述FLASH存储器设置在所述FPGA内嵌FLASH控制器所在的FPGA的外部;所述主设备内嵌在所述FPGA内嵌FLASH控制器所在的FPGA中,或者,所述主设备设置在所述FPGA内嵌FLASH控制器所在的FPGA的外部。
14.一种电子装置,其特征在于,包括如权利要求1至13中任一项所述的FPGA内嵌FLASH控制器,以及与所述FPGA内嵌FLASH控制器通信连接的主设备和至少一个FLASH存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012135.1A CN111931442B (zh) | 2020-09-24 | 2020-09-24 | Fpga内嵌flash控制器及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012135.1A CN111931442B (zh) | 2020-09-24 | 2020-09-24 | Fpga内嵌flash控制器及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111931442A CN111931442A (zh) | 2020-11-13 |
CN111931442B true CN111931442B (zh) | 2021-07-02 |
Family
ID=73334094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011012135.1A Active CN111931442B (zh) | 2020-09-24 | 2020-09-24 | Fpga内嵌flash控制器及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111931442B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672536B (zh) * | 2021-08-26 | 2022-06-07 | 北京微纳星空科技有限公司 | 一种数据存储系统、存储模块和数据存储方法 |
CN114110964B (zh) * | 2021-11-26 | 2022-11-18 | 珠海格力电器股份有限公司 | 基于flash闪存的切换控制方法、装置及空调 |
CN114489476B (zh) * | 2021-12-16 | 2024-04-19 | 深圳市德明利技术股份有限公司 | 一种基于fpga的闪存数据采集装置和采集方法 |
CN114490460B (zh) * | 2022-03-31 | 2022-06-28 | 成都启英泰伦科技有限公司 | 一种用于asic的flash控制器及其控制方法 |
CN118747067B (zh) * | 2024-06-24 | 2025-04-18 | 无锡摩芯半导体有限公司 | 一种提高FLASH的Program效率的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269708B2 (en) * | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US9888380B2 (en) * | 2014-10-30 | 2018-02-06 | The Western Union Company | Methods and systems for validating mobile devices of customers via third parties |
CN206557758U (zh) * | 2017-03-06 | 2017-10-13 | 扬州大学 | 一种基于fpga可扩展的nand flash存储芯片阵列控制器 |
CN107807890A (zh) * | 2017-10-19 | 2018-03-16 | 广东高云半导体科技股份有限公司 | 内嵌sdram存储器的fpga、布局方法、设备及电路板 |
CN207397669U (zh) * | 2017-11-10 | 2018-05-22 | 广东高云半导体科技股份有限公司 | 一种液晶屏测试控制电路 |
CN109408924B (zh) * | 2018-10-12 | 2022-11-04 | 北京特种机械研究所 | 基于dsp芯片的fpga配置方法 |
CN109783411B (zh) * | 2018-12-20 | 2022-05-17 | 成都旋极历通信息技术有限公司 | 一种基于fpga的flash阵列控制方法及控制器 |
CN111324917A (zh) * | 2020-03-31 | 2020-06-23 | 南京辉腾电子科技有限公司 | 一种fpga实现的断电续存功能的系统及方法 |
-
2020
- 2020-09-24 CN CN202011012135.1A patent/CN111931442B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111931442A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
CN112256601B (zh) | 数据存取控制方法、嵌入式存储系统及嵌入式设备 | |
JP4799417B2 (ja) | ホストコントローラ | |
CN100418079C (zh) | 具有平行加速模式的串行外围接口存储元件 | |
US6928505B1 (en) | USB device controller | |
CN108228513B (zh) | 一种基于fpga架构的智能串口通讯装置 | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN101436171B (zh) | 模块化通信控制系统 | |
KR101857911B1 (ko) | 가상채널을 이용한 다중 채널 메모리 제어기 | |
CN111782154B (zh) | 数据搬移方法、装置及系统 | |
CN101958152A (zh) | 一种nand flash控制器及其应用 | |
CN109783407B (zh) | 一种基于fpga实现pc与显卡桥接的装置及方法 | |
CN116132383B (zh) | 信息传输装置、系统及方法 | |
CN114253461B (zh) | 混合通道存储设备 | |
JP2007501472A (ja) | 転送ディスクリプタ用メモリを備えるusbホストコントローラ | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 | |
CN114328342B (zh) | 一种用于PCIe异构加速卡的新型程控配置方法 | |
US20070131767A1 (en) | System and method for media card communication | |
CN101625625B (zh) | 信号中继装置及利用该装置访问外部存储器的方法 | |
CN109558076A (zh) | 一种可配置的虚拟spi-flash | |
CN116166581A (zh) | 用于pcie总线的队列式dma控制器电路及数据传输方法 | |
CN117292738A (zh) | 验证微指令序列的系统及方法 | |
CN113553000B (zh) | 降低集成电路功耗的方法及其控制电路 | |
CN109086003B (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 |