FPGA进阶学习,为什么推荐你用ZYNQ?主要原因有这几点...
今天开始跟大家分享零基础学ZNYQ的过程 , 每个人的学习路径和例程都会有不同 , 这里以我自身的情况做引子 , 希望能够帮到你 。
学习之前 , 首先你需要了解ZYNQ的本质 。
ZYNQ是什么?
ZYNQ是Xilinx发布的行业第一款可扩展处理平台系列 。 它的本质特征 , 其实是一个组合双核ARM Cortex-A9处理器PS , 以及一个传统的片上FPGA可编辑逻辑部分构成 。
从它的启动过程就可以发现 , 绝对是ARM主导的 , 所以称它为以高性能FPGA为外设的双核ARM或许更为合适 。
对于一部分具有嵌入式软件基础 , 或者是FPGA进阶学习的学员 , 因为FPGA工作需要经常跟CPU交互 , 也就是说你会经常跟软件工程师交流 。 这个阶段之后的学习 , 个人建议可以从ZYNQ开始 , 通过熟悉各种设置和开发 , FPGA在SOC上的应用特点 , 了解主流的嵌入式系统开发全流程 , 为进一步使用FPGA实现项目提供理论基础、积累实战经验 。
为什么学FPGA , 我推荐你ZYNQ?
主要有如下几大原因 , 具体表现为:
第一个:开发环境的大集成 。 从HLS到Vivado到SDK , 对于一个不熟悉FPGA的嵌入式软件工程师来说 , 完全可以把它当做简单的双核ARM , 使用例程中搭建好的硬件环境 , 在SDK中开发 。 软件调试后发现某些算法太慢 , 速度上不去 , 可以用HLS把这部分进行优化 , 由工具直接生成电路 , 甩到VIVADO中 。 一般情况下快个一二十倍是没问题的 。 所以 , 整个开发可以完全在Xilinx自家的开发环境里切换 。
第二个 , AXI4标准总线互联 。
第三个 , 各种免费的IP随便用 , 不懂硬件 , 没关系 , 连线即可完成设计 。 什么 , 连线也不会 , 那把需要哪些模块放进去 , 让软件帮自行完成!
第四个 , PS和PL两部分共用内存 , 加个免费的DMA、VDMA , 数据交换还不是秒秒钟的事情 。
其他原因:
降低了软件开发的难度:不用费很大的力气就能用上ARM , 而且Xilinx在自己的工具中对IP驱动以及Linux内核等等做好了软件支持 , 一站式起Linux , 方便地融入ARM的软件生态系统 。 传统方式用ARM的RTL级的IP的话 , 工作量巨大 , 而且性能还上不去 。
集成度高:省一个ARM的面积 , 省掉通讯总线的资源消耗 。
通讯更简便:省掉CPU与FPGA之间的通讯总线 , 通讯速度更快 , 信息传递结构更简单 。
比FPGA+CPU便宜:当然这个价格是要看购买渠道的 , 差的很离谱 。
怎么学ZYNQ?
一般来说 , ZYNQ开发可从FPGA+Soc , ARM+Linux两个方面来考虑 , 大家可以按照以下几个参考步骤学习:
1、了解ZYNQ , 环境搭建
(1)了解ZYNQ的介绍 , 包括PS、PL、APU基本概念 。
(2)在网站上找到对应型号的原理图和相关资料 。
(3)在Xilinx的官网上找资料
推荐几个实用的网址
(4)VIVADO , SDK环境的安装使用 , Linux系统的安装 , PetaLinux使用等等
(5)最后 , 找一块ZYNQ开发板 , 用于开发与调试 。
2、ZYNQ PL端入门基础
(1)具有一定的Verilog基础
(2)引脚约束文件XDC(constraints)
(3)综合->实现->生成比特流 , 这里有完整的日志文件
(4)必要的调试手段,仿真软件的使用,仿真文件的编写
3、ZYNQ SOC入门基础
(1)MIO
(2)EMIO
(3)User_IP
(4)UBOOT
(5)XADC
(6)ZYNQ PL 中断请求
(7)ZYNQ 定时器中断
(8)UART 串口中断
(9)User GPIO
(10)AXI_Lite (划重点)
(11)AXI PWM
(12)AXI DMA
(13)LWIP
(14)BRAM
.........
这里有很多 , 很多情况都是PL和PS端相互配合使用 , 互联技术是重点了 。
4、ZYNQ Linux系统开发
(1)搭建工程 , Ubuntu等
(2)包括Uboot编译 , Linux内核Kernel编译 , 设备树和文件系统
(3)Android移植 , Linux移植等等
(4)一键制作启动盘
(5)QSPI 烧写 Linux系统
(6)自动挂载 8GB EMMC 板载内存
(7)在线升级 QSPI 镜像(U 盘方式)
(8)Hello 是一个经典的程序 ,是学习入门必学的一个简单程序 , 能跑 Hello Linux 意味着编程者已经跨入编程的大门了
(9)Hello_Qt在开发板上的运行
(10)使用 Petalinux 定制 Linux 系统
这些都是大学问了 , 涉及的面很广 , 嵌入式与FPGA开发相关联 。
5、ZYNQ HLS 高层次综合
(1)搭建Modelsim和Vivado联合调试环境
(2)shift_led实验
(3)ImageLoad 实验
(4)Skin_Dection实验
(5)Sobel算子硬件HLS实现
(6)基于Hough变换的圆检测
(7)傅里叶变换的HLS实现
- 用于|用于半监督学习的图随机神经网络
- 今日|“舜网”学习强国号今日上线 济南报业全媒体矩阵再添新成员
- SK|SK电讯推出自研AI芯片SAPEON X220 深度学习计算速度是常用GPU 1.5倍
- 效果|这个让你相见恨晚的技巧,能让PPT排版更加有设计感,推荐学习
- 学习C语言的软件,就突然被我绿了?
- 学习python第二弹
- 喵喵机错题打印机P1:随时打印,随时学习,快速整理错题
- 爱可可AI论文推介(10月17日)
- D3学习手记 - 02 - 数据绑定
- TOP8无代码平台:2020年,这些机器学习平台不容错过