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

上传人:m**** 文档编号:181714745 上传时间:2023-01-16 格式:DOCX 页数:6 大小:114.23KB
收藏 版权申诉 举报 下载
一种ARM+DSP协作架构的FPGA验证实现_第1页
第1页 / 共6页
一种ARM+DSP协作架构的FPGA验证实现_第2页
第2页 / 共6页
一种ARM+DSP协作架构的FPGA验证实现_第3页
第3页 / 共6页
资源描述:

《一种ARM+DSP协作架构的FPGA验证实现》由会员分享,可在线阅读,更多相关《一种ARM+DSP协作架构的FPGA验证实现(6页珍藏版)》请在装配图网上搜索。

1、摘 要:介绍了以 ARM+dsp 体系结构为基础的 FPGA 实现。在其上验证应用算法,实 现了由 ARM 负责对整个程序的控制,由 dsp 负责对整个程序的计算,最大程度地同 时发挥了 ARM 和 dsp 的各自优势。关键词:ARM dsp FPGAARM 通用 CPU 及其开发平台,是近年来较为流行的开发平台之一,而由 ARM+dsp 的双核体系结构,更有其独特的功能特点:由 ARM 完成整个体系的控制和流程操作, 由 dsp 完成具体的算法和计算处理。这样,不但可以充分地发挥 ARM 方便的控制优 势,同时又能最大限度地发挥 dsp 的计算功能。这在业界已逐渐成为一种趋势。本文的 FPG

2、A 的 Demo 验证,是在基于一款 dsp 内核处理器的研发基础上,对其 功能进行验证的一个小目标识别算法的实现。考虑到软件环境仿真的速度以及仿真 模型的局限性,用 FPGA 进行硬件协同验证。这样,既能够保证仿真的真实性,又能 够快速发现实际问题,减少不必要的流片次数,加快开发的进程,这对于一个大规 模的 SoC 设计,已经成为不可或缺的手段之一,而且对节约成本也有很大好处。 1 系统体系结构双核系统的体系结构如图 1 所示。1.1 内嵌 ARM 内核的 EPXA1 芯片及其特点图 1 中,包含 ARM922T 内核的开发平台选用的是 Altera 公司的 excalibar 系列, 本验

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

4、Xilinx公司的FPGA X3S5000和X2V6000,其容量 分别为 500 万门和 600 万门。选用这两块芯片正是基于逻辑资源需求的考虑。 FPGA X2V6000 面向高端应用,存储资源更多,功能更强大,适用于性能要求较高的 dsp 内核,但其成本相对也较高;而FPGAX3S5000成本较低,适用于一般性能要求的模 块。两片FPGA都具备三个扩展槽,可做接口扩展,同时也能作为调试测试点用。1.3 双核体系结构设计特点具体来讲,整个体系结构是指通过人为设计电路图,外部选用不同的FPGA器件 来下载生成特定功能的外部硬件电路,在电路图上对应相应的端口标号;同时, ARM Core可以通

5、过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的

6、控制请求,调动 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 开发板的的图像传输是通过专门配置的带

7、有 LXT972 芯片的以太网口 与 PC 机的以太网口进行交互, 如图 3 所示。图 3 左边的以太网子板即图 1 中的 Ethernet 模块。(2) dsp Core顶层的wrapper是支持AMBA协议的TOP Module,其中包括一个 Debug Sub-Moduleo ARM就是通过读写Debug Sub-Module的控制寄存器来控制dsp Core 的启动、停止等工作状态的。所以说, Debug Sub-Module 是整个 FPGA 工程最 为关键的部件之一,它直接关系到 ARM 和 dsp 之间的交互。本项目中,利用 Debug Sub-Module 实现对 dsp Co

8、re 的复位、启动、暂停、断点设置、单步运行、读写内 部SRAM、读dsp Core寄存器等一系列功能,大大方便了调试工作,同时也非常便 捷地实现了 ARM 和 dsp 的交互运行。2.2 dsp 运行阶段ARM 写控制寄存器使 dspCore 复位,并把小目标识别的程序代码写入 dsp 内部 的 SRAM0 中等待 dsp 启动运行,由 ARM 控制 dsp Core 运行起来。 dsp Core 运行完 程序之后,会在外部SRAM的一个地址上返回一个标志数(OxOOffOOff),同时进入 idle状态,完全释放对AHBC的操作。每隔一段时间,ARM检查一下相应地址上的 这个标志数,如果没

9、有,则表示程序还未运行完,ARM继续检查;如果有,则表示 程序已经运行完毕, ARM 将进入下一步操作。选用这种流程有两个特点:(1)ARM完全实现了控制和辅助的作用,而运行部分 则完全由 dsp 负责,各自分工明确。 (2)ARM 和 dsp 实现了很好的交互,严谨地控制 了流程的运行步骤。2.3 ARM 控制停止返回ARM 通过写控制寄存器把 dspCore 停下来,从外部 SRAM 的既定地址段中取出 dsp Core 运行完所返回的小目标的坐标信息,并通过以太网口返回到 PC 机端,在显示 界面的此帧图像上显示出小目标。图 4 为其中一帧图像的处理结果显示。ARM 擦除 dsp Cor

10、e 运行完毕的标志数,同时判断当前处理完的图像是否为最后 一帧,如果不是,则流程跳回 DMA 搬运步骤去执行下一帧图像,同时加上必要的控 制,避免写程序的重复执行;如果是,则结束整个程序运行。这样循环下去,直到 所有图像序列处理完毕。这个过程充分显示了 ARM在控制流程的判断跳转方面所起到的主要作用。由ARM 的平台来实现对整个视频序列的最终处理控制过程,显得非常清晰便捷。3 体系架构的调试3.1 FPGA 的选取FPGA的选取一定要合适(这里主要针对容量而言)。以本开发过程为例,Xilinx 的两片FPGA (X2V6000和X3S5000)的容量分别为600万门和500万门左右,而项 目的

11、硬件代码容量却稍微超出了这个范围,所以不得不对一些模块作精简和舍弃。 即便如此,两片 FPGA 的利用率都已大于 90%。一般来说, FPGA 的利用率达到 70%或多一些是比较好的,太高的利用率反而容 易造成板子的不稳定。本开发过程就有一些不稳定因素,例如,因一些数据线、地 址线的个别位传输值不正确,需要花大量的精力才能追查出这些存在问题的线路, 然后更换 Bonding 连接,选用其他的通路。同时,所造成的不稳定因素也会影响下 载代码的运行速度。目前经过 Xilinx 的软件工具 ISE 综合出来的 FPGA 可下载代码 受时序约束,所能达到的速度上限为 25MHz 时钟频率。容量大的 F

12、PGA 的成本同样也会比较高,所以在研发需要和成本之间必须找到一 个比较好的平衡点,这在整个电路设计阶段就要预测得比较好,但这不太容易做到, 需要经验的积累。3.2 观测点的预留开发板在设计电路图阶段,一定要预留出足够的观测点。这一点非常重要。因 为:在后来的调试过程中,当出现问题时需要追查线路,而目前的 FPGA 调试软件还 不成熟,并不像 RTL 代码前端仿真那样方便,能够把所有的信号都输出到屏幕上观 看,而且 FPGA 调试时使用的逻辑分析仪只能够测量观测点的信号波形,如果观测点 不够的话,当出现逻辑错误时,根本没办法追查下去,找不到问题的所在,或者需 要做相当繁琐的重复工作,才能把估计

13、存在问题的线路节点信号连(Bonding)到仅 有的观测点上。如果经排查,估计得不正确或者需要进一步拉出更多的其他信号时, 又需要重新花时间将节点新信号连到观测点。这样,会耗费非常多的时间和精力。 因为对每一次新的节点生成一版新的 FPGA 下载代码都很烦琐。所以,从电路的设计之初,预留出足够的观测点,尽量将更多的节点信号连到 观测点上。这样将会极大地方便调试工作,加快整个研发进程。3.3 FPGA 调试的原则FPGA 的调试应该按照由简入繁的步骤进行。这样可以方便研发人员快速地熟 悉板子,并且容易定位问题的所在。由于整个 ARM+dsp 体系结构是由 ARM 加上两块 FPGA 共同工作,相

14、对比较复杂, 相互之间交互性比较多。所以,在调试整个程序之前,可以先通过另外的小程序和 硬件结构分别调通 ARM 对两片 FPGA 的交互;然后,再用较为简单的功能模块调试好 三块片子的简单交互功能;最后,把整个大程序应用在上面进行尝试。这样一步步 下来,出现问题时,就比较容易发现问题所在,方便调试。例如,可以先不考虑FPGAX2V6000,单独调试ARM通过FPGA X3S5000中的AHBC 对外部SRAM读写的控制,成功之后,再将FPGA X2V6000考虑进去,但先不考虑Debug 模块对dsp的控制,单独将Debug模块提取出来,下载到FPGA X2V6000当中;然后 再调试ARM

15、通过FPGA X3S5000中的AHBC对于FPGA X2V6000当中的Debug模块的 控制寄存器的读写情况等。3.4 软硬件协同验证软硬件协同验证是较好的验证方式(或调试方式),二者都是为了保证系统功 能和结构正确的有效手段。在整个FPGA系统实现过程中,非常有必要结合前端软件 仿真波形来参照调试系统各个环节的功能运行情况,这样可以大大简化研发进程, 有效地缩短调试周期。可以说,如果不结合前端软件仿真波形来协同验证的话,要 想实现一个较为复杂的体系结构是非常困难的。一般而言,对于这样一个较为复杂的体系结构需要先进行前端RTL代码的软件 仿真,因为前端仿真对于纠正RTL级代码以及功能方面的

16、错误是非常方便的,而且 它所需要的验证周期和纠错难度比硬件的FPGA验证要有利得多。但是FPGA硬件验 证,其真实性又是非常可靠的。所以验证波形完全调试通过之后,可以非常有效地 指导FPGA的实现。当FPGA在调试某项功能时出现了问题,可以通过逻辑分析仪将 可疑端口节点出来的观测点波形导出来对照软件仿真波形来查找问题,这是一种非 常有效的手段。3.5 Demo 演示速度的调整目前,开发板选用的晶振频率为24MHz,稳定的演示版本速度能够达到28帧/ 秒,为人眼所能接受的连续视频速度,效果已经相当好。这是经过了各种调试才达 到的效果。主要原因在于考虑比较周全:DMA在传输图像序列的时候,所用到的

17、FIFO 在设计之初就考虑到了 FPGA的容量和利用率,认识到其容量有限,在现有的FIFO 容量下,要想调整到一个DMA与PC机双方网口传输速度的精确状态不太容易,如果 运行速度太快,交互同步不准确,就会有丢包的现象发生;如果为了更方便的调试 和达到更好的速度性能,可以选用更大容量的FPGA,设计更大容量的FIFO,这样每 一次图像传输就可以传送更多的图像数据,减少DMA搬运的次数,传输双方的交互 过程较为容易控制。表1给出了从开始演示速度不理想到较为理想所做的调整过程。 从表1中可以看出,单独调整晶振频率,速度提升并不明显。这说明了速度瓶颈不 在硬件代码性能上,关键在于演示界面的软件代码、A

18、RM的Cache打开与否以及图 像搬运的速度三方面。同时还可以看出 Cache 的打开对于速度影响很大,说明 ARM 的取指速度受到影响。目前ARM的运行指令是放在Flash 中,如果改成从SRAM中取 指,估计效果会更加理想。以及循环控制dsp Core的运行停止等状态;dsp Core的主要作用是处理运算应用 程序,计算小目标识别程序。这样既分工又合作,能够充分发挥 ARM 的控制功能以 及 dsp Core 的数字运算处理功能。与此同时,由于ARM在整个设计当中主要起到一些辅助的控制作用,ARM922T 的一些扩展 dsp 运算功能没有用到,如果综合考虑到成本和性价比等因素,可以考 虑采用ARM7硬核、NIOS或其他形式的软核替代。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!