0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

zynq和fpga区别快速认识Zynq开发

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-11-04 10:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Zynq的开发四种方式

ZYNQ中包含了两个部分,双核的armFPGA。根据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 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上高度集成CPUDSP、ASSP 以及混合信号功能。

从结构来看,支持FPGA的部分称为PL(Programmable Logic),支持ARM的部分称为PS(Processing System),如下图所示。

7a282716-5be9-11ed-a3b6-dac502259ad0.png

可以看出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文件的合成。

7a7fece4-5be9-11ed-a3b6-dac502259ad0.png

上图中红色框框出来的是二级boot loader程序,黄色框框出来的是FPGA程序,蓝色框框出来的是ARM的用户应用程序,如果我们把Zynq作为独立的FPGA使用时,我们就可以删除蓝色框即ARM用户应用程序,保留红色框二级boot loader程序和黄色框FPGA程序即可。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630265
  • Zynq
    +关注

    关注

    10

    文章

    625

    浏览量

    49239

原文标题:zynq 和fpga区别快速认识Zynq开发

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ZYNQ PS与PL数据交互方式

    ZYNQ SoC 的 PS (Processing System) 和 PL (Programmable Logic) 之间的数据交互是系统设计的核心。
    的头像 发表于 10-15 10:33 530次阅读
    <b class='flag-5'>ZYNQ</b> PS与PL数据交互方式

    RTthread怎么加载zynq的支持包?

    RTthread有xilinx zynq的芯片支持包了么,SDK管理器里面怎么下载ZYNQ的支持包呢?求助
    发表于 09-23 06:05

    fpga开发板 璞致ZYNQ 7000 系列之 PZ7035/PZ7045/PZ7100-FH 核心板与开发板用户手册

    本文介绍了Xilinx Zynq-7000系列可扩展处理平台及其开发板应用。Zynq-7000采用双核ARM Cortex-A9处理器与28nm FPGA架构,支持高性能嵌入式
    的头像 发表于 09-15 15:54 5861次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>开发</b>板 璞致<b class='flag-5'>ZYNQ</b> 7000 系列之 PZ7035/PZ7045/PZ7100-FH 核心板与<b class='flag-5'>开发</b>板用户手册

    ZYNQ UltraScalePlus RFSOC QSPI Flash固化常见问题说明

    璞致 ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
    发表于 08-08 15:49 0次下载

    CH367连接zynq问题

    通过四线SPI连接CH367和zynq时,CH367使用CH367StreamSPI函数设置为四线模式,然后设置SDI为MISO,SDX为MOSI,SCS和SCL为片选和时钟
    发表于 07-03 10:10

    正点原子Z15I ZYNQ 开发板资料发布!板载PCIe2.0、SPFx2、MIPI CSI等接口,资料丰富!

    正点原子Z15I ZYNQ 开发板资料发布!板载PCIe2.0、SPFx2、MIPI CSI等接口,资料丰富! 正点原子Z15I ZYNQ开发板,核心板全工业级设计,主控芯片
    发表于 05-30 16:59

    正点原子Z20 ZYNQ 开发板发布!板载FMC LPC、LVDS LCD和WIFI&amp;蓝牙等接口,资料丰富!

    接口等外设。开发板提供了丰富的开发文档和软件资源,涉及FPGA开发、Vitis开发、Linux系统开发
    发表于 05-30 16:55

    ZYNQ FPGA的PS端IIC设备接口使用

    zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。
    的头像 发表于 04-17 11:26 1751次阅读
    <b class='flag-5'>ZYNQ</b> <b class='flag-5'>FPGA</b>的PS端IIC设备接口使用

    详解Zynq中的SPI控制器

    本文简单介绍Zynq中的SPI控制器。本文将“master”称为“主机”;将“slave”称为“从机”;将“slave slect”从机选择简称为SS。
    的头像 发表于 03-31 10:35 1422次阅读
    详解<b class='flag-5'>Zynq</b>中的SPI控制器

    Zynq7000处理器的配置详解

    添加好ZYNQ7 Processing System IP核后,需要对其进行配置,双击弹出如下窗口。绿色部分表示ZYNQ PS部分中可配置的项目,可以双击转向相应的设置界面,也可以直接在左边的导航列表中选择。
    的头像 发表于 03-27 09:37 2251次阅读
    <b class='flag-5'>Zynq</b>7000处理器的配置详解

    从零开始驯服Linux(一):ZYNQ-Linux启动文件构建全解析

    ,这里主要是为了方便大家直接烧录出厂程序到TF卡中启动开发板,烧录镜像的步骤可以参考《领航者ZYNQ开发板用户快速体验》文档。相比于我们刚刚制作的这些启动文件,一个独立的img镜像文件
    发表于 03-20 16:48

    zynq通过什么接口去控制DLP?

    我是用ZYNQ控制DLP,DLP的投影,给sensor采集。我的问题是zynq通过什么接口去控制DLP。DLP和sensor没有物理连接,sensor会直接拍DLP的投影
    发表于 02-21 06:56

    ZYNQ基础---AXI DMA使用

    前言 在ZYNQ中进行PL-PS数据交互的时候,经常会使用到DMA,其实在前面的ZYNQ学习当中,也有学习过DMA的使用,那就是通过使用自定义的IP,完成HP接口向内存写入和读取数据的方式。同样
    的头像 发表于 01-06 11:13 3577次阅读
    <b class='flag-5'>ZYNQ</b>基础---AXI DMA使用

    Zynq UltraScale+ MPSoC数据手册

    电子发烧友网站提供《Zynq UltraScale+ MPSoC数据手册.pdf》资料免费下载
    发表于 12-30 14:37 3次下载

    基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南

    电子发烧友网站提供《基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南.pdf》资料免费下载
    发表于 12-10 15:31 39次下载