以下文章来源于嵌入式客栈 ,作者逸珺
欢迎关注嵌入式客栈,主要分享嵌入式Linux系统构建、嵌入式Linux驱动开发、单片机技术、FPGA开发、信号处理、工业通讯等技术主题。欢迎关注,一起交流,共同进步!
eetop专注芯片、微电子,点击上方蓝字关注我们
来源:嵌入式客栈
ZYNQ主要由两大部分组成:
处理系统PS(Processing System):上图左上部分即是PS部分,包括:
可编程逻辑PL(Programmable logic):兼容赛灵思7系列FPGA
ZYNQ处理系统端PS所有的外设都连接在AMBA(Advanced Microcontroller Bus Architecture)总线,而基于FPGA设计的IP则可以通过AXI接口挂载在AMBA总线上,从而实现内部各组件的互联互通。这里涉及到两个概念:
硬件工程师往往发现对一个复杂的系统的布局布线,常常会很困难,也常因为不合理的布局布线而陷入EMC深坑。ZYNQ的IO引脚高度灵活性,无疑在电路设计方面提供极大的方便,可实现非常灵活的PCB布局布线。从而在EMC性能改善方面带来了很大便利。
如上图,比如I2C0则可以通过EMIO映射到PL端的引脚输出,这无疑又增加了更多的灵活性!
PS-PL接口HP0-HP3:如上架构图中AXI high-performance slave ports (HP0-HP3) 实现了PS-PL的接口
PS-PL接口GP0-GP1:如上架构图中AXI general-purpose ports
一个连接到CPU内存的64位加速器一致端口(ACP)AXI从接口,ACP 是 SCU (一致性控制单元)上的一个 64 位从机接口,实现从 PL 到 PS 的异步 cache 一致性接入点。ACP 是可以被很多 PL 主机所访问的,用以实现和 APU 处理器相同的方式访问存储子系统。这能达到提升整体性能、改善功耗和简化软件的效果。ACP 接口的表现和标准的 AXI 从机接口是一样的,支持大多数标准读和写的操作而不需要在 PL 部件中加入额外的一致性操作。
DMA, 中断, 事件信号:
扩展多路复用I/O (EMIO)允许PS外设端口访问PL逻辑和设备I/O引脚。
时钟以及复位信号:
Zynq 是一种SoC,具有大量的标准 IP,这些部件不再需要重新设计而直接可用。以这样的方式提升了设计抽象层级,加上重用预先测试和验证过的部件,开发将被加速,而成本则可以降低。就像常说的:“ 为什么要重新发明轮子呢?”。
Vivado内置了大量的IP可供使用,比如数学计算IP,信号处理IP、图像视频处理IP,通信互连(以太网、DDS、调制、软件无线电、错误校验)、处理器IP(MicroBlaze等)、甚至人工智能算法IP。
比如信号处理IP,由于采用FPGA硬逻辑实现信号处理无需CPU计算,对于实现复杂的信号运算(比如实现一个非常高阶的FIR滤波、多点FFT计算)具有非常大优势。
如架构图,ZYNQ内置了双ARM Cortex-A9硬核,对软件设计提供了极大的灵活性,在该处理器上可运行Linux,Android等复杂的操作系统,相比常规FPGA嵌软核IP的做法具有更强大的运算处理能力,你可能会说其处理器的运算能力相比时下的其他ARM芯片或稍有不足,但基本能满足常规的医疗、工业领域等嵌入式系统应用需求。
通过前面的简要分析介绍,不难发现PL可编程硬件逻辑及处理器单元的结合做的非常好。
试想,如果一个系统需要实现硬实时、硬并行,复杂外设互连系统:
这两种方案技术复杂度都非常高,硬件电路PCB设计比较复杂,软件开发以及维护也会增加复杂度。而ZYNQ则可以很好的解决此类系统设计需求,真正做到system on chip,这也是SOC的一个很好的体现。
ZYNQ这种高度灵活性,丰富的外设,丰富的IP库,以及vivado强大易用的开发环境,对使用ZYNQ进行嵌入式系统设计带来了非常多优势。
点击阅读原文进入eetop微信后台,输入“芯片”获取!