一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种FGPA控制的DDR映射多个DDR_FIFO实现系统及方法与流程

2022-09-01 07:46:00 来源:中国专利 TAG:

一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法
技术领域
1.本发明涉及数字通信领域技术领域,尤其是多通道、高带宽的数字通信缓存和处理,是一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法。


背景技术:

2.随着高速数字通信发展,可编程的逻辑列阵(fpga)在数字通信领域应用越来越广泛,但是由于fpga中存储空间有限,在高速数据通信和高速数据处理的过程中通常需要较大的缓存容量,大多数设计是在fpga外部使用ddr作为大容量缓存,同时由于ddr的芯片引脚较多,fpga引脚资源有限,设计时会采用引脚复用的方式将多片ddr组合成一个ddr。fgpa的编程工具带有ddr控制器ip核,ddr控制器ip核具有两种数据接口,普通接口和axi总线接口,fgpa通过该ip核的数据接口实现对ddr数据写入和读取。
3.对于fpga硬件电路,一旦生产完成后,fpga能够控制的ddr数量就固定了,fpga内高速数据缓存通道数量也就固定了,如果在fpga内有更多种通信速率不相同的高速数据需要缓存,虽然ddr的数据带宽能够满足,但是由于通道有限无法满足。对于这种需求,只能增加硬件解决多个通道数据缓存问题,这种方式通用性差,造成了资源浪费。
4.因此,如何提高ddr控制的通用性和灵活性,降低设备成本是本领域技术人员亟需解决的问题。


技术实现要素:

5.本发明为克服现有技术的不足,解决fpga内高速数据缓存通道数量固定的问题,实现当ddr能够满足多个数据通道的总带宽和总缓存容量时,用户可根据缓存通道数量创建相应数量的ddr_fifo,每个ddr_fifo映射ddr中的一段地址,可根据需求调整每个ddr_fifo缓存容量,ddr_fifo的数据输入和输出都具有异步时钟,用于解决数据跨时钟域的问题,使用方式和fpga内的fifo相同,有效提高fpga开发效率和硬件利用率。
6.本发明提供了一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法,本发明提供了以下技术方案:
7.一种fgpa控制的ddr映射多个ddr_fifo实现方法,所述方法包括以下步骤:
8.通过fpga内ddr控制器ip核与ddr芯片进行数据交互;ddr控制器axi总线与地址管理逻辑模块进行数据传输;地址管理逻辑模块仲裁ddr控制器某一时刻与其中一个ddr_fifo进行数据通讯,同时管理ddr_fifo映射ddr的地址和axi总线通讯时序。
9.优选地,某一通道,当ddr映射地址段内没有数据同时fifo4中数据量没有达到设定的数据量时,数据流向采用fifo1

fifo4,即方式1。
10.优选地,某一通道内,当ddr映射地址段内有数据或fifo4中数据量到达到设定的数据量时采用fifo1

fifo2

ddr控制器

fifo3

fifo4,即方式2。
11.优选地,某一通道的ddr_fifo逻辑模块实时监测fifio1中数据量,当某一通道fifio1的empty信号为低,同时ddr映射地址段内没有数据和fifo4中数据量没有达到设定
的数据量时,读取fifo1中数据向fifo4中写入,当fifo1的empty信号为高,或fifo4中数据量达到设定的数据量,停止该数据流向模式。
12.优选地,ddr_fifo逻辑模块实时监测所有通道fifo1和fifo2中数据量,当数据流向不满足方式1,同时fifo1中的数据量是2倍或2倍以上的fifo2出口数据位宽与入口数据位宽的比值时,ddr_fifo逻辑模块将读取fifo1中的1倍的fifo2出口与入口数据位宽比值数据量;
13.ddr_fifo逻辑模块实时监测fifio2中数据量和该ddr_fifo映射ddr的地址段内数据量,当该ddr_fifo映射ddr的地址段内数据未满,同时fifo2中的数据量大于0,启动写ddr数据模式标志,地址管理仲裁到该ddr_fifo时,启动axi突发写模式,将数据写入ddr控制器中,写入数据量为ddr_fifo映射ddr的地址段内能够写入数据量和fifio2中数据量最小值;
14.ddr_fifo逻辑模块实时监测fifio3中和该ddr_fifo映射ddr的地址段内数据量,当fifo3中数据未满,同时该ddr_fifo映射ddr的地址段内有数据,启动读ddr数据模式标志,地址管理仲裁到该ddr_fifo时,启动axi突发读模式,将数据从ddr控制器中读取到fifo3中,读取数据量为ddr_fifo映射ddr的地址段内能够读取数据量和fifo3中能够写入数据量最小值;
15.ddr_fifo逻辑模块实时监测fifo3和fifio4中数据量,当fifo3中empty信号为低,同时fifo4中数据量没有达到设定的数据量时,立刻读取fifo3中数据写入fifo4中。
16.一种fgpa控制的ddr映射多个ddr_fifo实现系统,所述系统包括:地址管理逻辑模块、ddr_fifo逻辑模块和ddr控制器ip核;
17.所述地址管理逻辑模块包括ddr_fifo映射街口、仲裁模块、axi通讯模块和axi接口;地址管理逻辑模块采用轮询方式仲裁ddr_fifo的通讯申请,通讯申请由读突发请求和写突发请求组成;
18.所述ddr_fifo逻辑模块与ddr_fifo映射街口进行映射连接,所述ddr_fifo映射街口连接仲裁模块,所述仲裁模块连接axi通讯模块,所述axi通讯模块连接axi接口,所述axi接口连接ddr控制器ip核。
19.优选地,地址管理逻辑模块中axi是master端,根据ddr_fifo请求的读或写突发数据量与ddr控制器进行数据突发读或写。
20.优选地,所述的ddr_fifo逻辑模块内时钟域,fifo1具有异步时钟域,一侧为输入端时钟域,另一侧为ddr控制器axi总线时钟域,fifo4具有异步时钟域,一侧为输出端时钟域,另一侧为ddr控制器axi总线时钟域。
21.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现fgpa控制的ddr映射多个ddr_fifo实现方法。
22.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行fgpa控制的ddr映射多个ddr_fifo实现方法。
23.本发明具有以下有益效果:
24.本发明解决了fpga内高速数据缓存通道数量固定的问题,实现当ddr能够满足多个数据通道的总带宽和总缓存容量时,用户可根据缓存通道数量创建相应数量的ddr_fifo,每个ddr_fifo映射ddr中的一段地址,可根据需求调整每个ddr_fifo缓存容量,ddr_
fifo的数据输入和输出都具有异步时钟,用于解决数据跨时钟域的问题,使用方式和fpga内的fifo相同,有效提高fpga开发效率和硬件利用率。
附图说明
25.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为本发明的原理框图;
27.图2某一通道ddr_fifo逻辑模块原理框图;
28.图3ddr_fifo中两种数据流方式图;
具体实施方式
29.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
31.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
32.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
33.以下结合具体实施例,对本发明进行了详细说明。
34.具体实施例一:
35.根据图1至图3所示,本发明为解决上述技术问题采取的具体优化技术方案是:本发明涉及一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法。
36.本发明提供一种fgpa控制的ddr映射多个ddr_fifo实现方法,所述方法包括以下步骤:
37.通过fpga内ddr控制器ip核与ddr芯片进行数据交互;ddr控制器axi总线与地址管理逻辑模块进行数据传输;地址管理逻辑模块仲裁ddr控制器某一时刻与其中一个ddr_fifo进行数据通讯,同时管理ddr_fifo映射ddr的地址和axi总线通讯时序。
38.本发明解决了fpga内高速数据缓存通道数量固定的问题,实现当ddr能够满足多个数据通道的总带宽和总缓存容量时,用户可根据缓存通道数量创建相应数量的ddr_
fifo,每个ddr_fifo映射ddr中的一段地址,可根据需求调整每个ddr_fifo缓存容量,ddr_fifo的数据输入和输出都具有异步时钟,用于解决数据跨时钟域的问题,使用方式和fpga内的fifo相同,有效提高fpga开发效率和硬件利用率。
39.ddr_fifo中的fifo1和fifo4是具有异步时钟域的fifo,fifo2、fifo3、地址管理逻辑模块和ddr控制器中axi总线具有相同的时钟域。
40.具体实施例二:
41.本技术实施例二与实施例一的区别仅在于:
42.当ddr映射地址段内没有数据同时fifo4中数据量没有达到设定的数据量时,数据流向采用fifo1

fifo4,即方式1。
43.ddr_fifo中的fifo1和fifo4是具有异步时钟域的fifo,fifo2、fifo3、地址管理逻辑模块和ddr控制器中axi总线具有相同的时钟域。
44.具体实施例三:
45.本技术实施例三与实施例二的区别仅在于:
46.当ddr映射地址段内有数据或fifo4中数据量到达到设定的数据量时采用fifo1

fifo2

ddr控制器

fifo3

fifo4,即方式2。
47.ddr_fifo中的fifo1和fifo4是具有异步时钟域的fifo,fifo2、fifo3、地址管理逻辑模块和ddr控制器中axi总线具有相同的时钟域。
48.具体实施例四:
49.本技术实施例四与实施例三的区别仅在于:
50.ddr_fifo逻辑模块实时监测fifio1中数据量,当fifio1的empty信号为低,同时ddr映射地址段内没有数据和fifo4中数据量没有达到设定的数据量时,向读取fifo1中数据向fifo4中写入,当empty信号为高,fifo4中数据量达到设定的数据量,停止该数据流向模式。
51.具体实施例五:
52.本技术实施例五与实施例四的区别仅在于:
53.ddr_fifo逻辑模块实时监测fifio1和fifo2中数据量,当数据流向不满足方式1,同时fifio1中的数据量是2倍或2倍以上的fifo2出口数据位宽与入口数据位宽的比值时,ddr_fifo逻辑模块将读取fifio1中的1倍的fifo2出口与入口数据位宽比值数据量;
54.ddr_fifo逻辑模块实时监测fifio2中数据量和该ddr_fifo映射ddr的地址段内数据量,当该ddr_fifo映射ddr的地址段内数据未满,同时fifo2中的数据量大于0,启动写ddr数据模式标志,地址管理仲裁到该ddr_fifo时,启动axi突发写模式,将数据写入ddr控制器中,写入数据量为ddr_fifo映射ddr的地址段内能够写入数据量和fifio2中数据量最小值;
55.ddr_fifo逻辑模块实时监测fifio3中和该ddr_fifo映射ddr的地址段内数据量,当fifo3中数据未满,同时该ddr_fifo映射ddr的地址段内有数据,启动读ddr数据模式标志,地址管理仲裁到该ddr_fifo时,启动axi突发读模式,将数据从ddr控制器中读取到fifo3中,读取数据量为ddr_fifo映射ddr的地址段内能够读取数据量和fifo3中能够写入数据量最小值;
56.ddr_fifo逻辑模块实时监测fifo3和fifio4中数据量,当fifo3中empty信号为低,同时fifo4中数据量没有达到设定的数据量时,立刻读取fifo3中数据写入fifo4中。
57.具体实施例六:
58.本技术实施例六与实施例五的区别仅在于:
59.本发明提供一种fgpa控制的ddr映射多个ddr_fifo实现系统,所述系统包括:地址管理逻辑模块、ddr_fifo逻辑模块和ddr控制器ip核;
60.所述地址管理逻辑模块包括ddr_fifo映射接口、仲裁模块、axi通讯模块和axi接口;地址管理逻辑模块采用轮询方式仲裁ddr_fifo的通讯申请,通讯申请由读突发请求和写突发请求组成;
61.所述ddr_fifo逻辑模块与ddr_fifo映射街口进行映射连接,所述ddr_fifo映射街口连接仲裁模块,所述仲裁模块连接axi通讯模块,所述axi通讯模块连接axi接口,所述axi接口连接ddr控制器ip核。
62.ddr_fifo中的fifo1和fifo4是具有异步时钟域的fifo,fifo2、fifo3、地址管理逻辑模块和ddr控制器中axi总线具有相同的时钟域。
63.ddr_fifo逻辑模块内fifo1~fifo4的数据位宽,其特征在于:fifo1与fifo4的数据位宽是用户接口数据位宽,其位宽是axi总线数据位宽的整数倍分之一,因此它们数据位宽最大等于axi总线数据位宽,最小等于1。
64.地址管理逻辑模块管理ddr_fifo映射ddr的地址,其特征在于:地址管理逻辑模块中ddr_fifo映射ddr的地址段是axi总线数据位宽的整数倍,每个地址对应着8bits数据,最高地址在ddr地址空间范围内。
65.fifo1具有异步时钟域,一侧为输入端时钟域,另一侧为ddr控制器axi总线时钟域。fifo4具有异步时钟域,一侧为输出端时钟域,另一侧为ddr控制器axi总线时钟域。
66.具体实施例七:
67.本技术实施例七与实施例六的区别仅在于:
68.地址管理逻辑模块中axi是master端,根据ddr_fifo请求的读或写突发数据量与ddr控制器进行数据突发读或写。
69.具体实施例八:
70.本技术实施例八与实施例七的区别仅在于:
71.所述的ddr_fifo逻辑模块内时钟域,fifo1具有异步时钟域,一侧为输入端时钟域,另一侧为ddr控制器axi总线时钟域,fifo4具有异步时钟域,一侧为输出端时钟域,另一侧为ddr控制器axi总线时钟域。
72.具体实施例九:
73.本技术实施例九与实施例八的区别仅在于:
74.本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现fgpa控制的ddr映射多个ddr_fifo实现方法。
75.具体实施例十:
76.本技术实施例十与实施例九的区别仅在于:
77.本发明提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行fgpa控制的ddr映射多个ddr_fifo实现方法。
78.具体实施例十一:
79.本技术实施例十一与实施例十的区别仅在于:
80.本发明提供一种fgpa控制的ddr映射多个ddr_fifo实现方法,具体为:采用fpga内ddr控制器ip核与ddr芯片进行数据交互;ddr控制器axi总线与地址管理逻辑模块进行数据传输;地址管理逻辑模块仲裁ddr控制器与哪个ddr_fifo进行数据通讯,同时管理ddr_fifo映射ddr的地址和axi总线通讯时序;ddr_fifo逻辑模块内具有4个缓存,包括:fifo1、fifo2、fifo3和fifo4;所述的fifo1~4是fpga中fifo ip核;数据流向有两种方式,方式1为fifo1

fifo4,方式2为fifo1

fifo2

ddr控制器

fifo3

fifo4;当ddr映射地址段内没有数据同时fifo4中数据量没有达到设定的数据量时,数据流向采用方式1,当ddr映射地址段内有数据或fifo4中数据量到达到设定的数据量时采用方式2;fifo1与fifo4的数据位宽相同,对应着用户接口数据位宽,fifo2和fifo3具有两种数据位宽,一端和axi总线数据位宽相同,另一端和用户接口数据位宽相同;axi总线数据位宽对应着ddr芯片总数据位宽*8(ddr突发数据量);ddr_fifo中的fifo1和fifo4是具有异步时钟域的fifo,fifo2、fifo3、地址管理逻辑模块和ddr控制器中axi总线具有相同的时钟域。
81.以上所述仅是一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法的优选实施方式,一种fgpa控制的ddr映射多个ddr_fifo实现系统及方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献