CN107329929B - 一种基于SoC FPGA的数据传输系统及数据传输方法 - Google Patents
一种基于SoC FPGA的数据传输系统及数据传输方法 Download PDFInfo
- Publication number
- CN107329929B CN107329929B CN201710541644.5A CN201710541644A CN107329929B CN 107329929 B CN107329929 B CN 107329929B CN 201710541644 A CN201710541644 A CN 201710541644A CN 107329929 B CN107329929 B CN 107329929B
- Authority
- CN
- China
- Prior art keywords
- ddr
- fpga
- hps
- handshake
- handshake signal
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及计算机通信技术领域,提供一种基于SoC FPGA的数据传输系统及数据传输方法,该基于SoC FPGA的数据传输系统包括FPGA、HPS和DDR,DDR挂在所述HPS侧,HPS内设有处理器ARM和DDR控制器,FPGA与DDR之间通过AXI进行数据的写操作,HPS与DDR之间进行数据的读操作,FPGA与HPS之间通过握手信号h2f_a和h2f_b进行数据写、读操作时序控制;握手信号h2f_a置0或置1状态与DDR A的空满状态相对应,握手信号h2f_b置0或置1状态与DDR B的空满状态相对应,从而实现将视频数据上传至上位机,数据传输流畅,速度较快,给用户带来较好的体验。
Description
技术领域
本发明属于计算机通信技术领域,尤其涉及一种基于SoC FPGA的数据传输系统及数据传输方法。
背景技术
随着信息科技的飞速发展,信号处理任务越来越繁重,对高速数据传输的要求也越来越高,特别在当数据传输量较大,对数据传输速率要求较高的情况下,不同通讯设备或通讯模块之间的握手机制在数据传输过程中起关键性作用。此前已经出现了多种比较成熟的握手协议,例如三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。
目前,在数字信号处理方面广泛采用的是FPGA+ARM结构,即单独的现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片加单独的处理器(Acorn RISCMachine,ARM)相结合。其中,FPGA负责对信号的采集及处理,处理后的数据需在FPGA侧进行缓存,ARM通过控制信号及地址信号对缓存在FPGA内的数据进行读取并上传至上位机,实现信号数据的采集和上传。
当数据量较大时,数据缓存需要较大缓存空间,而FPGA内部存储空间有限,难以满足要求,若将数据通过外部存储器进行缓存,则FPGA既要对存储器的进行写操作也要进行读操作,还要实现读取数据发送,对数据传输速率产生影响。同时FPGA与ARM之间要有数据线、地址线、控制线,所需管脚较多,数据传输速率受芯片管脚限制。
发明内容
本发明的目的在于提供一种快速对大数据量视频数据进行采集和上传的基于SoCFPGA的数据传输系统。
本发明是这样实现的,一种基于SoC FPGA的数据传输系统,所述基于SoC FPGA的数据传输系统包括现场可编程门阵列FPGA、硬核处理系统HPS和双倍速率同步动态随机存储器DDR,所述双倍速率同步动态随机存储器DDR挂在所述HPS侧,其中:
所述硬核处理系统HPS内设有处理器ARM和DDR控制器,所述FPGA与所述DDR之间通过芯片内部高速互连通道AXI进行数据的写操作,所述HPS与所述DDR之间进行数据的读操作,其中,所述FPGA与所述HPS之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;
所述双倍速率同步动态随机存储器DDR包括DDR A和DDR B地址空间,其中,所述握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应。
作为一种改进的方案,所述DDR A和DDR B空间大小相同,且DDR A空间结束地址与DDR B空间起始地址连续。
作为一种改进的方案,所述FPGA访问所述DDR的频率低于所述DDR的工作频率。
本发明的另一目的在于提供一种基于SoC FPGA的数据传输方法,所述方法包括下述步骤:
FPGA对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为1,当所述握手信号h2f_a为1时,所述FPGA开始写DDR A,当所述握手信号h2f_a为0时,继续对所述握手信号h2f_a的状态进行检测;
判断所述FPGA写所述DDR A是否完成,当写DDR A完成时,将所述握手信号h2f_a赋值为0;
所述FPGA对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为1,当所述握手信号h2f_b为1时,所述FPGA开始写DDR B,当所述握手信号h2f_b为0时,继续对所述握手信号h2f_b的状态进行检测;
判断所述FPGA写所述DDR B是否完成,当写DDR B完成时,将所述握手信号h2f_b赋值为0,并返回执行所述FPGA对握手信号h2f_a的状态进行检测的步骤。
作为一种改进的方案,所述方法还包括下述步骤:
预先对握手信号h2f_a和h2f_b进行定义;
所述握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应。
作为一种改进的方案,所述方法还包括下述步骤:
对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;
当HPS启动时,将所述握手信号h2f_a和h2f_b均置为1。
本发明的另一目的在于提供一种基于SoC FPGA的数据传输系统的基于SoC FPGA的数据传输方法,所述方法包括下述步骤:
HPS对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为0,当所述握手信号h2f_a为0时,所述HPS开始读DDR A,当所述握手信号h2f_a为1时,继续对所述握手信号h2f_a的状态进行检测;
判断所述HPS读所述DDR A是否完成,当写DDR A完成时,将所述握手信号h2f_a赋值为1;
所述HPS对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为0,当所述握手信号h2f_b为0时,所述HPS开始读DDR B,当所述握手信号h2f_b为1时,继续对所述握手信号h2f_b的状态进行检测;
判断所述HPS读所述DDR B是否完成,当读DDR B完成时,将所述握手信号h2f_b赋值为1,并返回执行所述HPS对握手信号h2f_a的状态进行检测的步骤。
作为一种改进的方案,所述方法还包括下述步骤:
预先对握手信号h2f_a和h2f_b进行定义;
所述握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应。
作为一种改进的方案,所述方法还包括下述步骤:
对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;
当HPS启动时,将所述握手信号h2f_a和h2f_b均置为1。
在本发明实施例中,基于SoC FPGA的数据传输系统包括FPGA、HPS和DDR,DDR挂在所述HPS侧,HPS内设有处理器ARM和DDR控制器,FPGA与所述DDR之间通过芯片内部高速互连通道AX I进行数据的写操作,所述HPS与所述DDR之间进行数据的读操作,其中,所述FPGA与所述HPS之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;DDR包括DDR A和DDR B地址空间,握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应,从而实现将压缩的视频数据上传至上位机,数据传输流畅,速度较快,给用户带来较好的体验。
附图说明
图1是本发明提供的基于SoC FPGA的数据传输系统的结构示意图;
图2是本发明实施例一提供的基于SoC FPGA的数据传输方法的实现流程图;
图3是本发明实施例二提供的基于SoC FPGA的数据传输方法的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明提供的基于SoC FPGA的数据传输系统的结构示意图,为了便于说明,图中仅给出了与本发明相关的部分。
基于SoC FPGA的数据传输系统包括现场可编程门阵列FPGA、硬核处理系统(HardProcessor System,HPS)和双倍速率同步动态随机存储器(Dual Data Rate,DDR),所述双倍速率同步动态随机存储器DDR挂在所述HPS侧,其中:
所述硬核处理系统HPS内设有处理器ARM和DDR控制器,所述FPGA与所述DDR之间通过芯片内部高速互连通道AXI进行数据的写操作,所述HPS与所述DDR之间进行数据的读操作,其中,所述FPGA与所述HPS之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;
所述双倍速率同步动态随机存储器DDR包括DDR A和DDR B地址空间,其中,所述握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应。
其中,根据Cyclone V SoC芯片的特点,通过HPS侧集成的DDR Controller,可以实现FPGA与HPS共同访问同一DDR,在数据传输过程中FPGA将数据依次写入DDR,HPS从中读取;在DDR地址空间确定的情况下FPGA与HPS之间只需要通过握手信号指示DDR的可读可写状态即可。
在本发明实施例中,基于SoC FPGA的数据传输系统的过程全部均在Cyclone VSoC芯片中完成,FPGA负责数据的采集处理过程,HPS负责系统控制过程。FPGA采集并处理数据完成之后,通过特定的通道直接将数据写入挂在HPS侧的DDR,当数据写入DDR后,ARM可以从中将数据读出并上传至上位机。其中,FPGA访问DDR的过程中没有ARM的参与,因此效率得到大大的提高,FPGA与ARM之间是通过握手信号来获取对方此刻对DDR的操作的。
在该实施例中,对于,FPGA与ARM之间的握手信号的预定义为:
打开Altera FPGA开发软件Quartus 15.1新建一个工程,在插件Qsys中添加HPS,编辑HPS,添加一个FPGA-to-HPS Interface并选择为64位的AXI-3,在Qsys中添加两个inout型的PIO h2f_a和h2f_b,该h2f_a和h2f_b即FPGA与HPS之间的握手信号;
当h2f_a为低(0)时表示FPGA将DDR A写满,此时HPS可以读取DDR A,当h2f_a为高(1)时表示HPS将DDR A读空,此时FPGA可以将数据写入DDR A,同理,h2f_b对应于DDR B的空满状态。
其中,该握手信号的设置还满足下述条件:
(1)在HPS侧的DDR控制器可按照优先级管理FPGA及HPS对DDR的合理访问,保证DDR不会被长时间独占;
(2)DDR的两个缓存空间DDR A和DDR B的起始地址及地址空间,其中DDR A、DDR B空间大小相同,且DDR A空间结束地址与DDR B空间起始地址连续;
(3)确定FPGA的时钟频率,确保FPGA访问DDR的频率低于DDR的工作频率;
(4)对FPGA访问DDR的接口参数进行配置,例如位宽、传输有效信号等;
(5)确定FPGA侧分别指示DDR A和DDR B写满可读的信号;
(6)确定HPS侧分别指示DDR A和DDR B读空可写的信号。
图2示出了本发明实施例一提供的基于SoC FPGA的数据传输方法的实现流程图,其具体包括下述步骤:
在步骤S101中,FPGA对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为1,是则执行步骤S102,否则返回继续执行步骤S101。
在步骤S102中,当所述握手信号h2f_a为1时,所述FPGA开始写DDR A。
在步骤S103中,判断所述FPGA写所述DDR A是否完成,是则执行步骤S104,否则执行继续执行步骤S102。
在步骤S104中,当写DDR A完成时,将所述握手信号h2f_a赋值为0。
在步骤S105中,FPGA对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为1,是则执行步骤S106,否则返回继续执行步骤S105。
在步骤S106中,当所述握手信号h2f_b为1时,所述FPGA开始写DDR B。
在步骤S107中,判断所述FPGA写所述DDR B是否完成,是则执行步骤S108,否则继续执行步骤S106。
在步骤S108中,当写DDR B完成时,将所述握手信号h2f_b赋值为0,并返回执行所述FPGA对握手信号h2f_a的状态进行检测的步骤。
上述给出了基于SoC FPGA的数据传输中,基于FPGA端的握手过程。
在本发明实施例中,预先对握手信号h2f_a和h2f_b进行定义;
所述握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应;
其中,对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;
当HPS启动时,将所述握手信号h2f_a和h2f_b均置为1。
图3示出了本发明实施例二提供的基于SoC FPGA的数据传输方法的实现流程图,其具体包括下述步骤:
在步骤S201中,HPS对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为0,是则执行步骤S202,否则返回继续执行步骤S201。
在步骤S202中,当所述握手信号h2f_a为0时,所述HPS开始读DDR A。
在步骤S203中,判断所述HPS读所述DDR A是否完成,是则执行步骤S204,否则执行继续执行步骤S202。
在步骤S204中,当读DDR A完成时,将所述握手信号h2f_a赋值为1。
在步骤S205中,HPS对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为0,是则执行步骤S206,否则返回继续执行步骤S205。
在步骤S206中,当所述握手信号h2f_b为0时,所述HPS开始读DDR B。
在步骤S207中,判断所述HPS读所述DDR B是否完成,是则执行步骤S208,否则执行步骤S206。
在步骤S208中,当读DDR B完成时,将所述握手信号h2f_b赋值为1,并返回执行所述HPS对握手信号h2f_a的状态进行检测的步骤。
上述给出了基于SoC FPGA的数据传输过程中,基于HPS端的握手过程。
在本发明实施例中,基于SoC FPGA的数据传输系统包括FPGA、HPS和DDR,DDR挂在所述HPS侧,HPS内设有处理器ARM和DDR控制器,所述FPGA与所述DDR之间通过芯片内部高速互连通道AXI进行数据的写操作,所述HPS与所述DDR之间进行数据的读操作,其中,所述FPGA与所述HPS之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;DDR包括DDR A和DDR B地址空间,握手信号h2f_a置0或置1状态与所述DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述DDR B的空满状态相对应,从而实现将压缩的视频数据上传至上位机,数据传输流畅,速度较快,给用户带来较好的体验。
同时,本发明实施例解决了数据量较大时FPGA内部存储空间小的问题,采用乒乓缓存结构(DDR A+DDR B的方式),充分保证了数据传输的流畅性,FPGA与HPS之间只有两个握手信号,握手过程比较简单,不易出错。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于SoC FPGA的数据传输系统,其特征在于,所述基于SoC FPGA的数据传输系统包括现场可编程门阵列FPGA、硬核处理系统HPS和双倍速率同步动态随机存储器DDR,所述双倍速率同步动态随机存储器DDR挂在所述硬核处理系统HPS侧,其中:
所述硬核处理系统HPS内设有处理器ARM和DDR控制器,所述FPGA与所述双倍速率同步动态随机存储器DDR之间通过芯片内部高速互连通道AXI进行数据的写操作,所述硬核处理系统HPS与所述双倍速率同步动态随机存储器DDR之间进行数据的读操作,其中,所述FPGA与所述硬核处理系统HPS之间通过预先定义的握手信号h2f_a和握手信号h2f_b进行数据写、读操作时序控制;
所述双倍速率同步动态随机存储器DDR包括DDR A和DDR B地址空间,其中,FPGA与ARM之间的握手信号的预定义为:打开Altera FPGA开发软件Quartus 15.1新建一个工程,在插件Qsys中添加HPS,编辑HPS,添加一个FPGA-to-HPS Interface并选择为64位的AXI-3,在Qsys中添加两个inout型的PIO h2f_a和h2f_b,该握手信号h2f_a和握手信号h2f_b即FPGA与HPS之间的握手信号,所述握手信号h2f_a置0或置1状态与所述双倍速率同步动态随机存储器DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述双倍速率同步动态随机存储器DDR B的空满状态相对应;
握手信号的设置满足下述条件:
(1)在HPS侧的DDR控制器按照优先级管理FPGA及HPS对DDR的合理访问,保证DDR不会被长时间独占;
(2)DDR两个缓存空间DDR A和DDR B的起始地址连续及地址空间相同;
(3)确定FPGA的时钟频率,确保FPGA访问DDR的频率低于DDR的工作频率;
(4)对FPGA访问DDR的接口参数进行配置,所述接口参数包括位宽以及传输有效信号;
(5)确定FPGA侧分别指示DDR A和DDR B写满可读的信号;
(6)确定HPS侧分别指示DDR A和DDR B读空可写的信号。
2.根据权利要求1所述的基于SoC FPGA的数据传输系统,其特征在于,所述双倍速率同步动态随机存储器DDR A和DDR B空间大小相同,且DDR A空间结束地址与DDR B空间起始地址连续。
3.根据权利要求2所述的基于SoC FPGA的数据传输系统,其特征在于,所述FPGA访问所述双倍速率同步动态随机存储器DDR的频率低于所述双倍速率同步动态随机存储器DDR的工作频率。
4.一种基于权利要求1所述的基于SoC FPGA的数据传输系统的基于SoC FPGA的数据传输方法,其特征在于,所述方法包括下述步骤:
FPGA对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为1,当所述握手信号h2f_a为1时,所述FPGA开始写DDR A,当所述握手信号h2f_a为0时,继续对所述握手信号h2f_a的状态进行检测;
判断所述FPGA写所述双倍速率同步动态随机存储器DDR A是否完成,当写DDR A完成时,将所述握手信号h2f_a赋值为0;
所述FPGA对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为1,当所述握手信号h2f_b为1时,所述FPGA开始写DDR B,当所述握手信号h2f_b为0时,继续对所述握手信号h2f_b的状态进行检测;
判断所述FPGA写所述双倍速率同步动态随机存储器DDR B是否完成,当写DDR B完成时,将所述握手信号h2f_b赋值为0,并返回执行所述FPGA对握手信号h2f_a的状态进行检测的步骤;
握手信号的设置满足下述条件:
(1)在HPS侧的DDR控制器按照优先级管理FPGA及HPS对DDR的合理访问,保证DDR不会被长时间独占;
(2)DDR两个缓存空间DDR A和DDR B的起始地址连续及地址空间相同;
(3)确定FPGA的时钟频率,确保FPGA访问DDR的频率低于DDR的工作频率;
(4)对FPGA访问DDR的接口参数进行配置,所述接口参数包括位宽以及传输有效信号;
(5)确定FPGA侧分别指示DDR A和DDR B写满可读的信号;
(6)确定HPS侧分别指示DDR A和DDR B读空可写的信号;
FPGA与ARM之间的握手信号的预定义为:打开Altera FPGA开发软件Quartus 15.1新建一个工程,在插件Qsys中添加HPS,编辑HPS,添加一个FPGA-to-HPS Interface并选择为64位的AXI-3,在Qsys中添加两个inout型的PIO h2f_a和h2f_b,该h2f_a和h2f_b即FPGA与HPS之间的握手信号。
5.根据权利要求4所述的基于SoC FPGA的数据传输方法,其特征在于,所述方法还包括下述步骤:
预先对握手信号h2f_a和h2f_b进行定义;
所述握手信号h2f_a置0或置1状态与所述双倍速率同步动态随机存储器DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述双倍速率同步动态随机存储器DDR B的空满状态相对应。
6.根据权利要求5所述的基于SoC FPGA的数据传输方法,其特征在于,所述方法还包括下述步骤:
对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;
当HPS启动时,将所述握手信号h2f_a和h2f_b均置为1。
7.一种基于权利要求1所述的基于SoC FPGA的数据传输系统的基于SoC FPGA的数据传输方法,其特征在于,所述方法包括下述步骤:
HPS对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为0,当所述握手信号h2f_a为0时,所述硬核处理系统HPS开始读DDR A,当所述握手信号h2f_a为1时,继续对所述握手信号h2f_a的状态进行检测;
判断所述硬核处理系统HPS读所述双倍速率同步动态随机存储器DDR A是否完成,当读DDR A完成时,将所述握手信号h2f_a赋值为1;
所述硬核处理系统HPS对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为0,当所述握手信号h2f_b为0时,所述硬核处理系统HPS开始读DDR B,当所述握手信号h2f_b为1时,继续对所述握手信号h2f_b的状态进行检测;
判断所述硬核处理系统HPS读所述双倍速率同步动态随机存储器DDR B是否完成,当读DDR B完成时,将所述握手信号h2f_b赋值为1,并返回执行所述硬核处理系统HPS对握手信号h2f_a的状态进行检测的步骤;
握手信号的设置满足下述条件:
(1)在HPS侧的DDR控制器按照优先级管理FPGA及HPS对DDR的合理访问,保证DDR不会被长时间独占;
(2)DDR两个缓存空间DDR A和DDR B的起始地址连续及地址空间相同;
(3)确定FPGA的时钟频率,确保FPGA访问DDR的频率低于DDR的工作频率;
(4)对FPGA访问DDR的接口参数进行配置,所述接口参数包括位宽以及传输有效信号;
(5)确定FPGA侧分别指示DDR A和DDR B写满可读的信号;
(6)确定HPS侧分别指示DDR A和DDR B读空可写的信号;
FPGA与ARM之间的握手信号的预定义为:打开Altera FPGA开发软件Quartus 15.1新建一个工程,在插件Qsys中添加HPS,编辑HPS,添加一个FPGA-to-HPS Interface并选择为64位的AXI-3,在Qsys中添加两个inout型的PIO h2f_a和h2f_b,该h2f_a和h2f_b即FPGA与HPS之间的握手信号。
8.根据权利要求7所述的基于SoC FPGA的数据传输方法,其特征在于,所述方法还包括下述步骤:
预先对握手信号h2f_a和h2f_b进行定义;
所述握手信号h2f_a置0或置1状态与所述双倍速率同步动态随机存储器DDR A的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述双倍速率同步动态随机存储器DDR B的空满状态相对应。
9.根据权利要求7所述的基于SoC FPGA的数据传输方法,其特征在于,所述方法还包括下述步骤:
对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;
当HPS启动时,将所述握手信号h2f_a和h2f_b均置为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710541644.5A CN107329929B (zh) | 2017-07-05 | 2017-07-05 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710541644.5A CN107329929B (zh) | 2017-07-05 | 2017-07-05 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329929A CN107329929A (zh) | 2017-11-07 |
CN107329929B true CN107329929B (zh) | 2021-04-09 |
Family
ID=60196807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710541644.5A Active CN107329929B (zh) | 2017-07-05 | 2017-07-05 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329929B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959716B (zh) * | 2017-11-20 | 2020-11-17 | 烽火通信科技股份有限公司 | 一种使用SoC进行网络处理加速的方法及系统 |
CN108536615A (zh) * | 2018-04-02 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种乒乓缓存控制器及其设计方法 |
CN109800192B (zh) * | 2019-01-17 | 2020-01-10 | 广东高云半导体科技股份有限公司 | 电子设备、fpga芯片及其接口电路 |
CN114253901A (zh) * | 2020-09-24 | 2022-03-29 | 深圳富桂精密工业有限公司 | 内存共享方法及数据采集装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125424A (zh) * | 2014-08-06 | 2014-10-29 | 中航华东光电(上海)有限公司 | 一种基于fpga的高速、可变帧视频显存设计方法 |
CN204256731U (zh) * | 2014-12-08 | 2015-04-08 | 西安邮电大学 | 一种fpga高速读取usb设备数据装置 |
CN105844580A (zh) * | 2016-03-18 | 2016-08-10 | 西安电子科技大学 | 基于单片fpga的弹载sar成像系统架构设计 |
CN106774698A (zh) * | 2016-11-15 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种基于fpga的带外管理服务器及控制方法 |
-
2017
- 2017-07-05 CN CN201710541644.5A patent/CN107329929B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125424A (zh) * | 2014-08-06 | 2014-10-29 | 中航华东光电(上海)有限公司 | 一种基于fpga的高速、可变帧视频显存设计方法 |
CN204256731U (zh) * | 2014-12-08 | 2015-04-08 | 西安邮电大学 | 一种fpga高速读取usb设备数据装置 |
CN105844580A (zh) * | 2016-03-18 | 2016-08-10 | 西安电子科技大学 | 基于单片fpga的弹载sar成像系统架构设计 |
CN106774698A (zh) * | 2016-11-15 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种基于fpga的带外管理服务器及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107329929A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
CN109478168B (zh) | 内存访问技术及计算机系统 | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN209842608U (zh) | 一种基于fpga fifo模块的ddr3存储器控制 | |
CN110569204A (zh) | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 | |
CN111009272B (zh) | 输入输出逻辑电路、物理层接口模块及fpga芯片、存储系统 | |
US9026746B2 (en) | Signal control device and signal control method | |
CN104461925A (zh) | 一种存储设备地址对齐的自动纠正方法和装置 | |
KR20190022933A (ko) | 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법 | |
CN110941583A (zh) | 一种基于fpga的usb3.0数据传输系统控制方法 | |
CN112540953A (zh) | 基于fpga和mcu实现的片上系统 | |
CN115905086A (zh) | 基于axi同步读写单口sram的控制方法及控制器 | |
CN104485962B (zh) | 一种便携式数据采集系统及其采集方法 | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
CN100543873C (zh) | 一种基于双口ram实现数据速率转换的装置和方法 | |
US8015329B2 (en) | Data transfer coherency device and methods thereof | |
CN113377288B (zh) | 硬件队列管理系统、方法、固态硬盘控制器及固态硬盘 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN111722827B (zh) | 一种高效ddr访问方法 | |
CN102751966B (zh) | 延迟电路和存储器的潜伏时间控制电路及其信号延迟方法 | |
CN103838694A (zh) | 一种fpga高速读取usb接口数据的方法 | |
US10198219B2 (en) | Method and apparatus for en route translation in solid state graphics systems | |
CN102646073B (zh) | 数据处理方法及装置 | |
CN101853702B (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 |