一种基于FPGA的FIFO接口多通道DMA控制器制造技术

技术编号:36346286 阅读:18 留言:0更新日期:2023-01-14 18:00
本发明专利技术公开了一种基于FPGA的FIFO接口多通道DMA控制器,包含输入数据分发模块、输入数据缓存模块、输出数据分发模块、输出数据缓存模块、DMA调度模块、DDR输出模块和DDR接口模块;用于将多个数据源的多通道高速数据在内存中进行高速缓存,不占用FPGA片上RAM资源,实现多通道数据的并行、独立、高效存入和存出,数据交互接口为标准FIFO接口,使用者不用关心复杂的DDR3/4(Double Data Rate)接口时序和多通道数据调度,采用硬件描述语言编程实现,参数化配置,兼容其它FPGA平台,可将本发明专利技术作为IP在FPGA设计中调用,缩短开发周期,提升开发效率。率。率。

【技术实现步骤摘要】
一种基于FPGA的FIFO接口多通道DMA控制器


[0001]本专利技术属于DMA控制
,具体涉及一种基于FPGA的FIFO接口多通道DMA控制器。

技术介绍

[0002]在现代计算机系统或嵌入式系统中,DMA控制器提供在没有CPU干预情况下允许外设访问系统内存的方法,当外设需要传输数据块时,CPU向DMA控制器配置地址信息,数据大小、中断方式等,随后由外设和DMA控制器完成数据传输,最后产生中断通知CPU传输完成。DMA控制器的出现极大的提升了CPU工作效率,使得CPU可以专心去处理调度、计算等操作,从耗时的数据搬移中解放出来。
[0003]在工业和国防领域某些特定场景,系统集成网络、多路高清摄像头、多路光纤等多种数量接口,有多种工作模式动态切换,产生大量多通道高速数据需实时进行缓存或存储,通用DMA控制器存在工作时需CPU配合初始化和响应中断,多通道存取时效率较低,配置流程复杂、占用资源较多、可移植性差等问题。基于FPGA的FIFO接口多通道DMA控制器可以有效解决这些问题,将多个数据源的多通道高速数据在内存中进行高速缓存,不占用FPGA片上RAM(Random Access Memory)资源,实现多通道数据的并行、独立、高效存入和存出,数据交互接口为标准FIFO接口,纯逻辑编程实现,参数化配置,兼容其它FPGA平台,能够作为IP(Intellectual Property)调用。

技术实现思路

[0004]为了克服现有技术的不足,本专利技术提供了一种基于FPGA的FIFO接口多通道DMA控制器,包含输入数据分发模块、输入数据缓存模块、输出数据分发模块、输出数据缓存模块、DMA调度模块、DDR输出模块和DDR接口模块;用于将多个数据源的多通道高速数据在内存中进行高速缓存,不占用FPGA片上RAM资源,实现多通道数据的并行、独立、高效存入和存出,数据交互接口为标准FIFO接口,使用者不用关心复杂的DDR3/4(Double Data Rate)接口时序和多通道数据调度,采用硬件描述语言编程实现,参数化配置,兼容其它FPGA平台,可将本专利技术作为IP在FPGA设计中调用,缩短开发周期,提升开发效率。
[0005]本专利技术解决其技术问题所采用的技术方案如下:
[0006]一种基于FPGA的FIFO接口多通道DMA控制器,包括数据分发模块和DMA控制模块;所述数据分发模块包括输入数据分发模块、输入数据缓存模块、输出数据分发模块和输出数据缓存模块;所述DMA控制模块包括DMA调度模块、DDR输出模块和DDR接口模块;所述基于FPGA的FIFO接口多通道DMA控制器包括m种输入数据源、n个输入数据通道和p个输出数据通道;
[0007]所述输入数据分发模块用于对输入数据进行选择和分发处理,输出p通道的数据给输入数据缓存模块;
[0008]所述输入数据缓存模块为p异步FIFO模块,用于对输入数据分发模块输出的p通道数据进行时钟域转换、数据位宽转换和缓存,供DMA控制模块读出进行下一步处理;
[0009]所述输出数据缓存模块为p异步FIFO模块,用于对DDR输出模块输出的数据进行时
钟域转换、数据位宽转换和缓存,供输出数据分发模块读出进行下一步处理;
[0010]所述输出数据分发模块用于对输出数据缓存模块输出的p通道数据进行选择,分发处理;根据不同工作模式,将P通道数据或输出进行后续处理,或将p输出通道数据分发为n通道后在指定的接口输出;
[0011]所述DMA调度模块用于对p通道的数据在内存中轮询写入或读出;对输入数据缓存模块中FIFO数据量进行实时监测,达到预先设定的读写突发操作块大小B时启动DMA写操作,把对应的FIFO数据连续写入内存区域,再继续轮询其他通道;同时对写入不同内存区域的数据量进行实时监测,当达到预先设定的读突发操作块大小S时启动对应内存区域的读操作,每次读突发操作连续读取的数据量为B,继续轮询其他内存区域,再到当前区域时继续读B大小数据量;每个内存区域定义一对逻辑读写地址,设置起始地址与结束地址,当读写地址达到结束地址时,跳转到起始地址,形成环形缓存区,内存中写入和读出的数据量分别由一个计数器值表示,由计数器的差值表示内存区域中当前写入或可读的数据量,不由读写地址直接判断产生,读写操作在逻辑上独立操作,互不影响;当写速率大于读速率时,设置读写监测阈值,实时监测内存区域中可读突发块大小数,超过读写监测阈值时,反馈输入数据分发模块不再写入更多数据到输入数据缓存模块,小于读写监测阈值时,启动写缓存操作;当读速率大于写速率时,实时监测内存区域中写入的数据量大于或等于读突发块大小时启动读操作,不满足条件则只更新写指针,保证读出的数据有效;
[0012]所述DDR输出模块用于对DDR接口模块输出的数据进行分发;DDR输出模块包含两个同步FIFO,分别用于读操作命令缓存和读数据缓存,在一次读操作后将带有标记内存区域的信号写入命令缓存,将DDR输出的数据写入读数据缓存,当命令缓存不空时读出一个信号,再从数据缓存中读出指定大小数据输出给输出数据分发模块的对应数据通道,再从命令缓存读出下一个信号,循环进行;实现读操作与读数据同步;
[0013]所述DDR接口模块用于实现DDR接口时序;DDR接口模块信号包含:控制信号、命令信号、地址信号和数据信号;当控制信号app_rdy和app_en同时拉高时,将地址信号app_addr和命令信号app_cmd给出,当控制信号app_wdf_rdy和app_wdr_wren同时拉高时,将数据信号app_wdf_data给出,完成一次写操作;当控制信号app_rdy和app_en同时拉高时,将命令信号app_cmd给出,当app_rd_data_valid有效时,数据出现在读数据总线,完成一次读操作。
[0014]优选地,所述m、n、p为不大于16的正整数。
[0015]本专利技术的有益效果如下:
[0016](1)本专利技术将内存封装为多个独立的虚拟通道,简单参数化配置后即可实现多种工作模式下多通道数据在内存中不同区域高速、独立缓存。
[0017](2)本专利技术将接口封装为标准FIFO接口,使用者无需关心复杂的DDR接口时序,可作为IP调用,方便集成与系统中。
[0018](3)本专利技术基于硬件描述语言设计,工作时无需CPU配合,在FPGA上运行,占用资源少,运行效率高。
[0019](4)本专利技术采用模块化设计,适用于不同厂家、不同型号的FPGA,灵活性和移植性强。
附图说明
[0020]图1是本专利技术多通道DMA控制器的整体框图。
[0021]图2是本专利技术内存读写地址控制示意图。
[0022]图3是本专利技术多通道DMA控制器状态机跳转示意图。
[0023]图4是本专利技术多通道DMA控制器资源占用图。
[0024]图5是本专利技术多通道DMA控制器读写速率测试图。
[0025]图6是本专利技术多通道DMA控制器应用实例框图。
[0026]图7本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的FIFO接口多通道DMA控制器,其特征在于,包括数据分发模块和DMA控制模块;所述数据分发模块包括输入数据分发模块、输入数据缓存模块、输出数据分发模块和输出数据缓存模块;所述DMA控制模块包括DMA调度模块、DDR输出模块和DDR接口模块;所述基于FPGA的FIFO接口多通道DMA控制器包括m种输入数据源、n个输入数据通道和p个输出数据通道;所述输入数据分发模块用于对输入数据进行选择和分发处理,输出p通道的数据给输入数据缓存模块;所述输入数据缓存模块为p异步FIFO模块,用于对输入数据分发模块输出的p通道数据进行时钟域转换、数据位宽转换和缓存,供DMA控制模块读出进行下一步处理;所述输出数据缓存模块为p异步FIFO模块,用于对DDR输出模块输出的数据进行时钟域转换、数据位宽转换和缓存,供输出数据分发模块读出进行下一步处理;所述输出数据分发模块用于对输出数据缓存模块输出的p通道数据进行选择,分发处理;根据不同工作模式,将P通道数据或输出进行后续处理,或将p输出通道数据分发为n通道后在指定的接口输出;所述DMA调度模块用于对p通道的数据在内存中轮询写入或读出;对输入数据缓存模块中FIFO数据量进行实时监测,达到预先设定的读写突发操作块大小B时启动DMA写操作,把对应的FIFO数据连续写入内存区域,再继续轮询其他通道;同时对写入不同内存区域的数据量进行实时监测,当达到预先设定的读突发操作块大小S时启动对应内存区域的读操作,每次读突发操作连续读取的数据量为B,继续轮询其他内存区域,再到当前区域时继续读B大小数据量;每个内存区域定义一对逻辑读写地址,设置起始地址与结束地址,当读写地址达到结束地址时,跳转到起始地址,形成环形缓存区,内存中写入和读...

【专利技术属性】
技术研发人员:章文付强黄炳钧周立国
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1