zynq的开发四种方式
zynq中包含了两个部分,双核的arm和fpga。根据xilinx提供的手册,arm模块被称为ps,而fpga模块被称为pl。
zynq内部包含ps和pl两部分,zynq开发有一下四种方式:
a:纯ps开发
ps中包含2个arm cortex-9的内核,一些基本的外设扩展口以及memory接口。ps中包含以下4个主要功能模块:
application processor unit (apu)
memory interfaces
i/o peripherals (iop)
interconnect
ps开发有两种方式:即传统的arm的方式和xilinx方法(这个是生成一个elf文件,这个elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件))。
b:纯pl开发
pl即fpga,这个和一般的xilinx的fpga没有很大的区别。
c:ps+pl(不跑操作系统)开发
生成elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件),还有一个.bit文件。
d: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程序即可。
单片机的内部结构和外部结构分析
MAX1510, MAX17510 低电压、DDR线性稳压器
介绍一下汽车内不太起眼但又非常重要的加密芯片
基于恩智浦MPC5744P的SAE J1939协议栈开发
将步进电机与Atmega16连接起来的方法
zynq和fpga区别快速认识Zynq开发
SinoV-100AI单网口单FXS IAD语音网关详细参数介绍
盘点支撑增材制造应用的六大关键技术
建筑行业如何融入无人机技术
人工智能技术正在加速推进中国数字化医疗体系的建设发展
基于单片机实现CAN总线与LIN总线间的传输设计方案
HTC正式面向国内市场发布了升级版VR一体机Vive Focus Plus
双核MCU开发其实也不难!
上海市人民政府出台《上海市促进在线新经济发展行动方案(2020—2022年)》
KT表示2019年底会将5G网络服务覆盖到韩国的85个主要城市
土壤生态环境测试及分析评价系统设备的介绍
单片机最小系统的振荡电路原理分析
微雪电子IC51-0444-400 PLCC44测试座简介
谷歌Pixel4渲染图曝光 赶上浴霸镜头设计潮流
技术资讯 | 如何减少电子电路中的杂散电容