【OpenHW参赛手记】AXI初体验

简介:

去年报名参加了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,负责数据搬移。

通过以上论述,应该比较清楚的看到整个数据走向了。具体实施细节还需要进一步研究。

目录
相关文章
|
6月前
|
机器学习/深度学习 C++
程序与技术分享:2017ACM
程序与技术分享:2017ACM
29 0
ACM刷题之路(十六)Acm程序设计竞赛自制模板(一)
ACM刷题之路(十六)Acm程序设计竞赛自制模板
|
传感器 网络协议 物联网
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
222 0
|
算法 编译器 开发工具
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
99 0
|
算法
ACM刷题之路(十六)Acm程序设计竞赛自制模板(二)
ACM刷题之路(十六)Acm程序设计竞赛自制模板
【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯
【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯
155 0
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(中)
第一讲 工作机制 第二讲 Vivado HLS设计流程相关的概念 1. 传统的设计流程 2. C的设计流程 第三讲 如何处理任意精度的数据类型 第四讲 数据类型的转换 第五讲 了解HLS中的复合数据类型 第六讲 Vivado HLS中的C++基本运算
155 0
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(中)
|
算法 大数据 C++
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(下)
第一讲 工作机制 第二讲 Vivado HLS设计流程相关的概念 1. 传统的设计流程 2. C的设计流程 第三讲 如何处理任意精度的数据类型 第四讲 数据类型的转换 第五讲 了解HLS中的复合数据类型 第六讲 Vivado HLS中的C++基本运算
126 0
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(下)
|
存储 算法 调度
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(上)
第一讲 工作机制 第二讲 Vivado HLS设计流程相关的概念 1. 传统的设计流程 2. C的设计流程 第三讲 如何处理任意精度的数据类型 第四讲 数据类型的转换 第五讲 了解HLS中的复合数据类型 第六讲 Vivado HLS中的C++基本运算
158 0
跟Xilinx SAE 学HLS系列视频讲座笔记(1)(上)
|
芯片
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
128 0
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉