把 Vivado 项目放心交给 Git:一篇 FPGA 工程师必读的实战指南

之前分享过一篇文章《FPGA 版本管理三种方式:你会选哪一种?》,评论区很多人都推荐使用Git进行版本管理,今天这篇文章主题就是使用Git进行备份指南。

在 FPGA 开发中,掌握 Git 等源码管理工具已经是必备技能。

当然,在使用 Vivado 时,我们不仅需要处理源代码控制,还需要处理以 IP 为中心的设计产品。

Vivado 的工程通常是 IP 为中心 的设计,包含:

  • IP Integrator Block Diagram
  • 各类 IP 实例(独立 IP 或 BD 内 IP)
  • 自动生成的包装文件与工程产物

这让很多 FPGA 工程师一开始会觉得:

“Vivado 项目到底该怎么和 Git 一起用?”

好消息是,从 Vivado 2022.1 开始,这一切已经变得非常清晰、也非常容易。

Vivado 2022.1 之后最重要的变化:源文件与生成文件分离

在 Vivado 2022.1 之前:

源文件和生成文件全部混在同一个 .srcs 目录中。

而从 Vivado 2022.1 起,工程目录被明确拆分为:

  • .srcs:源文件
  • .gen:生成文件

这一点非常关键。

👉 这意味着:

只要我们保存 .srcs 目录 + .xpr 工程文件,就可以在任何地方完整重建 Vivado 工程。

示例工程说明

示例使用 Vivado 2024.1 创建了一个新工程,目标板卡为 Avnet ZU Board。

IP Integrator 设计包含:

  • Zynq MPSoC Processing System
  • Smart Interconnect
  • AXI BRAM Controller

此外还加入了 自定义 RTL 文件,通过 UART 提供 AXI 访问,用来演示 自定义 RTL 与 IP 设计共存 的情况。

完成后的 Block Diagram 如下:

Vivado 工程目录结构解析

1️⃣ .srcs 目录

imports/ 下是用户添加的 VHDL / Verilog 源文件

bd/ 下是 IP Integrator 的 Block Diagram

ip/ 下是各个 IP 的 .xci 配置文件

👉 这些都是必须纳入 Git 管理的内容

2️⃣ .gen 目录

.gen 中包含:

自动生成的顶层 wrapper

IP 的生成文件

综合与仿真所需的中间文件

👉 这些文件不需要提交到 Git

将 Vivado 工程加入 Git 仓库

假设你已经在 GitHub 上创建了一个空仓库,下面是核心的步骤。

初始化仓库

git init

添加 Vivado 工程文件

只需要添加两部分:

git add git_demo.srcs/* git add git_demo.xpr

提交到本地仓库

提交这些文件并附带一条消息。

git commit -m "initial issue"

你会看到:

.xpr

RTL / VHDL 文件

IP .xci 文件

都已经被 Git 跟踪。

绑定远程仓库并推送

git remote add origin <url> git push -u origin master

此时在 GitHub 网页上,就可以看到完整的 Vivado 工程源文件了。

从 Git 仓库重建 Vivado 工程

为了验证流程是否正确,我们新建一个文件夹:

git clone <repo_url>

然后直接打开 .xpr 文件。

我们需要重新生成顶层 wrapper,重新生成 IP,正常完成综合与实现即可。

整个流程无需额外脚本,运行非常顺利。

小结

Vivado 2022.1 之后,工程结构已经非常适合 Git 管理

只需管理 .srcs + .xpr

IP、BD、RTL 都能自然融入 Git 流程

Vivado 工程终于可以像软件工程一样被“正常管理”

上面只是简单的使用,后续文章将继续介绍高级点的用法及 Vitis 与源码管理的协同方式。

Read more

阿里通义千问AI画师体验:中文描述直接生成赛博朋克场景图

阿里通义千问AI画师体验:中文描述直接生成赛博朋克场景图 你有没有试过,只用一句话就让画面在眼前浮现?不是靠想象,而是真真切切——输入“霓虹雨夜的东京巷口,机械义眼少女倚着全息广告牌,身后悬浮车掠过带起蓝紫色光痕”,几秒钟后,一张细节饱满、氛围拉满的赛博朋克图就静静躺在屏幕上。这不是概念图,不是设计师手绘,也不是调了几十个参数的Stable Diffusion工程;这是你在本地浏览器里,敲完回车就出来的结果。 这次我深度体验的是 ZEEKLOG 星图镜像广场上线的 ** Qwen-Image-2512 极速文生图创作室**。它不玩复杂配置,不堆参数选项,甚至没给你调步数、改采样器的机会——但它把“中文理解”和“秒级出图”这两件事,做到了真正意义上的丝滑统一。尤其当你想快速验证一个视觉点子、为方案配图、或单纯被某个中文意象击中时,它比任何“全能型”工具都更懂你。 下面,我就以真实操作为线索,带你完整走一遍:从打开页面到生成第一张赛博朋克图,再到反复迭代优化、批量尝试不同风格,最后说说它到底适合谁、不适合谁。全程不用装环境、不查文档、

机器人交叉CCF会议推荐

一、IROS(IEEE/RSJ International Conference on Intelligent Robots and Systems) 1. 基本信息 * 全称:IEEE/RSJ International Conference on Intelligent Robots and Systems * 简称:IROS * 创办时间:1988 年 * 举办频率:每年一次(通常在秋季) * 主办单位: * IEEE Robotics and Automation Society(IEEE RAS) * Robotics Society of Japan(RSJ) 2. 学术定位 IROS 是全球机器人领域最重要的顶级国际会议之一,强调“智能机器人系统”

手把手教程:用LingBot-Depth快速搭建机器人抓取感知系统

手把手教程:用LingBot-Depth快速搭建机器人抓取感知系统 1. 引言 你有没有想过,为什么家里的扫地机器人有时候会卡在椅子腿旁边,或者对着地上的拖鞋犹豫半天?又或者,为什么工业流水线上的机械臂,偶尔会把零件抓歪甚至掉在地上? 这背后一个关键原因,是机器人“看”得不够清楚。 机器人不像我们人类,用眼睛就能轻松判断物体的远近、形状和位置。它们依赖深度相机——一种能测量每个像素点距离的设备。但问题来了,深度相机拍出来的原始数据,就像一张布满雪花点和空洞的模糊照片。物体边缘不清晰,反光表面一片空白,远处细节完全丢失。用这样的“视力”去抓取物体,就像让你蒙着一层磨砂玻璃去拿东西,成功率可想而知。 今天,我要带你解决的就是这个核心痛点。我们将用一个叫 LingBot-Depth 的模型,给机器人的深度视觉做一次“高清修复”。它能将粗糙、不完整的原始深度图,转换成清晰、完整、精确的3D地图。有了这副“高清眼镜”,你的机器人才能真正“看清”世界,稳稳地抓住目标。 这篇教程,我会用最直白的方式,

智能家居笔记Home-Assistant+小智AI

智能家居笔记Home-Assistant+小智AI

设备框架图 概述: 总体而言借用各种开源项目,致力做到好用可控。输入设备小智AI作为用户前端,后端用小智AI华南理工开源服务器。智能家庭中控采用树莓派5搭载HAOS,用homeassistant,包括手机APP。各种终端设备,支持zigbee通信协议,wifi通信协议,小米设备支持milot的设备可以连接,其他类似美的海尔的设备也看home assistant的插件支持程度,没有本身开源的使用舒适。 主机: thinkpad-S5-yoga 地址xxxxxxxxxxxxx 用户:xxxxxxxxxxx 服务备注服务端口frigate5000sambamnt/media/usbsharehttp/mnt/usb_share/podcast10086mediamtx.servicexxxxxxxxxxx8554napcatkoimilocomicamxxxxxxxxxxxxxxastra-color.servicezaokafei-fetch.timer/mnt/usb_share/podcast/zaokafeibambucam.serviceDesktop/bambustud