电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

一种ARM+DSP协作架构的FPGA验证实现

6页
  • 卖家[上传人]:枫**
  • 文档编号:480594002
  • 上传时间:2023-08-01
  • 文档格式:DOCX
  • 文档大小:114.23KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、摘 要:介绍了以 ARM+dsp 体系结构为基础的 FPGA 实现。在其上验证应用算法,实 现了由 ARM 负责对整个程序的控制,由 dsp 负责对整个程序的计算,最大程度地同 时发挥了 ARM 和 dsp 的各自优势。关键词:ARM dsp FPGAARM 通用 CPU 及其开发平台,是近年来较为流行的开发平台之一,而由 ARM+dsp 的双核体系结构,更有其独特的功能特点:由 ARM 完成整个体系的控制和流程操作, 由 dsp 完成具体的算法和计算处理。这样,不但可以充分地发挥 ARM 方便的控制优 势,同时又能最大限度地发挥 dsp 的计算功能。这在业界已逐渐成为一种趋势。本文的 FPGA 的 Demo 验证,是在基于一款 dsp 内核处理器的研发基础上,对其 功能进行验证的一个小目标识别算法的实现。考虑到软件环境仿真的速度以及仿真 模型的局限性,用 FPGA 进行硬件协同验证。这样,既能够保证仿真的真实性,又能 够快速发现实际问题,减少不必要的流片次数,加快开发的进程,这对于一个大规 模的 SoC 设计,已经成为不可或缺的手段之一,而且对节约成本也有很大好处。 1 系统体系结构

      2、双核系统的体系结构如图 1 所示。1.1 内嵌 ARM 内核的 EPXA1 芯片及其特点图 1 中,包含 ARM922T 内核的开发平台选用的是 Altera 公司的 excalibar 系列, 本验证实现选用的型号是EPXA1。EPXA1是一款带有100万门可重配置PLD的ARM Core+PLD 体系结构,可以通过 quartus II 软件工具来灵活配置 ARM Core 同外部的 端口连接,最大时钟频率能够达到 200MHz。 EPXA1 的高度集成化,不仅大大加快了 ARM 与片内各种资源的通讯速度,而且减小了硬件电路的复杂性、体积和功耗,真 正实现了 SOPC1。1.2 FPGA 硬件平台及其特点对于一个具体项目,FPGA芯片的选取要根据实际需求和特点来具体考虑。一般 应从逻辑资源需求、易扩展能力、信号质量以及成本等因素来考虑。如图 1 所示, 本次设计采用的两片FPGA分别为Xilinx公司的FPGA X3S5000和X2V6000,其容量 分别为 500 万门和 600 万门。选用这两块芯片正是基于逻辑资源需求的考虑。 FPGA X2V6000 面向高端应用,存储资源更

      3、多,功能更强大,适用于性能要求较高的 dsp 内核,但其成本相对也较高;而FPGAX3S5000成本较低,适用于一般性能要求的模 块。两片FPGA都具备三个扩展槽,可做接口扩展,同时也能作为调试测试点用。1.3 双核体系结构设计特点具体来讲,整个体系结构是指通过人为设计电路图,外部选用不同的FPGA器件 来下载生成特定功能的外部硬件电路,在电路图上对应相应的端口标号;同时, ARM Core可以通过quartus II工具方便地连接不同的端口标号,编译运行生成相应的 配置文件;ARM的启动代码中用以上的的配置文件信息来配置PLD,从而实现ARM 同外部硬件电路即两片FPGA的连接3。FPGA X3S5000中下载固化AHBC硬件电路 以及外部SRAM Memory,而FPGA X2V6000中下载固化dsp Core以及支持AMBA协议 的 Wrapper。这种体系结构能够充分利用硬件资源,合理的版图位置方便了 ARM和dsp对外部 SRAM的访问,同时可快捷地实现ARM的控制功能,而且预留的扩展槽能够较为方便 地进行功能扩展和调试。dsp Core的Wrapper能够快速响应ARM的

      4、控制请求,调动 dsp Core 进入不同的工作状态。2 系统工作流程及特点系统工作流程图如图2所示,介绍如下。2.1 ARM负责准备阶段ARM从Flash中运行启动代码,通过配置PLD来连接FPGA X3S5000中的AHBC, 目的在于ARM通过AHBC同FPGA X2V6000中的dsp Core进行交互。代码唤醒外部DMA通过以太网口从PC机端搬运第一帧待处理的图像数据,放到 双核公用的外部SRAM memory既定的地址段中。然后,ARM Core通过AHBC控制FPGA X2V6000 中的 dsp Core。这里需要说明两点:(1) FPGA 开发板的的图像传输是通过专门配置的带有 LXT972 芯片的以太网口 与 PC 机的以太网口进行交互, 如图 3 所示。图 3 左边的以太网子板即图 1 中的 Ethernet 模块。(2) dsp Core顶层的wrapper是支持AMBA协议的TOP Module,其中包括一个 Debug Sub-Moduleo ARM就是通过读写Debug Sub-Module的控制寄存器来控制dsp Core 的启动、停止等工作状态的。所以

      5、说, Debug Sub-Module 是整个 FPGA 工程最 为关键的部件之一,它直接关系到 ARM 和 dsp 之间的交互。本项目中,利用 Debug Sub-Module 实现对 dsp Core 的复位、启动、暂停、断点设置、单步运行、读写内 部SRAM、读dsp Core寄存器等一系列功能,大大方便了调试工作,同时也非常便 捷地实现了 ARM 和 dsp 的交互运行。2.2 dsp 运行阶段ARM 写控制寄存器使 dspCore 复位,并把小目标识别的程序代码写入 dsp 内部 的 SRAM0 中等待 dsp 启动运行,由 ARM 控制 dsp Core 运行起来。 dsp Core 运行完 程序之后,会在外部SRAM的一个地址上返回一个标志数(OxOOffOOff),同时进入 idle状态,完全释放对AHBC的操作。每隔一段时间,ARM检查一下相应地址上的 这个标志数,如果没有,则表示程序还未运行完,ARM继续检查;如果有,则表示 程序已经运行完毕, ARM 将进入下一步操作。选用这种流程有两个特点:(1)ARM完全实现了控制和辅助的作用,而运行部分 则完全由 dsp 负

      6、责,各自分工明确。 (2)ARM 和 dsp 实现了很好的交互,严谨地控制 了流程的运行步骤。2.3 ARM 控制停止返回ARM 通过写控制寄存器把 dspCore 停下来,从外部 SRAM 的既定地址段中取出 dsp Core 运行完所返回的小目标的坐标信息,并通过以太网口返回到 PC 机端,在显示 界面的此帧图像上显示出小目标。图 4 为其中一帧图像的处理结果显示。ARM 擦除 dsp Core 运行完毕的标志数,同时判断当前处理完的图像是否为最后 一帧,如果不是,则流程跳回 DMA 搬运步骤去执行下一帧图像,同时加上必要的控 制,避免写程序的重复执行;如果是,则结束整个程序运行。这样循环下去,直到 所有图像序列处理完毕。这个过程充分显示了 ARM在控制流程的判断跳转方面所起到的主要作用。由ARM 的平台来实现对整个视频序列的最终处理控制过程,显得非常清晰便捷。3 体系架构的调试3.1 FPGA 的选取FPGA的选取一定要合适(这里主要针对容量而言)。以本开发过程为例,Xilinx 的两片FPGA (X2V6000和X3S5000)的容量分别为600万门和500万门左右,而项 目的

      7、硬件代码容量却稍微超出了这个范围,所以不得不对一些模块作精简和舍弃。 即便如此,两片 FPGA 的利用率都已大于 90%。一般来说, FPGA 的利用率达到 70%或多一些是比较好的,太高的利用率反而容 易造成板子的不稳定。本开发过程就有一些不稳定因素,例如,因一些数据线、地 址线的个别位传输值不正确,需要花大量的精力才能追查出这些存在问题的线路, 然后更换 Bonding 连接,选用其他的通路。同时,所造成的不稳定因素也会影响下 载代码的运行速度。目前经过 Xilinx 的软件工具 ISE 综合出来的 FPGA 可下载代码 受时序约束,所能达到的速度上限为 25MHz 时钟频率。容量大的 FPGA 的成本同样也会比较高,所以在研发需要和成本之间必须找到一 个比较好的平衡点,这在整个电路设计阶段就要预测得比较好,但这不太容易做到, 需要经验的积累。3.2 观测点的预留开发板在设计电路图阶段,一定要预留出足够的观测点。这一点非常重要。因 为:在后来的调试过程中,当出现问题时需要追查线路,而目前的 FPGA 调试软件还 不成熟,并不像 RTL 代码前端仿真那样方便,能够把所有的信号都输出到

      8、屏幕上观 看,而且 FPGA 调试时使用的逻辑分析仪只能够测量观测点的信号波形,如果观测点 不够的话,当出现逻辑错误时,根本没办法追查下去,找不到问题的所在,或者需 要做相当繁琐的重复工作,才能把估计存在问题的线路节点信号连(Bonding)到仅 有的观测点上。如果经排查,估计得不正确或者需要进一步拉出更多的其他信号时, 又需要重新花时间将节点新信号连到观测点。这样,会耗费非常多的时间和精力。 因为对每一次新的节点生成一版新的 FPGA 下载代码都很烦琐。所以,从电路的设计之初,预留出足够的观测点,尽量将更多的节点信号连到 观测点上。这样将会极大地方便调试工作,加快整个研发进程。3.3 FPGA 调试的原则FPGA 的调试应该按照由简入繁的步骤进行。这样可以方便研发人员快速地熟 悉板子,并且容易定位问题的所在。由于整个 ARM+dsp 体系结构是由 ARM 加上两块 FPGA 共同工作,相对比较复杂, 相互之间交互性比较多。所以,在调试整个程序之前,可以先通过另外的小程序和 硬件结构分别调通 ARM 对两片 FPGA 的交互;然后,再用较为简单的功能模块调试好 三块片子的简单交互功能;

      9、最后,把整个大程序应用在上面进行尝试。这样一步步 下来,出现问题时,就比较容易发现问题所在,方便调试。例如,可以先不考虑FPGAX2V6000,单独调试ARM通过FPGA X3S5000中的AHBC 对外部SRAM读写的控制,成功之后,再将FPGA X2V6000考虑进去,但先不考虑Debug 模块对dsp的控制,单独将Debug模块提取出来,下载到FPGA X2V6000当中;然后 再调试ARM通过FPGA X3S5000中的AHBC对于FPGA X2V6000当中的Debug模块的 控制寄存器的读写情况等。3.4 软硬件协同验证软硬件协同验证是较好的验证方式(或调试方式),二者都是为了保证系统功 能和结构正确的有效手段。在整个FPGA系统实现过程中,非常有必要结合前端软件 仿真波形来参照调试系统各个环节的功能运行情况,这样可以大大简化研发进程, 有效地缩短调试周期。可以说,如果不结合前端软件仿真波形来协同验证的话,要 想实现一个较为复杂的体系结构是非常困难的。一般而言,对于这样一个较为复杂的体系结构需要先进行前端RTL代码的软件 仿真,因为前端仿真对于纠正RTL级代码以及功能方面的错误是非常方便的,而且 它所需要的验证周期和纠错难度比硬件的FPGA验证要有利得多。但是FPGA硬件验 证,其真实性又是非常可靠的。所以验证波形完全调试通过之后,可以非常有效地 指导FPGA的实现。当FPGA在调试某项功能时出现了问题,可以通过逻辑分析仪将 可疑端口节点出来的观测点波形导出来对照软件仿真波形来查找问题,这是一种非 常有效的手段。3.5 Demo 演示速度的调整目前,开发板选用的晶振频率为24MHz,稳定的演示版本速度能够达到28帧/ 秒,为人眼所能接受的连续视频速度,效果已经相当好。这是经过了各种调试才达 到的效果。主要原因在于考虑比较周全:DMA在传输图像序列的时候,所用到的FIFO 在设计之初就考虑到了 FPGA的容量和利用率,认识到其容量有限,在现有的FIFO 容量下,要想调整到一个DMA与PC机双方网口传输速度的精确状态不太容易,如果 运行速度太快,交互同步

      《一种ARM+DSP协作架构的FPGA验证实现》由会员枫**分享,可在线阅读,更多相关《一种ARM+DSP协作架构的FPGA验证实现》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.