- 博客(136)
- 收藏
- 关注
原创 PYNQ 框架 - OV5640驱动 + Linux 驱动分析
分析一个极简的Char 驱动;分享实时查看日志文件的方法;分析一个极简的 V4L2 驱动分析 OV5640 的 V4L2 驱动;提取OV5640V4L2 驱动代码并转换为 PYNQ 框架代码
2024-11-29 21:00:00 1064
原创 PYNQ 框架 - 时钟系统 + pl_clk 时钟输出不准确问题
介绍 PYNQ 的时钟驱动框架。使用 PYNQ 加载 bit 后,发现 PL_CLK 的输出值不准确。Vivado IDE 中,ZU 时钟输出 DIV2 似乎并未生效。通过 PYNQ Clocks 类,可以动态调节 PL_CLK 输出。
2024-11-26 21:00:00 986
原创 PYNQ 框架 - 中断(INTR)驱动
本文分享了了 PYNQ 平台中关于中断处理和AXI Timer的配置与使用。PYNQ 中断类的基本概念和操作方式,包括中断的启用、等待和清除。AXI Timer 的关键功能,如计时器的加载、计数方式(向上或向下计数)以及中断生成,同时也提到了级联模式和生成/捕获模式的实际应用场景。AXI 中断控制器(INTC)的配置和中断处理机制,如何通过 PYNQ 框架使用 Python 的异步编程模式处理硬件中断。
2024-11-12 23:43:13 877
原创 KV260 - PYNQ 主目录 - U盘挂载
这篇文章主要讲述了在 KV260 上使用 Jupyter Lab 进行 U 盘挂载 和 数据传输 的具体操作步骤。以下是关键点:查看 USB 设备:使用 lsusb 命令查看连接的 USB 设备信息。查看 U 盘设备节点:使用 fdisk -l 命令查看 U 盘的设备节点和分区信息。挂载 U 盘:提供了将 U 盘挂载到常规目录和 PYNQ 主目录的具体命令。查看挂载状态和卸载 U 盘:使用 df 命令查看挂载状态,并提供卸载 U 盘的命令。
2024-11-07 23:49:12 503
原创 PYNQ 框架 - VDMA驱动 - 帧缓存
本文分享在 PYNQ 框架下,AXI VDMA 驱动的部分实现细节,重点分析帧缓存的管理和使用。重点分析了 _FrameCache 和 _FrameList 类的实现与功能。这些类用于管理帧缓存,包括内存分配、帧获取、所有权管理等操作,确保高效的视频数据处理和传输。
2024-10-31 23:05:23 908
原创 基于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 时钟树图像数据流波形抓取
2024-10-24 12:48:21 1100
原创 Vivado - Aurora 8B/10B IP
本文介绍在 Block Design 中添加Aurora 8B/10B IP 并加以调试。使用 Streaming 接口使用 VIO 控制回环方式探究收发器的位置信息共享逻辑和例化模板附带 Block Design 的 TCL 代码
2024-10-16 22:15:00 2182
原创 Vivado - 在硬件中调试 Serial I/O (IBERT)
本文分享在 ZCU102 和 ZCU106 板卡上使用 IBERT Ultrascale GTY进行眼图测量的示例。
2024-10-11 09:14:06 1244
原创 Vivado - JTAG to AXI Master (DDR4初始化读写测试)
本文分享了使用 JTAG to AXI Master 调试 DDR4 IP 的过程。要点:使用JTAG to AXI Master 直连 DDR4 IP添加 HLS IP 初始化 DDR4 IP格式化显示传输事务保存传输事务记录
2024-10-06 13:17:47 831
原创 Vivado - BD(差分时钟、简单分频、RESET、KEY)
了解 Utility Buffer v2.2 中的 Buffer,重点分析 IBUFDS 和BUFGCE_DIV分析Processor System Reset v5.0分析按键消抖模块(key_mod)了解与 ILA 相关自动生成的约束
2024-10-03 12:11:15 1440
原创 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)
2024-09-29 22:41:57 1143 1
原创 KV260 进阶开发(PYNQ驱动开发+Pixel Pack)
本文讨论在 PYNQ 框架下,使用 Python 驱动 Vitis HLS Kernel。使用 Registermap 也可以完成驱动,即直接操作所有寄存器。通过Python 方式编写的驱动更直观,可以理解为对Registermap 的封装。Registermap 和Python 驱动,底层都是调用 MMIO 的读写。
2024-09-12 22:42:21 973
原创 Vitis AI 进阶认知(pybind11)
pybind11 介绍、Jupyter Lab 中的快速编译和加载、使用编译器链接器标志、pybind11 的基本用法、pybind11 的类的绑定用法、vart::Runner 类的 Python 绑定源代码解释。
2024-09-05 21:00:00 1428
原创 Vitis AI 综合实践(DPU example: dpu_resnet50.ipynb)
例程: dpu_resnet50.ipynb。介绍 DPUOverlay 类及其在 PYNQ 中的作用,包括加载比特流和模型、管理 DPU 运行时等功能。解析图像预处理流程,包括调整图像大小、均值归一化以及中心裁剪等步骤,确保输入数据符合模型要求。标签读取、图像读取和推理执行的过程,强调内存管理与数据结构的使用。介绍与 DPU 相关的类和库,如 VART,以便更好地理解整个推理流程及其背后的实现机制。
2024-09-02 20:26:39 725
原创 Vitis AI 基本认知(Tiny-VGG 标签获取+预测后处理)
本文主要涉及关键信息:获取数据集的标签、保存和读取类别标签、加载模型并推理、绘制图像、使用中文标签、置信度柱状图。
2024-08-28 21:21:48 685
原创 Vitis AI 基本认知(Tiny-VGG 项目代码详解)
本文分享 Tiny-VGG 项目的代码解析,对于冗余部分,进行了删减。主要内容包括:图像数据预处理;手动计算:训练损失、训练准确度、验证损失、验证准确度;自定义训练循环;数据集加载器;修正目录;计算图。
2024-08-27 20:30:00 988
原创 Vitis AI 进阶认知(Torch量化基础+映射+量化参数+对称性+每通道+PTQ+QAT+敏感性)
本文介绍了量化基本概念,如映射函数、量化参数、校准方法以及对称与非对称量化的区别,探讨了Per-Tensor和Per-Channel量化策略,以及训练后静态量化(PTQ)和量化感知训练(QAT)的应用。
2024-08-21 22:13:19 933
原创 Vitis AI 基本认知(构建线性回归Torch/TensorFlow+欠定系统+过拟合)
在本学习笔记中,笔者探讨了不同深度学习框架下构建线性回归模型的方式,主要集中于 TensorFlow 和 PyTorch。通过使用 Keras 的 Sequential 和 Functional API,我们展示了两种模型构建方式的特点与适用场景。Sequential API 适合简单的线性堆叠模型,而 Functional API 则提供了更大的灵活性,适用于复杂的网络结构。
2024-08-14 23:32:02 949
原创 Vitis AI 基本认知(TensorBoard+Epoch+zero_grad)
1).介绍和使用 TensorBoard;2).解释 Epoch、Batch、Iteration;3).解释训练循环中的梯度累加
2024-08-14 23:31:36 1085
原创 我的创作纪念日
我希望通过文章进行技术交流,与更多志同道合的朋友分享我的心得和体会。未来,我希望继续在技术创作的道路上前行,不断提升自己的技术水平和创作能力。创作已经成为我生活的一部分。通过合理安排时间,我能够在工作之余抽出时间进行创作,记录下自己的技术成长和心得体会。通过创作,我结识了许多志同道合的领域同行,大家在技术交流中互相学习,共同进步。在这段时间里,尽管还有很多需要学习和提升的地方,我还是取得了一些小小的进步。
2024-08-09 10:08:05 600
原创 Vitis AI 基本认知(DPU并行度+反向传播+损失+指标+模型参数量+模型分析+极简残差)
这篇文档介绍了一个名为CNN Explainer的交互式可视化系统,旨在帮助非专业人士学习卷积神经网络(CNN)。该系统通过直观的方式展示了CNN的工作原理,使用户能够更好地理解复杂的神经网络结构和运算过程。
2024-08-07 23:50:48 850
原创 电磁仿真--基本操作-CST-(6)-导线周围磁场
本文分享了使用低频求解器(LF Frequency Domain Solver)分析导线周围电磁场分布的过程。低频求解器适用于模拟周期性低频信号激发的电磁场,主要任务包括计算电磁场、产生的电流密度、损耗、能量、激励源参数和集总元件参数。求解器的结果会自动显示在导航树中。
2024-08-06 23:18:19 1955
原创 Vitis AI 基本操作(inspector用法详解+输出文件分析+保存模型/权重)
本文分享了如何使用 Vitis AI 工具中的 Inspector 对神经网络模型进行检查和诊断。Inspector 可以基于硬件约束预测目标器件分配,生成的检查报告能够指导用户优化和修改模型,从而降低部署难度并缩短部署时间。建议在量化浮点模型前进行检查,以确保模型的兼容性和性能。
2024-08-05 23:56:18 789
原创 Vitis AI 环境搭建 VMware+ubuntu 20.04+必要软件
本文记录了在 Ubuntu 20.04 环境下配置 Vitis AI 所需的步骤和软件推荐。
2024-07-27 22:46:54 961
原创 Vitis AI 基本操作+VAI_Q_PYTORCH用法详解
本文分享了 vai_q_pytorch 的功能与应用,该工具是 Vitis AI Quantizer for PyTorch 的缩写,旨在优化深度学习模型,尤其是通过深度压缩技术提高模型的性能与效率。处理后的 IR 可以部署到多种平台,如深度学习处理单元(DPU)和 Xilinx AI 引擎,用户也可以将修改后的计算图重新整合回 PyTorch,以利用其强大的预处理、后处理和分布式系统功能。这一系列流程为深度学习模型的优化提供了高效、便捷的解决方案,助力提升模型在不同硬件平台上的运行效率与性能。
2024-07-26 22:49:59 1158
原创 Vitis AI 基本认知(入门资源汇总)
本文提供了多个有用的资源链接,包括环境搭建、使用 inspector 检查模型、解释量化过程等,以及指向官方文档和教程的链接,帮助用户更深入地了解和使用 Vitis AI。通过这些资源,用户可以更容易地开始他们的 Vitis AI 项目,无论是在边缘设备还是云平台上。
2024-07-25 23:47:28 1303
原创 口袋实验室--使用 AD2 高效调试 SPI 接口
在本文中,我们复习了 SPI 接口的基本概念、特点及其在 AD2 设备上的配置和操作方法。SPI 接口因其全双工通信能力、高速率和灵活的主从配置而广泛应用于数字通信领域。通过使用 AD2 的Protocol-SPI 模块,用户可以轻松地实现对 SPI 通信的监控和控制,包括设置信号线、调整通信参数以及执行数据传输等操作。本文还演示了如何在 WaveForm 软件环境中使用 Protocol 和 Script 模块来配置和操作 SPI 接口。通过具体的脚本示例,展示了如何发送和接收数据。
2024-07-18 18:02:14 1186
原创 Xilinx FPGA UltraScale SelectIO 接口逻辑资源
本文深入介绍了AMD UltraScale系列器件中的 I/O Tile 功能和配置,涵盖了高性能(HP)、高密度(HD)和高量程(HR)I/O bank的特性和应用。每种I/O bank针对不同的性能需求和电压范围设计,其中HP I/O bank主要用于高速接口,HR I/O bank适用于广泛的I/O标准,而HD I/O bank则面向低速接口。文章还阐述了SelectIO接口的灵活配置能力,包括支持多种标准接口、输出强度和斜率的可编程控制、数控阻抗(DCI)以及内部生成参考电压。
2024-07-09 15:53:06 1627
原创 嵌入式硬件-Xilinx FPGA DDR4 接口的 PCB 准则
本文档提供了关于FPGA-MIG和DDR4内存的详细介绍,包括其工作原理、关键信号、以及与之相关的PCB设计准则。DDR4作为目前广泛使用的内存技术,其特点包括高速数据传输和同步工作机制,而FPGA-MIG则为这些内存提供了高效的控制和接口,确保数据传输的稳定性和高效性。文档还详细讨论了DDR4的信号类型,包括时钟信号、地址和命令信号以及数据信号等,这对于理解DDR4的工作机制至关重要。在PCB设计方面,本文档提供了关于如何布线和引脚分配的准则,旨在帮助设计师优化内存与FPGA之间的连接.
2024-07-08 18:39:55 2504 2
原创 Vitis AI 进阶认知(量化过程详解)
在当今技术快速发展的时代,我们追求的不仅是智能设备的高性能,同时也强调其能效和便携性。Vitis AI量化器便是在这样的背景下应运而生的一个工具,它通过将神经网络模型的数据精度从32位浮点数降低到8位整数,极大地缩减了模型的体积和计算需求,而通过精心设计的校准和微调过程,又能确保模型的预测准确性基本不受影响。这一过程不仅包括了校准激活、量化感知训练等关键步骤,还提供了详细的量化校准配置和实用的量化函数,以适应不同的部署需求。
2024-07-02 23:12:33 1334
原创 KV260 视觉 AI 套件入门--示例演示(Resnet50)
在这个总结中,我们探讨了Resnet50,这是一个由50层构成的深度卷积神经网络,它在图像识别任务中表现出色。通过“残差学习”的创新设计,Resnet50解决了深度网络训练中的退化问题,使得网络能够通过增加更多的层来提高性能,而不会增加训练难度。我们还分析了如何在Xilinx Zynq平台上使用VART运行Resnet50模型的代码,包括模型加载、数据预处理、异步推理和结果分类。这个过程展示了如何利用Zynq芯片的强大功能,将深度学习应用于边缘计算,为各种行业,特别是高级驾驶辅助系统(ADAS)等应用。
2024-07-01 23:52:03 772
原创 KV260 视觉 AI 套件入门--PYNQ-DPU
本文详细介绍了使用KV260视觉AI套件中的DPUCZDX8G深度学习处理单元(DPU)的环境搭建和开发流程。DPUCZDX8G是专为Zynq UltraScale+ MPSoC设计的,优化了卷积神经网络的计算引擎,支持广泛的运算符,使其成为执行AI推理任务的强大工具。文章从DPU的基本原理出发,解释了其工作机制,包括如何从片外存储器中提取指令以及如何在片上存储器中高效处理数据。
2024-06-30 23:29:06 1782
原创 KV260 视觉 AI 套件入门--开箱报告(烧录+配置网络)
在这个快速发展的技术世界中,Zynq SoC芯片的出现无疑是一次革命性的进步。它将ARM处理器的强大计算能力与FPGA的灵活性完美结合,为工业控制和视觉AI应用带来了前所未有的便利。通过Zynq,开发者可以在同一芯片上同时进行软件和硬件的开发,这不仅简化了开发流程,还显著提高了效率。
2024-06-28 23:39:55 1468 2
原创 Vitis IDE 艰难切换--从传统 Vitis GUI 到 2024.1 统一软件界面
在Vitis 2024.1版本中,传统的Vitis GUI已经被全新的统一软件界面所取代。这个变化虽然初看令人生疏,但它实际上为开发者们带来了更加高效和现代化的工作环境。新界面的Flow Navigator、多任务并行执行、AI引擎优化、以及界面的现代化设计,都极大地提升了工作流程的管理和执行效率。此外,新的统一软件界面还提供了GUI和CLI模式的无缝转换,使得项目构建和调试更加灵活。虽然适应新界面需要时间,但随着熟悉度的提升,开发者们将能够充分利用这些新特性,以更快的速度迭代和优化他们的工程。
2024-06-26 23:30:45 4605 10
原创 Vitis Accelerated Libraries 学习笔记--Vision 库的组织结构
本文档提供了Vision库的组织结构和详细分类介绍,包括各级目录(L1、L2、L3)下的示例代码、测试、库文件等的详细说明。此外,还包括了TCL和Makefile脚本的解析,这些脚本是在项目开发过程中用于自动化构建和测试的重要工具。TCL脚式主要用于设置环境变量、项目参数、添加文件、设置FPGA部件和时钟,以及条件执行仿真、综合等任务。而Makefile脚本则涉及到设置项目变量、检查环境配置、生成配置文件、编译和运行指令等。
2024-06-25 20:39:12 1076
原创 Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试
在本系列学习笔记中,我们探讨了 Vitis Accelerated Libraries 和 OpenCV 的结合使用,强调了 OpenCV 在运行 Vitis Vision 库示例设计和验证用户测试平台算法中的重要性。通过详细的安装指南和实例测试,我们展示了如何将 OpenCV 集成到 Vitis Vision 库的工作流中,并利用其强大的函数库来创建和验证测试用例。
2024-06-21 23:51:33 1354
原创 Vitis Accelerated Libraries 学习笔记--Vision 库介绍
Vitis Vision 库为基于 FPGA 和 AI 引擎的计算机视觉应用提供了强大的支持。它通过一系列优化的内核,覆盖从基本的图像处理操作到高级的图像分析和特征检测。开发者可以利用这些内核来执行色彩转换、像素运算、几何变换等任务,同时享受硬件加速带来的性能优势。Vitis Vision 的设计允许开发者在保持与传统 C/C++ 程序兼容的同时,使用高性能的图像处理函数。这个库的多样性和灵活性使其成为在现代图像处理和机器视觉领域中不可或缺的工具,特别是在需要处理大量数据和实时性要求高的应用场景中。
2024-06-21 21:00:00 1374
原创 Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南
本文详细介绍了使用Vitis Vision Library时为什么需要安装OpenCV库,并提供了详尽的安装指南。OpenCV库的安装对于运行Vitis Vision Library的示例设计至关重要,因为它不仅可以帮助开发者演示加速内核的功能,还能在用户测试平台上验证算法性能。
2024-06-19 23:56:30 1398
原创 Vitis HLS 学习笔记--Stream Chain Matrix Multiplication
这个内核的核心功能是通过使用数据流和级联矩阵乘法来提高性能。它利用了 ap_ctrl_chain 协议,这允许内核在当前操作完成后立即开始下一个操作,从而实现了更高的并行性和效率。内核包含两个版本:简单的 krnl_simple_mmult 和链式的 krnl_chain_mmult。简单版本使用 ap_ctrl_hs 协议,而链式版本使用 ap_ctrl_chain 协议,后者提供了额外的控制信号来管理内核操作的流程。
2024-06-18 18:28:58 1211
Zynq开发-使用PYNQ快速入门摄像头MIPI驱动(OV5640)-overlay设计
2024-05-12
电子工程+Xilinx-FPGA-SoC-功耗估算+电源分析+助力设计师在产品设计初期,确定功耗和散热规格
2024-05-08
Digilent AD2+电感测量+线性螺旋电感4uH+WaveForm程序配置+测量结果的曲线
2024-04-28
Digilent AD2+电感测量+线性螺旋电感+WaveForm程序配置
2024-04-25
CST电磁场仿真+线性螺旋电感+建模步骤细节和RLC端口配置+CST高级建模操作
2024-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人