Zynq-7000和MPSoC有很多MIO管脚。如果外设有中断,也可以通过MIO驱动。
本文主要介绍ZYNQ PS + PL异构多核案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx SDK 2017.4。其中测试板卡为TMS320C6678开发板,文章内容包含多个特色案例,如axi_gpio_led_demo案例、axi_timer_pwm_demo案例、axi_uart_demo案例、emio_gpio_led_demo案例、mig_dma案例等,由于篇幅过长,文章分为上下6个小节展示,欢迎大家按照顺序进行文章内容查看。
本文主要介绍说明XQ6657Z35-EVM 高速数据处理评估板ZYNQ(FPGA)与DSP之间GPIO通信的功能、使用步骤以及各个例程的运行效果。
本博客着眼于驱动 GPIO 连接的 LED(PS 端)。虽然使 LED 闪烁是一项非常简单的任务,但通过驱动使 LED 闪烁所需的步骤,我们可以进一步探索 Zynq SoC 的其他方面,例如其定时器和中断。我将在以后的博客中讨论这些主题。Zynq SoC 具有多个通用 I/O 引脚,它们组合起来创建一个 10 位宽的通用 I/O 端口,如下所示。此 GPIO 组以混合电压分布在两个 MIO 组中。在本例中,我们的 LED 将连接到 MIO 47。
今天给大侠带来FPGA Xilinx Zynq 系列第十八篇,本篇是第一部分 PART A的最后一篇,下一篇将开启PART B,Zynq SoC & 硬件设计。本篇内容目录简介如下:
这篇文章记录《xilinx ZYNQ7000 》 系列的基本概念(我用的芯片是ZYNQ7020 软件Vivado 2017.4)
最近十几年,整个芯片产业都感觉到了摩尔定律的放缓,甚至失效。根据A Domain-Specific Architecture for Deep Neural Networks,以后CPU每年的性能只能进步3%左右。要改进系统性能,只能定制架构(Domain-Specific Architecture)和芯片。
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
虽然,中断很复杂,但是,值得庆幸的是,独立板支持包 (BSP) 包含许多功能,可以大大简化这项任务。将在以下头文件中找到这些函数:
本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。
今天给大侠带来FPGA Xilinx Zynq 系列第二十四篇,开启十二章,讲述Zynq SoC 设计的下一步等相关内容,本篇内容目录简介如下:
这篇博文特别关注 Zynq SoC 的多用途 IO (MIO, Multipurpose IO) 模块。正是这个接口块为 Zynq SoC 的双核 ARM Cortex-A9 MPCore 处理器提供了许多标准接口。MIO 还包含确定 Zynq SoC 如何启动的配置设置。MIO 连接到 Zynq SoC 的 PS(处理器系统)端。它连接到 Zynq 设备上的 54 个引脚(注意 CLG225 封装中的 Zynq-7010 SoC 有 32 个 MIO 引脚),用于以下用途:
实时性是一个嵌入式系统很重要的性能,实时性体现在一个系统对外部事件的响应能力和处理能力上,而CPU对一个事件的响应及处理主要依托于 —— 中断。 通俗的来说,中断的一个基本过程就是:当一个事件发生时(比如按键按下),产生一个可以发送到CPU的中断信号(上升沿或下降沿无所谓,是个信号就行),当CPU接收到这个中断信号后,对这个中断信号所表示的事件进行处理(跳转去执行中断服务程序,对按键按下这个事件进行处理)。 对这个基本过程抽象出来一个中断系统模型如图所示:
现在遇到这样一个问题,没有USB,甚至于USB都没有电压输出,检查电路,USB供电是由一个TPS2051BDBV来控制的,这个芯片又是USB3320C来控制的,说明这个芯片没有工作。经过一天的排查,最后终于找到原因了。是因为没有设置设备树。设备树这方面我并不是很懂,所以整理一下。 首先,先找到编译出来的设备树。文件是images/linux/system.dtb。 在这篇文章 《设备树(device tree)学习笔记》 找到了反向编译工具fdtdump,使用fdtdump工具将其反向编译。 结果就是这样的:
(1)ZYNQ中PS端MIO操作 (2)ZYNQ中PS端MIO中断 (3)ZYNQ中PS端UART通信
Xilinx Zynq-7000 芯片的PS端MIO(multiuse I/O)所在位置如下图红色框所示。MIO(0:15)在bank0上,MIO(16:53)在bank1上。他们不需要管脚约束,既可以当做PS 端普通的IO也可以用做PS端SPI、I2C、CAN等总线。
Generate the Output Products就是vivado用IP的形式(.v)实现bd框图。
https://www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf
分享产品试用报告,测试板卡是基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板。
MPSoC是带ARM处理器和FPGA(PL)的SoC,包含4核A53及其常用外部模块(PS)。A53(PS)使用Arm GIC-400,属于GICv2架构。如果想了解GIC-400的具体细节,请参考文档APU GIC: CoreLink GIC-400 Generic Interrupt Controller, DDI 0471B, r0p1。
上一节中分别独立实验了Zynq的PS端和PL端,并初步实验了PS端先硬件再软件的开发流程和IP核设计的设计方法。第一节中提及到:Zynq是以PS端的ARM处理器系统为核心的,PS端和PL端是通过AXI总线,并且Xilinx已经提供了各种AXI通信的IP核,接下来的实验中将会更加明确的体验到利用IP核设计的设计方法。
我们在使用Vivado创建工程时,每次都需要选择相关的板卡器件,比较麻烦,这篇文章就教你怎么创建属于自己的板卡文件,在创建工程时就可以像官方板卡一样在板卡列表里选择。
芯驿电子科技(上海)有限公司 基于 XILINX ZYNQ7000 开发平台的开发板(型号:AX7015) 2018 款正式发布了,为了让您对此开发平台可以快速了解,我们编写了此用户手册。
今天更新下米联客7035的资料,资料很杂,但是肯定是全的,因为没时间去整理,这里和大家道个歉。
这款 MPSoCs 开发平台采用核心板加扩展板的模式,方便用户对核心板的二次开发利用。核心板使用 XILINX Zynq UltraScale+ CG 芯片 ZU3CG 的解决方案,它采用 ProcessingSystem(PS)+Programmable Logic(PL)技术将双核ARM Cortex-A53 和FPGA 可编程逡辑集成在一颗芯片上。另外核心板上 PS 端带有 4 片共 2GB 高速 DDR4 SDRAM 芯片,1 片 8GB的 eMMC 存储芯片和 2 片共 512Mb 的 QSPI FLASH 芯片;核心板上 PL 端带有 1 片 512MB的 DDR4 SDRAM 芯片 。
SOM-XQ7Z15是广州星嵌电子科技有限公司推出的一款基于Xilinx Zynq-7000系列XC7Z015高性能低功耗处理器设计的异构多核工业级核心板。处理器集成PS端单/双核ARM Cortex-A9 + PL端Artix-7架构28nm可编程逻辑资源、最大频率766MHz,支持6.25G的高速SerDes,可支持PCIe、SATA、SFP等。
今天给大侠带来FPGA Xilinx Zynq 系列第十六篇,开启第六章The ZedBoard,本篇内容目录简介如下:
AXI4:高性能内存映射需求(如读写DDR、使用BRAM控制器读写BRAM等),为了区别,有时候也叫这个为 AXI4-Full;
Xines广州星嵌电子研制的SOM-XQ6657Z45是一款基于TI KeyStone 架构C6000 系列TMS320C6657 双核C66x定点/浮点DSP以及Xilinx Zynq-7000 系列XC7Z035/045 SoC 处理器设计的工业级核心板。
这个应该是非常常见的ZYNQ的开发板了,所以就不多介绍了,其中第二个开发板是山寨的Zedboard,也是我入门时候用的,老板人很好,教程也不错,所以就把教程也一并发上来了:
在上一篇中提到,Pynq是为了降低开发人员的门槛,但是作为一个学习嵌入式开发的学生,当然要一步一个脚印打好基础,所以选择从Zynq入手学习,等跑起来Linux系统再运用Python开发也不迟,知其然也知其所以然,开发效率更高,所以接下来的几篇都是关于Zynq的,如果想直接玩Pynq可直接跳过,毫无影响。
使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design中,一种方式是通过自定义IP,但是一旦设计的文件有问题就需要重新修改,同时需要控制接口时候还需要在AXI总线模板基础上进行修改,再同时繁琐的步骤也让人“望而却步”。下面介绍一种简单的方式。
l允许单个,对称或者非对称(Symmetrical MultiProcessing,SMP)的多处理配置。
工作中,一直使用ZCU106,Linux都启动正常。今天同事拆开DDR保护金属外壳,看了DIMM条。
在检查PS端IO口状态时,常用的就是轮询,但是实际工程中很少用这种方式,主要是运行复杂逻辑时,轮询方式效率太低,CPU需要等待IO口状态变化,这种肯定不符合大多数应用,所以多数情况下都是使用中断方式进行驱动的。
这个架构实现了工业标准的AXI 接口,在芯片的两个部分之间实现了高带宽、低延迟的连接。
今天给大侠带来FPGA Xilinx Zynq 系列第二篇,第一篇提到了本系列分成三个部分,详细介绍可见FPGA Xilinx Zynq 系列(一)。第二篇开始第一部分 Part A 开始了解Zynq。本篇内容目录简介如下:
第三部分为SPI,共享外设中断,来自于44个PS端的IO外设以及16个PL端的中断。中间部分为GIC,也即中断控制器,用于对中断进行使能、关闭、掩码、设置优先等。
本次案例用到的是创龙科技的TLZ7x-EasyEVM-S开发板,它是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC评估板,处理器集成PS端双核ARM Cortex-A9 + PL端Artix-7架构28nm可编程逻辑资源,评估板由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
GPIO外设一般用于控制一些简单的外设,如LED、按键和蜂鸣器等,GPIO可以通过MIO连接到PS端的引脚,也可以通过EMIO连接到PL。
PYNQ-Z2是一款FPGA开发板,它以ZYNQ XC7Z020 FPGA为核心,利用ZYNQ中的可编程逻辑和Arm处理器的优势可以构建强大的嵌入式系统,PYNQ的开源框架可以使嵌入式编程用户在无需设计可编程逻辑电路的情况下充分发挥Xilinx ZYNQ SoC的功能,使用Ethernet作为PC和board之间的通讯方式,这块开发板除支持传统ZYNQ开发方式外,还可支持Python进行SoC编程,并且代码可直接在PYNQ-Z2上进行开发和调试。可编程逻辑电路以硬件库的形式导入并且可以通过API编程,这种方式基本上与软件库的导入和编程方式相同。
今天给大侠带来 FPGA Xilinx Zynq 系列 第三部分 Part C 操作系统 & 系统集成,第三部分是关于 Zynq SoC 开发的操作系统的,回顾和讨论了应用程序、动机、 交易、操作系统和产品特性。这里也进一步地深入探讨了在 Zynq 上部署 Linux 的问题,如何把 Linux 与基于 PL 的部分组合起来来形成一个嵌入式系统。
TI DSP TMS320C6657+XC7Z035的高速数据处理核心板由广州星嵌电子科技有限公司自主研发,包含一片TI DSP TMS320C6657和一片Xilinx ZYNQ-7000 SoC 处理器XC7Z035-2FFG676I。适用于无人机蜂群、软件无线电系统,基带信号处理,无线仿真平台,高速图像采集、处理等领域。
1) PL侧的引脚需要1个AXI设备来控制,因此需要我们创建1个AXI IP,因为我们要通过PS来控制PL,所以这个AXI设备必须是AXI slave设备,与之对应,PS侧应包含1个AXI master接口,即是说我们首先要创建1个AXI slave IP。
博主Joel Williams在他的主页中分享了一篇购买便宜的FPGA开发板的攻略,量子位编译本文。
领取专属 10元无门槛券
手把手带您无忧上云