当前位置:首页 > 测试测量 > 测试测量
[导读]摘要 针对Altera公司SOPC解决方案中,DMA模块无法直接读/写FPGA外设的情况,提出了基于Avalon总线流传输模式的通用DMA读/写控制模块的设计,设计了两个自定义外设,实现了DMA对FPGA外设的高速数据存取和Nios II与F

摘要 针对Altera公司SOPC解决方案中,DMA模块无法直接读/写FPGA外设的情况,提出了基于Avalon总线流传输模式的通用DMA读/写控制模块的设计,设计了两个自定义外设,实现了DMA对FPGA外设的高速数据存取和Nios II与FPGA大批量数据的快速传输。介绍了Avalon—MM总线规范,阐述了系统架构以及DMA读控制器的设计,测试结果表明,该方法是一种高效可行的解决方案。
关键词 SOPC;Nios II;DMA;Avalon总线

    DMA控制器作为SOPC设计中使用频率较高的IP核,可用于存储器或外设间进行批量数据传输,以提高系统数据吞吐量。然而,由于DMA控制器只支持对基于Avalon总线流传输模式的外设进行数据传输操作,对用户自定义外设不予支持。文中提出了一种基于Avalon总线流传输模式的通用DMA接口控制器设计,实现了NiosⅡ与FPGA的大批量数据快速传输,显著提高了系统的数据吞吐量。

1 Avalon—MM总线规范
   
Avalon总线规范是为开发SOPC环境下外设而设计的,为SOPC设计者描述这些外设的端口提供了基础。Avalon总线有多种传输模式,其中,流传输模式为从端口提供了一种机制,用于控制来自主端口的传输,流传输模式的这些特点使其特别适合于DMA传输。
    流模式从端口传输模式的信号,除了在从端口传输中使用的信号之外,又引入了3个信号:readyfordata、dataavailable和endofpack et。其中,从端口通过设置Readyfordata有效来表示它已经准备好接收来自Avalon总线模块的写传输;使readyfordata无效表示写操作将引起数据上溢;从端口通过设置dataavailable有效来表示它已经能够为来自Avalon总线模块的读传输提供数据,dataavailable无效时读操作将引起数据下溢;在任何传输期间,流模式从端口都可以设置endofpacket信号有效,并通过Avalon总线模式传输给主端口。对于endofpack et信号的解释取决于用户设计,必须明确外设如何响应endofpacket信号的变化。

2 系统结构
   
提出的NiosⅡ与外设进行大批量数据传输的结构如图1所示,当NiosⅡ需要从外设读入数据时,外设通过FIFO接口将数据写入DMA读控制模块,然后数据经DMA传输至NiosⅡ,反之,当NiosⅡ输出数据时,数据通过DMA传输至DMA写控制模块,FPGA逻辑通过FIFO接口从这个模块读取数据。DMA读/写控制模块的设计,是为了解决SOPC中DMA模块与FPGA片上FIFO不同接口间的数据传输问题,而在SOPC中,DMA模块使用的是支持流传输模式的Avalon—MM总线。DMA读/写控制模块主要完成两个功能:一是FIFO与DMA主端口之间的数据交互;二是作为一个NiosⅡ的外设,NiosⅡ处理器能够对此外设进行控制并能随时获取该外设的状态信息。



3 DMA读/写控制模块的设计
   
DMA读/写控制模块作为系统结构的核心,其结构框图如图2所示。此模块包括两个Avalon—MM从端口:一个作为DMA从端口,用于处理DMA对此模块的数据读操作;另一个Avalon—MM从端口是NiosⅡ的控制从端口,用于NiosⅡ处理器对这个模块进行控制并且随时获取此模块的状态信息。模块还包括一个中断请求信号(IRQ),当外设有数据需要读取时,可以使这个信号有效,从而通知NiosⅡ发起DMA读传输。另外,DMA读控制模块中还例化了一片FPGA片上FIFO作为数据上传FIFO,用于系统待上传数据的暂存。使用FIFO可以提高数据传输的吞吐量,同时简化FPGA硬件逻辑的操作,图2中的管道(Conduit)端口就是FPGA硬件逻辑操作FIFO的接口。


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


    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所示。


    图4对应3幅图像,图4(a)表示DMA读取外设的测试数据的全局视图,后面两幅为局部放大结果,其中图4(b)是测试数据的开始段,图4(c)是测试数据的结束段。如图4(b)所示,在第一个时钟周期,DMA的读信号有效,在之后的第二个时钟周期,FIFO的数据总线出现数据2,之后是3,4,…,从图4(c)可以看出,最后一个数据是513,且DMA读取外设512个数据,只花费了约776个时钟周期,这充分显示了DMA高速的数据传输能力。
    对于调试模式下Nios II IDE的输出结果,如图5所示。由于测试数据太长,这里只给出测试数据的首部及尾部。图5(a)为测试数据的首部,使用printf()函数输出,第一个数据为2,接着是2,3,…,从图5(b)可看出最后一个有效数据是513,从512起的数据为0,这是数组的初始值,这与图4相对应。


    DMA写控制模块测试时,置FIFO数据宽度为16,NiosⅡ控制端口数据总线宽度为16,FIFO深度为2 048,在NiosⅡ软件中设置一个长度为2 048的数组,数组数据宽度为16位,初始化时把数据赋值为1~2 048的计数值,然后发起DMA写传输,把数据写入到DMA写控制模块中,在FPGA再用硬件语言读此外设中FIFO数据并在SignalTapⅡ中显示,其测试结果如图6所示。


    图6中,fifo_rd表示FPGA中硬件逻辑读取DMA写控制模块的读信号,fifo_readdata是外设中FIFO的数据总线信号,sigtap_test信号连接至外设中FIFO满、FIFO空以及waitrequest信号(LSB),图6(a)表示了外部逻辑读取外设中FIFO的数据起始段,在读信号有效之前,sigtap_ test[2]信号是高电平,表示FIFO满,sigtap_test[0]为高,表示外设此刻不能响应DMA写入的数据,然后FPGA外部逻辑在检测到FIFO满后开始读取数据,在下一个时钟周期,FIFO数据总线上出现有效数据。图6(b)是读取FIFO时数据的结束段,最后一个数据为2 048,读取后,sig tap_test[1]为高电平,表示数据读空,这与NiesⅡ中软件写入DMA从而写入DMA写控制模块的数据是一致的,由此验证了模块设计的正确性。

5 结束语
   
设计方案稳定可靠、传输速度高,具有一定的通用性,能满足NiosⅡ与外设之间的大批量数据传输,具有广泛的应用前景,同时,使用了FIFO作为缓存,进一步提高了数据吞吐量,具有较强的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能
关闭
关闭