荐读解惑 | 求求你,不要胡乱“归属”ZYNQ,其实并不是所谓的FPGA!

2021-04-14 14:16:48 浏览数 (1)

荐读解惑 | 求求你,不要胡乱“归属”ZYNQ,其实并不是所谓的FPGA!

今天给大侠带来求求你,不要胡乱“归属”ZYNQ,其实并不是所谓的FPGA!话不多说,上货。

最近真是太多人来问我学FPGA,这都不是重点,重点是上来就要学ZYNQ。我听这口气,看来学了一段时间了,然后简单的聊了几句,发现是个小白,HDL语言都没整明白,就是想要学点高端的。这里并没有看不起的意思,这里只是想要说明一点,要清楚的抓准自己的定位,看清需求,然后选择性学习。

这里就简单的和大家聊聊为什么要说不要胡乱“归属”ZYNQ,其实并不是所谓的FPGA!

深入接触过ZYNQ的大侠们应该都知道,ZYNQ并不能说是一个嵌入ARM核的FPGA。从它的启动过程就可以发现,绝对是ARM主导的,因此称它为以高性能FPGA为外设的双核ARM或许更为合适。

举个例子,ZYNQ-7000系列,ZYNQ-7000包括PS和PL两部分,其中你可以只使用PS部分,而不用PL部分,这样可以认为你在单纯的使用一个ARM Cortex A9 MPore芯片。

如果只用PS部分,简单的设计流程为:先在PlanAhead里面建立工程,然后在这个工程中建立一个处理器系统工程,建好后,会自动打开XPS。在XPS中,配置处理器系统,也可以直接调用模板,配置好以后,重新回到PlanAhead中,创建顶层的HDL文件,然后整个硬件平台就搭建完了。

将这个硬件平台导出到SDK中,就可以在SDK中利用这个硬件平台进行应用开发了。这样看来,不用PL部分,也即FPGA部分并没有使用,可以说是与FPGA半毛钱关系没有。

但是实际上更多情况下,我们会将PS和PL部分联合使用,不然也就失去了使用ZYNQ芯片的意义。但是,再次反转,一般刚开始学习ZYNQ,为了更好的理解和学习,会先讲只使用PS部分的例子,这样可以更快的掌握工具的使用和开发流程。

除此之外,你也可以从ZYNQ的优劣势看出来一些端倪,以下是ZYNQ优劣势的一些介绍,我们先来看看。

优势部分:

1、开发环境的大集成。

从HLS到Vivado到SDK,对于一个不熟悉FPGA的嵌入式软件工程师来说,完全可以把它当做简单的双核ARM,使用例程中搭建好的硬件环境,在SDK中开发。软件调试后发现某些算法太慢,速度上不去,可以用HLS把这部分进行优化,由工具直接生成电路,甩到Vivado中。一般情况下快个一二十倍是没问题的。所以,整个开发可以完全在Xilinx自家的开发环境里切换。

2、xi4标准总线互联。

这部分涉及内容太多,暂不介绍。

3、各种免费的ip随便用。

不懂硬件,没关系,连线即可完成设计。什么,连线也不会,那把需要哪些模块放进去,让软件帮自行完成!

4、PS和PL两部分共用内存。

加个免费的DMA、VDMA,数据交换秒秒钟的事情。

5、降低了软件开发的难度。

不用费很大的力气就能用上ARM,而且Xilinx在自己的工具中对IP驱动以及Linux内核等等做好了软件支持,一站式起Linux,方便地融入ARM的软件生态系统。传统方式用 ARM 的 RTL级的 IP 的话,工作量巨大,而且性能还上不去。

6、集成度高、通讯更简便。

省一个ARM的面积,省掉通讯总线的资源消耗,省掉CPU与FPGA之间的通讯总线,通讯速度更快,信息传递结构更简单。一般来说比FPGA CPU便宜,具体实际应用看情况,也得看厂商、分销商。

劣势部分:

FPGA可用管脚数量下降,可用资源数不如同等面积FPGA,功耗远大于同等处理器的CPU,开发人员要求高,开发成本高等等。

从上面的优劣势,大家也能看出来,ZYNQ真的不是所谓的FPGA,现在所说的FPGA开发,是基于底层驱动,用HDL硬件描述语言做开发,而ZYNQ更多的是集成、调用,ZYNQ之所以高端,是因为开发人员懂得不仅仅是FPGA,还要懂Linux的开发,Linux的话说白了就是应用层面的开发,其实已经脱离了底层,不需要你再去研究什么电路原理图什么的了。

之前也提到过,为什么不推荐零基础或者初学者直接学ZYNQ,这里就不过多讨论了,至于FPGA初学者怎么学,这里也不多说,超链接一篇实用性的文章,之前发的,后续还会再整理更新,仅供各位参考。

新谈:为什么你觉得FPGA难学?如何入门?

以上为本人一些拙见,仅供参考,希望对各位大侠学习有点帮助。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

0 人点赞