Zynq和FPGA区别——快速认识Zynq开发
Zynq和FPGA区别——快速认识Zynq开发
ZYNQ包含了2个部分,双核的ARM和FPGA。根据Xilinx提供的手册,用ARM实现的模块被称为PS,而用FPGA实现的模块被称为PL。简单的说FPA更偏向于逻辑,不跑系统。
ZYNQ内部包含PS和PL两部分,ZYNQ开发有一下四种方式:
文章目录
- Zynq和FPGA区别——快速认识Zynq开发
- 前言
- 一、单纯做纯PS/PL开发
- 1、纯PS开发
- 2、纯PL开发
- 二、混合在一起开发
- 3、PS+PL(不跑操作系统)开发
- 4、PS+PL(跑操作系统)开发
- 三、SOC FPGA
- 工作
- 在功耗方面总结
前言
ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统,它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。
ZYNQ旨在为视频监控、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理能力与计算性能。这款基于ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。
一、单纯做纯PS/PL开发
1、纯PS开发
PS中包含2个ARM Cortex-9的内核,一些基本的外设扩展口以及Memory接口。PS中包含以下4个主要功能模块:
Application processor unit (APU)Memory interfacesI/O peripherals (IOP)InterconnectPS开发有两种方式:即传统的arm的方式和xilinx方法(这个是生成一个elf文件,这个elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件))。
2、纯PL开发
PL即FPGA,这个和一般的xilinx的FPGA没有很大的区别。
二、混合在一起开发
3、PS+PL(不跑操作系统)开发
生成elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件),还有一个.bit文件。
4、PS+PL(跑操作系统)开发
这个就需要BOOT.BIN,设备树,linux内核镜像,文件系统了。
其中BOOT.BIN是由3部分组成的(boot.elf, .bit, fsbl.elf),boot.elf这个是由交叉编译环境产生的,相当于ssbl,.bit文件是PL使用文件,fsbl.elf这个是fsbl。
之前刚开始学FPGA的时候用的是基于spartan的FPGA开发板,当上手ZYNQ后一直以为ZYNQ就是在资源上做了升级,我所要做的工作无非是把开发工具从ISE升级到VIVADO罢了,后来发现自己还是过于天真了,很多事都有存在的意思,上手之后便发现ZYNQ和之前的板子有区别。
三、SOC FPGA
区别就是ZYNQ除了传统FPGA外,还把ARM核和FPGA结合在了一起,成为了内嵌处理器硬核的FPGA,即SOC FPGA,二者利用高速总线AXI4进行通信。
内部结构 PL与PS
由于它既有FPGA又有ARM,所以它同时具有ARM软件的可编程性和FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上高度集成 CPU、DSP、ASSP 以及混合信号功能。
从结构来看,支持FPGA的部分称为PL(Programmable Logic),支持ARM的部分称为PS(Processing System),如下图所示。
可以看出PS部分有很多接口,如SPI,UART,CAN等等,这些接口的存在可以让FPGA不用写控制器去传输,节省了资源但是牺牲了速度。
工作
PL端和PS端一般通过AXI4总线通信,使用AXI4的PL模块会有相应c驱动文件,用于PL端模块的控制。这些驱动文件有裸机版本,也有linux版本,linux运行时,如果调用pl端模块就使用这些驱动即可。
Zynq的启动分三个阶段。阶段0是BOOTROM的固化代码,不用管;阶段1中,first stage boot loader 首先配置PS端,之后硬件比特流对PL进行配置。阶段2运行用户程序,Linux的BOOT loader在这个阶段才开始运行。
ZYNQ并不能说是一个嵌入ARM核的FPGA。从它的启动过程就可以发现,绝对是ARM主导的,因此称它为以高性能FPGA为外设的双核ARM或许更为合适。
那么就有一个问题Zynq可以作为独立的ARM或者独立的FPGA使用吗?答案是肯定的,可以的。
首先,Zynq可以作为独立的ARM使用是显而易见的,因为Zynq中ARM就是主处理器,上电启动过程也是由ARM来完成的,除了新建ARM工程时需要HDL硬件描述文件(HDL硬件描述文件的制作也很简单),其他都一样。
其次,Zynq作为独立的FPGA使用其实也是可以的,首先我们可以跟使用传统的FPGA一样使用Vivado集成开发环境综合编译工程并通过JTAG接口下载bit文件。唯一的不同是在我们烧写启动时,我们需要把bit文件和FSBL源码合成为一个bin文件烧写后才能启动,上电启动时ARM会先运行加载FSBL程序,然后通过FSBL会加载FPGA的程序。FSBL程序是Xilinx提供的集成在SDK里的二级boot loader程序,我们在SDK集成开发环境中通过很简单的操作就可以完成FSBL程序和bit文件的合成。
上图中红色框框出来的是二级boot loader程序,黄色框框出来的是FPGA程序,蓝色框框出来的是ARM的用户应用程序,如果我们把Zynq作为独立的FPGA使用时,我们就可以删除蓝色框即ARM用户应用程序,保留红色框二级boot loader程序和黄色框FPGA程序即可。
在功耗方面总结
FPGA和SoC设备的功耗是密切相关的,因为所有的SoC都包括一个与FPGA有效相同的PL区域。与Zynq和Zynq MPSoC相比,Zynq MPSoC器件的中的功耗(每个逻辑单元)较低,整体性能较高,这是由于UltraScale+ FPGA体系结构的各种优化所致。在PS方面,Zynq MPSoC体系结构更加复杂,提供了更高的性能,还包括了电源管理等附加特征。
Zynq和FPGA区别——快速认识Zynq开发相关推荐
- zynq 和fpga区别_FPGA复位的正确打开方式
本篇文章参考Xilinx White Paper: Get Smart About Reset: Think Local, Not Global 在没看这篇文章前,回想一下平时我们常用的复位方式: 1 ...
- 【正点原子FPGA连载】第一章 ZYNQ简介 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- 【正点原子FPGA连载】第四章 Vivado软件的安装和使用 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- 【正点原子FPGA连载】第八章LED灯闪烁实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- ZYNQ之FPGA 片内RAM读写测试实验
文章目录 前言 一.添加RAM IP核 二.编写测试程序 三.添加ILA 四.分配管脚 五.Simulator仿真 六.硬件调试 总结 前言 本实验的主要内容是介绍如何使用 FPGA内部的RAM以及程 ...
- ZYNQ之FPGA 片内ROM读写测试实验
文章目录 前言 一.创建ROM初始化文件 二.添加ROM IP核 三.编写测试程序 四.添加ILA 五.分配管脚 六.Simulator仿真 七.硬件调试 总结 前言 FPGA本身是SRAM架构的,断 ...
- zynq自定义PL IP核linux驱动开发流程
概述 zynq的开发主要分为两个阶段: 1)硬件逻辑开发阶段:该过程与传统的fpga 软核cpu(microblaze)开发类似,在vivado中进行.需要在BlockDesign中例化zynq硬核c ...
- ZYNQ之FPGA学习----RAM IP核使用实验
1 RAM IP核介绍 RAM 的英文全称是 Random Access Memory, 即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度 ...
- 通过vivado工具实现zynq的FPGA内部RAM读写
通过vivado工具实现zynq的FPGA内部RAM读写(调用vivado自带IP核),从新建工程到仿真并下载到FPGA开发板中,通过vivado自带的ILA逻辑分析仪查看读写数据是否正确,包含详细步 ...
最新文章
- 在虚拟机中的Nginx的安装
- DPDK pmd驱动初始化(十九)
- 452 Minimum Number of Arrows to Burst Balloons
- HTML5中常见的列表标签包括,介绍几个常用的HTML5标签
- jquery插件制作 -- 3.表单验证
- overleaf 公式_Latex的公式输入
- chrome 插件tempermonkey
- 论文复现——PFLD——人脸关键点检测
- html+mp4在线播放代码,MP4 - html代码库 - 云代码
- 巴比特 | 元宇宙每日必读:“由虚向实”的工业元宇宙落地情况如何?未来又将走向何方?...
- 未来公园怎么能少了广场舞?
- ubuntu16.04Cuda8.0安装opencv3.1
- 【机器学习】预测偏差与其原因
- 《爆款文案》的读后感作文3000字
- 64bit ubuntu 14 04 LTS 火狐浏览器广告过滤插件
- 移动web知识总结(超详细)附带思维导图
- 澳大利亚海拔数据 澳大利亚海拔DEM数据
- 汉语言文学自考本科难不难呀?
- 什么是产品?什么是产品经理?
- GeneXus低代码如何简化和加速30个公司协同开发一个应用程序
热门文章
- video标签不能自动播放的原因
- SSIS - 1.简介
- 11个程序员必备简捷开发辅助工具
- vscode里面如何配置库_怎么为vscode添加库文件_编程开发工具
- jupyterlab:Failed to load the jupyterlab-git server extension问题如何解决?
- 实现css文字垂直居中的8种方法
- 文献检索课程笔记3——论文写作
- spm12预处理步骤及知识点总结
- H3C VALN-MSTP-VRRP实验日记
- 《2020 数字中国指数报告》重磅发布,汤道生宣布将投入 100 亿用于开发中小企业专属 SaaS 产品及方案...