【OpenHW参赛手记】AXI初体验
来源:互联网 发布:adobe xd mac 下载 编辑:程序博客网 时间:2024/05/16 11:49
去年报名参加了OpenHW2012开源硬件大赛,入围后收到了Xilinx赞助的ZED-Board。
自从今年3月拿到ZED板卡,就开始体验ARM+FPGA这个神奇的架构。
AXI,是PS与PL之间最佳的通信手段。
Xilinx XPS中用户自定义IP核可以拥有AXI-Lite,AXI4,AXI-Stream,PLB和FSL这些接口实现和PS通信。
其中AXI-Lite具有轻量级,结构简单的特点,适合小批量数据、简单控制场合。AXI4和AXI-Lite差不多,只是增加了一项功能就是突发传输,可以连续对一片地址进行一次性读写。上面两种均采用内存映射控制方式,即ARM将用户自定义IP编入某一地址进行访问,读写时就像在读写自己的片内RAM,编程也很方便,开发难度较低。代价就是资源占用过多,需要额外的读地址线、写地址线、读数据线、写数据线、写应答线这些信号线,而且传输速度受限(主要是因为采用AXI-GP物理接口,带宽很低)。
另外一种AXI接口就是AXI-Stream,这是一种连续传输的接口技术,速度能达到很高,而且不需要地址线(有点像FIFO,你就一直读或一直写就行)。这类IP不能通过上面的内存映射方式控制,必须有一个转换装置,例如AXI-Interconnector,AXI-DMA模块就能实现内存映射到流式接口的转换,但编程较复杂,调试起来没有内存映射方式直观,必须要通过芯片内部调试接口(Chipscope)来观察。
AXI-Stream适用的场合有很多:视频流处理;通信协议转换;数字信号处理;无线通信等。
其本质都是针对数值流构建的数据通路,从信源(例如ARM内存、DMA、无线接收前端等)到信宿(例如HDMI显示器、音频输出等)构建起连续的数据流。这种接口适合做实时信号处理。当然,实际处理中也有分块和不分块的情况,典型分块情况就是计算FFT。
后面两种貌似在ZED上面用处不大,都是Microblaze的接口。不过应该也有桥接IP。没有研究。
我们项目中属于典型的流式数据,从射频前端、ADC采集到信号传输到DDR2内存,组织为时分复用或并行通路来传输数值数据到自定义IP,并携带额外信息(当前帧均衡器的系数),利用控制流通道传输过去。处理结果仍传回DDR2中,交给主机显示或存储为文件。和DDR2的通信需要借助AXI-HP物理接口,PL部分为master,负责数据搬移。
通过以上论述,应该比较清楚的看到整个数据走向了。具体实施细节还需要进一步研究。
- 【OpenHW参赛手记】AXI初体验
- 【OpenHW参赛手记】AXI-Stream接口介绍
- 【OpenHW参赛手记】AXI-Stream接口开发详细流程
- 【OpenHW参赛手记】System Generator 与XPS连接的方法
- AXI初体验
- OpenHW开发手记
- Cloud Foundry参赛博文——Cloud Foundry安装初体验
- Opencv2.4.3+ffmpeg的PC安装和移植教程【参赛手记】
- ZedBoard学习手记(二) 开发自定义AXI总线外设IP核——以LED和开关为例
- 参赛总结
- 参赛感想。
- 参赛总结
- 参赛总结
- 参赛经历
- 朝鲜版linux:《Red Star 2.0》体验手记
- AXI Stream接口,AXI 流接口规范
- 手记
- 手记
- 黑马程序员—交通灯管理系统
- Oracle远程连接sqlplus字符串
- make Makefile 指定Makefile文件中出现的头文件的搜索路径
- 生成互不相同随机数的一种算法
- 一次Oracle11g数据库导入Oracle10g数据库操作笔记
- 【OpenHW参赛手记】AXI初体验
- android:descendantFocusability用法简析
- [Ext JS 4]性能优化
- 5.2-2 What is the probability that you hire exactly twice
- 利用TortoiseSVN获取最新版本的OpenCV源码
- Away3D_Study1 建立基本的3D应用
- 提高你的Java代码质量吧:不要在常量和变量中出现易混淆的字母
- hibernate优化
- MyEclipse 2013 创建 Maven Project 报错 解决方案