1. FPGA TSN开发环境搭建与点灯验证

FPGA TSN开发环境搭建与点灯验证 学习卡片

任务说明

本案例在目标 FPGA 开发板上完成 TSN 开发的最小硬件闭环:安装工具链、创建基础工程、编写 LED 闪烁逻辑、添加引脚约束、生成比特流并下载验证。完成后,后续 TSN 案例即可在同一工程骨架上扩展。

环境与依赖

  • Vivado 2020.2 或更高版本(含 Vitis,用于后续 TSN 软核开发)。
  • 目标开发板:Xilinx 7 系列(示例以 Artix-7 XC7A35T 为例,其他板卡只需替换约束文件中的引脚号)。
  • 板载 50 MHz 时钟与至少一个用户 LED。
  • USB-JTAG 下载线及对应驱动。

工程结构与实现

工程包含顶层模块 top_led_blink,用计数器分频 50 MHz 时钟产生约 1 Hz 的 LED 翻转信号。约束文件 led_blink.xdc 绑定时钟与 LED 引脚。以下为完整可综合代码与约束。

// top_led_blink.v
module top_led_blink (
    input  wire clk,      // 50 MHz 板载时钟
    input  wire rst_n,    // 低有效复位
    output reg  led       // 用户 LED
);

    // 50 MHz / (2 * 25_000_000) = 1 Hz 翻转
    localparam integer CNT_MAX = 25_000_000 - 1;

    reg [24:0] cnt;

    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            cnt <= 25'd0;
            led <= 1'b0;
        end else if (cnt == CNT_MAX) begin
            cnt <= 25'd0;
            led <= ~led;
        end else begin
            cnt <= cnt + 1'b1;
        end
    end

endmodule
# led_blink.xdc  (Artix-7 XC7A35T 示例,按实际板卡修改)
set_property -dict {PACKAGE_PIN E3  IOSTANDARD LVCMOS33} [get_ports clk]
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports rst_n]
set_property -dict {PACKAGE_PIN L15 IOSTANDARD LVCMOS33} [get_ports led]

create_clock -period 20.000 -name sys_clk [get_ports clk]

创建与运行步骤

  1. Vivado 中新建 RTL 工程,器件选择与开发板一致(如 xc7a35tcsg324-1)。
  2. 添加 top_led_blink.v 为设计源文件,led_blink.xdc 为约束文件。
  3. 将 top_led_blink 设为顶层模块。
  4. 运行 Synthesis → Implementation → Generate Bitstream。
  5. 连接开发板,打开 Hardware Manager,Program Device 下载比特流。

验证方法与通过条件

  • 综合与实现无严重错误(Critical Warning 以下可接受)。
  • 时序报告中 sys_clk 的 WNS ≥ 0,即建立时间满足。
  • 下载后观察 LED:应以约 1 秒为周期均匀闪烁(亮 1 s、灭 1 s)。
  • 按下复位(或上电复位)后 LED 从灭状态重新开始计数,说明复位逻辑生效。

满足以上条件即认为硬件平台可用,可进入后续 TSN 案例。

常见问题

  • LED 不亮:检查约束引脚号是否与板卡原理图一致,IOSTANDARD 是否匹配。
  • 闪烁过快或过慢:核对板载时钟频率,若不是 50 MHz 需调整 CNT_MAX。
  • 下载失败:确认 JTAG 驱动与 Hardware Manager 中器件识别正常。