项目概述
本项目实现了一个完整的FPGA系统,用于通过SPI接口控制和读取AS6501 TDC芯片。系统包括SPI主控模块、控制模块、测试序列器、Block RAM结果存储、UART批量传输模块和Python数据分析工具,支持完整的测试与分析流程:
上电命令→配置寄存器写入/回读验证→Init命令启动测量→中断驱动的连续测量(默认10000次)→结果存入Block RAM→按键触发UART批量传输到上位机→Python解析数据并计算Jitter
核心特性
- 批量测量模式: 连续采集MAX_MEASUREMENTS次(默认10000)后自动停止
- Block RAM存储: 48位×10000条测量数据,使用Vivado Block RAM推断
- UART批量传输: BTN[1]按键触发,115200 baud,8字节数据包格式
- 电平触发中断: 支持AS6501中断始终为低电平的模式(直接再次读取)
- Python Jitter分析: 解析UART数据→计算时钟周期/TIE→生成6子图分析报告
硬件平台
- FPGA芯片: XC7A35T-2FGG484I (Artix-7系列)
- 时钟频率: 50MHz (引脚 Y18)
- 接口:
- SPI接口 (12.5MHz时钟频率)
- SCLK: E16
- MOSI: D14
- MISO: E13
- CS: F13
- AS6501中断信号 (低电平有效)
- INT_N: C13
- REFCLK: A13 (Output 10Mhz)
- UART接口 (115200 baud, 8N1)
- TX: G16
- RX: G15
- 4个LED: F19, E21, D20, C20 (共阳极,低电平点亮)
- 4个按键: M13, K14, K13, L13 (低电平有效,按下时为低电平)
- 1个复位按键: F20 (低电平有效)
- SPI接口 (12.5MHz时钟频率)
- IO电压: 3.3V
- BRAM预估: ~15-20 / 50 Block RAMs (用于10000×48位结果存储)
SPI通信参数
- 频率: 12.5MHz
- 模式: CPOL=0, CPHA=1 (Mode 1)
- 数据传输: MSB先行
- 时序要求: CS拉高前,需要距离最后一个SCLK下降沿半个周期的时间
- AS6501协议格式:
- 单字节命令:
0x30= Power ON 命令0x18= Init 命令
- 写配置寄存器:
[0x80 + 地址][数据](2字节) - 读结果寄存器:
[0x60 + 地址]←[数据](1字节发送,1字节接收) - 读配置寄存器:
[0x40 + 地址]←[数据](1字节发送,1字节接收)
- 单字节命令:

