ZYNQ 异构
文章平均质量分 89
ZYNQ 异构
爱洋葱
One battle, one person
展开
-
Zynq-PS-SDK(15) 之 OV5640-HDMI 视频通路软件配置
《Zynq-PS-SDK(13) 之 VDMA+VTC+AXI4S-VideoOut 视频通路软件配置》将硬件做好后,导出到 SDK,我们进行代码的编写,代码主要分为两部分:1、SCCB 的 I2C 对 OV5640 进行配置;2、配置 VDMA + VTC + Dynamic Clock;先 reset,完成 SCCB 的配置,然后进行 IP 核的配置,main 函数如下所示:/*****************************************************原创 2021-05-24 15:18:43 · 1610 阅读 · 2 评论 -
Zynq-PS-SDK(14) 之 OV5640-HDMI 视频通路硬件搭建
目录1、OV56401.1、OV5640 Input Signals1.2、OV5640 Output Signals2、Video In to AXI4-Stream在前面介绍了使用 VDMA + VTC + Video Out 搭建的显示通路,后端接转码 TMDS 差分信号输出到 HDMI 上;这里不再使用静态图片,使用 OV5640 摄像头作为 Video 输入,最终将视频信息输出到 HDMI 屏上;数据的输出部分,我们沿用之前的 VDMA + VTC + Dynamic C.原创 2021-05-24 14:59:09 · 3900 阅读 · 2 评论 -
Zynq-PS-SDK(13) 之 VDMA+VTC+AXI4S-VideoOut 视频通路软件配置
在《Zynq-PS-SDK(12) 之 VDMA+VTC+AXI4S-VideoOut 视频通路硬件搭建》我们已经生成了 bitStream,硬件环境已经准备 OK,接下来进行软件的配置;软件的配置主要针对的对象是下面的黄色部分,也就是 AXI4-lite 总线接入的寄存器配置,涉及到如下:1、Dynamic Clock Generator;2、VTC;3、VDMA;这里新增一个函数,叫做Steph_VideoEngineInit,用于配置 video 相关的寄存器:/*.原创 2021-05-09 23:22:51 · 5392 阅读 · 0 评论 -
Zynq-PS-SDK(12) 之 VDMA+VTC+AXI4S-VideoOut 视频通路硬件搭建
前面分别叙述了《Zynq-PS-SDK(9) 之 VDMA》、《Zynq-PS-SDK(10) 之 VTC》以及《Zynq-PS-SDK(11) 之 AXI4-Stream To Video Out》;搭建一个简单的视频通路(Framebuffer -> HDMI)就要用到这些个模块,总体的设计框图如下所示:视频数据的 Framebuffer 在 DDR 中,通过 Processing System 写入进去;数据通过高带宽的 AXI4 接口(这里用到了 HP AXI,即 64bits 带原创 2021-04-27 00:30:29 · 4106 阅读 · 0 评论 -
Zynq-PS-SDK(11) 之 AXI4-Stream To Video Out
目录1、Architecture2、Signals3、Timings4、General Design Guidelines1、Architecture前面介绍了《Zynq-PS-SDK(9) 之 VDMA》和《Zynq-PS-SDK(10) 之 VTC》,数据流和时序流;从 VDMA 出来的是 AXI-Stream 流式数据,从 VTC 出来的是像素时钟得到的 Hsync,Vsync,Hbank,Vbank等时序信号,而我们最后对应到 HDMI 的是像素和时序一起的信号,所以这里需要原创 2021-04-25 20:43:04 · 4380 阅读 · 0 评论 -
Zynq-PS-SDK(10) 之 VTC
在《Zynq-PS-SDK(9) 之 VDMA 》中,描述了 VDMA 的作用和用法,VDMA 可以按照我们配置的数据量(图像的宽高),从固定 FrameBuffer 地址,将主存中的数据取出(或者写入);本质上是完成了主存的数据(具体的说,是图像数据)的高带宽搬移;为了实现 PS 通过帧存操作 PL 端的 HDMI 进行输出,光有 VDMA 不够,我们还需要时序生成器,具体可以参考《Zynq-PL之HDMI显示》,在《Zynq-PL之HDMI显示》中,我是自己写了一个叫做hdmi_timing_ge.原创 2021-04-21 21:10:25 · 2514 阅读 · 0 评论 -
Zynq-PS-SDK(9) 之 VDMA
目录0、Prepare1、Preview2、VDMA2.1、Features2.2、Channels defines2.2.1、Write Channel(S2MM)2.2.2、Read Channel(MM2S)2.3、Performance2.3.1、Frequency2.3.2、Latency2.3.3、Throughput2.3.4、Resource Utilization2.4、Signals2.5、Timings2.5.1、Read T原创 2021-04-21 01:12:44 · 5907 阅读 · 0 评论 -
Zynq-PS-SDK(8) 之双核通信 (AMP)
目录0、Hardware1、SDK Configurations2、Source Code2.1、CPU 02.2、CPU 1Zynq 的 PS 端是 ARM Cortex-A9 的双核,前面的工程都是只是用了单核来跑,现在来玩玩双核,并且使用双核进行通信;在 UG585 上有如下描述:默认情况下,CPU0 作为启动 CPU,而 CPU1 处于 WFE 的状态,唤醒 CPU1 的方式是往地址 0xFFFFFFF0 写入一个地址,然后使用 SEV 指令,去唤醒 CPU.原创 2021-04-15 15:14:10 · 1825 阅读 · 0 评论 -
Zynq-PS-SDK(7) 之自定义 AXI-Lite IP
目录1、New AXI-Lite IP1.1、Create AXI-Lite IP1.2、Edit AXI-Lite IP2、Block Design AXI-Lite IP3、Software design前面说了 PS-PL 之间的连接《Zynq-PS-SDK 之 PS-PL 连接》以及已经使用了 Vivado 自带的 AXI GPIO 的 IP,并且在 PS 端进行访问《Zynq-PS-SDK 之 AXI GPIO》,我们依然以下面这个图为目标,来进行覆盖设计:这.原创 2021-04-09 11:17:04 · 1306 阅读 · 0 评论 -
Zynq-PS-SDK(6) 之 AXI GPIO
目录1、Block Design2、Generate top level3、Add constraints & Bitstream4、Export Hardware5、Software driver5.1、Datasheet5.2、Code前面说过 PS 端可以使用 EMIO 来映射 IO,进而使用到 PL 端的 IO 口,另外一种办法就是使用 AXI 总线互联,在 PL 端实现一个逻辑,通过 AXI 总线进行配置和访问,这里先以一个最简单的 IO 控制为例;.原创 2021-04-07 17:09:45 · 1680 阅读 · 3 评论 -
Zynq-PS-SDK(5) 之 PS-PL 连接
目录0、Preview1、Clocks and Resets2、Interrupt Signals3、Event Signals4、AXI Interface前面单独针对 PL 和 PS 进行了一些开发,PL 可以当做纯 FPGA 开发,PS 可以认为是纯 ARM Cortex-A9 Dual Core +外设驱动的开发;Zynq 的魅力在于可以同时定制 FPGA + Software 的定制开发,想想都刺激,这也是我为何打算玩 Zynq 的初衷,能够在一颗芯片上,同时体验 F.原创 2021-03-30 23:06:33 · 1937 阅读 · 0 评论 -
Zynq-PS-SDK(4) 之 GIC 配置
目录1、Configuration2、GIC SDK Architecture2.1、Structures2.1.1、GIC interruptvectortable2.1.2、GIC info2.1.3、GIC2.2、Functions2.2.1、Basic2.2.2、APIs2.3、Configure flow2.3.1、XScuGic_LookupConfig2.3.2、XScuGic_CfgInitialize2.3.3、Xil_Excepti..原创 2021-03-23 16:22:54 · 4701 阅读 · 2 评论 -
Zynq-PS-SDK(3) 之 PLL 配置
1、InitializeZynq 带 PS 的裸机启动,可以选择 SD Card、QSPI、或者 JTAG;这里以 JTAG 为例;在 Launch SDK 的 Debug 的时候,sdk 目录下会生成 ps7_init.c 这个里面就是初始化的内容;从入口开始看:ps7_init;intps7_init() { // Get the PS_VERSION on run time unsigned long si_ver = ps7GetSiliconVersion (); ...原创 2021-03-16 17:30:11 · 3459 阅读 · 3 评论 -
Zynq-PS-SDK(2) 之 EMIO 使用
目录1、Descriptions1、Usage1.1、PL 配置1.2、PS 代码1、Descriptions在前面一篇里面写了《Zynq-PS-SDK 之 MIO 使用》,MIO 可以理解为 PS 端(ARM 端)的硬连线到外部,Zynq 也提供了一种方式,从 PS 端连到 PL 端的 IO,称之为 EMIO(External 的意思);GPIO Bank 和前面的一些概念这里不再重复,直接参考《Zynq-PS-SDK 之 MIO 使用》;这里看到 EMIO 有 32.原创 2021-03-11 00:23:00 · 3377 阅读 · 2 评论 -
Zynq-PS-SDK(1) 之 MIO 使用
1、MIO 配置以及寄存器Zynq 7020 的 PS 端(ARM 端)的外设 IO(也叫 IOP)分为 MIO 和 EMIO,他们有什么区别呢?首先他们都是 PS 端的 IO 资源,MIO 有 54 个 Pin 脚,分为两个 Bank(Bank0、Bank1)是 PS 直接的管脚连接,可以接诸如 UART、SPI、IIC、GPIO 等具体的外设引脚;EMIO 也是 PS 的资源,它接到了 PL 端,由 PL 端输出信号;这里,我们可以简单的理解为,MIO 是可以通过 Pin...原创 2021-03-09 15:03:53 · 7279 阅读 · 0 评论 -
Zynq-PL之HDMI显示
有了 《HDMI 1.4 协议浅析》的加持,那么使用 ZYNQ 搞一个 HDMI 输出来玩玩;1、硬件原理图首先,在硬件上,HDMI Connector 信号直接从 PL 端引出来,根据 HDMI 1.4 的协议呢,传输需要以 TMDS 差分信号进行传输所以呢,在物理上,我们需要关注的管脚有:HDMI DATA[2:0] 的 TMDS 差分信号对;HDMI CLK 的 TMDS 差分信号对;...原创 2021-02-01 21:22:10 · 7650 阅读 · 1 评论 -
Zynq-PL之PWM呼吸灯
目录1、硬件原理图1.1 LED2、全局时钟3、复位2、设计2.1、LED 闪烁控制2.2、LED 的 PWM 呼吸灯2.2.1、PWM 控制器2.2.2、PWM 占空比可变2.3、顶层设计2.4、约束玩 Zynq 呢,可以有几个方面,单玩 FPGA,单玩 ARM Cortex-A9 Dual Core,ARM+FPGA 带操作系统,FreeRTOS 或者 Linux;FPGA 侧叫 PL,先以一个简单的 PWN + LED 的工程来认识和配置 .原创 2021-01-31 21:27:05 · 1496 阅读 · 0 评论 -
ZYNQ 中断子系统
ZYNQ-7000 带双核 Cortex-A9 处理器的 7020 芯片,PS 端集成的是 GIC 中断控制器;原创 2020-05-13 21:24:33 · 1888 阅读 · 0 评论 -
ZYNQ 时钟子系统
ZYNQ 时钟子系统...原创 2020-04-29 19:30:00 · 5680 阅读 · 4 评论 -
ZYNQ 复位子系统
ZYNQ 复位子系统原创 2020-04-27 00:38:28 · 7789 阅读 · 2 评论 -
ZYNQ 启动分析
1、简述ZYNQ 的详细介绍参考 XILINX 官方文档UG585,在了解了 ZYNQ 的基本架构组成和丰富的资源后,下一步便是分析他的启动流程,以便更好的认识 ZYNQ;关于 ZYNQ 启动方面的描述,这里我觉得涉及到几个大的方面:1、系统上电启动执行过程;2、系统复位相关流程;3、系统时钟树;上面 3 点在 UG585 Datasheet 中都分别是一个大的...原创 2020-04-26 19:28:48 · 7356 阅读 · 1 评论 -
ZYNQ 资源介绍
目录1、简述2、PS 资源2.1、应用处理器单元 APU (Application Processing Unit)2.2、存储器接口2.2.1、DDR控制器2.2.2、Q-SPI 控制器2.2.3、静态存储器控制器(Static Memory Controller, SMC)2.3、I/O 外设2.3.1、GPIO2.3.2、ETH X 22.3.3、...原创 2020-02-24 23:12:19 · 15464 阅读 · 0 评论 -
ZYNQ 简介
传统的嵌入式集成电路应用级芯片常见的 DSP,ARM,PowerPC,MIPS,FPGA 等,FPGA 有灵活性好,资源丰富,可反复编程(Programmable)速度快(并行)的优势。在以往的应用中,常有场景需要使用 ARM 作为主控,通过 ARM 的外设并行 RAM 类总线外挂 FPGA ,使用 FPGA 来做高速的数据采集或者运算的架构,在通信,医疗电子等等行业,这都屡见不鲜;XILI...原创 2020-02-19 22:24:56 · 44025 阅读 · 9 评论