开发流程
ZYNQ 的开发也是先硬件后软件的方法。具体流程如下:
1) 在 Vivado 上新建工程,增加一个嵌入式的源文件。
2) 在 Vivado 里添加和配置 PS 和 PL 部分基本的外设,或需要添加自定义的外设。
3) 在 Vivado 里生成顶层 HDL 文件,并添加约束文件。再编译生成比特流文件(*.bit)。
4) 导出硬件信息到 SDK 软件开发环境,在 SDK 环境里可以编写一些调试软件验证硬件
和软件,结合比特流文件单独调试 ZYNQ 系统。
5) 在 SDK 里生成 FSBL 文件。
6) 在 VMware 虚拟机里生成 u-boot.elf、 bootloader 镜像。
7) 在 SDK 里通过 FSBL 文件, 比特流文件 system.bit 和 u-boot.elf 文件生成一个 BOOT.bin
文件。
8) 在 VMware 里生成 Ubuntu 的内核镜像文件 Zimage 和 Ubuntu 的根文件系统。另外还
需要要对 FPGA 自定义的 IP 编写驱动。
9) 把 BOOT、内核、设备树、根文件系统文件放入到 SD 卡中,启动开发板电源,Linux
操作系统会从 SD 卡里启动。
以上是典型的 ZYNQ 开发流程,但是 ZYNQ 也可以单独做为 ARM 来使用,这样就不需要关
系 PL 端资源,和传统的 ARM 开发没有太大区别。ZYNQ 也可以只使用 PL 部分,但是 PL 的配
置还是要 PS 来完成的,就是无法通过传统的固化 Flash 方式把只要 PL 的固件固化起来。
开发所需技能:
学习 ZYNQ 比学习 FPGA、MCU、ARM 等传统工具开发要求更高,想学好 ZYNQ 也不是一
蹴而就的事情。
软件开发人员 :
计算机组成原理
C、C++语言
计算机操作系统
tcl 脚本
良好的英语阅读基础
逻辑开发人员:
计算机组成原理
C 语言
数字电路基础
Verilog、VHDL 语言
良好的英语阅读基础
Vivado软件
Vivado 软件的 Xilinx 官方下载地址:http://china.xilinx.com/support/download.html
FPGA:
FPGA 是可以先购买再设计的“万能”芯片。FPGA (Field Programmable Gate Array)现场可编程门阵列,是在硅片上预先设计实现的具有可编程特性的集成电路,它能够按照设计人员的需求配置为指定的电路结构,让客户不必依赖由芯片制造商设计和制造的 ASIC 芯片。广泛应用在原型验证、通信、汽车电子、工业控制、航空航天、数据中心等领域。
Verilog:
1.1 Verilog 教程 | 菜鸟教程 (runoob.com)
Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。
Verilog 继承了 C 语言的多种操作符和结构,与另一种硬件描述语言 VHDL 相比,语法不是很严格,代码更加简洁,更容易上手。
Verilog 不仅定义了语法,还对语法结构都定义了清晰的仿真语义。因此,Verilog 编写的数字模型就能够使用 Verilog 仿真器进行验证。
数字电路和模拟电路的概念:
数字电路:处理数字信号的电路,用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路;
模拟电路:处理模拟信号的电路;
Verilog语言和Vivado软件:(我的理解就是java语言和idea软件)
利用Verilog描述该器件功能,然后使用Vivado软件对HDL语言所描述的电路综合、逻辑仿真等后续过程。
总线相关:
(1)按数据传送方式可分为并行传输总线和串行传输总线 (2)按连接部件不同,可分为:片内总线、系统总线、通信总线; 片内总线 :芯片内部的总线,如CPU内部; 系统总线 :CPU、主存、I/O设备各大部件之间的信息传输线;按系统总线传输信息的不同,又可分为三类:数据总线、地址总线、控制总线
片内总线AXI:
AXI就是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一部分,是一种高性能、高带宽、低延迟的片内总线,也可以用来替换以前的AHB核APB总线。
总线的学习技巧:拿下AXI—入门简介 - 知乎 (zhihu.com)
这里有一个总线的应用例子:AXI总线介绍 - 知乎 (zhihu.com)
GPIO:
gpio:通用型之输入输出的简称,用于电信号在电路中的输入输出,以方便控制电路部件。
MIO:
【ZYNQ PS】第1篇:MIO、GPIO是什么?_mio接口_黑猫学长呀的博客-CSDN博客
MIO:就是ps和外设之间的桥梁。如果没有mio,外设和ps的gpio就一一对应,但是通过mio,就可以实现多路复用。