CN117093157B - 一种用于单向光传输的ddr高速读写方法及系统 - Google Patents

一种用于单向光传输的ddr高速读写方法及系统 Download PDF

Info

Publication number
CN117093157B
CN117093157B CN202311329149.XA CN202311329149A CN117093157B CN 117093157 B CN117093157 B CN 117093157B CN 202311329149 A CN202311329149 A CN 202311329149A CN 117093157 B CN117093157 B CN 117093157B
Authority
CN
China
Prior art keywords
read
ddr
data
write
controller
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
Application number
CN202311329149.XA
Other languages
English (en)
Other versions
CN117093157A (zh
Inventor
梁立正
赵梦奎
王强
张健飞
李国光
吴军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mingfei Weiye Technology Co ltd
Original Assignee
Mingfei Weiye Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mingfei Weiye Technology Co ltd filed Critical Mingfei Weiye Technology Co ltd
Priority to CN202311329149.XA priority Critical patent/CN117093157B/zh
Publication of CN117093157A publication Critical patent/CN117093157A/zh
Application granted granted Critical
Publication of CN117093157B publication Critical patent/CN117093157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Communication Control (AREA)

Abstract

本发明提出了一种用于单向光传输的DDR高速读写方法,包括以下步骤:AXI控制器通过读取HMIC_S IP核的状态寄存器,判断HMIC_S IP核的当前状态;所述AXI控制器根据HMIC_S IP核的当前状态向DDR控制器发送请求信号;所述DDR控制器包括写控制器和读控制器;当所述请求信号为写请求信号时,所述写控制器生成写地址,将待写入数据和写地址发送给AXI控制器;当所述请求信号为读请求信号时,所述读控制器生成读地址,将读地址发送给AXI控制器;所述AXI控制器将待写入数据和写地址/读地址发送给HMIC_S IP核,所述HMIC_S IP核根据DDR缓冲区状态对DDR存储器进行数据写入或读取。

Description

一种用于单向光传输的DDR高速读写方法及系统
技术领域
本发明数据传输技术领域,尤其涉及一种用于单向光传输的DDR高速读写方法及系统。
背景技术
随着物联网技术和数据传输技术的发展,各类数据传输量爆发式增长,数据传输设备的性能逐渐面临瓶颈。另外,在某些应用场景下,涉及敏感数据的安全传输问题,数据单向传输设备应运而生,近年来相关技术得到较好发展,能够实现单向光传输的物理隔离,保证数据传输安全性。由于单向传输设备中不存在反馈信息,无法通过传输协议协调发送设备与接收设备的传输速度,只能通过数据临时缓存防止数据丢失。
中国专利CN115101104A公开了一种基于FPGA改进DDR读写效率的方法,包括读写模块、刷新模块、页面控制模块和上位机,其读写模块由DDR的读写状态机构成,刷新模块由刷新状态机构成,可以支持自制刷新机制的读写状态机,同时优化了刷新机制,将默认的集中刷新实现成了延迟更低等待时间更短的分散式刷新,大大提高了读写效率,对DDR的使用与开发有着极大的帮助。
但是DDR的读写是将刷新状态机刷新后进行读写,其中DDR的读/写通道并没有进行隔离,使数据在传输过程中易出现数据损坏,且DDR读写不允许单向传输设备使用硬盘等外部存储器进行数据缓存,会导致数据传输中出现安全问题。
发明内容
有鉴于此,本发明提出了一种用于单向光传输的DDR高速读写方法及系统,其根据DDR缓冲区的状态进行正确的数据写入或读取操作,确保数据的完整性和正确性,同时使DDR读缓冲区和DDR写缓冲区隔离,同时提高读写操作的并行度。
本发明的技术方案是这样实现的:
第一方面,本发明提供了一种用于单向光传输的DDR高速读写方法,包括以下步骤:
AXI控制器通过读取HMIC_S IP核的状态寄存器,判断HMIC_S IP核的当前状态;
所述AXI控制器根据HMIC_S IP核的当前状态向DDR控制器发送请求信号;所述DDR控制器包括写控制器和读控制器;
当所述请求信号为写请求信号时,所述写控制器生成写地址,将待写入数据和写地址发送给AXI控制器;
当所述请求信号为读请求信号时,所述读控制器生成读地址,将读地址发送给AXI控制器;
所述AXI控制器将待写入数据和写地址/读地址发送给HMIC_S IP核,所述HMIC_SIP核根据DDR缓冲区状态对DDR存储器进行数据写入或读取。
在以上技术方案的基础上,优选的,所述HMIC_S IP核根据DDR缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核时,所述HMIC_S IP核将待写入数据和写地址暂存在HMIC_S IP核的内部缓冲区;
当DDR存储器空闲时,HMIC_S IP核将内部缓冲区中的待写入数据写入DDR存储器地址,并发送写完成信号至AXI控制器;
所述AXI控制器接收到写完成信号后传递给DDR写控制器。
在以上技术方案的基础上,优选的,所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核,具体包括:
所述AXI控制器通过读取DDR缓冲区的控制信号,判断DDR缓冲区中的数据是否达到一次DDR写操作的数据量阈值:
若是,则所述AXI控制器在同一个时钟周期内从DDR缓冲区中并行地读取第一组数据;
所述AXI控制器将待写入数据中的第一组数据通过写数据通道发送至HMIC_S IP核。
在以上技术方案的基础上,优选的,所述AXI控制器接收到写完成信号后,并传递给DDR写控制器,还包括:
所述AXI控制器接收到写完成信号,判断所述DDR缓冲区的控制信号是否达到第一预设阈值:
若达到第一预设阈值,则在下一个时钟周期内继续从DDR缓冲区读取待写入数据的下一组数据,直到HMIC_S IP核的内部缓冲区中的所有待写入数据都被写入DDR存储器地址。
更进一步优选的,所述HMIC_S IP核根据缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将读地址发送给HMIC_S IP核时,所述HMIC_S IP核接收到读地址后,将所述读地址存储到HMIC_S IP核的内部缓冲区;
所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据;
所述AXI控制器将读数据的有效信号发送给DDR读控制器,所述DDR读控制器将读数据写入到DDR缓冲区。
在以上技术方案的基础上,优选的,所述HMIC_S IP核的内部缓冲区包括读数据FIFO,所述AXI控制器将读地址发送给HMIC_S IP核之前还包括:
判断所述HMIC_S IP核的内部缓冲区读数据FIFO是否有足够的空间缓存从DDR存储器读取的数据:
若是,则AXI控制器将读地址发送给HMIC_S IP核,并将读数据的有效信号置高。
在以上技术方案的基础上,优选的,所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据,具体包括:
判断所述读数据FIFO中的数据量是否达到发送阈值:
若达到,所述HMIC_S IP核向AXI控制器发送读数据的有效信号;
当所述读数据FIFO中有新的数据写入时,计数器递增;
当所述计数器的值达到发送阈值时,将读数据FIFO中的数据发送给AXI控制器,并将读数据有效信号置高。
在以上技术方案的基础上,优选的,所述DDR读控制器还包括状态寄存器,将所述状态寄存器的对应位的值设置为0或1,所述AXI控制器通过读取状态寄存器的对应为值判断读操作是否成功:
当所述状态寄存器读取对应位的值为1,则读操作成功。
在以上技术方案的基础上,优选的,所述DDR缓冲区包括DDR读缓冲区和DDR写缓冲区,所述DDR读缓冲区用于存储读操作的数据,所述DDR写缓冲用于存储写操作的数据。
第二方面,本发明公开了一种用于单向光传输的DDR高速读写系统,包括:
AXI控制器,用于将待写入数据和写地址/读地址发送至HMIC_S IP核;
HMIC_S IP核,用于实现DDR存储器的读写驱动;
DDR存储器;用于缓存数据;
DDR缓冲区,用于临时保存待写入DDR的数据和从DDR读取的数据;
DDR控制器,用于生成控制信号和读/写地址,并将所述DDR缓冲区的数据和读/写地址发送至AXI控制器;
所述DDR缓冲区、DDR控制器与AXI控制器之间通过FPGA内部总线连接,所述DDR缓冲区与DDR控制器之间通过FPGA内部总线连接,所述AXI控制器与所述HMIC_S IP核之间通过AXI4协议总线连接,所述HMIC_S IP核与DDR存储器之间通过电路引脚连接。
本发明的用于单向光传输的DDR高速读写方法相对于现有技术具有以下有益效果:
(1)通过AXI控制器读取HMIC_S IP核的状态寄存器,判断HMIC_S IP核的当前状态,根据HMIC_S IP核的当前状态向DDR控制器发送请求信号,HMIC_S IP核根据DDR缓冲区的状态进行数据写入或读取操作,利用HMIC_S IP核高效管理DDR存储器并实现数据的并行读写,确保数据传输的及时性和完整性;
(2)通过AXI控制器读取DDR写缓冲区的控制信号,判断缓冲区中的数据是否达到一次DDR写操作的数据量阈值,如果缓冲区中的数据达到阈值,AXI控制器在同一个时钟周期内从写数据缓冲区中并行地读取第一组数据,AXI控制器可以在DDR缓冲区中累积足够的数据量后,一次性并行地读取数据并发送给HMIC_S IP核,减少数据传输的次数,提高数据传输的效率;
(3)通过将DDR缓冲区设为DDR读缓冲区和DDR写缓冲区,将DDR存储的读写通道进行隔离,避免读写操作之间的干扰,同时提高读写操作的并行度,确保读写操作之间的控制信号不会相互干扰。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的用于单向光传输的DDR高速读写方法的流程图;
图2为本发明的用于单向光传输的DDR高速读写的AXI4协议通道示意图;
图3为本发明的用于单向光传输的DDR高速读写方法的DDR写控制状态转移图;
图4为本发明的用于单向光传输的DDR高速读写方法的DDR读控制状态转移图;
图5为本发明的用于单向光传输的DDR高速读写方法的结构框架图。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,本发明提供了一种用于单向光传输的DDR高速读写方法,包括以下步骤:
AXI控制器通过读取HMIC_S IP核的状态寄存器,判断HMIC_S IP核的当前状态;
所述AXI控制器根据HMIC_S IP核的当前状态向DDR控制器发送请求信号;所述DDR控制器包括写控制器和读控制器;
当所述请求信号为写请求信号时,所述写控制器生成写地址,将待写入数据和写地址发送给AXI控制器;
当所述请求信号为读请求信号时,所述读控制器生成读地址,将读地址发送给AXI控制器;
所述AXI控制器将待写入数据和写地址/读地址发送给HMIC_S IP核,所述HMIC_SIP核根据DDR缓冲区状态对DDR存储器进行数据写入或读取。
在本申请实施例中,AXI控制器通过读取HMIC_S IP核的状态寄存器,判断HMIC_SIP核的当前状态,AXI控制器根据HMIC_S IP核的当前状态向DDR控制器发送请求信号,确保与DDR控制器的通信正确进行,DDR控制器根据接收到的请求信号判断是写请求还是读请求,并提供写入或读取数据的功能,同时将提供写入或读取数据的功能,确保DDR存储器操作的正确性,AXI控制器将待写入数据和写地址/读地址发送给HMIC_S IP核,HMIC_S IP核根据DDR缓冲区的状态进行正确的数据写入或读取操作,确保数据的完整性和正确性。
如图2所示,具体的,所述HMIC_S IP核根据DDR缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核时,所述HMIC_S IP核将待写入数据和写地址暂存在HMIC_S IP核的内部缓冲区;
当DDR存储器空闲时,HMIC_S IP核将内部缓冲区中的待写入数据写入DDR存储器地址,并发送写完成信号至AXI控制器;
所述AXI控制器接收到写完成信号后传递给DDR写控制器。
可以理解的,在本申请实施例中,AXI控制器将待写入数据和写地址发送给HMIC_SIP核,同时将待写入数据传递给HMIC_S IP核的内部缓冲区,HMIC_S IP核根据DDR存储器的状态,判断是否空闲,如果DDR存储器空闲,HMIC_S IP核将内部缓冲区中的待写入数据写入DDR存储器地址,HMIC_S IP核在完成数据写入后,发送写完成信号给AXI控制器,AXI控制器接收到写完成信号后,将写完成信号传递给DDR写控制器,以通知DDR写控制器可以继续进行下一个写操作。
通过根据DDR存储器的状态进行数据的写入操作,并通过写完成信号与AXI控制器和DDR写控制器进行通信,确保数据的正确写入和存储;同时,AXI控制器和HMIC_S IP核之间的数据传输和地址传递也能够实现,保证数据的准确性和完整性。
如图3所示,在本申请的进一步实施例中,所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核,具体包括:
所述AXI控制器通过读取DDR缓冲区的控制信号,判断DDR缓冲区中的数据是否达到一次DDR写操作的数据量阈值:
若是,则所述AXI控制器在同一个时钟周期内从DDR缓冲区中并行地读取第一组数据;
所述AXI控制器将待写入数据中的第一组数据通过写数据通道发送至HMIC_S IP核。
在本申请实施例中,AXI控制器通过写地址通道发送DDR写地址时,在同一个时钟周期并行地从写数据缓冲区中读取待写入数据中的第一组数据并通过写数据通道发送至HMIC_S IP核,而无需在写地址发送结束后的时钟周期开始发送数据,以节省数据传输时间。
具体的,AXI控制器通过读取DDR写缓冲区的控制信号,判断缓冲区中的数据是否达到一次DDR写操作的数据量阈值,如果缓冲区中的数据达到阈值,AXI控制器在同一个时钟周期内从写数据缓冲区中并行地读取待写入数据中的第一组数据,AXI控制器可以在DDR缓冲区中累积足够的数据量后,一次性并行地读取数据并发送给HMIC_S IP核,减少数据传输的次数,提高数据传输的效率;同时AXI控制器将待写入数据中的第一组数据通过写数据通道发送至HMIC_S IP核,通过并行读取数据,可以减少数据传输的时钟周期,进一步提高数据传输的速度,HMIC_S IP核接收到数据后,进行数据的处理和存储操作,可以更好地利用DDR存储器的带宽,提高系统的整体性能。
在本申请一实施例中,所述AXI控制器接收到写完成信号后,并传递给DDR写控制器,还包括:
所述AXI控制器接收到写完成信号,判断所述DDR缓冲区的控制信号是否达到第一预设阈值:
若达到第一预设阈值,则在下一个时钟周期内继续从DDR缓冲区读取待写入数据的下一组数据,直到HMIC_S IP核的内部缓冲区中的所有待写入数据都被写入DDR存储器地址。
可以理解的,第一预设阈值可以根据实际使用需求进行设置,本申请并不对此进行具体限制。
在本申请实施例中,AXI控制器接收到写完成信号后,根据预设的阈值判断DDR缓冲区的控制信号是否达到第一预设阈值,如果达到第一预设阈值,AXI控制器在下一个时钟周期内继续从DDR缓冲区读取待写入数据的下一组数据,实现数据的连续传输,可以减少数据传输的次数,提高数据传输的效率;AXI控制器将读取到的数据通过写数据通道发送至HMIC_S IP核,HMIC_S IP核接收到数据后,进行数据的处理和存储操作,重复上述步骤,直到HMIC_S IP核的内部缓冲区中的所有待写入数据都被写入DDR存储器。同时,通过并行读取数据,可以减少数据传输的时钟周期,进一步提高数据传输的速度,并可以更好地利用DDR存储器的带宽,提高系统的整体性能。
在本申请实施例中,当HMIC_S IP核处于可写状态时,AXI控制器获取该状态并向DDR写控制器发送写请求信号;DDR写控制器生成写地址并将待写入数据和写地址一起发送至AXI控制器;DDR写控制器通过控制信号判断DDR写缓冲区状态,若写DDR缓冲区数据充足,则按照设定大小从缓冲区中读取待写入数据发送至AXI控制器,若写缓冲区数据不足则等待;AXI控制器将待写入数据和对应的写地址发送至HMIC_S IP核;HMIC_S IP核对待写入数据和写地址进行临时缓存,待DDR存储器空闲时将待写入数据写入DDR缓冲区;写操作完成后,HMIC_S IP核将写完成信号反馈至AXI控制器,进而反馈至DDR写控制器。
如图4所示,在本申请一实施例中,所述HMIC_S IP核根据缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将读地址发送给HMIC_S IP核时,所述HMIC_S IP核接收到读地址后,将所述读地址存储到HMIC_S IP核的内部缓冲区;
所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据;
所述AXI控制器将读数据的有效信号发送给DDR读控制器,所述DDR读控制器将读数据写入到DDR缓冲区。
在本申请实施例中,HMIC_S IP核能够接收到读地址并将其存储到HMIC_S IP核的内部缓冲区中,同时,HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据,告知AXI控制器可以开始读取数据,AXI控制器根据读数据的有效信号发送给DDR读控制器,DDR读控制器根据读数据的有效信号从DDR存储器中读取数据,并将读取到的数据写入DDR缓冲区,实现从DDR存储器读取数据并写入DDR缓冲区的功能;通过并行读取和写入数据,可以提高数据传输的效率和速度,同时,通过使用读数据有效信号,可以确保数据的准确性和完整性。
进一步的,所述HMIC_S IP核的内部缓冲区包括读数据FIFO,所述AXI控制器将读地址发送给HMIC_S IP核之前还包括:
判断所述HMIC_S IP核的内部缓冲区读数据FIFO是否有足够的空间缓存从DDR存储器读取的数据:
若是,则AXI控制器将读地址发送给HMIC_S IP核,并将读数据的有效信号置高。
在本申请实施例中,AXI控制器在发送读地址给HMIC_S IP核之前,会先检查HMIC_S IP核内部的读数据FIFO是否有足够的空间来缓存数据,这样可以避免数据丢失或覆盖,确保数据的完整性和准确性;同时,通过使用读数据FIFO作为中间缓冲区,可以实现数据的流水线传输,提高数据传输的效率和速度。
在本申请的进一步实施例中,所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据,具体包括:
判断所述读数据FIFO中的数据量是否达到发送阈值:
若达到,所述HMIC_S IP核向AXI控制器发送读数据的有效信号;
当所述读数据FIFO中有新的数据写入时,计数器递增;
当所述计数器的值达到发送阈值时,将读数据FIFO中的数据发送给AXI控制器,并将读数据有效信号置高。
在本申请实施例中,在HMIC_S IP核内部,设置一个计数器用于统计读数据FIFO中的数据量,当读数据FIFO中有新的数据写入时,计数器递增,判断计数器的值是否达到发送阈值,如果计数器的值达到发送阈值,HMIC_S IP核向AXI控制器发送读数据的有效信号,并将读数据的有效信号置高,确保数据的及时传输和处理;同时,AXI控制器接收到读数据的有效信号后,读取读数据FIFO中的数据,AXI控制器将读取到的读数据发送给其他模块进行处理或存储,重置计数器,准备接收读数据的下一批数据,通过使用计数器来统计读数据FIFO中的数据量,可以动态地控制数据的发送时机,避免数据的丢失或覆盖。
在本申请一实施例中,所述DDR读控制器还包括状态寄存器,将所述状态寄存器的对应位的值设置为0或1,所述AXI控制器通过读取状态寄存器的对应为值判断读操作是否成功:
当所述状态寄存器读取对应位的值为1,则读操作成功;
如果状态寄存器读取对应位的值为0,表示读操作失败。
通过读取DDR读控制器的状态寄存器来判断读操作是否成功,可以及时发现读操作的错误,并进行相应的处理,同时,通过使用状态寄存器记录读操作的状态,增强系统的可靠性和稳定性,提高数据读取的准确性和可靠性。
在本申请一实施例中,所述DDR缓冲区包括DDR读缓冲区和DDR写缓冲区,所述DDR读缓冲区用于存储读操作的数据,所述DDR写缓冲用于存储写操作的数据,避免读写操作之间的干扰,同时提高读写操作的并行度。
作为本领域技术人员可以理解的,为了提高数据读写并行度并降低读写操作之间的干扰,为DDR读缓冲区和DDR写缓冲区分别设计独立的数据通道,用于传输读操作和写操作的数据,这样可以确保读写操作之间的数据传输不会相互干扰;也可以为DDR读缓冲区和DDR写缓冲区分别设计独立的控制信号,用于控制读操作和写操作的进行,这样可以确保读写操作之间的控制信号不会相互干扰。
在本申请实施例中,当HMIC_S IP核处于可读状态时,AXI控制器获取该状态并向DDR读控制器发送读请求信号;DDR读控制器生成读地址并发送至AXI控制器,并等待读数据的有效信号;AXI控制器将读地址发送至HMIC_S IP核;HMIC_S IP核对读地址进行临时缓存,待DDR存储器空闲时从读地址中读取对应数据,并进行临时缓存;HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据;DDR读控制器获取读数据的有效信号,并将读数据写入到DDR缓冲区。
如图5所示,在本申请一实施例中,基于国产PG2L100H FPGA用于单向光传输的DDR高速读写方法的具体流程如下:
S1、DDR写操作,将DDR写缓冲区中的数据写入到DDR存储器。
S11、空闲等待。系统上电时或完成一次写操作后进入空闲等待状态,状态机实时检测HMIC_SIP核状态,当HMIC_S IP核处于可写状态时,AXI控制器获取该状态并向DDR写控制器发送写请求信号。
S12、写操作开始。DDR写控制器启动写操作流程。
S13、获取写地址。DDR写控制器生成写地址,并将待写入数据和写地址一起发送至AXI控制器,写地址从0地址开始,S13结束后写地址自增1以实现顺序写入。
S14、发送写地址。AXI控制器将待写入数据和写地址发送至HMIC_S IP核,并临时缓存到IP核内部FIFO。AXI控制器通过写地址通道发送DDR缓冲区时,在同一个时钟周期并行地从写数据缓冲区中读取待写入数据的第一组数据通过写数据通道发送至HMIC_S IP核,而无需在写地址发送结束后的时钟周期开始发送数据,以节省数据传输时间。根据DDR写缓冲区的控制信号判断DDR缓冲区中数据是否达到一次DDR写操作的数据量阈值,该阈值可预先设定,若写缓冲区数据充足则进入S15,否则进入S16。
S15、发送写数据。DDR写控制器从写数据缓冲区读取待写入数据的第二组数据发送至AXI控制器,由AXI控制器将写入数据的第二组数据发送至HMIC_S IP核,并临时缓存到IP核内部FIFO,每周期发送待写入数据的一组数据直至达到一次DDR写操作所需的数据阈值,所有数据发送完成后进入S17。S14和S15可并行执行以降低执行延迟。
S16、等待写数据。实时检测DDR写缓冲区状态,若缓冲区数据不足则一直循环S16,直至缓冲区数据充足进入S15。
S17、写操作结束。HMIC_S IP核在DDR存储器空闲时将临时缓存的数据按照对应的写地址写入到DDR缓冲区,写操作完成,将完成信号反馈至AXI控制器和DDR写控制器。
S2、DDR读操作,从DDR存储器读取数据写入到DDR读缓冲区。
S21、空闲等待。系统上电时或完成一次读操作后进入空闲等待状态,当HMIC_S IP核处于可读状态时,AXI控制器获取该状态并向DDR读控制器发送读请求信号。
S22、读操作开始。DDR读控制器启动读操作流程。
S23、获取读地址。DDR读控制器生读写地址,并发送至AXI控制器,读地址从0地址开始,S23结束后读地址自增1以实现顺序读取。
S24、发送读地址。AXI控制器将读地址发送至HMIC_S IP核,并临时缓存到IP核内部FIFO。待DDR存储器空闲时从读地址中读取对应数据,并临时缓存到IP核内部FIFO。IP核内部的读数据FIFO和写数据FIFO分离,因此S2和S1各步骤互不干扰,即S2和S1可并行执行。若缓存的数据量达到IP核发送阈值,则向AXI控制器发送数据和读数据有效信号并进入S25,否则读数据无效进入S26。
S25、接收读数据。AXI控制器将来自HMIC_S IP核的数据经DDR读控制器写入到DDR读缓冲区,一次读取的数据接收完成后进入S27,否则循环S25。
S26、等待读数据。AXI控制器实时检测读数据有效信号状态,若接收到有效信号则进入S25,否则循环S26。
S27、读操作结束。一次DDR读操作的数据完全写入到DDR读缓冲区后,一轮读操作结束。为提高数据读写并行度,降低读写操作之间的干扰,DDR读缓冲区以及对应的数据通道与S1中涉及的DDR写缓冲区及对应的通道完全分离。
可以理解的,基于国产PG2L100H FPGA和DDR存储器实现用于单向光传输的DDR高速读写方法,将AXI4协议和HMIC_S IP核结合实现并行读写,在读写混合模式下实现89%的带宽利用率,采用64位DDR3存储器可实现单输入单输出的50Gbps以上高速数据混合读写,从而可支持50Gbps的单向光传输数据实时缓存。本发明涉及的FPGA采用国产PG2L100H芯片,技术自主可控。本发明涉及的方法实施只需要FPGA芯片和DDR存储芯片,具有轻量化优势,可在各场景实现广泛应用。
本申请还提供了一种用于单向光传输的DDR高速读写系统,包括:
AXI控制器,用于将待写入数据和写地址/读地址发送至HMIC_S IP核;
HMIC_S IP核,用于实现DDR存储器的读写驱动;
DDR存储器;用于缓存数据;
DDR缓冲区,用于临时保存待写入DDR的数据和从DDR读取的数据;
DDR控制器,用于生成控制信号和读/写地址,并将所述DDR缓冲区的数据和读/写地址发送至AXI控制器;
所述DDR缓冲区、DDR控制器与AXI控制器之间通过FPGA内部总线连接,所述DDR缓冲区与DDR控制器之间通过FPGA内部总线连接,所述AXI控制器与所述HMIC_S IP核之间通过AXI4协议总线连接,所述HMIC_S IP核与DDR存储器之间通过电路引脚连接。
在本申请实施例中,在FPGA上实现AXI总线接口,将AXI控制器与HMIC_S IP核连接起来,使用AXI4协议进行通信,通过AXI总线传输待写入数据和控制信号,在FPGA上实现内部总线接口,将DDR缓冲区与DDR控制器连接起来,使用内部总线进行数据和地址的传输,在FPGA上实现内部总线接口,将DDR控制器与AXI控制器连接起来,使用内部总线进行数据和地址的传输,通过电路引脚将HMIC_S IP核与DDR存储器连接起来,使用电路引脚进行数据和地址的传输。
通过将AXI控制器、HMIC_S IP核、DDR存储器、DDR缓冲区以及DDR控制器连接起来,实现DDR高速读写系统的各个组件之间的连接和数据传输,AXI控制器负责将待写入数据和控制信号发送至HMIC_S IP核,而HMIC_S IP核负责实现DDR存储器的读写驱动。DDR缓冲区用于临时保存待写入DDR的数据和从DDR读取的数据,而DDR控制器用于生成控制信号和读/写地址,并将数据和地址发送至AXI控制器。
在本申请实施例中,HMIC_S IP核中包含读写地址FIFO和读写数据FIFO,可对读写数据和地址进行缓存,其AXI4接口能够实现一定程度的读写并行;AXI控制器实现AXI4协议的Master端控制,将来自其他模块的数据和控制信号按照AXI4协议要求进行转换,并发送至HMIC_S IP核,或将来自HMIC_S IP核的数据转换为其他模块所需的数据或控制信号格式发送至相关模块,AXI控制器实现各模块对DDR存储器读写操作的仲裁,通过均衡读写数据流量提高DDR读写效率。
通过合理的连接和数据传输方式,可以实现高效的DDR读写操作。实现了各个组件之间的高速数据传输,提高了系统的数据吞吐量和响应速度;并通过使用内部总线和AXI4协议,简化了系统的设计和调试过程。通过连接DDR缓冲区和DDR控制器,实现了数据的缓存和流水线传输,提高了数据传输的效率,同时通过连接HMIC_S IP核和DDR存储器,实现了对DDR存储器的读写驱动,保证了数据的可靠性和一致性。
可以理解的,AXI4协议包含写地址、写数据、写反馈、读地址、读数据五个通道,各通道间相互独立、可并行传输。AXI控制器实现各模块对DDR存储器读写操作的仲裁,通过均衡读写数据流量提高DDR读写效率。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种用于单向光传输的DDR高速读写方法,其特征在于,包括以下步骤:
AXI控制器通过读取HMIC_S IP核的状态寄存器,判断HMIC_S IP核的当前状态;
所述AXI控制器根据HMIC_S IP核的当前状态向DDR控制器发送请求信号;所述DDR控制器包括写控制器和读控制器;
当所述请求信号为写请求信号时,所述写控制器生成写地址,将待写入数据和写地址发送给AXI控制器;
当所述请求信号为读请求信号时,所述读控制器生成读地址,将读地址发送给AXI控制器;
所述AXI控制器将待写入数据和写地址/读地址发送给HMIC_S IP核,所述HMIC_S IP核根据DDR缓冲区状态对DDR存储器进行数据写入或读取;
所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核,具体包括:
所述AXI控制器通过读取DDR缓冲区的控制信号,判断DDR缓冲区中的数据是否达到一次DDR写操作的数据量阈值:
若是,则所述AXI控制器在同一个时钟周期内从DDR缓冲区中并行地读取第一组数据;
所述AXI控制器将待写入数据中的第一组数据通过写数据通道发送至HMIC_S IP核;
所述DDR缓冲区包括DDR读缓冲区和DDR写缓冲区,所述DDR读缓冲区用于存储读操作的数据,所述DDR写缓冲用于存储写操作的数据。
2.如权利要求1所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述HMIC_S IP核根据DDR缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将待写入数据和写地址发送给HMIC_S IP核时,所述HMIC_S IP核将待写入数据和写地址暂存在HMIC_S IP核的内部缓冲区;
当DDR存储器空闲时,HMIC_S IP核将内部缓冲区中的待写入数据写入DDR存储器地址,并发送写完成信号至AXI控制器;
所述AXI控制器接收到写完成信号后传递给DDR写控制器。
3.如权利要求2所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述AXI控制器接收到写完成信号后,并传递给DDR写控制器,还包括:
所述AXI控制器接收到写完成信号,判断所述DDR缓冲区的控制信号是否达到第一预设阈值:
若达到第一预设阈值,则在下一个时钟周期内继续从DDR缓冲区读取待写入数据的下一组数据,直到HMIC_S IP核的内部缓冲区中的所有待写入数据都被写入DDR存储器地址。
4.如权利要求1所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述HMIC_S IP核根据缓冲区状态对数据进行写入或读取,具体包括:
当所述AXI控制器将读地址发送给HMIC_S IP核时,所述HMIC_S IP核接收到读地址后,将所述读地址存储到HMIC_S IP核的内部缓冲区;
所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据;
所述AXI控制器将读数据的有效信号发送给DDR读控制器,所述DDR读控制器将读数据写入到DDR缓冲区。
5.如权利要求4所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述HMIC_S IP核的内部缓冲区包括读数据FIFO,所述AXI控制器将读地址发送给HMIC_S IP核之前还包括:
判断所述HMIC_S IP核的内部缓冲区读数据FIFO是否有足够的空间缓存从DDR存储器读取的数据:
若是,则AXI控制器将读地址发送给HMIC_S IP核,并将读数据的有效信号置高。
6.如权利要求5所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述HMIC_S IP核向AXI控制器发送读数据的有效信号和读数据,具体包括:
判断所述读数据FIFO中的数据量是否达到发送阈值:
若达到,所述HMIC_S IP核向AXI控制器发送读数据的有效信号;
当所述读数据FIFO中有新的数据写入时,计数器递增;
当所述计数器的值达到发送阈值时,将读数据FIFO中的数据发送给AXI控制器,并将读数据有效信号置高。
7.如权利要求1所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述DDR读控制器还包括状态寄存器,将所述状态寄存器的对应位的值设置为0或1,所述AXI控制器通过读取状态寄存器的对应为值判断读操作是否成功:
当所述状态寄存器读取对应位的值为1,则读操作成功。
8.如权利要求1所述的一种用于单向光传输的DDR高速读写方法,其特征在于,所述DDR缓冲区包括DDR读缓冲区和DDR写缓冲区,所述DDR读缓冲区用于存储读操作的数据,所述DDR写缓冲用于存储写操作的数据。
9.一种用于单向光传输的DDR高速读写系统,其特征在于,采用如权利要求1-8任一项所述的DDR高速读写方法,包括:
AXI控制器,用于将待写入数据和写地址/读地址发送至HMIC_S IP核;
HMIC_S IP核,用于实现DDR存储器的读写驱动;
DDR存储器;用于缓存数据;
DDR缓冲区,用于临时保存待写入数据和读取数据;
DDR控制器,用于生成控制信号和读/写地址,并将所述DDR缓冲区的数据和读/写地址发送至AXI控制器;
所述DDR缓冲区、DDR控制器与AXI控制器之间通过FPGA内部总线连接,所述DDR缓冲区与DDR控制器之间通过FPGA内部总线连接,所述AXI控制器与所述HMIC_S IP核之间通过AXI4协议总线连接,所述HMIC_S IP核与DDR存储器之间通过电路引脚连接。
CN202311329149.XA 2023-10-16 2023-10-16 一种用于单向光传输的ddr高速读写方法及系统 Active CN117093157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311329149.XA CN117093157B (zh) 2023-10-16 2023-10-16 一种用于单向光传输的ddr高速读写方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311329149.XA CN117093157B (zh) 2023-10-16 2023-10-16 一种用于单向光传输的ddr高速读写方法及系统

Publications (2)

Publication Number Publication Date
CN117093157A CN117093157A (zh) 2023-11-21
CN117093157B true CN117093157B (zh) 2023-12-29

Family

ID=88771804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311329149.XA Active CN117093157B (zh) 2023-10-16 2023-10-16 一种用于单向光传输的ddr高速读写方法及系统

Country Status (1)

Country Link
CN (1) CN117093157B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117373501B (zh) * 2023-12-08 2024-04-09 深圳星云智联科技有限公司 统计业务执行速率提升方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951379A (zh) * 2017-03-13 2017-07-14 郑州云海信息技术有限公司 一种基于axi协议的高性能ddr控制器及数据传输方法
US10614001B1 (en) * 2018-12-31 2020-04-07 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
CN114490466A (zh) * 2021-12-28 2022-05-13 深圳市紫光同创电子有限公司 一种实现数据连续存储的ddr ip核架构及方法
CN115905086A (zh) * 2022-12-21 2023-04-04 北京紫光芯能科技有限公司 基于axi同步读写单口sram的控制方法及控制器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010114B2 (en) * 2018-12-31 2021-05-18 Kyocera Document Solutions Inc. Read/write direction-based memory bank control for imaging
KR20230023483A (ko) * 2021-08-10 2023-02-17 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951379A (zh) * 2017-03-13 2017-07-14 郑州云海信息技术有限公司 一种基于axi协议的高性能ddr控制器及数据传输方法
US10614001B1 (en) * 2018-12-31 2020-04-07 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
CN114490466A (zh) * 2021-12-28 2022-05-13 深圳市紫光同创电子有限公司 一种实现数据连续存储的ddr ip核架构及方法
CN115905086A (zh) * 2022-12-21 2023-04-04 北京紫光芯能科技有限公司 基于axi同步读写单口sram的控制方法及控制器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA高速实时数据传输系统设计方案;王玮等;微计算机信息(26);全文 *

Also Published As

Publication number Publication date
CN117093157A (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
US6378055B1 (en) Memory accessing and controlling method
US7100002B2 (en) Port independent data transaction interface for multi-port devices
CN117093157B (zh) 一种用于单向光传输的ddr高速读写方法及系统
CN100483377C (zh) 一种异步桥及数据传输方法
CN108595350B (zh) 一种基于axi的数据传输方法和装置
CN102197384A (zh) 用于改进串行端口存储器通信等待时间和可靠性的方法和系统
KR101107349B1 (ko) 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩
WO2020034500A1 (zh) 一种基于二值化算法的加速控制系统、芯片及机器人
CN102841871B (zh) 基于高速串行总线的DMA结构的pipeline读写方法
CN109656851B (zh) 一种时间确定的包括多路高速总线通道及共享接口的系统
CN111221759B (zh) 一种基于dma的数据处理系统及方法
CN113961494B (zh) 一种pcie总线与axi总线的桥接系统
CN113760792A (zh) 基于fpga的图像存取的axi4总线控制电路及其数据传输方法
CN109522251A (zh) 一种基于PXIe总线的高速同步串口卡及其工作方法
CN115268766A (zh) 一种基于fpga的光纤图像数据高速存储及回放系统
CN110727619B (zh) 基于sdio接口的通信系统及数据传输方法
EP0829095B1 (en) Method and apparatus for reducing latency time on an interface by overlapping transmitted packets
WO2021050167A1 (en) Sdio chip-to-chip interconnect protocol extension for slow devices and power savings
CN113687792B (zh) 一种存储器数据快速读取方法
CN103164370B (zh) 一种高速局部总线访问控制接口模块
CN113687791B (zh) 基于预读取和分支判断机制的存储器数据快速读取装置
CN114925010B (zh) 一种Quad SPI转AXI接口的方法
CN117348932B (zh) 支持axi深度乱序传输的从机装置及工作方法
CN113037604B (zh) 一种基于两级描述符表征的以太网控制系统
CN112148667B (zh) 一种基于fpga软核的缓存系统及方法

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