ZYNQ的介绍
Zynq 是 Xilinx 公司推出的一种全可编程片上系统,它将传统的处理器(可以理解成单片机,PS端)和可编程逻辑(FPGA,PL端)集成在同一个芯片上,兼具两者的优点
1. 架构组成
1.1 PS端
这部分基于双核ARM处理器系统,能够运行像Linux这样的操作系统,并且包含了片上存储器和外部存储器接口以及外设接口
1.2 PL端
这部分就是可以看作一个传统的FPGA芯片,可以由用户根据需求设计和实现自定义的硬件逻辑。
PS端和PL端通常会使用AXI总线传输协议实现高带宽、低延时的链接。
2. ZYNQ的优缺点
FPGA的优点:擅长处理时序逻辑,处理速度快,更加灵活和接近底层,擅长高数数据处理。特别适合做一些接口协议、算法。控制精度高
例如我们的FPGA系统时钟可以跑50Mhz,控制精度可以达到20ns轻轻松松的,如果还想要更高的精度,像ZYNQ7010、7020等时钟更块,再加上PLL锁相环倍频时钟,当时钟频率到200MHz的时候,控制精度可以达到4ns,甚至可以跑到400Mhz的时钟
一个便宜的ZYNQ7010在PL端最高可达200MHz,但芯片的价格在50到100人民币之间,而对于单片机要跑到这个级别的时钟频率就贵了
FPGA的缺点:毫无以为因为更加接近底层,开发周期和难度相对较高,每次编写代码需要先跑一遍仿真或者利用逻辑分析仪来排查问题。另外FPGA不擅长处理浮点数或者其他的复杂运算,例如我们在计算三角函数运算的时候,可能需要去配置IP核或者使用查找表(将所有可能的值存储在RAM里面)
单片机MCU的优点:擅长处理比较复杂的运算(浮点数运算、三角函数运算、除法运算等);做控制和低速接口比较简单,例如IIC、URAT、SPI控制等
从上面可以看出来,PL端和PS端实际上是相互弥补不足的,在实际项目中善于将二者分工会大大减少成本的损耗和缩短开发周期。但是,针对ZYNQ来说,也是存在优缺点的
ZYNQ的优点:继承了FPGA和MCU的优点并且互相弥补了对方的缺点,并且集成在了一颗芯片上,相对于一个纯FPGA和一个单片机MCU的组合来说,因为ZYNQ是片内AXI通信总线,通信速率更快,带宽相对更高。
ZYNQ的缺点:ZYNQ出来了10多年了,但是目前市场主流还是纯FPGA和MCU单片机芯片。说的这么好的一款芯片为什么市场占有率还是非常低的呐?就是处于一个不上不下的比较尴尬的位置,开发难度相对于纯FPGA比较繁琐,PS端功能不足、PS端配套的EDA工具比不过纯单片机MCU的工具。一般使用ZYNQ去做产品的公司,小公司相对会比较多一些。大公司主流还是FPGA+MCU芯片
另外,调试会复杂很多,在PL端使用IAL,在PS端打断点进行来联合调试
总的来说,在学有余力的情况下再去学习ZYNQ。但是重点还是要放在PL端(FPGA)