anydream / FPGAIOTest

该项目主要用于对 FPGA 板卡进行引脚连通性测试,可自动向每个引脚发送指定字符串。

Repository from Github https://github.comanydream/FPGAIOTestRepository from Github https://github.comanydream/FPGAIOTest

FPGA IO Test

简介

  该项目主要用于对 FPGA 板卡进行引脚连通性测试,其生成的代码可驱动各个引脚通过串口自动输出引脚对应的名称。

  可通过键值对的形式配置任意个数的引脚和名称,名称之间允许不等长,代码会自适应名称长度。每个引脚支持任意波特率的串口输出。将引脚接入 CH340 或其他串口工具的 RX 引脚,在 PC 串口助手或逻辑分析仪上可观察到对应引脚名称的字符串,以此来快速测试所有引脚。

  引脚输出的串口波形遵循 RS232 标准,时序定义为:1b 低起始位、8b 数据位、0b 校验位、1b 高停止位,在串口传输期间输出高空闲位,空闲时间可配置。

  • 注1:由于 FPGA 各个 BANK 不一定都是 3.3V,因此需要一个带可调电平转换的 USB 串口工具。

  • 注2:该工程运行前提是有明确的时钟输入,或是 FPGA 内部产生的时钟,请自行修改代码。

  • 注3:测试 Altera、国产器件等 FPGA 时,可能需要在设置中将复用 IO 改为 regular IO 以通过布线。部分引脚不推荐复用,如 reconfig_n 等,测试文件未使用。

  • 注4:Altera 的部分引脚为 CLK_IN,不可输出,类似的 GTP、Xilinx ZYNQ 的 MIO、DDR 等也无法通过串口输出。

  • 注5:部分 FPGA 型号引脚定义相同,采用下划线表示,如 EP4CE6_10F17_U17 代表 EP4CE6F17/EP4CE6U17/EP4CE10F17/EP4CE10U17 四种型号.

  • 注6:不同工作电压LV、速度等级C、温度范围I等并不影响定义但命名含有的,选择文件时不给出相关命名,如 GW1N_4LQ144 代表 GW1N_LV4 和 UV4(标压和低压)系列、及其其下 C6/I7、C5/I6 等不同速度等级,以上型号分类并不影响Pin定义,故选择文件名不再给出。

使用流程

  1. 在各自芯片对应的 IDE 中新建空白工程;

  2. 在控制台内执行UARTIOTest,生成引脚测试代码(也可把任意引脚定义文件拖动到UARTIOTest.exe图标之上执行);

  3. 将生成的UARTTest.v加入工程,在 Top 模块内加上`include "UARTTestInst.vh"实例化测试模块;

  4. 综合代码,在约束文件内绑定输出信号到芯片管脚;

  5. 编译下载(可能涉及进一步的设置编译环境、复用等);

  6. 挨个测试引脚输出,观察输出内容是否与定义相匹配。

执行参数

命令行:

UARTIOTest.exe [pin_def] [freq] [baud_rate] [interval] [clk_name] [rstn_name]

参数:

  • pin_def:引脚定义文件路径,默认为PinDef.txt

  • freq:时钟clk输入频率,默认为100_000_000

  • baud_rate:串口输出波特率,默认为115200

  • interval:串口输出间隔的空闲周期,默认为100_000_000

    间隔时间(秒) = interval / freq 
    
  • clk_name:时钟信号名,默认为clk

  • rstn_name:复位信号名,默认为rst_n

引脚定义语法

  • 一行定义一条键值对,键定义引脚的信号名称,值定义引脚的输出名称

  • 使用=分隔符分隔键与值,如果没有分隔符则视为信号名称输出名称相同。

  • 分号;后的内容视为注释,直到遇到换行。

仓库内容

  1. source:源代码(未公开)

  2. UARTIOTest.exe:主程序

  3. PinDef.txt:引脚定义文件

参考

Uart_IO_Auto_test

About

该项目主要用于对 FPGA 板卡进行引脚连通性测试,可自动向每个引脚发送指定字符串。