跳转至

实验五-Extra AI-Coder:四位全加器

概述

本指导书以实验五 四位全加器为例,介绍如何借助 AI-Coder 插件完成从工程创建、代码编写、功能仿真到综合实现的完整 FPGA 开发流程。AI-Coder 是一个集成在 VS Code 网页版中的智能助手插件,它提供了:

  • Vivado 操作按钮:一键执行创建工程、仿真、综合、实现、生成 bitstream 等常用操作;
  • AI 辅助功能:通过自然语言对话,让 AI 根据实验需求自动生成 RTL 代码、Testbench 和约束文件;
  • 日志粘贴与纠错:将 Tcl Console 的最近日志粘贴到输入框,由 AI 分析错误并给出修复建议。

前置准备

安装 AI-Coder 插件

  1. 在浏览器中打开 VS Code 网页版(由课程服务器提供);
  2. 下载插件安装包:前往 AI-Coder GitHub 仓库Releases 页面,下载最新的 ai-coder-thucs-x.x.x.vsix 文件;
  3. 在 VS Code 网页版中安装插件:
    • 点击左侧边栏的 扩展 图标(或按 Ctrl+Shift+X);
    • 点击扩展面板右上角的 ··· 菜单,选择 「从 VSIX 安装...」(Install from VSIX);
    • 选择刚刚下载的 .vsix 文件,等待安装完成;
    • 安装成功后,边栏会出现 AI-Coder 图标。
  4. 点击左侧边栏的 AI-Coder 图标,打开插件面板,可以看到如下界面:

AI-Coder 界面

已预装的环境

如果课程服务器已经预装了 AI-Coder 插件,可以跳过上述安装步骤,直接在边栏找到 AI-Coder 图标即可。

实验步骤

第一步:创建 Vivado 工程

  1. 在 AI-Coder 面板顶部找到 "创建工程" 按钮,旁边有一个文本输入框;
  2. 将输入框中的工程名改为你想要的名称,例如 Lab5
  3. 点击 "创建工程" 按钮。

插件会自动向 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 编写代码

方式一:一键生成(推荐)

  1. 在底部输入框中粘贴本次实验的设计需求以及 实验五 四位全加器 中给定的参考代码,例如以下需求与源码:

    实验五:四位全加器。
    用元件例化的方式设计实现一个四位全加器。
    先编写一位全加器 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。
    
  2. 点击 "AI 编写代码" 按钮,或直接点击 "发送"

AI 会根据你的描述,自动生成以下文件并写入工作目录:

文件 说明
full_adder.sv 一位全加器模块
Adder.sv 四位全加器顶层模块(例化 4 个 full_adder)
Adder_tb.sv 仿真测试文件
Adder.xdc 管脚约束文件

方式二:对话式逐步生成

你也可以通过多轮对话逐步完善设计:

  1. 先发送:请帮我编写一位全加器 full_adder
  2. 确认无误后,再发送:用 4 个 full_adder 例化组成四位全加器 Adder
  3. 接着发送:为 Adder 编写 Testbench,覆盖多组输入组合
  4. 最后发送:生成 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

第四步:功能仿真

  1. "仿真" 按钮旁的数字输入框中设置仿真运行时间,例如 100(单位 us);
  2. 点击 "仿真" 按钮。

插件会向 Vivado 发送:

launch_simulation -type behavioral
run 100us

仿真启动后,Vivado 会打开波形窗口,你可以在其中观察 ABCinFCout 各信号的变化,验证全加器的功能是否正确。

仿真时间

默认仿真时间为 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 帮你分析:

  1. 点击 "粘贴日志" 按钮——插件会自动将 Tcl Console 最近的输出粘贴到底部输入框中;
  2. 在粘贴的日志前面补充说明,例如:综合时报错了,请帮我分析原因并修复
  3. 点击 "发送",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
排查错误 粘贴日志 + 自然语言对话

注意事项

  1. 等待操作完成:每次点击按钮后,请在 Tcl Console 输出窗口中确认操作已完成,再进行下一步。特别是综合和实现可能需要等待一段时间。
  2. 检查 AI 生成的代码:AI 生成的代码仅供参考,请仔细阅读并理解其逻辑,确保符合实验要求后再提交实验报告。
  3. 管脚约束需核实:AI 生成的 XDC 文件中的管脚映射应与实际硬件连线一致,请根据实验箱接线情况进行核对。
  4. 保存工作:操作过程中注意随时保存文件,避免因网络波动导致工作丢失。
  5. 善用对话功能:除了按钮操作外,你可以随时在输入框中用自然语言向 AI 提问,例如询问全加器的工作原理、调试建议等。

最后更新: 2026年3月26日
作者:j0ey-yu