FPGA 开发入门:在 Xilinx Artix-7 上构建 4 位加法器
编者按:随着先进算法持续演进,嵌入式设计师常难以满足现代应用的处理需求。现场可编程门阵列(FPGA)提供所需性能,近期硬件与工具进步使 FPGA 开发面向更广受众。本文为源自 Jim Ledin《架构高性能嵌入式系统》系列第四篇,提供构建简单完整 FPGA 项目的实战演练。
开发您的首个 FPGA 项目
我们将在 Digilent Arty A7 开发板上的 Xilinx Artix-7 FPGA 中构建 4 位二进制加法器。板卡有两款:高性价比 35T 型(129 美元)和更强 100T 型(249 美元),唯一区别为 FPGA 型号,影响可用逻辑资源。100T 更适合后续需更多资源的项目(如后续章节的数字示波器示例)。
购买渠道:Digilent 官方商店、Amazon 等零售商。
本教程聚焦 FPGA 核心、四用户拨码开关、四按键、五 LED。步骤覆盖安装 Vivado 工具套件、创建项目、编写 VHDL 代码、将位流加载至开发板——包括易失性配置内存和板载 Flash 持久化运行。
项目概览
设计实现 4 位加法器。四拨码开关提供第一个 4 位操作数,四按键提供第二个。FPGA 持续相加并在四 LED 显示 4 位和,第五 LED 指示进位输出。此简洁设计让我们专注工具链流程而非复杂逻辑。
安装 Vivado
我们使用 Xilinx Vivado,Windows 和 Linux 免费可用。以下说明假设 Windows;Linux 安装步骤类似。
- 创建 Xilinx 用户账号:https://www.xilinx.com/registration/create-account.html
- 登录 https://xilinx.com 访问 下载页面。
- 下载 Xilinx 统一安装器(Windows 自解压 Web 安装器)。为与本书一致,选择 2020.1 版;否则用最新版。
- 运行安装器(如 Xilinx_1_0602_1208_Win64.exe)。若 Windows 拦截下载,选"仍要安装"。
- 欢迎界面点下一步。
- 输入 Xilinx 凭据点下一步。
- 确认许可协议点下一步。
- 选择Vitis作为产品(Vitis 捆绑 Vivado 及额外工具)。点下一步。
- 接受默认组件选择点下一步。
- 选择目标目录(如 C:\Xilinx)点下一步。
- 检查摘要点安装。安装可能需数分钟。
安装完成,从桌面快捷方式或开始菜单启动 Vivado。
创建项目
- 打开 Vivado 点快速启动面板创建项目。
- 项目名输入ArtyAdder,选目录(如 C:\Projects),勾选为此项目创建子目录。点下一步。
- 选RTL 项目并勾此时不指定源文件。点下一步。
- Boards标签搜索"Arty"选Arty A7-100或Arty A7-35视硬件而定。点下一步。
- 完成向导创建空项目。
添加 VHDL 源文件
- Sources面板右键Design Sources→添加源文件…。
- 选添加或创建设计源文件点下一步。
- 选创建文件,命名FullAdder.vhdl点确定。
- 重复创建Adder4.vhdl,点完成。
- 忽略定义模块对话框;点确定并确认是。
- 打开FullAdder.vhdl粘贴以下代码:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end entity FULL_ADDER; architecture BEHAVIORAL of FULL_ADDER is begin S <= (A XOR B) XOR C_IN; C_OUT <= (A AND B) OR ((A XOR B) AND C_IN); end architecture BEHAVIORAL;
- 打开Adder4.vhdl替换内容为:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ADDER4 is port ( A4 : in std_logic_vector(3 downto 0); B4 : in std_logic_vector(3 downto 0); SUM4 : out std_logic_vector(3 downto 0); C_OUT4: out std_logic ); end entity ADDER4; architecture BEHAVIORAL of ADDER4 is component FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end component; signal c0, c1, c2 : std_logic; begin FULL_ADDER0 : FULL_ADDER port map ( A => A4(0), B => B4(0), C_IN => '0', S => SUM4(0), C_OUT => c0 ); FULL_ADDER1 : FULL_ADDER port map ( A => A4(1), B => B4(1), C_IN => c0, S => SUM4(1), C_OUT => c1 ); FULL_ADDER2 : FULL_ADDER port map ( A => A4(2), B => B4(2), C_IN => c1, S => SUM4(2), C_OUT => c2 ); FULL_ADDER3 : FULL_ADDER port map ( A => A4(3), B => B4(3), C_IN => c2, S => SUM4(3), C_OUT => C_OUT4 ); end architecture BEHAVIORAL;
后续步骤
下一篇文章将指导您仿真该设计、为 Arty 板综合、将生成的位流编程进 FPGA。
经 Packt Publishing 授权转载。版权所有 © 2021 Packt Publishing
Jim Ledin 是 Ledin Engineering, Inc. CEO。专长嵌入式软硬件设计、开发、测试,擅长嵌入式系统网络安全、渗透测试、道德黑客。爱荷华州立大学航空航天工程学士,佐治亚理工学院电气与计算机工程硕士。加州执业电气工程师、CISSP、CEH、CPT 持证者。
相关内容
- 嵌入式 FPGA 设计:硬件资源
- 嵌入式 FPGA 设计:实现语言
- 嵌入式 FPGA 设计:开发流程
- 开源工具简化 FPGA 编程
- 在 FPGA 或 ASIC 中实现浮点算法
- 利用 FPGA 进行深度学习
- 软件工具将 GPU 代码迁移至 FPGA 用于 AI 应用
- FPGA 在 Subaru Eyesight 视觉 ADAS 中取代 ASIC
订阅《Embedded》周刊,获取更多洞察。
嵌入式
- 树莓派与Python构建机器人:完整指南
- 树莓派自平衡Segway搭建全攻略
- 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
- 先进增材制造软件助力产能最大化
- 液体增材制造:用液态材料构建3D物体
- 嵌入式系统设计:步骤、原则与现实应用
- 利用嵌入式AI将大数据转化为可执行智能洞察
- 跨 PCIe 代际设计高性能互连:应对带宽飙升挑战
- 面向 MIPI 摄像头的高性能 FPGA 加速器助力嵌入式视觉
- Arrow Electronics 宣布欧洲 FPGA 设计大赛:赢取免费开发板与丰厚奖品
- MAXREFDES220#:基于光学传感器的无袖带血压监测参考设计
- 微芯科技推出国防级 PolarFire SoC FPGA,启动早期访问计划