浅谈Xilinx SOC 之基于 zynq 的 Zedboard 使用感受

                 2015 年初开始接触xilinx zynq 平台的项目开发,zynq 对我来说是一个新的平台,新的平台总是会勾起我的好奇心,zynq也不例外,集成双核arm A9加一块高性能FPGA,确实调人胃口。从新手的角度,我想谈一下自己的一些感受:

  • 网络资源:

           xilinx主要是做FPGA的,以前没有接触过,zynq是接触的第一个xilinx的产品,总体上感觉资源比较丰富,论坛,文档资料都能轻易获取,就是对英文水平有较高要求,官网上的资源,文档基本都是英文的,所以英文必须得过关。

  • 开发环境:

         Zynq是一个很强劲的平台,xilinx公司推出的vivado+SDK开发环境集成度很高,前者提供了视图模式,可以让一个嵌入式软件工程师根据库里面的IP 搭建属于自己的硬件平台,而后者是基于eclips 框架的软件,提供诸如函数运行时间profiling, SOC 系统性能实时监控等高级功能,是同样基于eclips框架的CCS,IAR等编译器远不能及的,它可以根据硬件平台自动生成BSP(board support package),同时相应的软件平台可随意调用BSP提供的API来控制硬件平台。在vivado+SDK 推出的同时,xilinx新一代的集成开发环境SDSOC 也开始推广,目前只是见过Avnet 的feild engineer 做过的demo,软件上跑的程序,如FFT可通过设置直接推到硬件上转为verilog代码综合,这样可以极大的优化片上系统SOC的性能,同时可以帮助嵌入式软件工程师克服硬件知识的短处,做算法或者技术的验证,节省开发时间。

  • 第一个小实验:

          做嵌入式软件开发工作的程序员,流水灯实验是必不可少的,也是大部分评估板都具有的功能,把第一次在zedboard上做流水灯实验的体会小结一下,可分为下面几点:
    1. 在zedboard板子上可以只用FPGA部分写流水灯的程序,体验了一下硬件描述语言与基于CPU解析的语言的差异,收益不少。
    2. 用vivado库里面提供的IP进行可视化操作,构造硬件电路,基于硬件电路生成BSP,基于BSP提供给软件API很方便的控制外设IO,这样省去了硬件寄存器的直接操作,十分方便。
    3. 第一次体会到软硬件协同工作,从某种角度让我从更深层次理解了ARM平台寄存器的概念,其实就相当于一个专用集成电路---ASIC。
    4. 对AXI总线的学习在同一架构下各个模块之间是怎样打交道的,逐步为我揭开MCU神秘的面纱,老话说的好,技术像一面窗户纸,戳破后就没那么神秘了。

  • 系统分工:

          ARM部分有CPU,适合逻辑处理,但是处理速度相对FPGA慢,FPGA是硬件,可以并行工作,所以处理速度较快,但是逻辑算法部分相对不好实现,所以在系统方案制定的时候应充分结合各自的优点,ARM负责逻辑处理,FPGA负责硬件处理,通过AXI操作映射地址通信,才能发挥zynq的强大性能,另外,AXI操作的灵活性也是zynq的一个很大的特点。






你可能感兴趣的:(soc,zedboard)