[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-dgschwend--zynqnet":3,"tool-dgschwend--zynqnet":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":76,"owner_twitter":76,"owner_website":79,"owner_url":80,"languages":81,"stars":112,"forks":113,"last_commit_at":114,"license":115,"difficulty_score":116,"env_os":117,"env_gpu":118,"env_ram":119,"env_deps":120,"category_tags":126,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":128,"updated_at":129,"faqs":130,"releases":164},7228,"dgschwend\u002Fzynqnet","zynqnet","Master Thesis \"ZynqNet: An FPGA-Accelerated Embedded Convolutional Neural Network\"","zynqnet 是一个基于 FPGA 加速的嵌入式卷积神经网络（CNN）开源项目，源自一项关于在 Zynq 系统级芯片上实现高效图像识别的硕士研究。它主要解决了深度学习模型在嵌入式设备上运行时面临的计算复杂度高、功耗限制严以及实时性要求高等难题。通过软硬件协同设计，zynqnet 成功在资源受限的硬件上实现了高性能的图像分类功能。\n\n该项目非常适合嵌入式系统开发者、FPGA 工程师以及从事边缘计算与计算机视觉研究的研究人员使用。如果你需要在无人机、医疗诊断设备或自动驾驶等场景中部署轻量级且实时的 AI 模型，zynqnet 提供了完整的参考实现。\n\n其技术亮点在于定制了高度规则的\"ZynqNet CNN\"网络拓扑，仅包含卷积层、ReLU 激活函数和全局池化层，在大幅降低计算量（仅需 5.3 亿次乘加运算）的同时，仍在 ImageNet 数据集上达到了 84.5% 的 Top-5 准确率。此外，项目利用高层次综合（HLS）技术开发了专用的 FPGA 加速器，在 Xilinx Zynq 芯片上以 200MHz 频率高效运行，并配套提供了自研的 Netscope CNN 分析工具，方便用户可","zynqnet 是一个基于 FPGA 加速的嵌入式卷积神经网络（CNN）开源项目，源自一项关于在 Zynq 系统级芯片上实现高效图像识别的硕士研究。它主要解决了深度学习模型在嵌入式设备上运行时面临的计算复杂度高、功耗限制严以及实时性要求高等难题。通过软硬件协同设计，zynqnet 成功在资源受限的硬件上实现了高性能的图像分类功能。\n\n该项目非常适合嵌入式系统开发者、FPGA 工程师以及从事边缘计算与计算机视觉研究的研究人员使用。如果你需要在无人机、医疗诊断设备或自动驾驶等场景中部署轻量级且实时的 AI 模型，zynqnet 提供了完整的参考实现。\n\n其技术亮点在于定制了高度规则的\"ZynqNet CNN\"网络拓扑，仅包含卷积层、ReLU 激活函数和全局池化层，在大幅降低计算量（仅需 5.3 亿次乘加运算）的同时，仍在 ImageNet 数据集上达到了 84.5% 的 Top-5 准确率。此外，项目利用高层次综合（HLS）技术开发了专用的 FPGA 加速器，在 Xilinx Zynq 芯片上以 200MHz 频率高效运行，并配套提供了自研的 Netscope CNN 分析工具，方便用户可视化探索和优化网络结构。整个项目代码开放，涵盖了从模型训练、网络探索到固件开发的完整流程，是学习嵌入式 AI 加速的优秀范例。","# ZynqNet: An FPGA-Accelerated Embedded Convolutional Neural Network\n\nThis repository contains the results from my Master Thesis.\n\n* [Master Thesis Project Report (PDF)](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fblob\u002Fmaster\u002Fzynqnet_report.pdf)\n* [ZynqNet CNN (prototxt)](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL)\n* [CNN Topology Exploration](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet%20cnn)\n* [ZynqNet FPGA Accelerator (HLS C++)](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE)\n* [ZynqNet Low-Level Firmware](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE)\n* [Netscope CNN Analyzer](http:\u002F\u002Fdgschwend.github.io\u002Fnetscope\u002F#\u002Fpreset\u002Fzynqnet)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdgschwend_zynqnet_readme_d64baf3aa870.jpg\" alt=\"\" usemap=\"#map\" \u002F>\n\u003Cmap name=\"map\">\n    \u003Carea shape=\"rect\" coords=\"3028, 343, 3850, 725\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_BITSTREAM\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"3033, 737, 3853, 1144\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"1822, 195, 2432, 597\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"84, 988, 949, 1417\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"41, 465, 443, 982\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet%20cnn\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"452, 45, 938, 706\" href=\"http:\u002F\u002Fdgschwend.github.io\u002Fnetscope\u002F#\u002Fpreset\u002Fzynqnet\" \u002F>\n\u003C\u002Fmap>\n\nThe project has been enabled and supported by [Supercomputing Systems AG](http:\u002F\u002Fwww.scs.ch).\n\n## Abstract\n\nImage Understanding is becoming a vital feature in ever more applications ranging from\nmedical diagnostics to autonomous vehicles. Many applications demand for embedded\nsolutions that integrate into existing systems with tight real-time and power constraints.\n\nConvolutional Neural Networks (CNNs) presently achieve record-breaking accuracies in\nall image understanding benchmarks, but have a very high computational complexity.\nEmbedded CNNs thus call for small and efficient, yet very powerful computing platforms.\nThis master thesis explores the potential of FPGA-based CNN acceleration and demonstrates\na fully functional proof-of-concept CNN implementation on a Zynq System-on-Chip. The\n_ZynqNet Embedded CNN_ is designed for image classification on ImageNet and consists of\n_ZynqNet CNN_, an optimized and customized CNN topology, and the _ZynqNet FPGA Accelerator_,\nan FPGA-based architecture for its evaluation.\n\n_ZynqNet CNN_ is a highly efficient CNN topology. Detailed analysis and optimization of\nprior topologies using the custom-designed _Netscope CNN Analyzer_ have enabled a CNN\nwith 84.5% top-5 accuracy at a computational complexity of only 530 million multiplyaccumulate\noperations. The topology is highly regular and consists exclusively of convolutional\nlayers, ReLU nonlinearities and one global pooling layer. The CNN fits ideally onto the\nFPGA accelerator.\n\nThe _ZynqNet FPGA Accelerator_ allows an efficient evaluation of ZynqNet CNN. It accelerates\nthe full network based on a nested-loop algorithm which minimizes the number of arithmetic\noperations and memory accesses. The FPGA accelerator has been synthesized using High-\nLevel Synthesis for the Xilinx Zynq XC-7Z045, and reaches a clock frequency of 200MHz\nwith a device utilization of 80% to 90 %.\n\n## Contribution\nInitially, this master aimed to explore, benchmark and optimize one or more commercial\napproaches to the acceleration of convolutional neural networks on FPGAs, with a focus\non embedded systems. Multiple FPGA and intellectual property vendors have announced\nframeworks and libraries that target the acceleration of deep learning systems.However,\nnone of these solutions turned out to be ready and available for testing.\n\nNevertheless, we decided to further pursue this promising approach by building our own\nproof-of-concept FPGA-based CNN implementation from scratch, with a special focus on the\noptimized co-operation between the underlying hardware architecture and the convolutional\nneural network. The result is the ZynqNet Embedded CNN, an FPGA-based convolutional\nneural network for image classification. The solution consists of two main components:\n\n1. The _ZynqNet CNN_, a customized convolutional neural network topology, specifically shaped to fit ideally onto the FPGA. The CNN is exceptionally regular, and reaches a satisfying classification accuracy with minimal computational effort.\n2. The _ZynqNet FPGA Accelerator_, a specialized FPGA architecture for the efficient acceleration of ZynqNet CNN and similar convolutional neural networks.\n\nZynqNet CNN is trained offline on GPUs using the Caffe framework, while the ZynqNet FPGA\nAccelerator employs the CNN for image classification, or _inference_, on a Xilinx Zynq XC-\n7Z045 System-on-Chip (SoC). Both components have been developed and optimized within\nthe six month time frame of this master thesis, and together constitute a fully functional\nconvolutional neural network implementation on the small and low-power Zynq platform.\n\nThis report documents the ZynqNet CNN and the ZynqNet FPGA Accelerator and gives\ninsight into their development. In addition, the _Netscope CNN Analyzer_ is introduced, a\ncustom tool for visualizing, analyzing and editing convolutional neural network topologies.\nNetscope has been used to analyze a number of different CNN architectures, and the findings\nare presented in the form of a _Design Space Exploration_ (DSE) of CNN topologies from\nprior work. Finally, the performance of the ZynqNet Embedded CNN is evaluated and its\nperformance is compared to other platforms.\n\n## Report\nThe report includes\n- overview + detailed analysis of many popular CNN architectures for image classification (AlexNet, VGG, NiN, GoogLeNet, Inception v.X, ResNet, SqueezeNet)\n- detailed description of the [*Netscope CNN Analyzer* tool]([https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fnetscope)\n- overview of *CNN analysis and optimization techniques*\n- detailed report on the design and implementation of the FPGA-based accelerator\n\nThe final report can be found in [zynqnet_report.pdf](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet_report.pdf).\n\n## ZynqNet CNN\nThe fully trained CNN with .prototxt network description and pretrained weights can be found under [_TRAINED_MODEL](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL)\n\n## ZynqNet FPGA Accelerator\nThe C\u002FC++ source code for building the FPGA accelerator using High-Level Synthesis (Vivado HLS) can be found under [_HLS_CODE](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE).\n\nThe compiled accelerator bitstream can be found under [_BITSTREAM](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_BITSTREAM).\n\nThe firmware for the Zynq XC-7Z045 ARM processors is stored under [_FIRMWARE](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE).\n\n## Netscope CNN Analyzer\nThe CNN analysis tool can be found in a separate repository here: [dgschwend\u002Fnetscope](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fnetscope)\n\n## Copyright and License\nZynqNet is Copyright 2016 by David Gschwend.\nAll files in this repository are released under the GNU General Public License as found in the LICENSE file.\n","# ZynqNet：基于FPGA加速的嵌入式卷积神经网络\n\n本仓库包含了我硕士论文的研究成果。\n\n* [硕士论文项目报告（PDF）](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fblob\u002Fmaster\u002Fzynqnet_report.pdf)\n* [ZynqNet CNN（prototxt）](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL)\n* [CNN拓扑探索](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet%20cnn)\n* [ZynqNet FPGA加速器（HLS C++）](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE)\n* [ZynqNet底层固件](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE)\n* [Netscope CNN分析工具](http:\u002F\u002Fdgschwend.github.io\u002Fnetscope\u002F#\u002Fpreset\u002Fzynqnet)\n\n![系统架构概览图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdgschwend_zynqnet_readme_d64baf3aa870.jpg)\n\u003Cmap name=\"map\">\n    \u003Carea shape=\"rect\" coords=\"3028, 343, 3850, 725\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_BITSTREAM\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"3033, 737, 3853, 1144\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"1822, 195, 2432, 597\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"84, 988, 949, 1417\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"41, 465, 443, 982\" href=\"https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet%20cnn\" \u002F>\n    \u003Carea shape=\"rect\" coords=\"452, 45, 938, 706\" href=\"http:\u002F\u002Fdgschwend.github.io\u002Fnetscope\u002F#\u002Fpreset\u002Fzynqnet\" \u002F>\n\u003C\u002Fmap>\n\n该项目得到了[Supercomputing Systems AG](http:\u002F\u002Fwww.scs.ch)的支持与资助。\n\n## 摘要\n\n图像理解正逐渐成为越来越多应用中的关键功能，从医学诊断到自动驾驶车辆等各个领域。许多应用场景要求嵌入式解决方案能够无缝集成到现有系统中，并满足严格的实时性和功耗约束。\n\n目前，卷积神经网络（CNN）在各类图像理解基准测试中均取得了突破性的准确率，但其计算复杂度极高。因此，嵌入式CNN需要小型、高效且性能强大的计算平台。本硕士论文探讨了基于FPGA的CNN加速潜力，并在Zynq片上系统上实现了一个功能完备的概念验证CNN。该“ZynqNet嵌入式CNN”专为ImageNet图像分类任务设计，由优化定制的CNN拓扑结构“ZynqNet CNN”以及基于FPGA的加速架构“ZynqNet FPGA加速器”组成。\n\n“ZynqNet CNN”是一种高效的CNN拓扑结构。通过使用我们自主开发的“Netscope CNN分析工具”对现有拓扑进行深入分析和优化，最终构建出一种仅需5.3亿次乘累加运算即可达到84.5% top-5准确率的CNN。该拓扑结构高度规则，仅由卷积层、ReLU非线性激活函数和一个全局池化层构成，非常适合在FPGA加速器上运行。\n\n“ZynqNet FPGA加速器”能够高效地执行ZynqNet CNN的推理任务。它基于嵌套循环算法加速整个网络的计算，从而最大限度地减少算术操作和内存访问次数。该加速器采用Xilinx Zynq XC-7Z045器件的高层次综合技术进行实现，可在80%至90%的器件资源利用率下达到200MHz的工作频率。\n\n## 贡献\n\n最初，本研究旨在探索、评估并优化几种商用的FPGA加速卷积神经网络方案，重点关注嵌入式系统。多家FPGA及知识产权供应商已推出针对深度学习系统加速的框架和库。然而，这些方案均未达到可供测试的成熟度。\n\n尽管如此，我们仍决定进一步推进这一有前景的方向，从零开始构建自己的FPGA加速CNN概念验证系统，特别关注底层硬件架构与卷积神经网络之间的协同优化。最终成果便是ZynqNet嵌入式CNN，这是一种用于图像分类的基于FPGA的卷积神经网络。该解决方案主要由两部分组成：\n\n1. “ZynqNet CNN”，一种专门设计以适配FPGA的定制卷积神经网络拓扑结构。该CNN结构极为规整，在极低的计算开销下即可达到令人满意的分类准确率。\n2. “ZynqNet FPGA加速器”，一种专用于高效加速ZynqNet CNN及其他类似卷积神经网络的FPGA架构。\n\nZynqNet CNN使用Caffe框架在GPU上离线训练，而ZynqNet FPGA加速器则在Xilinx Zynq XC-7Z045片上系统（SoC）上执行CNN的图像分类推理任务。这两个组件均在本硕士论文为期六个月的时间内完成开发与优化，共同构成了一个在小型低功耗Zynq平台上功能完备的卷积神经网络实现。\n\n本报告详细记录了ZynqNet CNN和ZynqNet FPGA加速器的设计与实现过程，并介绍了用于可视化、分析和编辑卷积神经网络拓扑结构的自定义工具“Netscope CNN分析工具”。Netscope已被用于分析多种不同的CNN架构，相关发现以先前工作的CNN拓扑“设计空间探索”（DSE）形式呈现。最后，报告还对ZynqNet嵌入式CNN的性能进行了评估，并将其与其他平台进行了对比。\n\n## 报告内容\n\n报告包括：\n- 对多种流行的图像分类CNN架构（AlexNet、VGG、NiN、GoogLeNet、Inception v.X、ResNet、SqueezeNet）的概述与详细分析\n- 自主开发的[*Netscope CNN分析工具*]的详细介绍([https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fnetscope)\n- *CNN分析与优化技术*的概述\n- 基于FPGA的加速器设计与实现的详细报告\n\n完整报告请参阅[zynqnet_report.pdf](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002Fzynqnet_report.pdf)。\n\n## ZynqNet CNN\n\n包含完整网络描述文件（.prototxt）和预训练权重的CNN模型可在此处找到：[_TRAINED_MODEL](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_TRAINED_MODEL)。\n\n## ZynqNet FPGA加速器\n\n使用高层次综合工具（Vivado HLS）编译FPGA加速器的C\u002FC++源代码可在此处找到：[_HLS_CODE](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_HLS_CODE)。\n\n编译后的加速器位流文件可在此处找到：[_BITSTREAM](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_BITSTREAM)。\n\n用于Zynq XC-7Z045 ARM处理器的固件存储在：[_FIRMWARE](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Ftree\u002Fmaster\u002F_FIRMWARE)。\n\n## Netscope CNN 分析器\nCNN 分析工具位于一个独立的代码仓库中，地址如下：[dgschwend\u002Fnetscope](https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fnetscope)\n\n## 版权与许可\nZynqNet 的版权归属 David Gschwend，2016 年。本仓库中的所有文件均依据 LICENSE 文件中的条款，采用 GNU 通用公共许可证发布。","# ZynqNet 快速上手指南\n\nZynqNet 是一个基于 FPGA 加速的嵌入式卷积神经网络（CNN）项目，专为 Xilinx Zynq SoC 设计，旨在实现低功耗、实时的图像分类。本项目包含定制优化的 CNN 拓扑结构（ZynqNet CNN）和对应的高层次综合（HLS）FPGA 加速器。\n\n## 环境准备\n\n在开始之前，请确保您具备以下硬件和软件环境：\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu 14.04\u002F16.04，原项目测试环境)\n- **硬件平台**: Xilinx Zynq-7000 SoC 开发板 (具体型号：XC-7Z045，如 ZedBoard 或 MicroZed)\n- **内存**: 建议 8GB RAM 以上用于 HLS 综合\n\n### 前置依赖\n1. **Xilinx Vivado & Vivado HLS**: 需安装与目标芯片兼容的版本（原项目使用 Vivado 2015\u002F2016 系列）。\n2. **Caffe Framework**: 用于离线训练模型或验证权重（仅需 GPU 服务器端，非嵌入式端必需）。\n3. **SD 卡**: 用于存储启动镜像、固件和比特流文件。\n4. **串口终端工具**: 如 `minicom` 或 `screen`，用于调试 ARM 端输出。\n\n> **注意**：由于该项目较老，建议使用项目发布时期的工具链版本以确保兼容性，或使用 Docker 容器隔离环境。\n\n## 安装步骤\n\n本项目分为模型准备、FPGA 比特流生成和固件部署三个部分。您可以选择直接使用预编译文件，或从源码重新构建。\n\n### 1. 获取源码\n克隆项目仓库到本地：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet.git\ncd zynqnet\n```\n\n### 2. 方案 A：使用预编译文件（快速验证）\n如果您只想快速在硬件上运行演示，可直接使用仓库中提供的预编译资源：\n\n1. **获取比特流**: 确认 `_BITSTREAM` 目录下存在 `.bin` 或 `.bit` 文件。\n2. **获取固件**: 确认 `_FIRMWARE` 目录下包含编译好的 ARM 端可执行文件和库。\n3. **获取模型**: 确认 `_TRAINED_MODEL` 目录下包含 `deploy.prototxt` 和预训练权重文件。\n\n将上述文件复制到 SD 卡的相应分区（通常分为 Boot 分区和 Rootfs 分区）。\n\n### 3. 方案 B：从源码重新构建（开发模式）\n\n#### 步骤 3.1: 生成 FPGA 比特流\n进入 HLS 代码目录并使用 Vivado HLS 进行综合：\n```bash\ncd _HLS_CODE\n# 启动 Vivado HLS (假设已配置环境变量)\nvivado_hls -f run_hls.tcl\n```\n*注：`run_hls.tcl` 为假设的脚本文件名，具体请参考目录内实际提供的 Tcl 脚本。综合完成后，导出硬件描述并可在 Vivado 中生成最终的 `.bit` 文件。*\n\n#### 步骤 3.2: 编译 ARM 端固件\n进入固件目录，使用交叉编译工具链（如 `arm-linux-gnueabihf-gcc`）编译源代码：\n```bash\ncd _FIRMWARE\nmake clean\nmake all\n```\n*确保您的 `Makefile` 中配置了正确的交叉编译前缀。*\n\n#### 步骤 3.3: 准备模型文件\n如果需要重新训练或修改网络结构，请参考 `zynqnet cnn` 目录下的拓扑探索代码，并使用 Caffe 进行训练。训练完成后，将生成的 `.prototxt` 和 `.caffemodel` 放入 `_TRAINED_MODEL` 目录。\n\n## 基本使用\n\n完成环境部署后，按照以下步骤在 Zynq 开发板上运行图像分类任务：\n\n### 1. 启动系统\n将配置好文件的 SD 卡插入 Zynq 开发板，连接串口线并上电。通过串口终端观察 U-Boot 和 Linux 内核启动日志。\n\n### 2. 加载 FPGA 比特流\n在 Linux 终端中，使用 `devcfg` 接口加载比特流文件（路径根据实际挂载点调整）：\n```bash\n# 示例命令：将比特流加载到 PL 端\ncat \u002Fmedia\u002Fmmcblk0p1\u002Fdesign_1.bit > \u002Fdev\u002Fxdevcfg\n```\n\n### 3. 运行推理程序\n进入固件所在目录，执行主程序进行图像分类推理：\n```bash\ncd \u002Fhome\u002Froot\u002Ffirmware\n.\u002Fzynqnet_infer --model ..\u002Fmodels\u002Fdeploy.prototxt --weights ..\u002Fmodels\u002Fweights.caffemodel --image test_img.jpg\n```\n\n程序将调用 FPGA 加速器进行计算，并在终端输出分类结果（例如 ImageNet 的 Top-5 类别及概率）。\n\n### 4. 可视化分析（可选）\n在 PC 浏览器中打开 **Netscope CNN Analyzer** 查看网络结构：\n```text\nhttp:\u002F\u002Fdgschwend.github.io\u002Fnetscope\u002F#\u002Fpreset\u002Fzynqnet\n```\n该工具可用于分析层间数据流、计算量及内存占用，辅助进一步优化。\n\n---\n*提示：本指南基于开源项目 README 整理，具体文件路径和脚本名称请以仓库实际内容为准。*","某嵌入式医疗影像团队正致力于在便携式超声设备中集成实时病灶识别功能，需在严苛的功耗与延迟限制下运行高精度深度学习模型。\n\n### 没有 zynqnet 时\n- **算力瓶颈严重**：通用嵌入式处理器无法在毫秒级内完成复杂的卷积运算，导致图像分析延迟高达数秒，无法满足医生实时诊断需求。\n- **功耗超标**：为勉强维持推理速度而提升 CPU\u002FGPU 频率，致使设备电池续航从预期的 4 小时骤降至不足 30 分钟，失去便携意义。\n- **模型适配困难**：主流大型 CNN 模型参数量过大，难以裁剪至适合嵌入式内存的大小，且缺乏针对 FPGA 架构的专用拓扑优化方案。\n- **开发周期漫长**：团队需从零编写底层硬件驱动与加速逻辑，缺乏现成的高层综合（HLS）参考代码，验证一款新模型需耗时数月。\n\n### 使用 zynqnet 后\n- **实时推理达成**：zynqnet 提供的定制化 CNN 拓扑将计算量压缩至 5.3 亿次操作，配合 FPGA 加速器在 200MHz 主频下实现毫秒级响应，支持流畅的实时扫描。\n- **能效显著提升**：基于 Zynq SoC 的专用硬件架构大幅降低无效能耗，使设备在满负荷推理状态下仍能保持 4 小时以上的连续工作时间。\n- **精度与效率平衡**：通过 Netscope 分析器优化的网络结构，在仅保留卷积层与全局池化层的同时，仍能在 ImageNet 基准上保持 84.5% 的 Top-5 准确率。\n- **快速落地验证**：直接复用 zynqnet 开源的 HLS C++ 加速代码与固件框架，团队将原本数月的硬件适配工作缩短至两周，迅速完成原型机部署。\n\nzynqnet 通过将算法拓扑创新与 FPGA 硬件加速深度耦合，成功解决了嵌入式场景下高性能 AI 推理“跑不动、耗不起、难开发”的核心难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdgschwend_zynqnet_d074720d.png","dgschwend","David Gschwend","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdgschwend_bb5ded68.png",null,"ETH Zurich","Switzerland","http:\u002F\u002Fee.ethz.ch","https:\u002F\u002Fgithub.com\u002Fdgschwend",[82,86,90,94,98,102,106,109],{"name":83,"color":84,"percentage":85},"HTML","#e34c26",49.4,{"name":87,"color":88,"percentage":89},"C++","#f34b7d",28.5,{"name":91,"color":92,"percentage":93},"C","#555555",20.7,{"name":95,"color":96,"percentage":97},"Tcl","#e4cc98",0.7,{"name":99,"color":100,"percentage":101},"MATLAB","#e16737",0.5,{"name":103,"color":104,"percentage":105},"Makefile","#427819",0,{"name":107,"color":108,"percentage":105},"Objective-C","#438eff",{"name":110,"color":111,"percentage":105},"Shell","#89e051",773,295,"2026-04-10T09:15:18","GPL-3.0",5,"未说明 (主要基于 Xilinx Zynq SoC 硬件平台)","训练阶段必需：需支持 Caffe 框架的 NVIDIA GPU（具体型号未说明）；推理阶段不需要 GPU，使用 Xilinx Zynq XC-7Z045 FPGA 加速","未说明",{"notes":121,"python":119,"dependencies":122},"这是一个硕士论文项目，包含两个主要部分：1. ZynqNet CNN：使用 Caffe 框架在 GPU 上离线训练；2. ZynqNet FPGA 加速器：使用 Vivado HLS (C++) 开发，部署在 Xilinx Zynq XC-7Z045 芯片上进行推理。项目不包含现代 Python 深度学习库（如 PyTorch\u002FTensorFlow），而是依赖传统的 Caffe 流程和 FPGA 开发工具链。",[123,124,125],"Caffe (用于离线训练)","Xilinx Vivado HLS (用于综合 FPGA 加速器)","Xilinx Zynq XC-7Z045 SoC (目标硬件)",[15,14,127],"其他","2026-03-27T02:49:30.150509","2026-04-14T04:42:45.152041",[131,136,141,146,151,155,159],{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},32457,"如何在 Zynq 开发板上完成从 HLS 代码到 FPGA 运行的完整流程？","完整的实施步骤如下：\n1. 首先使用 Vivado HLS 构建项目（生成 IP）。\n2. 接着使用 Vivado 生成比特流（Bitstream）。\n3. 然后使用 Xilinx SDK 生成 Zynq 软件。\n4. 最后才能在 FPGA 上运行测试。\n执行测试时，根据提示使用命令：`.\u002Ftest CPU|FPGA input_file [-quiet]`。例如在 CPU 上运行输入文件：`.\u002Ftest CPU input_file`。","https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fissues\u002F19",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},32458,"在 Vivado HLS 协同仿真中遇到 'OPMODE Input Warning' 警告导致仿真极慢或卡死，该如何解决？","该警告（'The OPMODE ... is invalid'）是 Vivado HLS 的一个已知 Bug，Xilinx 已确认其中的 'X' 输入在功能上是无关紧要的。主要问题是该警告会导致协同仿真速度极慢甚至无法完成（可能需要数天）。\n建议解决方案：不要纠结于消除此警告，直接跳过详细的协同仿真，继续进行编译和比特流生成，然后在目标硬件上进行实际测试验证。","https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fissues\u002F5",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},32459,"训练模型时遇到 'Check failed: error == cudaSuccess ... out of memory' 显存不足错误怎么办？","这通常是因为显存不足以支撑当前的批量大小（Batch Size）。\n解决方案：减小训练脚本中的批量大小（batch size）。例如，如果原设置需要约 12.0GB 显存而你的显卡只有 11.2GB，减小 batch size 可以将显存占用降低到可用范围内（如 8.7GB），从而成功开始训练。如果有多张显卡，也可以考虑配置多 GPU 训练。","https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fissues\u002F49",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},32460,"在 Vivado 中创建顶层 IP 时遇到找不到浮点运算 IP（floating-point IP）的错误，如何解决？","这个问题通常与顶层模块的语言选择有关。浮点运算 IP 通常是 VHDL 文件，如果你在创建顶层 IP（fpga_top）时使用的是 Verilog，Vivado 可能无法正确识别或链接该 VHDL 格式的浮点 IP。\n解决方案：尝试使用 VHDL 来创建顶层 IP 模块（fpga_top），而不是 Verilog，这样 Vivado 就能正确找到并集成浮点运算 IP。同时请确保 Vivado HLS 和 Vivado Design Suite 使用的是相同版本。","https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fissues\u002F11",{"id":152,"question_zh":153,"answer_zh":154,"source_url":140},32461,"协同仿真中出现 '[COSIM 212-369] AXI_master port ... has a depth of ...' 深度警告是否严重？","这是一个警告而非致命错误。它指出 AXI 主端口的深度较大（例如 5932576），提示深度不足可能导致仿真不匹配或冻结。\n但在本项目中，只要内存深度满足设计要求，该警告通常是安全的。如果仿真因其他原因（如 OPMODE 警告）已经非常缓慢，建议忽略此深度警告，直接进行后续的比特流生成和硬件实测，因为实测结果比受限的协同仿真更可靠。",{"id":156,"question_zh":157,"answer_zh":158,"source_url":135},32462,"如何获取 ImageNet 数据集中类别 ID 对应的具体类别名称？","可以通过以下 GitHub Gist 链接查找 ImageNet 的类别 ID 与名称的对应关系：\nhttps:\u002F\u002Fgist.github.com\u002Fyrevar\u002F942d3a0ac09ec9e5eb3a\n该列表包含了从 ID 0 到 999 的所有类别名称，用于解读模型输出的分类结果。",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},32463,"如果想使用 PL_DDR（64 位物理地址）作为共享内存，需要注意哪些代码修改？","使用 PL_DDR 意味着 AXI 总线上的物理地址超过 32 位，需要进行以下修改：\n1. 检查所有持有或返回内存地址的变量和函数（如 `SHARED_DRAM_BASE_ADDR`, `SHARED_DRAM_virtual()`, `SHARED_DRAM_physical()`），确保它们能处理 64 位整数。\n2. 修改 HLS 代码中的共享内存端口定义，使其支持 64 位地址。默认情况下，`offset = slave` 创建的寄存器 `_SHARED_DRAM_` 可能仅受限于 32 位（由 `XFPGA_TOP_AXILITE_BITS_SHARED_DRAM_DATA` 定义）。\n3. 可能需要自定义共享内存基地址寄存器或增加 AXI-Lite 总线的位宽以支持 64 位寻址。","https:\u002F\u002Fgithub.com\u002Fdgschwend\u002Fzynqnet\u002Fissues\u002F2",[]]