实验五-Extra AI-Coder:四位全加器
概述
本指导书以实验五 四位全加器为例,介绍如何借助 AI-Coder 插件完成从工程创建、代码编写、功能仿真到综合实现的完整 FPGA 开发流程。AI-Coder 是一个集成在 VS Code 网页版中的智能助手插件,它提供了:
- Vivado 操作按钮:一键执行创建工程、仿真、综合、实现、生成 bitstream 等常用操作;
- AI 辅助功能:通过自然语言对话,让 AI 根据实验需求自动生成 RTL 代码、Testbench 和约束文件;
- 日志粘贴与纠错:将 Tcl Console 的最近日志粘贴到输入框,由 AI 分析错误并给出修复建议。
前置准备
安装 AI-Coder 插件
- 在浏览器中打开 VS Code 网页版(由课程服务器提供);
- 下载插件安装包:前往 AI-Coder GitHub 仓库 的 Releases 页面,下载最新的
ai-coder-thucs-x.x.x.vsix文件; - 在 VS Code 网页版中安装插件:
- 点击左侧边栏的 扩展 图标(或按
Ctrl+Shift+X); - 点击扩展面板右上角的
···菜单,选择 「从 VSIX 安装...」(Install from VSIX); - 选择刚刚下载的
.vsix文件,等待安装完成; - 安装成功后,边栏会出现 AI-Coder 图标。
- 点击左侧边栏的 扩展 图标(或按
- 点击左侧边栏的 AI-Coder 图标,打开插件面板,可以看到如下界面:

已预装的环境
如果课程服务器已经预装了 AI-Coder 插件,可以跳过上述安装步骤,直接在边栏找到 AI-Coder 图标即可。
实验步骤
第一步:创建 Vivado 工程
- 在 AI-Coder 面板顶部找到 "创建工程" 按钮,旁边有一个文本输入框;
- 将输入框中的工程名改为你想要的名称,例如
Lab5; - 点击 "创建工程" 按钮。
插件会自动向 Vivado Tcl Console 发送以下命令:
create_project Lab5 [file join [pwd] Lab5] -part xc7a35tfgg484-2 -force
cd [file join [pwd] Lab5]
open_project Lab5.xpr
三条命令依次执行:创建工程、切换到工程目录、打开工程。后续添加的源文件和约束文件都会在该工程目录下操作。等待 Tcl Console 显示工程信息即表示打开成功。
默认芯片型号
插件默认使用 xc7a35tfgg484-2,与实验箱上的 FPGA 型号一致,无需手动修改。
第二步:使用 AI 编写代码
方式一:一键生成(推荐)
-
在底部输入框中粘贴本次实验的设计需求以及 实验五 四位全加器 中给定的参考代码,例如以下需求与源码:
实验五:四位全加器。 用元件例化的方式设计实现一个四位全加器。 先编写一位全加器 full_adder(输入 A、B、Cin,输出 F、Cout), 再用 4 个 full_adder 例化组成四位全加器 Adder(输入 A[3:0]、B[3:0]、Cin,输出 F[3:0]、Cout)。 同时编写 Testbench 进行功能验证。 管脚约束:A[3:0] 对应 IO1~IO4,B[3:0] 对应 IO6~IO9,Cin 对应 IO5, F[3:0] 对应 IO17~IO20,Cout 对应 IO16。 -
点击 "AI 编写代码" 按钮,或直接点击 "发送"。
AI 会根据你的描述,自动生成以下文件并写入工作目录:
| 文件 | 说明 |
|---|---|
full_adder.sv |
一位全加器模块 |
Adder.sv |
四位全加器顶层模块(例化 4 个 full_adder) |
Adder_tb.sv |
仿真测试文件 |
Adder.xdc |
管脚约束文件 |
方式二:对话式逐步生成
你也可以通过多轮对话逐步完善设计:
- 先发送:
请帮我编写一位全加器 full_adder - 确认无误后,再发送:
用 4 个 full_adder 例化组成四位全加器 Adder - 接着发送:
为 Adder 编写 Testbench,覆盖多组输入组合 - 最后发送:
生成 XDC 约束文件,A[3:0] 对应 IO1~IO4,B[3:0] 对应 IO6~IO9……
AI 自动写文件
AI 回复中如果包含文件块,插件会自动将文件内容写入你的工作目录。你可以在 VS Code 的文件浏览器中看到新生成的文件。
第三步:添加源文件到工程
AI 生成代码后,文件已经存在于工作目录中。你需要将它们添加到 Vivado 工程。在输入框中发送:
请将 full_adder.sv、Adder.sv、Adder_tb.sv 和 Adder.xdc 添加到当前工程
AI 会返回对应的 Tcl 命令并自动执行,类似于:
add_files -norecurse {full_adder.sv Adder.sv Adder_tb.sv}
add_files -fileset constrs_1 -norecurse Adder.xdc
update_compile_order -fileset sources_1
第四步:功能仿真
- 在 "仿真" 按钮旁的数字输入框中设置仿真运行时间,例如
100(单位 us); - 点击 "仿真" 按钮。
插件会向 Vivado 发送:
launch_simulation -type behavioral
run 100us
仿真启动后,Vivado 会打开波形窗口,你可以在其中观察 A、B、Cin、F、Cout 各信号的变化,验证全加器的功能是否正确。
仿真时间
默认仿真时间为 100us,你可以根据 Testbench 中的激励长度自行调整,直接在输入框中修改数值即可。
第五步:添加约束文件(管脚绑定)
仿真验证通过后,需要为设计添加管脚约束(XDC 文件),将信号映射到 FPGA 的物理引脚。
如果第二步中 AI 已经生成了 Adder.xdc,你可以在输入框中发送:
请将 Adder.xdc 添加到约束文件集
AI 会执行类似如下的命令:
add_files -fileset constrs_1 -norecurse Adder.xdc
如果还没有约束文件,可以告诉 AI 让它生成:
请根据以下管脚分配生成 XDC 约束文件:
A[3:0] 对应 IO1~IO4(M21, N20, N22, P21),
B[3:0] 对应 IO6~IO9(T21, U21, R21, R22),
Cin 对应 IO5(P22),
F[3:0] 对应 IO17~IO20(AB18, AA20, AB21, AA21),
Cout 对应 IO16(AA18)。
AI 会生成完整的 XDC 文件并写入工作目录,内容类似:
set_property -dict {PACKAGE_PIN M21 IOSTANDARD LVCMOS33} [get_ports A[3]]
set_property -dict {PACKAGE_PIN N20 IOSTANDARD LVCMOS33} [get_ports A[2]]
set_property -dict {PACKAGE_PIN N22 IOSTANDARD LVCMOS33} [get_ports A[1]]
set_property -dict {PACKAGE_PIN P21 IOSTANDARD LVCMOS33} [get_ports A[0]]
...
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
务必核对管脚映射
AI 生成的管脚约束应与 实验五 四位全加器 中给出的约束及实际硬件接线一致,请仔细核对后(也可直接copy实验五中的约束)再进行综合。
第六步:综合
确认约束文件已添加后,点击 "综合" 按钮。插件会依次执行:
reset_run synth_1
launch_runs synth_1
wait_on_run synth_1
等待 Tcl Console 中出现 synth_1 complete 字样,表示综合完成,这一步将verilog代码转换成FPGA真正能实现的硬件逻辑结构。
第七步:实现
点击 "实现" 按钮,插件会执行:
reset_run impl_1
launch_runs impl_1
wait_on_run impl_1
等待 Tcl Console 显示 impl_1 complete,这一步将综合后的逻辑网表真正映射到FPGA芯片的物理资源。
第八步:生成 Bitstream
点击 "生成bit" 按钮,插件会执行:
open_run impl_1
write_bitstream -force [get_property DIRECTORY [current_run]]/[get_property TOP [current_fileset]].bit
生成完成后,.bit 文件会出现在工程目录的 impl_1 运行目录中,可用于下载到 FPGA。
错误排查与纠正
在操作过程中,如果某一步出现错误(如综合报错、仿真失败等),可以使用 "粘贴日志" 功能让 AI 帮你分析:
- 点击 "粘贴日志" 按钮——插件会自动将 Tcl Console 最近的输出粘贴到底部输入框中;
- 在粘贴的日志前面补充说明,例如:
综合时报错了,请帮我分析原因并修复; - 点击 "发送",AI 会阅读日志内容,定位错误原因,并给出修正后的代码或操作建议。
常见错误示例
错误:[Synth 8-439] module 'full_adder' not found
原因:full_adder.sv 未添加到工程,或文件名/模块名拼写不一致。
操作:点击"粘贴日志",发送给 AI,AI 会提示你检查文件是否已添加并给出 add_files 命令。
完整流程速查
| 步骤 | 操作 | 使用的按钮/功能 |
|---|---|---|
| 1 | 创建 Vivado 工程 | 创建工程 + 工程名输入框 |
| 2 | 编写 RTL / Testbench | AI 编写代码 或自然语言对话 |
| 3 | 添加源文件到工程 | 自然语言对话 |
| 4 | 行为级仿真 | 仿真 + 时间输入框 |
| 5 | 添加约束文件(管脚绑定) | 自然语言对话 |
| 6 | 综合 | 综合 |
| 7 | 实现 | 实现 |
| 8 | 生成 Bitstream | 生成bit |
| — | 排查错误 | 粘贴日志 + 自然语言对话 |
注意事项
- 等待操作完成:每次点击按钮后,请在 Tcl Console 输出窗口中确认操作已完成,再进行下一步。特别是综合和实现可能需要等待一段时间。
- 检查 AI 生成的代码:AI 生成的代码仅供参考,请仔细阅读并理解其逻辑,确保符合实验要求后再提交实验报告。
- 管脚约束需核实:AI 生成的 XDC 文件中的管脚映射应与实际硬件连线一致,请根据实验箱接线情况进行核对。
- 保存工作:操作过程中注意随时保存文件,避免因网络波动导致工作丢失。
- 善用对话功能:除了按钮操作外,你可以随时在输入框中用自然语言向 AI 提问,例如询问全加器的工作原理、调试建议等。