引言
随着FPGA在嵌入式系统、数字信号处理和通信领域的广泛应用,掌握FPGA开发工具链的搭建已成为硬件工程师的必备技能。正点原子推出的Artix-7系列开发板(如AX7A035/AX7A100)凭借其高性价比和丰富的外设资源,成为初学者和工程师的理想选择。本文将以Windows系统为平台,详细介绍如何基于Vivado 2020.1搭建完整的FPGA开发环境,并通过实际代码示例演示从工程创建到硬件验证的全流程。
一、环境准备与软件安装
1.1 硬件需求清单
组件 | 规格要求 | 备注 |
---|---|---|
FPGA开发板 | 正点原子Artix7系列(如AX7A35T) | 核心芯片为Xilinx XC7A35T |
电源适配器 | 5V/2A DC输出 | 需通过Type-C接口供电 |
USB数据线 | Type-C转USB-A | 用于JTAG调试和串口通信 |
存储设备 | 至少50GB可用空间 | 建议使用SSD提升编译速度 |
1.2 Vivado安装流程
-
下载安装包
访问Xilinx官网下载Vivado 2020.1 WebPACK版本(免费授权支持Artix-7系列) -
运行安装程序
# 解压后执行安装脚本(以Linux为例) ./xsetup -b AuthTokenGen # 生成安装令牌 ./xsetup --agree 3rdPartyEULA --edition WebPACK
-
选择组件
勾选以下关键组件:- Vivado Design Suite
- Artix-7 Device Support
- Digilent Cable Drivers
-
配置环境变量
安装完成后,在Windows系统环境变量中添加:PATH=%PATH%;C:\Xilinx\Vivado\2020.1\bin
二、创建第一个FPGA工程
2.1 新建Vivado项目
- 启动Vivado → 选择"Create Project"
- 设置工程名称和存储路径(建议使用英文路径)
- 选择工程类型为"RTL Project",勾选"Do not specify sources at this time"
2.2 器件配置
选择与开发板匹配的芯片型号:
# 正点原子AX7A35T对应器件参数
Family: Artix-7
Package: csg324
Speed Grade: -1
Part: xc7a35tcsg324-1
2.3 添加设计文件
创建Verilog源文件led_flash.v
:
module led_flash(
input wire clk, // 50MHz时钟输入
output reg led // LED输出信号
);
reg [24:0] counter = 0; // 25位计数器
always @(posedge clk) begin
counter <= counter + 1;
led <= counter[24]; // 分频产生约1Hz信号
end
endmodule
2.4 约束文件配置
创建XDC约束文件artix7.xdc
:
# 时钟约束
create_clock -period 20.000 [get_ports clk]
# LED引脚定义(根据开发板原理图)
set_property PACKAGE_PIN F19 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports led]
# 时钟引脚定义
set_property PACKAGE_PIN E3 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
三、工程实现与硬件验证
3.1 设计综合与实现
- 点击"Generate Bitstream"自动执行:
- 综合(Synthesis)
- 布局布线(Implementation)
- 比特流生成(Bitstream Generation)
3.2 硬件下载验证
- 连接开发板并上电
- 打开Hardware Manager → Auto Connect
- 选择生成的
.bit
文件 → Program Device
成功下载后,可观察到开发板上的LED以约1Hz频率闪烁。
四、进阶应用示例:UART通信
4.1 创建UART控制器
module uart_tx (
input clk,
input [7:0] data,
input start,
output reg tx
);
parameter CLK_FREQ = 50_000_000;
parameter BAUD_RATE = 115200;
// 波特率分频计算
localparam DIVISOR = CLK_FREQ / BAUD_RATE;
reg [15:0] counter = 0;
reg [3:0] bit_index = 0;
reg [7:0] shift_reg;
always @(posedge clk) begin
if (start && bit_index == 0) begin
shift_reg <= data;
bit_index <= 1;
tx <= 0; // 起始位
end else if (bit_index > 0) begin
if (counter == DIVISOR-1) begin
counter <= 0;
if (bit_index < 9) begin
tx <= shift_reg[0];
shift_reg <= {1'b0, shift_reg[7:1]};
bit_index <= bit_index + 1;
end else begin
tx <= 1; // 停止位
bit_index <= 0;
end
end else begin
counter <= counter + 1;
end
end
end
endmodule
4.2 测试流程
- 添加ILA(Integrated Logic Analyzer)核进行在线调试
- 使用串口调试工具(如Putty)接收数据
- 发送测试数据
8'h55
,验证波形符合UART协议
总结
本文详细介绍了基于Vivado的正点原子Artix-7开发环境搭建全流程,涵盖从软件安装、工程创建到硬件验证的完整开发链路。关键步骤包括:
- 正确配置器件型号和约束文件
- 掌握Verilog基本设计方法
- 熟练使用Vivado的综合实现工具
- 掌握在线调试和硬件验证技巧
建议开发者进一步探索:
- 使用Block Design进行IP核集成
- 利用TCL脚本实现自动化流程
- 开发复杂外设驱动(如DDR3、HDMI)
正点原子官方提供的例程库(可在其官网下载)包含丰富的外设驱动代码,可作为深入学习的重要参考。通过持续实践和项目积累,开发者可快速提升FPGA开发能力。