CN113760792A - 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 - Google Patents
基于fpga的图像存取的axi4总线控制电路及其数据传输方法 Download PDFInfo
- Publication number
- CN113760792A CN113760792A CN202111058579.3A CN202111058579A CN113760792A CN 113760792 A CN113760792 A CN 113760792A CN 202111058579 A CN202111058579 A CN 202111058579A CN 113760792 A CN113760792 A CN 113760792A
- Authority
- CN
- China
- Prior art keywords
- state
- axi
- state machine
- read
- write
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000004891 communication Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920006048 Arlen™ Polymers 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请涉及基于FPGA的图像存取的AXI4总线控制电路及其数据传输方法,具体而言,涉及数字电路设计领域。本申请提供的基于FPGA的图像存取的AXI4总线控制电路;当需要对视频数据进行写入或者读取的时候,SoC中的ARM处理器可以发送使能信号来使能AXI读控制状态机、AXI写控制状态机,以此开始读操作或者写操作,也可以接收读写操作的中断信号;写操作是将连续的帧视频数据在写控制状态机和写状态机的操作下,采用AXI4的总线协议将数据写至采用AXI4接口的DDR3控制器中,读操作是将采用AXI4接口的DDR3控制器端的视频数据利用AXI读状态机、AXI读控制状态机将数据写入到读FIFO;读写操作均采用双状态机控制,即在读或写过程中,通过两个状态机相互配合完成AXI4端口的读或写的操作。
Description
技术领域
本申请涉及数字电路领域,具体而言,涉及一种基于FPGA的图像存取的AXI4总线控制电路及其数据传输方法。
背景技术
近些年来,随着人工智能和大数据的兴起,对处理海量数据的需求越来越高,特别是在SOC芯片中,需要不断的提高内存的读写容量和速度以满足高性能的需求。目前基于SoC的集成电路设计方法大大缩短了超大规模集成电路的设计时间。在视频的传输或处理SoC电路中,因为视频数据量会占用极大的缓存空间,所以需要DDR(DDR SDRAM)这类存储空间大,存取速度快的存储来缓存数据。
现有技术中SoC通常基于IP的设计模式,利用总线架构将不同的模块连接成一个系统。在SoC系统中经常会使用到各种总线,其中AXI总线是最常用的总线之一。AXI4总线协议是由ARM公司提出的AMBA4.0协议中最重要的协议,它是一种面向高性能、高带宽、低延迟的片内总线。AXI4总线分为AXI4(AXI4-full)、AXI4-Stream、AXI4-Lite。AXI4主要面向高性能地址映射通信需求,是面向地址映射的接口,最大允许256轮的数据突发传输,是完整的传输总线;AXI4总线由全局信号、写地址通道信号、写数据通道信号、写响应通道信号、读地址通道信号、读数据通道信号、低功耗接口信号构成,AXI4协议是基于突发的传输。
在基于FPGA的DDR电路中需要DDR控制器来控制DDR的读写,可以使用赛灵思的MIGIP作为DDR控制器,它可以连接物理层的DDR3和用户层,并且对用户侧可以支持AXI4协议。此外,在SoC系统中可能存在其他模块需要AXI4接口来访问DDR3,此时就需要AXI-interconnect IP作为中间层。
但是,现有技术中的SoC在视频处理模块间连接较为复杂,且内部逻辑较为复杂,不便于对系统进行维护,且由于各个相关模块间连接较为复杂,使得数据的通路较长。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种基于FPGA的图像存取的AXI4总线控制电路及其数据传输方法,以解决现有技术中的SoC在视频处理模块间连接较为复杂,且内部逻辑较为复杂,不便于对系统进行维护,且由于各个相关模块间连接较为复杂,使得数据的通路较长。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本申请提供一种基于FPGA的图像存取的AXI4总线控制电路,电路包括:ARM处理器、AXI读状态机、AXI读控制状态机、读FIFO、AXI写状态机、AXI写控制状态机、写FIFO、CMOS控制模块和显示控制模块;ARM处理器分别与AXI读控制状态机和AXI写控制状态机通信连接,用于控制AXI读控制状态机和AXI写控制状态机的状态,以及接收AXI读控制状态机和AXI写控制状态机的中断信号,AXI读控制状态机与AXI读状态机通信连接,AXI写控制状态机与AXI写状态机通信连接;读FIFO分别与显示控制模块、AXI读状态机、AXI读控制状态机通信连接;写FIFO分别与AXI写状态机、AXI写控制状态机和CMOS控制模块通信连接。
可选地,该AXI读状态机的状态包括:RD_IDLE状态、RA_WAIT状态、RD_START状态、RD_WAIT状态、RD_PROC状态和RD_DONE状态。
可选地,该AXI读控制状态机的状态包括:C_IDLE_R状态、C_ACK_R状态、C_WAIT状态、C_CHECK_FIFO_R状态、C_READ_BURST状态、C_READ_BURST_END状态、C_END_R状态。
可选地,该AXI写状态机的状态包括:WA_IDLE状态、WA_WAIT状态、WA_START状态、WD_WAIT状态、WD_PROC状态、WR_WAIT状态、WR_DONE状态。
可选地,该AXI写控制状态机的状态包括:C_IDLE_W状态、C_ACK_W状态、C_CHECK_FIFO_W状态、C_WRITE_BURST状态、C_WRITE_BURST_END状态、C_END_W状态。
可选地,该电路还包括DDR控制器,DDR控制器为支持AXI4接口的DDR控制器。
可选地,该电路还包括DDR存储器,DDR存储器用于将接收的数据进行存储。
第二方面,本申请提供一种基于FPGA的图像存取的AXI4总线控制电路的数据传输方法,方法包括:CMOS控制模块获取待处理数据;ARM处理器根据使能信号分别控制AXI读控制状态机或者AXI写控制状态机的状态,并接收AXI读控制状态机和AXI写控制状态机的中断信号;AXI读控制状态机与AXI读状态机通过双状态机并行处理完成符合AXI4总线协议的数据读操作;或者AXI写控制状态机与AXI写状态机通过双状态机并行处理完成符合AXI4总线协议的写操作;显示控制模块根据AXI读状态机和AXI读控制状态机的状态信息将待处理数据进行显示。
本发明的有益效果是:
本申请提供的基于FPGA的图像存取的AXI4总线控制电路,电路包括:ARM处理器、AXI读状态机、AXI读控制状态机、读FIFO、AXI写状态机、AXI写控制状态机、写FIFO、CMOS控制模块和显示控制模块;ARM处理器分别与AXI读控制状态机和AXI写控制状态机通信连接,用于控制AXI读控制状态机和AXI写控制状态机的状态,以及接收AXI读控制状态机和AXI写控制状态机的中断信号,AXI读控制状态机与AXI读状态机通信连接,AXI写控制状态机与AXI写状态机通信连接;读FIFO分别与显示控制模块、AXI读状态机、AXI读控制状态机通信连接;写FIFO分别与AXI写状态机、AXI写控制状态机和CMOS控制模块通信连接;当需要对视频数据进行读取或者写入的时候,ARM处理器会向AXI读控制状态机或AXI写控制状态机发送读或写使能信号以此开启读操作或写操作;在读操作或写操作中,AXI读状态机、AXI读控制状态机或AXI写状态机、AXI写控制状态机采用两个状态机相互配合的方式,并行地完成AXI4端口的读或写的操作;即本申请的电路结构简化了模块之间的连接,且内部逻辑较为简单,有利于对后续对系统的维护,由于本申请的电路结构简化了模块之间的连接,则使得数据的通路也较短。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明基于FPGA的图像存取的AXI4总线控制电路及其数据传输方法的AXI4总线控制电路及周边电路模块整体框架图;
图2为本发明基于FPGA的图像存取的AXI4总线控制电路的DDR3读写方式;
图3为本发明基于FPGA的图像存取的AXI4总线控制电路的AXI4读结构图;
图4为本发明基于FPGA的图像存取的AXI4总线控制电路AXI读状态机流程图;
图5为本发明基于FPGA的图像存取的AXI4总线控制电路AXI读控制状态机流程图;
图6为本发明基于FPGA的图像存取的AXI4总线控制电路AXI4写结构图;
图7为本发明基于FPGA的图像存取的AXI4总线控制电路AXI写状态机流程图;
图8为本发明基于FPGA的图像存取的AXI4总线控制电路AXI写控制状态机流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一个实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本发明的实施过程更加清楚,下面将会结合附图进行详细说明。
图1为本发明基于FPGA的图像存取的AXI4总线控制电路及其数据传输方法的AXI4总线控制电路及周边电路模块整体框架图;如图1所示;可选地,该AXI4控制器电路(AXIbus control circuit)将帧的读写功能与AXI4主端控制器的功能相融合,因为帧的读写控制电路和AXI4主端控制器电路有着极大的相关性,所以将其融合设计可优化数字电路的时序。因此本设计是基于FPGA的图像存取的AXI4总线控制电路,可满足视频传输处理的SoC或其他电路。项目的整体结构如图1所示。其中本发明所设计的模块—AXI bus controlcircuit模块采用双状态机的Verilog-HDL电路结构,可以并行高效的配置AXI4的各个端口,并且将帧的读写电路嵌入到AXI4控制电路中。在满足AXI4协议的前提下可将视频级的数据快速传输至MIG模块,继而传输至DDR3中。
首先配置参数:一帧视频的数据尺寸为640*480(可根据实际调整),视频数据格式为RGB565,所以数据大小为640*480*16bits,因为AXI4是基于突发传输的,这里采用的突发大小(AWSIZE)为4,即一次突发的大小为4Bytes。所以一帧数据需要640*480*16/32=153600(frame_size)次突发长度的传输。AXI4中的突发类型AWBURST本设计选择“INCR”型,即地址递增。AXI4中的ARLEN决定一次传输的突发长度,AXI4扩展突发长度支持INCR突发类型为1-256次传输,本设计选择128的burst长度,一般的,该首先配置参数可根据实际调整。
图2为本发明基于FPGA的图像存取的AXI4总线控制电路的DDR3读写方式;如图2所示,其次由于本设计是乒乓操作,即读和写的基地址是不同的,所以还需要至少两个不同的基地址和基地址选择信号。基地址之间的差值需要保证有足够的空间保证存储若干帧。
最后将来自SoC的读和写的read_wakeup(读请求信号)和 write_req(写请求信号)做3次连续寄存防止亚稳态。
本申请提供一种基于FPGA的图像存取的AXI4总线控制电路,电路包括:ARM处理器、AXI读状态机、AXI读控制状态机、读FIFO、AXI写状态机、AXI写控制状态机、写FIFO、CMOS控制模块和显示控制模块;ARM处理器分别与AXI读控制状态机和AXI写控制状态机通信连接,用于控制AXI读控制状态机和AXI写控制状态机的状态,以及接收AXI读控制状态机和AXI写控制状态机的中断信号,AXI读控制状态机与AXI读状态机通信连接,AXI写控制状态机与AXI写状态机通信连接;读FIFO分别与显示控制模块、AXI读状态机、AXI读控制状态机通信连接;写FIFO分别与AXI写状态机、AXI写控制状态机和CMOS控制模块通信连接。
为了便于理解方案,以下对本申请的基于FPGA的图像存取的AXI4总线控制电路的各部分分别进行介绍,并且为了方便说明,在此将基于FPGA的图像存取的AXI4总线控制电路简称为控制电路:
①ARM处理器分别与AXI读控制状态机和AXI写控制状态机通信连接,用于控制AXI读控制状态机和AXI写控制状态机的读写操作使能,以及接收上述两个状态机的读写操作完成的中断信号。其中,AXI读状态机、AXI读控制状态机为读操作服务,即按照AXI4总线协议将帧数据传输至读FIFO中;AXI写状态机和AXI写控制状态机为写操作服务,即按照AXI4总线协议将帧数据传输至DDR控制器中继而传输至DDR中;该ARM处理器的类型根据实际需要进行选择,在此不做具体限定。
图3为本发明基于FPGA的图像存取的AXI4总线控制电路的AXI4读结构图;图4为本发明基于FPGA的图像存取的AXI4总线控制电路AXI读状态机流程图;如图3和图4所示,②AXI读状态机的状态包括:RD_IDLE状态、RA_WAIT状态、RD_START状态、RD_WAIT状态、RD_PROC状态和RD_DONE状态;其中,AXI读状态机在电路复位后进入RD_IDLE状态;当AXI读控制状态机中的读启动信号拉高时,AXI读状态机进入到读等待状态(RA_WAIT)状态;同时将AXI读控制状态机的32位的读操作的基地址赋值至AXI4读地址寄存器,以及将AXI读控制状态机的读突发长度寄存器值减1赋值至32位的读突发长度长值寄存器;RA_WAIT状态判断读FIFO是否已写满,若写满则保持(RA_WAIT)状态;若读FIFO未写满,则AXI读状态机进入到RD_START状态;AXI读状态机的RD_START状态只持续一个时钟周期便自动跳转至RD_WAIT状态;在RD_START状态期间拉高AXI4的读地址有效信号以及将32位的读突发长度长值寄存器的高21位值减1赋值给该寄存器自身,同时,在该状态的同一时钟边沿判断读突发长度长值寄存器的高21位是否全为0,如果是则对8位的AXI4读突发长度寄存器赋读突发长度长值寄存器的第3位至第10位,以及拉高读数据持续信号寄存器,否则,对AXI4读突发长度寄存器赋十进制值255;在RD_WAIT状态中如果来自AXI4从端的ARREADY信号为高电平时,状态会自动跳转至RD_PROC状态,同时拉低读地址有效信号;在RD_PROC状态,如果AXI4的RVALID(AXI4端口信号)和RLAST(AXI4端口信号)都为高且读数据持续信号也为高电平时,状态转移到RD_DONE,当读数据持续信号为低时状态转移到RA_WAIT状态且对AXI4读地址寄存器自加下一帧地址;如果AXI4的RVALID(AXI4端口信号)和RLAST(AXI4端口信号)不为高且读数据持续信号或者不为高电平时,AXI4读突发长度寄存器每时拍自减1;RD_DONE状态一个时钟周期后,状态跳转到RD_IDLE状态;当在状态RD_DONE时,通过线网赋值拉高读完成信号,该信号使能AXI读控制状态机将状态转移至C_READ_BURST_END状态
图5为本发明基于FPGA的图像存取的AXI4总线控制电路AXI读控制状态机流程图;如图5所示,③AXI读控制状态机在电路复位后进入C_IDLE_R状态,当SoC的读唤醒信号(或者使能信号)为高电平时,AXI读控制状态机的状态进入到C_ACK_R状态;在C_ACK_R状态如果读唤醒信号拉低,则AXI读控制状态机的状态跳转到C_WAIT状态,对SoC的握手信号也拉低,否则拉高读请求的握手信号、读FIFO置位、通过多路选择器选择读操作基地址;C_WAIT状态通过计时器等待,计时结束后进入C_CHECK_FIFO_R状态;AXI读控制状态机的C_CHECK_FIFO_R状态中如果SoC的读唤醒为高电平时状态返回到C_ACK_R,否则如果读FIFO的空间满足一个突发的大小,则AXI读控制状态机状态跳转到C_READ_BURST状态、拉高读启动信号、对读突发长度寄存器赋值;AXI读控制状态机的C_READ_BURST状态中如果AXI4的RVALID信号为高则拉低读启动信号,同时如果读完成信号为高,则进入到C_READ_BURST_END状态,同时读计数器自加1个突发、读操作基地址自加1个突发;C_READ_BURST_END 状态中如果SoC的读唤醒为高电平时状态返回到C_ACK_R,如果读计数器小于帧的大小,状态返回到C_CHECK_FIFO_R,否则表示读完一帧,可对SoC发出中断请求,同时状态跳转到C_END_R状态,在C_END_R状态自动跳转到C_IDLE_R状态。
图6为本发明基于FPGA的图像存取的AXI4总线控制电路AXI4写结构图;图7为本发明基于FPGA的图像存取的AXI4总线控制电路AXI写状态机流程图;如图6和图7所示,④AXI写状态机在电路复位后进入WA_IDLE状态,当AXI写控制状态机中的写启动信号拉高时,AXI写状态机进入到写等待状态WA_WAIT状态,同时将AXI写控制状态机的32位的写操作的基地址赋值至AXI4写地址寄存器,以及将AXI写控制状态机的写突发长度寄存器值减1赋值至32位的写突发长度长值寄存器;AXI写状态机的WA_WAIT状态判断写FIFO是否已写满,如果写满则保持状态否则跳转到下一个状态WA_START状态;AXI写状态机的WA_START状态只持续一个时钟周期便自动跳转至WD_WAIT状态,在该状态期间拉高AXI4的写地址有效信号以及将32位的写突发长度长值寄存器的高21位值减1赋值给该寄存器自身,同时,在该状态的同一时钟边沿判断写突发长度长值寄存器的高21位是否全为0,如果是则对8位的AXI4写突发长度寄存器赋写突发长度长值寄存器的第3位至第10位,以及拉高写数据持续信号寄存器,否则,对AXI4写突发长度寄存器赋十进制值255;在AXI写状态机的WD_WAIT状态中如果来自AXI4从端的AWREADY信号为高电平时,状态会自动跳转至WD_PROC状态,同时拉低读地址有效信号,拉高写有效信号寄存器;WD_PROC状态中,如果AXI4的WVALID为高电平且AXI4写突发长度寄存器为0,状态转移到WR_WAIT,当AXI4写突发长度寄存器不为0时对AXI4写突发长度寄存器每时拍自减;在WR_WAIT状态,如果AXI从端的BVALID信号有效的情况下且写数据持续信号寄存器如果为高电平,状态跳转到WR_DONE,否则状态跳转到WA_WAIT,且对AXI4写地址寄存器自加下一帧地址;WR_DONE状态一个时钟周期后,状态跳转到WA_IDLE状态。
图8为本发明基于FPGA的图像存取的AXI4总线控制电路AXI写控制状态机流程图;如图8所示,⑤AXI写控制状态机在电路复位后进入C_IDLE_W状态,当SoC的写唤醒信号(或者使能信号)为高电平时,状态进入到C_ACK_W状态;在C_ACK_W状态如果写唤醒信号拉低,则状态跳转到C_CHECK_FIFO_W状态,对SoC的握手信号也拉低,否则拉高写请求的握手信号、写FIFO置位、通过多路选择器选择写操作基地址;在AXI写控制状态机的C_CHECK_FIFO_W状态,如果SoC的写唤醒(使能)信号为高电平时,状态跳回到C_ACK_W状态否则如果写FIFO的空间满足一个突发的大小,则状态跳转到C_WRITE_BURST状态、拉高写启动信号、对写突发长度寄存器赋值;C_WRITE_BURST状态如果写完成信号为高,则进入到C_WRITE_BURST_END状态,同时写计数器自加1个突发、写操作基地址自加1个突发;C_WRITE_BURST_END 状态中如果SoC的写唤醒为高电平时状态返回到C_ACK_W,如果写计数器小于帧的大小,状态返回到C_CHECK_FIFO_W,否则表示写完一帧,可对SoC发出中断请求,同时状态跳转到C_END_W状态,在C_END_W状态自动跳转到C_IDLE_R状态。
⑥读FIFO和写FIFO均为存储器,读FIFO分别与显示控制模块、AXI读状态机、AXI读控制状态机通信连接;写FIFO分别与AXI写状态机、AXI写控制状态机和CMOS控制模块通信连接,AXI读状态机和AXI读控制状态机接收读FIFO的标志信号,以此判断AXI读状态机和AXI读控制状态机状态的跳转,读FIFO还用于缓存读取的数据;AXI写状态机和AXI写控制状态机接收写FIFO的标志信号,以此判断AXI写状态机和AXI写控制状态机状态的跳转,写FIFO还用于缓存写入的数据。
⑦CMOS控制模块用于将OV5640摄像头的寄存器配置,将OV5640传输的RGB565的输出格式拼接成16bit的数据传输至AXI4控制器电路,以及将写请求信号发送至AXI4控制器电路。
⑧显示控制模块(图一中的HDMI_Display模块)负责将视频数据传输至显示器上,采用640*480的像素,(可根据实际选择)并且发送读请求至AXI4控制器电路。
可选地,该电路还包括DDR控制器,DDR控制器为支持AXI4接口的DDR控制器。
DDR控制器用于将本申请的控制电路与外部连接,即通过该DDR控制器将该控制电路中的数据与外部数据进行交互。
可选地,该电路还包括DDR存储器,DDR存储器用于将接收的数据进行存储。
本申请提供一种基于FPGA的图像存取的AXI4总线控制电路的数据传输方法,方法包括:
S101、CMOS控制模块获取待处理数据。
S102、ARM处理器根据使能信号分别控制AXI读控制状态机或者AXI写控制状态机的状态,并接收所述AXI读控制状态机和所述AXI写控制状态机的中断信号。
S103、AXI读控制状态机与AXI读状态机通过双状态机并行处理完成符合AXI4总线协议的数据读操作;或者AXI写控制状态机与AXI写状态机通过双状态机并行处理完成符合AXI4总线协议的写操作。
具体的,该S102和S103的步骤可以是读操作的步骤,也可以是写操作的步骤,根据SoC中的ARM处理器或其他类似的控制器决定是读操作还是写操作,若上述处理器或类似控制器指示读操作步骤,则该AXI读控制状态机与AXI读状态机通过双状态机并行处理完成符合AXI4总线协议的数据读操作;若上述处理器或类似控制器指示写操作步骤,则AXI写控制状态机与AXI写状态机通过双状态机并行处理完成符合AXI4总线协议的写操作,为了清楚的说明S102和S103的步骤,以下进行分步说明:
AXI写状态机在WA_IDLE状态下当WR_START为高时转入WA_WAIT状态,同时将初始地址WR_ADRS状态赋值给reg_wr_adrs(此寄存器即为AXI_AWADDR端口的赋值);将WR_LEN(写突发长度寄存器)值减1赋值给reg_wr_len寄存器。在WA_WAIT状态下,如果reg_wr_len的高21位等于0,或写FIFO为空则跳转到下一个状态WA_START状态。
在WA_START状态下正式开始写操作。该状态只持续一个时钟周期。首先拉高reg_awvalid(此寄存器为AXI_AWVALID端口的赋值)即将写地址有效信号拉高,再把寄存器reg_wr_len的高21位置1。写状态寄存器wr_state在一个时钟周期后进入WD_WAIT状态。其余信号进入多路选择器,如果reg_wr_len的高21位不等于0则reg_w_len置0xFF; reg_w_last(标志着写状态结束)置0,否则reg_wr_len的[10:3]位赋值给寄存器reg_w_len的低8位,以及将reg_w_last置1。
在WD_PROC状态中如果收到来自AXI4从机的AXI_WREADY的高电平信号,则表示从机已经做好写入准备。当其持续为高电平且reg_w_len为0则代表要写入的数据已经写完,写状态寄存器wr_state可转移到WR_WAIT状态;写数据有效信号reg_wvalid拉低表示此时写数据结束。如果reg_w_len不为0,即尚未将数据全部写入则继续写,每个时钟周期其值减1,直到为0。
在WR_WAIT状态中如果收到从机的AXI_BVALID 的高电平信号则继续,否则一直等待。当AXI_BVALID为高电平时,如果reg_w_last为高电平,写状态寄存器wr_state进入下一个状态WR_DONE,否则reg_wr_adrs寄存器将加2048进入到下一个写的基地址,同时wr_state将跳转到WA_WAIT状态。
在WR_DONE状态时,下一个时钟周期将回到WA_IDLE状态。此外状态机外,当AXI写状态为WR_DONE时,拉高写完成信号(wr_finsh)。
AXI写控制状态机中主要改变以下寄存器:wr_conl_state(写控制状态寄存器)、WR_ADRS、WR_START、write_cnt、wfifo_rst、wready、WR_LEN。AXI写控制状态机流程图见图8。
在C_IDLE_W状态中,如果有来自SoC的写请求信号(write_req),则wr_conl_state会被赋值到下一个状态C_ACK_W。另外此时也要有响应的SoC握手信号作为回应。
在C_ACK_W中,如果write_req为0,则wr_conl_state进入下一个状态 C_CHECK_FIFO_W,此时握手信号也有响应的动作,同时写FIFO的复位信号也置0,否则写FIFO置高电平,以及在选择写基地址控制信号下将基地址赋值给WR_ADRS寄存器。
在C_CHECK_FIFO_W状态中如果write_req又为高电平,则wr_conl_state回到C_ACK_W状态,否则如果写FIFO内部计数(rd_data_count)大于BURST_SIZE值时则wr_conl_state进入C_WRITE_BURST状态,同时WR_LEN得到128的突发长度,WR_START置为高电平。
在C_WRITE_BURST状态中如果wr_state为WR_DONE则wr_conl_state进入到C_WRITE_BURST_END状态,write_cnt在每个时钟周期自加BURST_SIZE值,WR_ADRS自加BURST_SIZE值。
在C_WRITE_BURST_END状态,如果有write_req为高电平,wr_conl_state跳转到C_ACK_W状态,否则如果write_cnt小于frame_size,则wr_conl_state回到C_CHECK_FIFO_W,继续写操作,否则wr_conl_state被赋值进入到C_END_W。
在C_END_W中,wr_conl_state直接回到C_IDLE_W状态。
最后将涉及到AXI4端口信号的寄存器的值通过线网赋值语句赋值。
至此,通过两个状态机的时序切换,完成了写操作,将数据帧通过AXI4协议成功的写入到MIG IP中继而传输至DDR3中。
最后阐述读过程中的AXI读状态机和AXI读控制状态机。
读过程中数据通过AXI4控制器将数据从MIG模块读出继而通过AXI-interconect模块。。
AXI读状态机将AXI4的端口信号的寄存器在各个工作状态下进行赋值,满足AXI4的传输协议。
AXI读状态机在RD_IDLE状态下当RD_START为高时转入RA_WAIT状态,同时将初始地址RD_ADRS赋值给reg_rd_adrs(此寄存器即为AXI_ARADDR端口的赋值);将RD_LEN(读突发长度寄存器)值减1赋值给reg_rd_len寄存器。
在RA_WAIT状态下,如果reg_wr_len的高21位等于0,则跳转到下一个状态RD_START。
在RD_START状态下正式开始读操作。该状态只持续一个时钟周期。首先拉高reg_arvalid (此寄存器为AXI_AWVALID端口的赋值)即将读地址有效信号拉高,再把寄存器reg_rd_len的高21位置1。读状态寄存器rd_state在一个时钟周期后进入RD_WAIT状态。其余信号进入多路选择器,如果reg_rd_len的高21位不等于0则reg_r_len置0xFF; reg_r_last(读数据持续信号)置0,否则reg_rd_len的[10:3]位赋值给寄存器reg_r_len的低8位,以及将reg_r_last置1。
在RD_WAIT状态下,一旦收到AXI从机的AXI_ARREADY信号(读地址握手信号)拉高,代表AXI从机已经收到地址有效信号AXI_ARVALID的高电平。此时可以将读状态寄存器rd_state转移到RD_PROC状态;同时reg_arvalid拉至低电平,它总共持续了2个时钟周期的高有效。
RD_PROC状态中如果收到来自AXI4从机的AXI_RVALID和AXI_RLAST的高电平信号,则表示从机已经做好读出的准备且在AXI_RLAST为高时数据有效,此时如果读数据持续信号(reg_r_last)也有效,则状态转移到RD_DONE状态,否则状态转移到RA_WAIT状态继续读以及将reg_rd_adrs自加十进制值2048,如果仅在AXI_RVALID信号有效的情况下,reg_r_len每时钟自减1,直到将一轮的16此突发传输完。
在RD_DONE状态时,下一个时钟周期将回到RD_IDLE状态。
AXI读控制状态机中主要改变以下寄存器:rd_conl_state(写控制状态寄存器)、RD_ADRS(读基地址)、RD_START(读启动信号)、wait_cnt、wfifo_rst、read_cnt、Rready(对SoC的读应答信号)、RD_LEN(读突发长度寄存器)。
在C_IDLE_R状态中,如果有来自SoC的读请求信号(read_req),则rd_conl_state会被赋值到下一个状态C_ACK_R。另外此时也要有响应的SoC握手信号作为回应。
在C_ACK_R中,如果read_req为0,则rd_conl_state进入下一个状态C_WAIT,此时握手信号也有响应的动作,同时读FIFO的复位信号也置0,否则读FIFO置高电平,以及在选择读基地址控制信号下将基地址赋值给RD_ADRS寄存器。
在C_WAIT状态,wait_cnt每个时钟自加,直到计到200,rd_conl_state被赋C_CHECK_FIFO_R状态。
C_CHECK_FIFO_R状态如果再次收到读请求信号(read_req),则状态立即跳转到C_ACK_R状态,否则,如果读FIFO的剩余空间满足128的突发长度的大小时,rd_conl_state被赋C_READ_BURST状态,同时读启动信号RD_START也拉高,启动读状态机,以及将128的突发长度赋予RD_LEN。
C_READ_BURST状态中如果来自AXI4从端的AXI_RVALID信号有效,将读启动信号拉低。如果读完成信号(rd_finsh)拉高,状态跳转到C_READ_BURST_END状态,同时read_cnt寄存器和读基地址每时钟拍自加BURST_SIZE值。
在C_READ_BURST_END状态,如果有read_req为高电平,rd_conl_state跳转到C_ACK_R状态,否则如果read_cnt小于frame_size,则rd_conl_state回到C_CHECK_FIFO_R,继续写操作,否则rd_conl_state被赋值进入到C_END_R。
在C_END_R中,rd_conl_state直接回到C_IDLE_R状态。
最后将涉及到AXI4读端口信号的寄存器的值通过线网赋值语句赋值。
至此,通过两个状态机的时序切换,完成了读操作,将数据帧通过该发明电路从DDR3中通过MIG IP成功读到模块外供SoC的其他模块处理或者直接显示。
S104、显示控制模块根据AXI读状态机和AXI读控制状态机的状态信息将待处理数据进行显示。
本发明完成了对所提出方法的Verilog-HDL的代码编写并进行了板级测试达到了上述功能;因此本申请可以解决现有技术中的SoC在视频处理模块间连接较为复杂,且内部逻辑较为复杂,不便于对系统进行维护,且由于各个相关模块间连接较为复杂,使得数据的通路较长问题。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述电路包括:ARM处理器、AXI读状态机、AXI读控制状态机、读FIFO、AXI写状态机、AXI写控制状态机、写FIFO、CMOS控制模块和显示控制模块;
ARM处理器分别与所述AXI读控制状态机和所述AXI写控制状态机通信连接,用于控制所述AXI读控制状态机和所述AXI写控制状态机的状态,以及接收所述AXI读控制状态机和所述AXI写控制状态机的中断信号,所述AXI读控制状态机与AXI读状态机通信连接,所述AXI写控制状态机与所述AXI写状态机通信连接;
所述读FIFO分别与所述显示控制模块、所述AXI读状态机、所述AXI读控制状态机通信连接;
所述写FIFO分别与所述AXI写状态机、所述AXI写控制状态机和所述CMOS控制模块通信连接。
2.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述AXI读状态机的状态包括:RD_IDLE状态、RA_WAIT状态、RD_START状态、RD_WAIT状态、RD_PROC状态和RD_DONE状态。
3.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述AXI读控制状态机的状态包括:C_IDLE_R状态、C_ACK_R状态、C_WAIT状态、C_CHECK_FIFO_R状态、C_READ_BURST状态、C_READ_BURST_END状态、C_END_R状态。
4.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述AXI写状态机的状态包括:WA_IDLE状态、WA_WAIT状态、WA_START状态、WD_WAIT状态、WD_PROC状态、WR_WAIT状态、WR_DONE状态。
5.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述AXI写控制状态机的状态包括:C_IDLE_W状态、C_ACK_W状态、C_CHECK_FIFO_W状态、C_WRITE_BURST状态、C_WRITE_BURST_END状态、C_END_W状态。
6.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述电路还包括DDR控制器,所述DDR控制器为支持AXI4接口的DDR控制器。
7.根据权利要求1所述的基于FPGA的图像存取的AXI4总线控制电路,其特征在于,所述电路还包括DDR存储器,所述DDR存储器用于将接收的数据进行存储。
8.一种基于FPGA的图像存取的AXI4总线控制电路的数据传输方法,其特征在于,所述方法包括:
CMOS控制模块获取待处理数据;
ARM处理器根据使能信号分别控制AXI读控制状态机或者AXI写控制状态机的状态,并接收所述AXI读控制状态机和所述AXI写控制状态机的中断信号;
所述AXI读控制状态机与所述AXI读状态机通过双状态机并行处理完成符合AXI4总线协议的数据读操作;或者所述AXI写控制状态机与所述AXI写状态机通过双状态机并行处理完成符合AXI4总线协议的写操作;
显示控制模块对显示器进行配置,以及将读FIFO中的视频数据传输至显示器上显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111058579.3A CN113760792B (zh) | 2021-09-10 | 2021-09-10 | 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111058579.3A CN113760792B (zh) | 2021-09-10 | 2021-09-10 | 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760792A true CN113760792A (zh) | 2021-12-07 |
CN113760792B CN113760792B (zh) | 2024-08-20 |
Family
ID=78794516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111058579.3A Active CN113760792B (zh) | 2021-09-10 | 2021-09-10 | 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760792B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546924A (zh) * | 2022-01-28 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的双向数据传输方法、系统、存储介质及设备 |
CN115617718A (zh) * | 2022-12-19 | 2023-01-17 | 芯动微电子科技(珠海)有限公司 | 一种基于AXI总线的读写保序方法及SoC系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067549A1 (en) * | 2005-08-29 | 2007-03-22 | Judy Gehman | Method for request transaction ordering in OCP bus to AXI bus bridge design |
CN101308450A (zh) * | 2008-06-27 | 2008-11-19 | 北京中星微电子有限公司 | Fifo控制电路及控制方法 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
CN111694773A (zh) * | 2019-03-13 | 2020-09-22 | 苏州微影激光技术有限公司 | AXI-Stream接口写控制电路及方法 |
-
2021
- 2021-09-10 CN CN202111058579.3A patent/CN113760792B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067549A1 (en) * | 2005-08-29 | 2007-03-22 | Judy Gehman | Method for request transaction ordering in OCP bus to AXI bus bridge design |
CN101308450A (zh) * | 2008-06-27 | 2008-11-19 | 北京中星微电子有限公司 | Fifo控制电路及控制方法 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
CN111694773A (zh) * | 2019-03-13 | 2020-09-22 | 苏州微影激光技术有限公司 | AXI-Stream接口写控制电路及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546924A (zh) * | 2022-01-28 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的双向数据传输方法、系统、存储介质及设备 |
CN114546924B (zh) * | 2022-01-28 | 2024-05-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的双向数据传输方法、系统、存储介质及设备 |
CN115617718A (zh) * | 2022-12-19 | 2023-01-17 | 芯动微电子科技(珠海)有限公司 | 一种基于AXI总线的读写保序方法及SoC系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113760792B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266369B2 (en) | Flash memory interface | |
US6353867B1 (en) | Virtual component on-chip interface | |
US7395364B2 (en) | Data transfer control apparatus | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
US6347294B1 (en) | Upgradeable highly integrated embedded CPU system | |
GB2295039A (en) | Serial port for a host adapter integrated circuit using a single terminal | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
CN108595350B (zh) | 一种基于axi的数据传输方法和装置 | |
CN113468097B (zh) | 基于片上系统的数据交换方法 | |
CN113760792B (zh) | 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 | |
JPH10293744A (ja) | Pciバス・システム | |
JPH07122865B2 (ja) | バス動作の動作速度を制御するようにしたバス・インターフェースを有するコンピュータ・システム | |
CN111931442A (zh) | Fpga内嵌flash控制器及电子装置 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
KR100288177B1 (ko) | 메모리 액세스 제어 회로 | |
KR100348545B1 (ko) | 통신 dma 장치 | |
US20030196004A1 (en) | Buffering and presenting chunks | |
WO2022095439A1 (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
CN113590520A (zh) | Spi系统自动写入数据的控制方法及spi系统 | |
CN115328832B (zh) | 一种基于pcie dma的数据调度系统与方法 | |
CN116610601A (zh) | 一种数据传输装置及其控制方法、装置、介质 | |
US20060206644A1 (en) | Method of hot switching data transfer rate on bus | |
CN112711925A (zh) | 虚拟化emif总线dsp软件设计方法 | |
EA039007B1 (ru) | Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных | |
KR0170742B1 (ko) | 엠버스를 이용한 데이터 전송 방법 |
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 |