时间:2024-07-30 来源:网络搜集 关于我们 0
今天开始跟大家分享零基础学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的官网上找资料
推荐几个实用的网址
https://www.xilinx.com/support.html
https://xilinx-wiki.atlassian.net/wiki/spaces/A/overview
https://www.xilinx.com/products/design-tools.html
https://www.xilinx.com/support/university.html
(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实现
(8)OTSU自适应二值化
(9)音频滤波
(10)快速角点检测的HLS实现
(11)HLS车牌识别
HLS是高层次综合的的简称,“综合”即“Synthesis”, 在 ug627《XST User Guide》 中解释综合是将程序代码翻译为称为 NGC 的特殊网表文件中,这样才能够对其进行实现。
为了帮到大家深入掌握FPGA高级运用,从零开始学ZYNQ,掌握当下所有主流的嵌入式系统开发方法与知识,懂得如何把自己的IP嵌入式到AXI总线,如何使用SDK测试你的IP和接口;懂得ARM底层设计如何适应ZYNQ平台,基于ZNYQ的嵌入式Linux开发是如何进行的...
诸如以上这些学习疑问,我们都会在ZYNQ课程上逐一讲解到。
所以,编者推荐大家学习这一门FPGA课程《从硬件构架开始学习ZYNQ》,以传统MCU和嵌入式开发为基础,结合主流的FPGA器件开发,并以大量的实战项目、工程源代码(HDMI输出实验、FPGA片上存储、FPGA下板调试、HDMI输入实验、时序分析与实操、Vivado封装自定义IP、Zynq PS与PL综合实验等)作为实战案例,手把手从0到1带你系统化学习FPGA开发。
目前,课程正在全网众筹当中,限时优惠50名
长按扫码,立即查看
课程简介:
这套ZYNQ开发板套件教程,包含FPGA开发板+JTAG下载器+视频课程+项目实践。并提供一整套FPGA硬件基础、入门教程和进阶项目的视频课程,并有大量可直接应用于工程的源代码。
1、魔鬼训练学习:在学习过程中会对FPGA基础知识覆盖式扫盲 、Verilog HDL语法深度讲解;
2、手把手实战开发:让您真正掌握主流FPGA器件开发;
3、彻底掌握:HDMI输出实验、FPGA片上存储、FPGA下板调试、HDMI输入实验、时序分析与实操、Vivado封装自定义IP、Zynq PS与PL综合实验等等;
4、常用技巧应用难点分析:时序基础、时序约束、乒乓、流水线、速度面积、CDC问题;
5、深入讲解:FPGA硬件架构及开发调试工具。
课程亮点
1、40+节系统知识扫盲,涵盖6大知识点:FPGA底层硬件、Verilog语法、ZYNQ裸机、ZYNQ Linux搭建、项目实战;
2、FPGA硬件架构讲解,轻松掌握各类FPGA入门:Xilinx ZYNQ;
3、开发调试工具深入讲解:Vivado、Modelsim、Xilin SDK;
4、常用技巧应用难点分析:时序基础、时序约束、乒乓、流水线、速度面积等;
5、10 +节FPGA硬件基础课程,从代码及底层硬件映射深入讲解:Slice、Distribute Ram 、Storage Elements、Shift Registers、Multiplexers、Carry Logic、Clock、Block RAM、IOB(IO Delay)
6、1000页+ 原厂手册深入解读;
适合学习人群
1、大学在校生,且有一定语言学习基础的入门工程师;
2、有志于转行FPGA和半导体行业的工程师;
3、传统MCU和嵌入式开发已经没法满足项目需求的软件工程师;
课程目录详细大纲
限时众筹优惠,仅限50名
长按下方二维码,立即报名!