PYNQ 框架 - 中断(INTR)驱动 本文分享了了 PYNQ 平台中关于中断处理和AXI Timer的配置与使用。PYNQ 中断类的基本概念和操作方式,包括中断的启用、等待和清除。AXI Timer 的关键功能,如计时器的加载、计数方式(向上或向下计数)以及中断生成,同时也提到了级联模式和生成/捕获模式的实际应用场景。AXI 中断控制器(INTC)的配置和中断处理机制,如何通过 PYNQ 框架使用 Python 的异步编程模式处理硬件中断。
KV260 - PYNQ 主目录 - U盘挂载 这篇文章主要讲述了在 KV260 上使用 Jupyter Lab 进行 U 盘挂载 和 数据传输 的具体操作步骤。以下是关键点:查看 USB 设备:使用 lsusb 命令查看连接的 USB 设备信息。查看 U 盘设备节点:使用 fdisk -l 命令查看 U 盘的设备节点和分区信息。挂载 U 盘:提供了将 U 盘挂载到常规目录和 PYNQ 主目录的具体命令。查看挂载状态和卸载 U 盘:使用 df 命令查看挂载状态,并提供卸载 U 盘的命令。
PYNQ 框架 - VDMA驱动 - 帧缓存 本文分享在 PYNQ 框架下,AXI VDMA 驱动的部分实现细节,重点分析帧缓存的管理和使用。重点分析了 _FrameCache 和 _FrameList 类的实现与功能。这些类用于管理帧缓存,包括内存分配、帧获取、所有权管理等操作,确保高效的视频数据处理和传输。
基于KV260的基础视频链路通路(MIPI+Demosaic+VDMA) 基于 KV260 + PCAM_5C 构建视频通路,通过 PYNQ 可视化图像,用以进一步处理图像数据,从 MIPI 至图像数据,包括如下要点:在 PYNQ 下通过 IIC 配置 OV5640配置 MIPI CSI-2 Rx subsystem 经验汇总AXI4-Stream 基础设施配置 Sensor Demosaic经验汇总配置 AXI VDMA经验汇总Sensor OV5640 时钟树图像数据流波形抓取
Vivado - Aurora 8B/10B IP 本文介绍在 Block Design 中添加Aurora 8B/10B IP 并加以调试。使用 Streaming 接口使用 VIO 控制回环方式探究收发器的位置信息共享逻辑和例化模板附带 Block Design 的 TCL 代码
Vivado - JTAG to AXI Master (DDR4初始化读写测试) 本文分享了使用 JTAG to AXI Master 调试 DDR4 IP 的过程。要点:使用JTAG to AXI Master 直连 DDR4 IP添加 HLS IP 初始化 DDR4 IP格式化显示传输事务保存传输事务记录
Vivado - BD(差分时钟、简单分频、RESET、KEY) 了解 Utility Buffer v2.2 中的 Buffer,重点分析 IBUFDS 和BUFGCE_DIV分析Processor System Reset v5.0分析按键消抖模块(key_mod)了解与 ILA 相关自动生成的约束
Vivado - JTAG to AXI Master (GPIO、HLS_IP、UART、IIC) JTAG to AXI Master 功能简介;在 Vivado 中添加该 IP;基本 TCL 操作命令;三个示例(通过JTAG to AXI 控制 AXI GPIO;通过JTAG to AXI 控制 AXI IIC;通过JTAG to AXI 控制 HLS IP Core)
KV260 进阶开发(PYNQ驱动开发+Pixel Pack) 本文讨论在 PYNQ 框架下,使用 Python 驱动 Vitis HLS Kernel。使用 Registermap 也可以完成驱动,即直接操作所有寄存器。通过Python 方式编写的驱动更直观,可以理解为对Registermap 的封装。Registermap 和Python 驱动,底层都是调用 MMIO 的读写。
Vitis AI 进阶认知(pybind11) pybind11 介绍、Jupyter Lab 中的快速编译和加载、使用编译器链接器标志、pybind11 的基本用法、pybind11 的类的绑定用法、vart::Runner 类的 Python 绑定源代码解释。
Vitis AI 综合实践(DPU example: dpu_resnet50.ipynb) 例程: dpu_resnet50.ipynb。介绍 DPUOverlay 类及其在 PYNQ 中的作用,包括加载比特流和模型、管理 DPU 运行时等功能。解析图像预处理流程,包括调整图像大小、均值归一化以及中心裁剪等步骤,确保输入数据符合模型要求。标签读取、图像读取和推理执行的过程,强调内存管理与数据结构的使用。介绍与 DPU 相关的类和库,如 VART,以便更好地理解整个推理流程及其背后的实现机制。
Vitis AI 基本认知(Tiny-VGG 项目代码详解) 本文分享 Tiny-VGG 项目的代码解析,对于冗余部分,进行了删减。主要内容包括:图像数据预处理;手动计算:训练损失、训练准确度、验证损失、验证准确度;自定义训练循环;数据集加载器;修正目录;计算图。
Vitis AI 进阶认知(Torch量化基础+映射+量化参数+对称性+每通道+PTQ+QAT+敏感性) 本文介绍了量化基本概念,如映射函数、量化参数、校准方法以及对称与非对称量化的区别,探讨了Per-Tensor和Per-Channel量化策略,以及训练后静态量化(PTQ)和量化感知训练(QAT)的应用。
Vitis AI 基本认知(构建线性回归Torch/TensorFlow+欠定系统+过拟合) 在本学习笔记中,笔者探讨了不同深度学习框架下构建线性回归模型的方式,主要集中于 TensorFlow 和 PyTorch。通过使用 Keras 的 Sequential 和 Functional API,我们展示了两种模型构建方式的特点与适用场景。Sequential API 适合简单的线性堆叠模型,而 Functional API 则提供了更大的灵活性,适用于复杂的网络结构。
Vitis AI 基本认知(TensorBoard+Epoch+zero_grad) 1).介绍和使用 TensorBoard;2).解释 Epoch、Batch、Iteration;3).解释训练循环中的梯度累加
我的创作纪念日 我希望通过文章进行技术交流,与更多志同道合的朋友分享我的心得和体会。未来,我希望继续在技术创作的道路上前行,不断提升自己的技术水平和创作能力。创作已经成为我生活的一部分。通过合理安排时间,我能够在工作之余抽出时间进行创作,记录下自己的技术成长和心得体会。通过创作,我结识了许多志同道合的领域同行,大家在技术交流中互相学习,共同进步。在这段时间里,尽管还有很多需要学习和提升的地方,我还是取得了一些小小的进步。
Vitis AI 基本认知(DPU并行度+反向传播+损失+指标+模型参数量+模型分析+极简残差) 这篇文档介绍了一个名为CNN Explainer的交互式可视化系统,旨在帮助非专业人士学习卷积神经网络(CNN)。该系统通过直观的方式展示了CNN的工作原理,使用户能够更好地理解复杂的神经网络结构和运算过程。