CN107193529A - 一种基于fpga的ddr处理电路及实现方法 - Google Patents

一种基于fpga的ddr处理电路及实现方法 Download PDF

Info

Publication number
CN107193529A
CN107193529A CN201710210646.6A CN201710210646A CN107193529A CN 107193529 A CN107193529 A CN 107193529A CN 201710210646 A CN201710210646 A CN 201710210646A CN 107193529 A CN107193529 A CN 107193529A
Authority
CN
China
Prior art keywords
module
ddr
data
fifo
clock
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
Application number
CN201710210646.6A
Other languages
English (en)
Other versions
CN107193529B (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.)
Shandong Chaoyue Numerical Control Electronics Co Ltd
Original Assignee
Shandong Chaoyue Numerical Control Electronics 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 Shandong Chaoyue Numerical Control Electronics Co Ltd filed Critical Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority to CN201710210646.6A priority Critical patent/CN107193529B/zh
Publication of CN107193529A publication Critical patent/CN107193529A/zh
Application granted granted Critical
Publication of CN107193529B publication Critical patent/CN107193529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Abstract

本发明提供一种基于FPGA的DDR处理电路及实现方法,处理电路包括DDR接口,与DDR接口连接的延迟模块,与DDR接口连接的DDR输入寄存器模块,与延迟模块连接的时钟切换模块,与DDR输入寄存器模块连接的第一FIFO模块和第二FIFO模块,与时钟切换模块连接的用户时钟模块,与第一FIFO模块和第二FIFO模块都连接的输出切换模块;时钟切换模块还与第一FIFO模块和第二FIFO模块连接;用户时钟模块还与输出切换模块,第一FIFO模块和第二FIFO模块连接;延迟模块还与DDR输入寄存器模块连接。本发明将DDR接口转换成通用的FIFO接口,满足FPGA的设计需求,十分方便易用。

Description

一种基于FPGA的DDR处理电路及实现方法
技术领域
本发明属于电路设计领域,具体涉及一种基于FPGA的DDR处理电路及实现方法。
背景技术
近年来随着数据传输速度的不断加快,传统的在时钟上升沿有效的数据传输方法,已不能满足某些高性能读写的需求。为了解决这一问题,人们提出了DDR接口,DDR接口即数据在时钟的上下沿均有效,从而传输速度是上升沿数据有效的两倍,而FPGA作为现代电子领域中的重要电子器件,FPGA的设计一般遵从上升沿同步的原则,并不能直接使用DDR传输方式。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于FPGA的DDR处理电路及实现方法,是非常有必要的。
发明内容
本发明的目的在于,针对上述FPGA不能直接使用DDR传输方式的缺陷,提供一种基于FPGA的DDR处理电路及实现方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种基于FPGA的DDR处理电路,包括DDR接口,与DDR接口连接的延迟模块,与DDR接口连接的DDR输入寄存器模块,与延迟模块连接的时钟切换模块,与DDR输入寄存器模块连接的第一FIFO模块和第二FIFO模块,与时钟切换模块连接的用户时钟模块,与第一FIFO模块和第二FIFO模块都连接的输出切换模块;
时钟切换模块还与第一FIFO模块和第二FIFO模块连接;
用户时钟模块还与输出切换模块,第一FIFO模块和第二FIFO模块连接;
延迟模块还与DDR输入寄存器模块连接;
延迟模块用于将DQS信号进行延时,使得延时后的Dqs_delay处于DQ信号的正中位置;
DDR输入寄存器模块用于将数据选取脉冲上下沿同时有效的数据DQ转换成在上升沿有效的数据Data_o和Data_e,同时将Data_o和Data_e在时域同步;
第一FIFO模块用于将数据Data_o缓存;
第二FIFO模块用于将数据Data_e缓存;
输出切换模块用于将第一FIFO模块的数据和第二FIFO模块的数据按顺序输出;
时钟切换单元用于选择时钟,将选择的时钟提供给第一FIFO模块和第二FIFO模块的输入端;
用户时钟模块用于给第一FIFO模块和第二FIFO模块的输出提供时钟,还用于时钟切换单元的选择时钟之一。
进一步地,DDR接口与延迟模块的连接为Dqs信号线;DDR接口与DDR输入寄存器模块的连接为8位Dq数据线。
进一步地,DDR输入寄存器模块与第一FIFO模块的连接为8位数据线;DDR输入寄存器模块与第二FIFO模块的连接为8位数据线。
本发明还给出如下技术方案:
一种基于FPGA的DDR处理电路实现方法,包括如下步骤:
步骤1.定义功能模块;
定义时钟切换模块,定义第一FIFO模块,定义第二FIFO模块,定义输出切换模块,定义用户时钟模块;
步骤2.例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;
步骤3.对程序进行编译,编译完成后下载到FPGA内部;FPGA内部形成实体模块;
步骤4.将DDR接口与FPGA连接;
步骤5.FPGA启动工作;
步骤6.FPGA各功能模块对DDR接口数据进行处理。
进一步地,步骤1定义功能模块的具体步骤如下:
定义时钟切换模块,时钟切换模块包括一输入端口DQS_delay3,一输入端口User_clk2,一输出端口Clk_out1;
定义第一FIFO模块,第一FIFO模块包括一输入端口Data_o2,一输入端口Clk_out2,一输入端口User_clk4,一输出端口oData_out;
定义第二FIFO模块,第二FIFO模块包括一输入端口Data_e2,一输入端口Clk_out3,一输入端口User_clk5,一输出端口eData_out;
定义输出切换模块,输出切换模块包括一输入端口oData_in,一输入端口eData_in,一输入端口User_clk3,一输出端口Data_out;
定义用户时钟模块,用户时钟模块包括一输出端口User_clk1。
进一步地,步骤2例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;具体步骤如下:
例化采用FPGA原语IDELAY的延迟模块实体,延迟模块包括一输入端口DQS,一输出端口DQS_delay1;
例化采用FPGA原语IDDR 的DDR输入寄存器模块实体, DDR输入寄存器模块包括一输入端口DQ,一输入端口DQS_delay2,一输出端口Data_o1,一输出端口Data_e1;
延迟模块的输出端口DQS_delay1与时钟切换模块输入端口DQS_delay3,与DDR输入寄存器模块输入端口DQS_delay2连接,实现延迟模块与时钟切换模块,与DDR输入寄存器模块的连接;
DDR输入寄存器模块的输出端口Data_o1与第一FIFO模块的输入端口Data_o2连接,DDR输入寄存器模块的输出端口Data_e1与第二FIFO模块的输入端口Data_e2连接,实现DDR输入寄存器模块与第一FIFO模块和第二FIFO模块的连接;
时钟切换模块的输出端口Clk_out1与第一FIFO模块的输入端口Clk_out2,与第二FIFO模块的输入端口Clk_out3连接,实现时钟切换模块与第一FIFO模块,与第二FIFO模块的连接;
输出切换模块的输入端口oData_in与第一FIFO模块的输出端口oData_out连接,输出切换模块的输入端口eData_in与第二FIFO模块的输出端口eData_out连接,实现输出切换模块与第一FIFO模块,与第二FIFO模块的连接;
用户时钟模块的输出端口User_clk1与时钟切换模块的输入端User_clk2,与输出切换模块的输入端口User_clk3,与第一FIFO模块的输入端User_clk4,与第二FIFO模块的输入端User_clk5连接,实现用户时钟模块与时钟切换单元,与输出切换单元,与第一FIFO模块,与第二FIFO模块的连接;
步骤4中将DDR接口与FPGA连接具体步骤如下:
DDR接口的Dqs信号与延迟模块的输入端口DQS连接,DDR接口的Dq信号与DDR输入寄存器模块的输入端口DQ连接,实现DDR接口与FPGA的连接。
进一步地,DDR输入寄存器模块还包括数据同步单元,数据同步单元用于实现两路数据在时域的同步。
进一步地,步骤6 FPGA各功能模块对DDR接口数据进行处理,具体步骤如下:
步骤61.DDR接口信号数据选取脉冲Dqs到达延迟模块,延迟模块对数据选取脉冲Dqs进行延迟,生成Dqs_delay给输入寄存器模块和时钟切换模块;
步骤62.DDR输入寄存器模块在Dqs_delay上升沿后的中部位置接收第一个Dq数据,DDR输入寄存模块在差分Dqs_delay上升沿后的中部位置接收第二个Dq数据,第一个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第二个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤63.依次类推;第奇数个Dq数据重复第一个Dq数据接收的过程,第偶数个Dq数据重复第二个Dq数据接收的过程;第奇数个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第偶数个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤64.在时钟切换模块提供的时钟下,第一FIFO模块对DDR输入寄存器模块的输出端口Data_o1输出的数据进行缓存;第二FIFO模块对DDR输入寄存器模块的输出端口Data_e1输出的数据进行缓存;
步骤65.在用户时钟模块提供的时钟下,输出切换模块将第一FIFO模块的输出端口oData_out输出的数据和第二FIFO模块的输出端口eData_out输出的数据按顺序输出,保证数据顺序无误。
进一步地,步骤62和步骤63中,DDR输入寄存器模块的输出端口Data_o1和输出端口Data_e1数据输出前还经过数据同步单元同步,实现Data_o1和Data_e1的同时输出。
进一步地,步骤64中时钟切换单元提供时钟的选择如下:若存在数据选取脉冲Dqs,则时钟切换模块选择数据选取脉冲Dqs_delay作为第一FIFO模块和第二FIFO模块的工作时钟;若不存在数据选取脉冲Dqs,则时钟切换模块选择用户时钟模块提供的用户时钟作为第一FIFO模块和第二FIFO模块的工作时钟,保证第一FIFO模块和第二FIFO模块的时钟不会中断,避免数据丢失。
本发明的有益效果在于:本发明设计了实现了一种基于FPGA的DDR处理电路,将DDR接口转换成通用的FIFO接口,满足FPGA的设计需求,经过本电路的转换,用户直接采用用户时钟操作输出的8位宽数据即可,十分方便易用。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明电路各模块连接示意图;
图2为本发明的方法流程图;
图3为实施例2的DDR输入寄存器模块工作时序图;
图4为实施例3的包括数据同步单元的DDR输入寄存器模块工作时序图;
其中,1.DDR接口;2.DDR输入寄存器模块;3.延迟模块;4.时钟切换模块;5.第一FIFO模块;6.第二FIFO模块;7.用户时钟模块;8.输出切换模块。
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1所示,本发明实施例1提供一种基于FPGA的DDR处理电路,包括DDR接口1,与DDR接口1连接的延迟模块3,与DDR接口1连接的DDR输入寄存器模块2,与延迟模块3连接的时钟切换模块4,与DDR输入寄存器2模块连接的第一FIFO模块5和第二FIFO模块6,与时钟切换模块4连接的用户时钟模块7,与第一FIFO模块5和第二FIFO模块6都连接的输出切换模块8;
时钟切换模块4还与第一FIFO模块5和第二FIFO模块6连接;
用户时钟模块7还与输出切换模块8,第一FIFO模块5和第二FIFO模块6连接;
延迟模块3还与DDR输入寄存器模块2连接;
DDR接口1与延迟模块3的连接为Dqs信号线;DDR接口1与DDR输入寄存器模块2的连接为8位Dq数据线;
DDR输入寄存器模块2与第一FIFO模块5的连接为8位数据线;DDR输入寄存器模块2与第二FIFO模块6的连接为8位数据线。
如图2和图3所示,本发明实施例2提供一种基于FPGA的DDR处理电路实现方法,包括如下步骤:步骤1.定义功能模块;定义时钟切换模块,定义第一FIFO模块,定义第二FIFO模块,定义输出切换模块,定义用户时钟模块;
定义时钟切换模块,时钟切换模块包括一输入端口DQS_delay3,一输入端口User_clk2,一输出端口Clk_out1;
定义第一FIFO模块,第一FIFO模块包括一输入端口Data_o2,一输入端口Clk_out2,一输入端口User_clk4,一输出端口oData_out;
定义第二FIFO模块,第二FIFO模块包括一输入端口Data_e2,一输入端口Clk_out3,一输入端口User_clk5,一输出端口eData_out;
定义输出切换模块,输出切换模块包括一输入端口oData_in,一输入端口eData_in,一输入端口User_clk3,一输出端口Data_out;
定义用户时钟模块,用户时钟模块包括一输出端口User_clk1;
步骤2.例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;
例化采用FPGA原语IDELAY的延迟模块实体,延迟模块包括一输入端口DQS,一输出端口DQS_delay1;
例化采用FPGA原语IDDR 的DDR输入寄存器模块实体, DDR输入寄存器模块包括一输入端口DQ,一输入端口DQS_delay2,一输出端口Data_o1,一输出端口Data_e1;
延迟模块的输出端口DQS_delay1与时钟切换模块输入端口DQS_delay3,与DDR输入寄存器模块输入端口DQS_delay2连接,实现延迟模块与时钟切换模块,与DDR输入寄存器模块的连接;
DDR输入寄存器模块的输出端口Data_o1与第一FIFO模块的输入端口Data_o2连接,DDR输入寄存器模块的输出端口Data_e1与第二FIFO模块的输入端口Data_e2连接,实现DDR输入寄存器模块与第一FIFO模块和第二FIFO模块的连接;
时钟切换模块的输出端口Clk_out1与第一FIFO模块的输入端口Clk_out2,与第二FIFO模块的输入端口Clk_out3连接,实现时钟切换模块与第一FIFO模块,与第二FIFO模块的连接;
输出切换模块的输入端口oData_in与第一FIFO模块的输出端口oData_out连接,输出切换模块的输入端口eData_in与第二FIFO模块的输出端口eData_out连接,实现输出切换模块与第一FIFO模块,与第二FIFO模块的连接;
用户时钟模块的输出端口User_clk1与时钟切换模块的输入端User_clk2,与输出切换模块的输入端口User_clk3,与第一FIFO模块的输入端User_clk4,与第二FIFO模块的输入端User_clk5连接,实现用户时钟模块与时钟切换单元,与输出切换单元,与第一FIFO模块,与第二FIFO模块的连接;
步骤3.对程序进行编译,编译完成后下载到FPGA内部;FPGA内部形成实体模块;
步骤4.将DDR接口与FPGA连接;
DDR接口的Dqs信号与延迟模块的输入端口DQS连接,DDR接口的Dq信号与DDR输入寄存器模块的输入端口DQ连接,实现DDR接口与FPGA的连接;
步骤5.FPGA启动工作;
步骤6.FPGA各功能模块对DDR接口数据进行处理。
步骤61.DDR接口信号数据选取脉冲Dqs到达延迟模块,延迟模块对数据选取脉冲Dqs进行延迟,生成Dqs_delay给输入寄存器模块和时钟切换模块;
如图3所示,步骤62.DDR输入寄存器模块在Dqs_delay上升沿后的中部位置接收第一个Dq数据,DDR输入寄存模块在差分Dqs_delay上升沿后的中部位置接收第二个Dq数据,第一个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第二个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤63.依次类推;第奇数个Dq数据重复第一个Dq数据接收的过程,第偶数个Dq数据重复第二个Dq数据接收的过程;第奇数个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第偶数个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤64. 时钟切换单元提供时钟的选择如下:若存在数据选取脉冲Dqs,则时钟切换模块选择数据选取脉冲Dqs_delay作为第一FIFO模块和第二FIFO模块的工作时钟;若不存在数据选取脉冲Dqs,则时钟切换模块选择用户时钟模块提供的用户时钟作为第一FIFO模块和第二FIFO模块的工作时钟;
在时钟切换模块提供的时钟下,第一FIFO模块对DDR输入寄存器模块的输出端口Data_o1输出的数据进行缓存;第二FIFO模块对DDR输入寄存器模块的输出端口Data_e1输出的数据进行缓存;
步骤65.在用户时钟模块提供的时钟下,输出切换模块将第一FIFO模块的输出端口oData_out输出的数据和第二FIFO模块的输出端口eData_out输出的数据按顺序输出,保证数据顺序无误。
如图2和图4所示,本发明实施例3提供一种基于FPGA的DDR处理电路实现方法,包括如下步骤:步骤1.定义功能模块;定义时钟切换模块,定义第一FIFO模块,定义第二FIFO模块,定义输出切换模块,定义用户时钟模块;
定义时钟切换模块,时钟切换模块包括一输入端口DQS_delay3,一输入端口User_clk2,一输出端口Clk_out1;
定义第一FIFO模块,第一FIFO模块包括一输入端口Data_o2,一输入端口Clk_out2,一输入端口User_clk4,一输出端口oData_out;
定义第二FIFO模块,第二FIFO模块包括一输入端口Data_e2,一输入端口Clk_out3,一输入端口User_clk5,一输出端口eData_out;
定义输出切换模块,输出切换模块包括一输入端口oData_in,一输入端口eData_in,一输入端口User_clk3,一输出端口Data_out;
定义用户时钟模块,用户时钟模块包括一输出端口User_clk1;
步骤2.例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;
例化采用FPGA原语IDELAY的延迟模块实体,延迟模块包括一输入端口DQS,一输出端口DQS_delay1;
例化采用FPGA原语IDDR 的DDR输入寄存器模块实体, DDR输入寄存器模块包括一输入端口DQ,一输入端口DQS_delay2,一输出端口Data_o1,一输出端口Data_e1; DDR输入寄存器模块还包括数据同步单元;
延迟模块的输出端口DQS_delay1与时钟切换模块输入端口DQS_delay3,与DDR输入寄存器模块输入端口DQS_delay2连接,实现延迟模块与时钟切换模块,与DDR输入寄存器模块的连接;
DDR输入寄存器模块的输出端口Data_o1与第一FIFO模块的输入端口Data_o2连接,DDR输入寄存器模块的输出端口Data_e1与第二FIFO模块的输入端口Data_e2连接,实现DDR输入寄存器模块与第一FIFO模块和第二FIFO模块的连接;
时钟切换模块的输出端口Clk_out1与第一FIFO模块的输入端口Clk_out2,与第二FIFO模块的输入端口Clk_out3连接,实现时钟切换模块与第一FIFO模块,与第二FIFO模块的连接;
输出切换模块的输入端口oData_in与第一FIFO模块的输出端口oData_out连接,输出切换模块的输入端口eData_in与第二FIFO模块的输出端口eData_out连接,实现输出切换模块与第一FIFO模块,与第二FIFO模块的连接;
用户时钟模块的输出端口User_clk1与时钟切换模块的输入端User_clk2,与输出切换模块的输入端口User_clk3,与第一FIFO模块的输入端User_clk4,与第二FIFO模块的输入端User_clk5连接,实现用户时钟模块与时钟切换单元,与输出切换单元,与第一FIFO模块,与第二FIFO模块的连接;
步骤3.对程序进行编译,编译完成后下载到FPGA内部;FPGA内部形成实体模块;
步骤4.将DDR接口与FPGA连接;
DDR接口的Dqs信号与延迟模块的输入端口DQS连接,DDR接口的Dq信号与DDR输入寄存器模块的输入端口DQ连接,实现DDR接口与FPGA的连接;
步骤5.FPGA启动工作;
步骤6.FPGA各功能模块对DDR接口数据进行处理。
步骤61.DDR接口信号数据选取脉冲Dqs到达延迟模块,延迟模块对数据选取脉冲Dqs进行延迟,生成Dqs_delay给输入寄存器模块和时钟切换模块;
如图4所示,步骤62.DDR输入寄存器模块在Dqs_delay上升沿后的中部位置接收第一个Dq数据,DDR输入寄存模块在差分Dqs_delay上升沿后的中部位置接收第二个Dq数据,经DDR输入寄存器模块的数据同步单元同步,第一个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第二个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤63.依次类推;第奇数个Dq数据重复第一个Dq数据接收的过程,第偶数个Dq数据重复第二个Dq数据接收的过程;第奇数个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第偶数个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;经DDR输入寄存器模块的数据同步单元同步,相邻的第奇数个和第偶数个Dq数据同时输出。
步骤64. 在时钟切换模块提供的时钟下,第一FIFO模块对DDR输入寄存器模块的输出端口Data_o1输出的数据进行缓存;第二FIFO模块对DDR输入寄存器模块的输出端口Data_e1输出的数据进行缓存;
步骤65.在用户时钟模块提供的时钟下,输出切换模块将第一FIFO模块的输出端口oData_out输出的数据和第二FIFO模块的输出端口eData_out输出的数据按顺序输出,保证数据顺序无误。
DDR是Double Data Rate 双倍速率同步动态随机存储器的简称。
数据选取脉冲(DQS),DQS 是DDR SDRAM中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据,每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由外部发来的DQS信号,DQS与写入数据中心对齐,读取时,则由DDR生成DQS向外部发送,DQS与数据边沿对齐,完全可以说,它就是数据的同步信号。
FIFO(First Input First Output),即先进先出队列。FIFO队列不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。

Claims (10)

1.一种基于FPGA的DDR处理电路,其特征在于,包括DDR接口,与DDR接口连接的延迟模块,与DDR接口连接的DDR输入寄存器模块,与延迟模块连接的时钟切换模块,与DDR输入寄存器模块连接的第一FIFO模块和第二FIFO模块,与时钟切换模块连接的用户时钟模块,与第一FIFO模块和第二FIFO模块都连接的输出切换模块;
时钟切换模块还与第一FIFO模块和第二FIFO模块连接;
用户时钟模块还与输出切换模块,第一FIFO模块和第二FIFO模块连接;
延迟模块还与DDR输入寄存器模块连接。
2.如权利要求1所述的一种基于FPGA的DDR处理电路,其特征在于,DDR接口与延迟模块的连接为Dqs信号线;DDR接口与DDR输入寄存器模块的连接为8位Dq数据线。
3.如权利要求1所述的一种基于FPGA的DDR处理电路,其特征在于,DDR输入寄存器模块与第一FIFO模块的连接为8位数据线;DDR输入寄存器模块与第二FIFO模块的连接为8位数据线。
4.一种基于FPGA的DDR处理电路实现方法,其特征在于,包括如下步骤:
步骤1.定义功能模块;
定义时钟切换模块,定义第一FIFO模块,定义第二FIFO模块,定义输出切换模块,定义用户时钟模块;
步骤2.例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;
步骤3.对程序进行编译,编译完成后下载到FPGA内部;FPGA内部形成实体模块;
步骤4.将DDR接口与FPGA连接;
步骤5.FPGA启动工作;
步骤6.FPGA各功能模块对DDR接口数据进行处理。
5.如权利要求4所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,
步骤1定义功能模块的具体步骤如下:
定义时钟切换模块,时钟切换模块包括一输入端口DQS_delay3,一输入端口User_clk2,一输出端口Clk_out1;
定义第一FIFO模块,第一FIFO模块包括一输入端口Data_o2,一输入端口Clk_out2,一输入端口User_clk4,一输出端口oData_out;
定义第二FIFO模块,第二FIFO模块包括一输入端口Data_e2,一输入端口Clk_out3,一输入端口User_clk5,一输出端口eData_out;
定义输出切换模块,输出切换模块包括一输入端口oData_in,一输入端口eData _in,一输入端口User_clk3,一输出端口Data_out;
定义用户时钟模块,用户时钟模块包括一输出端口User_clk1。
6.如权利要求5所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,步骤2例化自定义的功能模块实体,例化采用FPGA原语的延迟模块和DDR输入寄存器模块实体,实现各实体功能模块的连接;具体步骤如下:
例化采用FPGA原语IDELAY的延迟模块实体,延迟模块包括一输入端口DQS,一输出端口DQS_delay1;
例化采用FPGA原语IDDR 的DDR输入寄存器模块实体, DDR输入寄存器模块包括一输入端口DQ,一输入端口DQS_delay2,一输出端口Data_o1,一输出端口Data_e1;
延迟模块的输出端口DQS_delay1与时钟切换模块输入端口DQS_delay3,与DDR输入寄存器模块输入端口DQS_delay2连接,实现延迟模块与时钟切换模块,与DDR输入寄存器模块的连接;
DDR输入寄存器模块的输出端口Data_o1与第一FIFO模块的输入端口Data_o2连接,DDR输入寄存器模块的输出端口Data_e1与第二FIFO模块的输入端口Data_e2连接,实现DDR输入寄存器模块与第一FIFO模块和第二FIFO模块的连接;
时钟切换模块的输出端口Clk_out1与第一FIFO模块的输入端口Clk_out2,与第二FIFO模块的输入端口Clk_out3连接,实现时钟切换模块与第一FIFO模块,与第二FIFO模块的连接;
输出切换模块的输入端口oData_in与第一FIFO模块的输出端口oData_out连接,输出切换模块的输入端口eData_in与第二FIFO模块的输出端口eData_out连接,实现输出切换模块与第一FIFO模块,与第二FIFO模块的连接;
用户时钟模块的输出端口User_clk1与时钟切换模块的输入端User_clk2,与输出切换模块的输入端口User_clk3,与第一FIFO模块的输入端User_clk4,与第二FIFO模块的输入端User_clk5连接,实现用户时钟模块与时钟切换单元,与输出切换单元,与第一FIFO模块,与第二FIFO模块的连接;
步骤4中将DDR接口与FPGA连接具体步骤如下:
DDR接口的Dqs信号与延迟模块的输入端口DQS连接,DDR接口的Dq信号与DDR输入寄存器模块的输入端口DQ连接,实现DDR接口与FPGA的连接。
7.如权利6所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,DDR输入寄存器模块还包括数据同步单元。
8.如权利7所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,步骤6 FPGA各功能模块对DDR接口数据进行处理,具体步骤如下:
步骤61.DDR接口信号数据选取脉冲Dqs到达延迟模块,延迟模块对数据选取脉冲Dqs进行延迟,生成Dqs_delay给输入寄存器模块和时钟切换模块;
步骤62.DDR输入寄存器模块在Dqs_delay上升沿后的中部位置接收第一个Dq数据,DDR输入寄存模块在差分Dqs_delay上升沿后的中部位置接收第二个Dq数据,第一个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第二个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤63.依次类推;第奇数个Dq数据重复第一个Dq数据接收的过程,第偶数个Dq数据重复第二个Dq数据接收的过程;第奇数个Dq数据从DDR输入寄存器模块的输出端口Data_o1输出,第偶数个Dq数据从DDR输入寄存器模块的输出端口Data_e1输出;
步骤64.在时钟切换模块提供的时钟下,第一FIFO模块对DDR输入寄存器模块的输出端口Data_o1输出的数据进行缓存;第二FIFO模块对DDR输入寄存器模块的输出端口Data_e1输出的数据进行缓存;
步骤65.在用户时钟模块提供的时钟下,输出切换模块将第一FIFO模块的输出端口oData_out输出的数据和第二FIFO模块的输出端口eData_out输出的数据按顺序输出。
9.如权利要求8所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,
步骤62和步骤63中,DDR输入寄存器模块的输出端口Data_o1和输出端口Data_e1数据输出前还经过数据同步单元同步,实现Data_o1和Data_e1的同时输出。
10.如权利要求8所述的一种基于FPGA的DDR处理电路实现方法,其特征在于,步骤64中时钟切换单元提供时钟的选择如下:若存在数据选取脉冲Dqs,则时钟切换模块选择数据选取脉冲Dqs_delay作为第一FIFO模块和第二FIFO模块的工作时钟;若不存在数据选取脉冲Dqs,则时钟切换模块选择用户时钟模块提供的用户时钟作为第一FIFO模块和第二FIFO模块的工作时钟。
CN201710210646.6A 2017-03-31 2017-03-31 一种基于fpga的ddr处理电路及实现方法 Active CN107193529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710210646.6A CN107193529B (zh) 2017-03-31 2017-03-31 一种基于fpga的ddr处理电路及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710210646.6A CN107193529B (zh) 2017-03-31 2017-03-31 一种基于fpga的ddr处理电路及实现方法

Publications (2)

Publication Number Publication Date
CN107193529A true CN107193529A (zh) 2017-09-22
CN107193529B CN107193529B (zh) 2020-11-24

Family

ID=59870875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710210646.6A Active CN107193529B (zh) 2017-03-31 2017-03-31 一种基于fpga的ddr处理电路及实现方法

Country Status (1)

Country Link
CN (1) CN107193529B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399319A (zh) * 2019-07-25 2019-11-01 尧云科技(西安)有限公司 一种NAND Flash PHY

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7928770B1 (en) * 2006-11-06 2011-04-19 Altera Corporation I/O block for high performance memory interfaces
CN202453864U (zh) * 2011-12-20 2012-09-26 四川九洲电器集团有限责任公司 基于fpga和ddr2 sdram的大容量异步fifo缓存
CN103064809A (zh) * 2012-12-20 2013-04-24 华为技术有限公司 源同步双倍数据速率接口的采样装置及其采样方法
CN103885919A (zh) * 2014-03-20 2014-06-25 北京航空航天大学 一种多dsp和fpga并行处理系统及实现方法
CN105550133A (zh) * 2015-12-08 2016-05-04 天津津航计算技术研究所 基于zynq的axis-fifo桥电路及利用该电路进行数据传输的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7928770B1 (en) * 2006-11-06 2011-04-19 Altera Corporation I/O block for high performance memory interfaces
CN202453864U (zh) * 2011-12-20 2012-09-26 四川九洲电器集团有限责任公司 基于fpga和ddr2 sdram的大容量异步fifo缓存
CN103064809A (zh) * 2012-12-20 2013-04-24 华为技术有限公司 源同步双倍数据速率接口的采样装置及其采样方法
CN103885919A (zh) * 2014-03-20 2014-06-25 北京航空航天大学 一种多dsp和fpga并行处理系统及实现方法
CN105550133A (zh) * 2015-12-08 2016-05-04 天津津航计算技术研究所 基于zynq的axis-fifo桥电路及利用该电路进行数据传输的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399319A (zh) * 2019-07-25 2019-11-01 尧云科技(西安)有限公司 一种NAND Flash PHY
CN110399319B (zh) * 2019-07-25 2021-03-23 尧云科技(西安)有限公司 一种NAND Flash PHY

Also Published As

Publication number Publication date
CN107193529B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN104954096B (zh) 一种一主多从的高速同步串行通信数据传输方法
CN104022775A (zh) 一种面向SerDes技术中基于FIFO协议的数字接口电路
CN100380352C (zh) 总线接收器及总线信号相位同步方法
CN112965689B (zh) 一种基于源同步的分布式异步fifo数据交互方法及fifo结构
CN104378114A (zh) 一种实现多通道模数转换器同步的方法
CN103870421B (zh) 一种基于fpga的串行接口和pwm组合应用ip核装置
JP2005505200A (ja) データ有効インジケータ及びスキュー不耐性データグループを有するパラレルデータ通信
CN107682655A (zh) 一种视频数据到AXI_Stream总线数据流的快速转换方法
CN107193529A (zh) 一种基于fpga的ddr处理电路及实现方法
CN100389413C (zh) 串行通信总线外部设备接口
TWI391809B (zh) 時脈樹分佈方法
JP4544858B2 (ja) 多位相符号化プロトコルを利用するネットワークおよび方法
CN105306022B (zh) 一种用于异步电路四相位握手协议的非对称延时装置
CN104283561B (zh) 一种异步时钟并串转换半周期输出电路
CN102946293B (zh) 一种基于ds编码的并行接收方法及其装置
JP2002368727A (ja) 半導体集積回路
CN104035906B (zh) 用spi实现时分复用总线的方法及其应用
CN101923524B (zh) 一种基于clb总线的存储器接口方法
CN209640857U (zh) 一种ulsic时序收敛装置
CN108268416A (zh) 一种异步接口转同步接口控制电路
CN210199744U (zh) 基于ddr写通道的发送电路
CN2833703Y (zh) 一种基于risc微控制器的串行通信口
CN106209691A (zh) 一种具备独立mac源地址的网络端口镜像方法
CN103685961B (zh) 一种利用单片sram实现视频数据同步实时处理的系统
Caputa et al. An on-chip delay-and skew-insensitive multicycle communication scheme

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 250013 no.2877, Ke Road, Suncun Town, hi tech Zone, Jinan City, Shandong Province

Applicant after: SHANDONG CHAOYUE CNC ELECTRONICS Co.,Ltd.

Address before: 250000, No. 2877, fairway, Sun Town, Ji'nan hi tech Zone, Shandong

Applicant before: SHANDONG CHAOYUE NUMERICAL CONTROL ELECTRONIC Co.,Ltd.

GR01 Patent grant
GR01 Patent grant