新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于DMA的大批量数据快速传输模块设计

基于DMA的大批量数据快速传输模块设计

作者:时间:2013-05-14来源:网络收藏

对于与NiosⅡ处理器交互的Avalon—MM从端口,从NiosⅡ处理器的角度看,这个端口是一些寄存器的映射,即NiosⅡ对该模块的操作,是通过对模块内部的寄存器的操作完成的。根据功能需隶,读控制模块中设计了3个寄存器,即状态寄存器status,控制字寄存器control和FIFO中已有个数寄存器usedw。
读控制模块的中断请求应当在两种情况下产生:一是此模块的源端将FIFO写满且外设中断使能有效;二是此模块的源端置数据包结束标志且外设中断使能有效。
对于从端口,使用的是带流控制信号的Avalon总线,DMA使用流控制信号中的dataavailable以及endofpacket两个总线信号。其中dataavailable表示外设是否准备好读操作,即FIFO是否非空;对于endofpacket信号,设计中使用这个信号来表示模块中数据包的结束,endofpacket信号与最后一个数据同时出现并持续1个时钟周期,DMA检测到endofpacket信号有效后将停止DMA传输。对于管道端口,这是最新的Avalon总线规范定义的接口形式,主要用于外设和外部逻辑进行交互。

本文引用地址:http://www.eepw.com.cn/article/192791.htm

c.JPG


DMA读控制模块作为一个用户自定义外设,在将其添加到SOPC Builder外设库后,就可以在SOPCBuilder中调用此外设,图3表示了SOPC Builder中该外设与DMA的连接,图中fifo_control_0即为DMA读控制模块,可以看出,这个外设包含了两个Avalon—MM端口,其中一个连接至DMA控制器模块dma_0,而且SOPC Builder为这个外设分配了基地址和中断优先级。

4 测试验证
DMA读控制模块测试时,FPGA内部产生数据源并通过外设管道接口把数据写入FIFO,外设中断时,DMA读取外设中的数据。测试时使用QuartusⅡ自带的SignalTapⅡ嵌入式逻辑分析仪进行测试,观察相应信号的波形。本测试的触发条件为signaltap_read上升沿触发,FIFO深度为1 024,FIFO数据宽度为16位,数据源为2~513共512个计数值,在Nios II的软件中读取600个数据,测试结果如图4所示。

d.JPG


图4对应3幅图像,图4(a)表示DMA读取外设的测试数据的全局视图,后面两幅为局部放大结果,其中图4(b)是测试数据的开始段,图4(c)是测试数据的结束段。如图4(b)所示,在第一个时钟周期,DMA的读信号有效,在之后的第二个时钟周期,FIFO的数据总线出现数据2,之后是3,4,…,从图4(c)可以看出,最后一个数据是513,且DMA读取外设512个数据,只花费了约776个时钟周期,这充分显示了DMA高速的数据传输能力。

网线测试仪相关文章:网线测试仪原理


评论


相关推荐

技术专区

关闭