Skip to content

课题组新人手册

第0章 欢迎与入组指引

课题组方向

本课题组的核心方向是软硬件协同设计,关注的是把东西做出来、跑起来、用起来,工程落地优先于论文发表。

目前组内有两个主要研究方向:

方向一:雷达信号处理与智能感知

围绕毫米波雷达展开,覆盖从信号处理到上层应用的完整链路。典型课题包括:

  • 雷达点云建模与目标检测
  • 工业机器人感知(避障、定位、手势识别等)
  • 无人机探测与跟踪
  • 雷达与视觉/IMU 的多传感器融合

日常工作涉及:雷达原始数据解析、点云处理算法开发、深度学习模型训练与部署、嵌入式端侧推理。

方向二:FPGA 软硬件协同设计

基于 FPGA 平台完成各类工程系统的设计与实现,强调从需求到可交付系统的全流程能力。典型课题包括:

  • 芯片测试验证平台搭建
  • 高速数据收发与采集系统
  • 自定义通信协议实现(SPI、I2C、LVDS、SerDes 等)
  • FPGA 与上位机/嵌入式处理器的协同工作

日常工作涉及:RTL 设计与仿真、时序约束与优化、板级调试、接口驱动开发。

你入组后会根据兴趣和项目需求分配到其中一个方向,但两个方向的基础技能(Linux 使用、Git 协作、FPGA 开发流程)是共通的。

组织架构

角色职责
导师方向把控、资源协调、对外合作
高年级学长项目指导、技术答疑、代码/设计 Review
学习基础、参与项目、独立承担子任务

有问题先问学长,不要憋着,也不要事事找导师。

成员介绍

姓名方向角色主要工作内容联系方式
谢秀伟雷达方向负责人
崔放雷达
金童雷达
柳炳辰FPGA方向负责人

(请各方向负责人补充完善「主要工作内容」和「联系方式」列)

技术问题优先找自己方向的负责人或同方向学长,跨方向的问题可以在群里提。

入组 Checklist

以下是你入组第一周需要完成的事项,逐项打勾:

  • [ ] 加入课题组微信群 / 飞书群
  • [ ] 获取服务器账号(找管理员开通)
  • [ ] 获取 Git 仓库访问权限
  • [ ] 安装个人电脑基础软件(见第3章)
  • [ ] 完成一次 SSH 登录服务器
  • [ ] 了解组会时间和周报提交方式
  • [ ] 认领一块入门开发板,完成点灯实验

第1章 日常规则

考勤与作息

课题组没有严格打卡制度,但有基本要求:

  • 工作日白天应在实验室,有事提前在群里说一声
  • 长时间不在(超过半天)需要告知导师
  • 寒暑假按导师要求执行,通常不会完全放假

组会与汇报

  • 组会频率:每周一次(具体时间见群通知)
  • 组会内容:每人轮流汇报本周进展、下周计划
  • 周报:每周五下班前提交(模板见附录C)

汇报的核心原则:说清楚做了什么、卡在哪、下一步打算怎么办。 不需要写成论文,但不能只说"在学习"。

沟通规范

场景渠道
日常讨论、快速问答微信群
正式文档、资料共享飞书
代码/设计相关讨论Git Issue / PR 评论
需要导师决策的事单独找导师或在组会提出

提问前请先自己搜索,搜索无果再问人。提问时说清楚:你想做什么、试了什么、报了什么错。

实验室规范

  • 离开时检查:烙铁、电源、示波器是否关闭
  • 公共桌面保持整洁,个人物品收纳好
  • 实验室空调、灯光走最后一个人负责关
  • 食物饮料远离开发板和仪器

第2章 账号与权限开通

需要开通的账号

账号类型用途找谁开通
服务器 SSH 账号远程登录、跑仿真/训练服务器管理员
GitLab/GitHub 账号代码版本管理项目负责人
NAS 账号文件共享与备份服务器管理员
飞书/企业微信文档协作组内管理员
EDA License 服务器Vivado/Quartus 等工具授权服务器管理员

密钥管理

SSH 登录统一使用密钥认证,不要用密码登录。生成方法:

bash
ssh-keygen -t ed25519 -C "你的邮箱"

生成后将公钥(~/.ssh/id_ed25519.pub)发给管理员,私钥自己保管好,不要传给任何人,不要上传到公开仓库。

密码规范

  • 不要所有平台用同一个密码
  • 服务器相关密码不要记在公开文档里
  • 推荐使用密码管理器(如 KeePass、Bitwarden)

第3章 个人电脑环境(Windows)

通用软件

软件用途备注
Windows Terminal终端Win11 自带,Win10 从 Microsoft Store 安装
VS Code代码编辑器必装,后续章节多处依赖
Git版本控制安装时勾选"Add to PATH"
Python 3.x脚本开发建议用 Miniconda 管理环境
Typora / ObsidianMarkdown 写作写周报、文档用
Everything文件搜索Windows 自带搜索太慢
7-Zip解压缩支持所有格式

终端环境配置

Windows 自带的 cmd 非常难用,请统一使用 Windows Terminal 作为日常终端。

安装 Windows Terminal:

  • Win11 已预装,直接在开始菜单搜索即可
  • Win10 从 Microsoft Store 搜索 "Windows Terminal" 安装

配置 PowerShell 为默认 Shell:

打开 Windows Terminal 设置(Ctrl+,),将默认配置文件设为 PowerShell(不是 Windows PowerShell 5.x,而是 PowerShell 7+)。如果还没有 PowerShell 7,先安装:

powershell
winget install Microsoft.PowerShell

终端美化(Oh My Posh):

推荐安装 Oh My Posh,可以在终端提示符中显示 Git 分支、当前路径、命令执行时间等信息。安装和配置参考这篇教程:https://juejin.cn/post/7139514254801141791

VS Code 推荐配置

必装插件:

插件用途
Remote - SSH远程连接服务器编辑代码
Verilog-HDL/SystemVerilogVerilog 语法高亮、代码补全
TerosHDLHDL 文档生成、波形查看、Linter 集成
PythonPython 开发全家桶
C/C++嵌入式 C 开发
GitLensGit 增强,查看每行代码的修改历史
Markdown All in One写文档/周报

按需安装:

插件用途
Serial MonitorVS Code 内置串口监视器
Hex Editor查看二进制文件
WaveTrace查看 VCD 波形文件
Todo Tree高亮代码中的 TODO/FIXME
Error Lens行内显示报错信息

推荐设置(settings.json):

json
{
    "files.autoSave": "afterDelay",
    "editor.fontSize": 14,
    "editor.tabSize": 4,
    "editor.renderWhitespace": "boundary",
    "files.trimTrailingWhitespace": true,
    "terminal.integrated.defaultProfile.windows": "PowerShell",
    "files.associations": {
        "*.v": "verilog",
        "*.sv": "systemverilog"
    }
}

Git 推荐配置

安装 Git 后,先做基本设置:

bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global core.editor "code --wait"
git config --global init.defaultBranch main

推荐配置一些常用缩写,减少重复输入:

bash
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph --all"

配置后 git lg 就能看到带分支图的简洁日志,比 git log 直观很多。

远程连接工具

软件用途推荐场景
MobaXtermSSH + X11 转发 + 文件传输需要图形界面的 EDA 操作
VS Code Remote-SSH远程代码编辑写脚本、改配置
Windows 远程桌面 (mstsc)RDP 连接连接 Windows 服务器

MobaXterm 免费版够用,优先用它。VS Code Remote-SSH 适合纯写代码的场景。

SSH config 文件配置示例(~/.ssh/config):

Host lab-server
    HostName 192.168.x.x
    User your_username
    Port 22
    IdentityFile ~/.ssh/id_ed25519

配置后直接 ssh lab-server 即可连接,不需要每次输 IP 和用户名。

EDA 工具

Xilinx Vivado

  • 下载地址:Xilinx 官网(需注册账号)
  • 安装注意事项:
    • 完整安装约 60-80 GB,选择你需要的器件系列即可减小体积
    • 安装路径不要有中文和空格
    • 安装完成后需要配置 License(找管理员获取 License 文件或服务器地址)

Intel Quartus Prime

  • 下载地址:Intel FPGA 官网
  • Lite 版免费,够教学和中小规模项目使用
  • 安装时注意一并安装对应器件的 Device Support

国产 IDE

厂商IDE 名称备注
高云半导体Gowin IDE教育版免费免 License,推荐入门
紫光同创PDS (Pango Design Suite)需申请 License(绑定 MAC 地址)
安路科技TD (Tang Dynasty)基础版免费

通用注意事项:

  • 安装路径全英文、无空格
  • 安装前关闭杀毒软件,防止组件被误删
  • 驱动装不上时,先去设备管理器手动更新

嵌入式开发工具

软件用途
STM32CubeIDE / Keil MDKSTM32 开发
串口助手(SSCOM / PuTTY)串口调试
Saleae Logic / PulseView逻辑分析仪上位机

按研究方向的专用软件

入组后根据你分配的方向,还需要额外安装以下工具。通用软件所有人都装,专用部分按需。

方向一:雷达信号处理与智能感知

软件用途备注
MATLAB雷达信号处理、算法原型验证学校正版授权,找管理员获取安装包
Python 科学计算栈点云处理、数据分析numpy, scipy, matplotlib, open3d, scikit-learn
PyTorch深度学习模型训练配合 CUDA 使用,注意版本对应关系
CloudCompare点云可视化与标注免费开源,查看三维点云数据
mmWave Studio / UniFlashTI 毫米波雷达配置与数据采集从 TI 官网下载,配合雷达开发板使用
LabelImg / Label Studio目标检测数据标注按项目需求选用

Python 环境建议用 Conda 单独建一个:

bash
conda create -n radar python=3.10
conda activate radar
pip install numpy scipy matplotlib open3d torch torchvision

方向二:FPGA 软硬件协同设计

软件用途备注
Vivado / Quartus / 国产 IDEFPGA 综合实现见上文 EDA 工具章节
ModelSim / QuestaRTL 仿真Quartus 自带 ModelSim-Intel 版本
Wireshark网络协议抓包分析调试以太网/UDP 数据收发时常用
串口/网口调试工具接口调试SSCOM、NetAssist、Hercules
Python + pyserial上位机脚本自动化测试、数据解析
ILA / SignalTap片上逻辑分析Vivado / Quartus 内置,在线抓取信号波形
Bus Hound / USBlyzerUSB 协议分析调试 USB 相关设计时使用

如果涉及嵌入式软核(MicroBlaze / Nios II / RISC-V)开发,还需要:

软件用途
Vitis / Nios II EDS软核处理器 SDK
GNU 交叉编译工具链编译嵌入式 C 程序

第4章 服务器使用(Linux)

服务器资源总览

(以下为示例,请根据实际情况填写)

名称IP用途关键配置
server-eda192.168.x.1EDA 仿真64核/128GB RAM
server-gpu192.168.x.2深度学习训练RTX 4090 x4
server-nas192.168.x.3文件存储20TB RAID

SSH 连接

基本连接:

bash
ssh username@192.168.x.x

推荐配置密钥免密登录(见第2章),配合 SSH config 使用。

长时间操作必须使用 tmux 或 screen,否则断网就丢失会话:

bash
tmux new -s work       # 创建会话
tmux attach -t work    # 重新连接
Ctrl+B, D              # 临时脱离(不关闭)

远程桌面(用于 EDA GUI)

部分 EDA 工具必须使用图形界面(如 Vivado 的 Block Design、时序分析器),有两种方案:

  1. X11 转发:MobaXterm 连接时自动启用,直接运行 vivado & 即可弹出窗口。网络差时卡顿明显。
  2. VNC/NoMachine:在服务器上启动远程桌面服务,体验更流畅,适合长时间使用。

Shell 环境配置

服务器默认的 bash 够用,但配置一下能明显提升效率。

安装 Zsh + Oh My Zsh(可选但推荐):

bash
# 安装 zsh
sudo apt install zsh    # Ubuntu/Debian
sudo yum install zsh    # CentOS

# 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Oh My Zsh 提供命令补全、路径缩写、Git 状态提示等功能。安装后编辑 ~/.zshrc

bash
# 推荐主题,轻量且显示 Git 分支
ZSH_THEME="agnoster"

# 推荐插件
plugins=(
    git                 # Git 命令缩写(gst=git status, gco=git checkout 等)
    zsh-autosuggestions # 根据历史记录自动补全命令(灰色提示,按→确认)
    zsh-syntax-highlighting  # 命令语法高亮,输错会变红
    z                   # 智能目录跳转,类似 Windows 上的 zoxide
)

两个插件需要额外安装:

bash
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

改完后 source ~/.zshrc 生效。

如果不想折腾 Zsh,至少在 bash 里加上这几行(编辑 ~/.bashrc):

bash
# 历史记录优化
HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups

# 常用别名
alias ll='ls -alh --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
alias gl='git log --oneline --graph -20'

常用 Linux 命令

bash
# 文件操作
ls -la                  # 列出文件(含隐藏)
cd /path/to/dir         # 切换目录
cp -r src/ dst/         # 复制目录
mv old new              # 移动/重命名
rm -rf dir/             # 删除目录(谨慎使用)

# 查看系统状态
df -h                   # 磁盘使用
free -h                 # 内存使用
htop                    # 进程监控(比 top 好用)
nvidia-smi              # GPU 状态

# 文件查找与文本搜索
find . -name "*.v"      # 按名查找
grep -r "module top" .  # 全文搜索

# 权限
chmod 755 script.sh     # 添加执行权限
chown user:group file   # 修改归属

EDA 仿真任务

服务器上的 EDA 工具通常已预装,使用前先加载环境:

bash
source /opt/Xilinx/Vivado/2023.1/settings64.sh
vivado -mode tcl        # 命令行模式

大型综合/布局布线任务建议在 tmux 中运行,或使用 nohup:

bash
nohup vivado -mode batch -source run_synth.tcl > synth.log 2>&1 &

GPU 训练任务

bash
# 查看 GPU 占用情况
nvidia-smi

# 指定使用哪块 GPU
export CUDA_VISIBLE_DEVICES=0,1

# 在 tmux 中启动训练
tmux new -s train
python train.py --config config.yaml
# Ctrl+B, D 脱离

Conda 环境管理:

bash
conda create -n myenv python=3.10
conda activate myenv
pip install -r requirements.txt

资源使用礼仪

  • 跑大任务前先 nvidia-smi / htop 看一眼,别和别人抢资源
  • 要占多卡或长时间占用 CPU,在群里知会一声
  • 训练完及时释放 GPU,不要挂着空跑
  • 别在服务器上存大量个人文件(电影、数据集用完即删或移到 NAS)
  • /tmp 目录定期清理,不要当永久存储用

第5章 硬件设备管理

设备清单

(示例,根据实际情况维护)

类别设备数量存放位置
FPGA 开发板Xilinx ZCU1042柜子A
FPGA 开发板Intel DE10-Nano3柜子A
FPGA 开发板高云 TangNano 20K5抽屉B
测试仪器Rigol DS1054Z 示波器2工位旁
测试仪器Saleae Logic Pro 161柜子A
电源可调直流电源 30V/5A2工位旁
嵌入式STM32F4 开发板若干抽屉B

借用流程

  1. 在飞书「设备登记表」中登记:姓名、设备名、借用日期、预计归还日期
  2. 从指定位置取走设备
  3. 使用完毕后归还原位,在登记表中更新状态
  4. 如有损坏,第一时间上报,不要自行拆修

使用注意事项

开发板:

  • 拿取前触摸金属物体释放静电
  • 不要带电插拔排线
  • 下载 bitstream 前确认电压跳线配置正确
  • 长时间不用请断电,不要让板子一直通着电跑

示波器/电源:

  • 使用前检查探头状态,归还时探头归位
  • 可调电源使用前先设好限流值,再接负载
  • 不确定的操作先问学长,烧设备的成本很高

线缆与配件:

  • USB 线、JTAG 线、杜邦线等用完放回原处
  • 不要把实验室的线带回宿舍
  • 发现线材破损及时更换并标记

第6章 Git 协作规范

为什么硬件工程也要用 Git

你可能觉得 Git 是软件工程师的工具,但对 FPGA 项目来说同样重要:

  • Verilog/VHDL 是文本文件,天然适合 Git 管理
  • 多人协作时避免"你的代码覆盖了我的代码"
  • 出问题时能快速回退到上一个能跑的版本
  • 有完整的修改记录,知道谁在什么时候改了什么

Git 基础操作

bash
git clone <仓库地>         # 克隆项目
git pull                     # 拉取最新代码
git add .                    # 暂存所有修改
git commit -m "描述信息"     # 提交
git push                     # 推送到远程
git status                   # 查看当前状态
git log --oneline            # 查看提交历史

分支策略

main        ← 稳定版本,能综合/能跑的代码
  └── dev   ← 开发分支,日常提交到这里
       ├── feature/axi-dma    ← 功能分支
       └── feature/uart-ctrl  ← 功能分支

规则:

  • 不要直接往 main 分支提交
  • 新功能从 dev 拉 feature 分支,完成后合并回 dev
  • dev 测试稳定后再合并到 main
  • 合并前找人做 Code Review

FPGA 项目 .gitignore

Vivado 项目的 .gitignore 参考:

text
# Vivado 生成文件
*.jou
*.log
*.str
*.dcp
*.bit
*.bin
*.mcs
.cache/
.hw/
.sim/
.runs/
.gen/
.ip_user_files/

# 建议排除工程文件,用 Tcl 脚本重建
*.xpr

Quartus 项目的 .gitignore 参考:

text
# Quartus 生成文件
db/
incremental_db/
output_files/
simulation/
*.qws
*.bak
*.rpt

核心原则:只提交源文件(.v / .sv / .vhd / .xdc / .sdc / .tcl),不提交生成物。

Commit Message 规范

格式:<类型>: <简要描述>

feat: 添加 AXI-DMA 读通道控制逻辑
fix: 修复 UART 波特率计算溢出问题
refactor: 重构 FSM 状态编码为独热码
docs: 更新引脚约束说明
test: 添加 FIFO 读写仲裁仿真用例

要求:

  • 用中文或英文均可,组内统一即可
  • 描述写清楚改了什么,不要写"修改了一些东西"
  • 一次 commit 做一件事,不要攒一堆改动一起提交

项目目录结构建议

project-name/
├── rtl/              # 可综合的 HDL 源码
│   ├── top.v
│   └── submodules/
├── tb/               # 仿真 testbench
├── constrs/          # 约束文件(.xdc / .sdc)
├── scripts/          # Tcl 构建脚本
├── docs/             # 设计文档
├── sw/               # 配套软件(如嵌入式 C 代码)
├── ip/               # IP 核配置文件(.xci)
├── .gitignore
└── README.md

第7章 AI 辅助开发

为什么要用 AI 工具

AI 编程助手不会替代你思考,但能显著加速重复性工作:

  • 快速生成模块骨架代码(比如一个标准 AXI-Lite 从机接口)
  • 帮你写 testbench 和激励信号
  • 解释报错信息、分析时序违例
  • 辅助写 Python 脚本处理数据、自动化流程

Cursor

Cursor 是基于 VS Code 的 AI 编辑器,集成了 AI 对话和代码补全功能。

安装:

  • 从 cursor.com 下载安装
  • 登录账号后即可使用
  • 支持 VS Code 的所有插件

常用操作:

  • Ctrl+L:打开 AI 对话窗口
  • Ctrl+K:对选中代码进行 AI 编辑
  • Tab:接受 AI 补全建议

终端 AI 工具

如果你习惯在终端工作,可以使用:

  • Claude Code:终端中直接与 AI 对话,支持读写文件、执行命令
  • Opencode:轻量级终端 AI 工具,TUI 界面

这些工具适合在服务器上使用,不需要图形界面。

实用场景示例

生成 Verilog 模块骨架:

"帮我写一个参数化的同步 FIFO,数据位宽和深度可配置,需要 full/empty 标志"

写 Testbench:

"给这个 UART 发送模块写一个 testbench,波特率 115200,发送 0x55 和 0xAA 两个字节"

解释报错:

"Vivado 综合报错 multi-driven net,这个信号在 xx.v 第 45 行和第 78 行都被赋值了,帮我分析原因"

写 Python 脚本:

"写一个脚本,批量读取 .rpt 文件中的资源利用率数据,汇总成表格"

注意事项

  • AI 生成的 HDL 代码必须仿真验证后才能使用,不要直接综合上板
  • 涉及未公开的项目细节、合作方 IP 时,注意信息安全
  • AI 擅长写"常见模式"的代码,独创性的架构设计还得自己想
  • 把 AI 当作一个随时可用的助手,不是替代学习的捷径

附录 A:常见问题 FAQ

Q:Vivado 综合/实现特别慢怎么办? A:检查是否开启了多线程(set_param general.maxThreads 8),大项目建议在服务器上跑,用 Tcl 脚本批处理。

Q:SSH 连不上服务器? A:按顺序排查——网络是否连通(ping)→ 端口是否正确 → 用户名是否正确 → 密钥是否配对 → 服务器 SSH 服务是否运行。

Q:开发板下载 bitstream 失败? A:检查 JTAG 线连接 → 驱动是否安装 → Vivado Hardware Manager 能否识别设备 → 试试换根 USB 线。

Q:Git push 被拒绝? A:大概率是远程有新提交你没拉取。先 git pull --rebase,解决冲突后再 push。

Q:GPU 显示被占满但 nvidia-smi 看不到是谁? A:用 fuser -v /dev/nvidia* 查看占用进程的 PID 和用户,在群里确认后再处理。


附录 B:推荐学习资源

FPGA / 数字设计

  • 《FPGA原理和结构》—— 天野英晴(入门推荐)
  • 《数字设计和计算机架构》—— Harris & Harris
  • Xilinx 官方 UG 文档系列(用到什么查什么,不用通读)
  • AMD/Xilinx 官方 GitHub 示例工程

Verilog / SystemVerilog

  • 《Verilog数字系统设计教程》—— 夏宇闻
  • HDLBits 在线练习(hdlbits.01xz.net)—— 强烈推荐,做完基本功就有了

Linux

  • 《鸟哥的Linux私房菜》—— 入门经典
  • MIT Missing Semester(中文翻译版)—— 讲命令行、Git、Shell 脚本等实用技能

Git

  • Pro Git(git-scm.com/book/zh)—— 官方免费书,前三章够用
  • Learn Git Branching(learngitbranching.js.org)—— 可视化交互学习

Python

  • 廖雪峰 Python 教程 —— 快速入门
  • 用到什么学什么,不需要系统学完再开始用

附录 C:模板

周报模板

markdown
# 周报 - 姓名 - 日期

## 本周完成

- [项目名] 具体做了什么
- [学习] 看了什么、练了什么

## 遇到的问题

- 问题描述 + 当前状态(已解决/待解决)

## 下周计划

- 计划做什么,预期产出是什么

FPGA 项目目录模板

见第6章「项目目录结构建议」部分。

设备借用登记表(飞书在线文档)

日期借用人设备名称设备编号预计归还实际归还备注

附录 D:更新日志

日期修改内容修改人
2024-xx-xx初版发布xxx