该项目主要用于对 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定义,故选择文件名不再给出。
-
在各自芯片对应的 IDE 中新建空白工程;
-
在控制台内执行
UARTIOTest,生成引脚测试代码(也可把任意引脚定义文件拖动到UARTIOTest.exe图标之上执行); -
将生成的
UARTTest.v加入工程,在 Top 模块内加上`include "UARTTestInst.vh"实例化测试模块; -
综合代码,在约束文件内绑定输出信号到芯片管脚;
-
编译下载(可能涉及进一步的设置编译环境、复用等);
-
挨个测试引脚输出,观察输出内容是否与定义相匹配。
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。
-
一行定义一条键值对,键定义引脚的
信号名称,值定义引脚的输出名称。 -
使用
=分隔符分隔键与值,如果没有分隔符则视为信号名称与输出名称相同。 -
分号
;后的内容视为注释,直到遇到换行。
-
source:源代码(未公开)
-
UARTIOTest.exe:主程序
-
PinDef.txt:引脚定义文件