【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,负责数据搬移。

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

目录
相关文章
|
27天前
|
Ubuntu Linux Docker
课4-隐语SecretFlow、SecretNote安装部署
SecretFlow是支持Python 3.8及以上版本的隐私计算框架,兼容CentOS 7、Anolis8、Ubuntu 18.04等等。它提供两种安装包:所有需求的大体积`secretflow`和仅含基础功能的小体积`secretflow-lite`。用户可通过Docker、pip或源码安装。安装后,可使用Docker镜像在本地部署,并通过Ray进行集群仿真。更多详细信息和部署指南可在官方手册中找到。此外,SecretFlow还提供了类似Jupyter Notebook的SecretNote工具,实现多节点代码自动执行和跟踪。
|
4月前
|
弹性计算
电子好书发您分享《玩转ECS从入门到精通(入门篇)》
电子好书发您分享《玩转ECS从入门到精通(入门篇)》
37 1
|
7月前
|
传感器 网络协议 物联网
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
146 0
|
7月前
|
Linux
手把手教你写Linux设备驱动---定时器(一)(基于友善之臂4412开发板)
手把手教你写Linux设备驱动---定时器(一)(基于友善之臂4412开发板)
85 0
|
8月前
|
网络协议 数据处理 Python
问题解答之Python网络编程
问题解答之Python网络编程
|
8月前
|
算法 编译器 开发工具
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
65 0
|
9月前
|
JSON 前端开发 JavaScript
时不我待(第十八课)项目环境搭建
时不我待(第十八课)项目环境搭建
45 0
|
9月前
|
存储 网络协议 安全
什么是域服务(NETBASE第十一课)(一)
什么是域服务(NETBASE第十一课)(一)
149 0
|
9月前
|
安全 搜索推荐 数据安全/隐私保护
什么是域服务(NETBASE第十一课)(二)
什么是域服务(NETBASE第十一课)(二)
89 0
|
数据可视化 5G 定位技术
【UE虚幻引擎】手把手教学,UE新手打包全攻略!
在UE实际开发过程中,新手工程师可能会遇到总是打包失败的情况,本文整理了UE虚幻引擎新手打包全攻略,可以尝试按照以下方式来排查解决。