陈工-创龙科技 发表于 2026-1-9 10:38:59

DR1 评估板 PL 端 FPGA 开发完全指南:基础案例与 ADC 采集模块详解(一)

前言本文为创龙科技编写的PL端案例开发的指引文档,对PL端开发案例进行简要介绍。
开发环境Windows开发环境:Windows10 64bit开发工具:TD_5.9.1_DR1_2025.1_NL、FD_2025.1_SP1
术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。
https://file1.elecfans.com/web3/M00/46/3D/wKgZO2lfYQmAKCHaAABDEhdz5e4977.png
注意事项(1)请先按照《开发环境搭建》文档安装TD、FD等软件以及进行JTAG驱动安装,使用下载器(厂家:安路科技,型号:AL-LINK-FT-V1.0)连接评估板JTAG接口至PC端USB接口。(2)在进行本文操作前,请先参考《TD-FD工程编译与加载》,熟悉工程编译、镜像加载等方法。(3)案例位于产品资料“4-软件资料\Demo\FPGA-demos\FPGA-HDL-demos\”目录下。案例包含bin目录和project压缩包,其中bin目录下含有案例可执行镜像文件,project压缩包内包含案例工程文件。案例目录详细说明见下表:

https://file1.elecfans.com/web3/M00/46/3E/wKgZO2lfY0SAFZprAAAXPNjLJus547.png
1 led_flash案例1.1 案例说明案例功能:控制评估底板LED3每隔0.5s将状态翻转一次。管脚约束请查看案例工程"project\constraints\"目录下的.adc文件。
https://file1.elecfans.com/web3/M00/46/3E/wKgZO2lfY1aANweoAACKyVAmmp8748.png
图 1
1.2 操作说明请将工程镜像加载至PL端运行,即可看到评估底板的LED3进行闪烁。1.3 关键代码(1)使用DR1_PHY_OSCDIV原语提供的osc_clk(2MHz)作为LED的参考时钟。(2)利用osc_clk(2MHz)进行计数,使LED实现间隔0.5s进行状态转换。
https://file1.elecfans.com/web3/M00/46/3E/wKgZO2lfY5SAGmO7AAH8WVWuFJA285.png
图 2
2 key_led案例2.1 案例说明案例功能:通过按键KEY4(USER2)控制评估底板的LED3状态。管脚约束请查看案例工程"project\constraints\"目录下的.adc文件。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfY6eABzSSAAB6cfSYK_o803.png
图 3
https://file1.elecfans.com/web3/M00/46/3E/wKgZO2lfY1aANweoAACKyVAmmp8748.png
图 4
2.2 操作说明请将工程镜像加载至PL端运行,按下KEY4按键,可看到评估底板的LED3状态翻转。2.3 关键代码(1)使用DR1_PHY_OSCDIV原语提供的osc_clk(2MHz)作为系统时钟。(2)对按键按下时进行消抖处理。(3)通过按键按下产生对应标志控制LED状态。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfY8GATQ8rAAJOSgQsPtY402.png
图 5
3 ad7606_capture案例3.1 案例说明案例功能:通过创龙科技TL7606P模块采集8通道数据(采样率为200KSPS),并使用TD软件的ChipWatcher工具,将采集的数据转换成电压值并保存为.csv文件。程序功能框图如下所示。本案例使用创龙科技TL7606P-A1模块,硬件配置为并行模式,支持核芯互联CL1606(国产)和ADI AD7606采样芯片。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfY8iAO-43AAA2VGze0Zw717.png
图 6
管脚约束请查看案例工程"project\constraints\"目录下的.adc文件。3.2 操作说明(1)硬件连接请将TL7606P模块连接至评估板的EXPORT2接口,将TL7606P模块的VX通道正确连接至信号发生器A通道。同时使用下载器连接评估板JTAG接口至PC端USB接口。硬件连接如下图所示。备注:本次演示通过TL7606P模块的V1通道进行数据采集,其他通道的数据采集方法同理。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfY9CARscRABH0WB4jFKw004.png
图 7
信号发生器设置A通道输出频率为1KHz、峰峰值为5.0Vpp(即幅值为2.5V)的正弦波信号,如下图所示。TL7606P模块默认量程为±5V,待测信号电压请勿超过模块量程,否则可能会导致模块损坏。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfY9iAUxQzAAfNhVfpC-A831.png
图 8
(2)运行测试打开案例对应的TD工程,在工程编译成功后,点击"Hierarchy Navigation"栏"ChipWatcher"选项下的.cwc文件。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfY-SAdVspAABU-VtpXmg746.png
图 9
将评估板上电,点击图标,直至"Device"栏出现器件信息。在"Bite File"栏中,选择案例对应的.bit镜像文件。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfY-2AIz2xAADGCf1OV1o060.png
图 10
点击图标,加载.bit镜像文件。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZASAJLFGAAC_eHa2pYY603.png
图 11
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZAWALbDiAAC9J8Q9Xqo536.png
图 12
点击图标,进行单次采集,并等待采集完成。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZBqAO_uEAACiyHAen9U365.png
图 13
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZBqAU0AoAAC9nDCHHSI982.png
图 14
采集完成后,点击"Setup",选中要查看的数据,鼠标右键依次选择"Set Bus/Group Radix… -> signed DEC"设置波形格式为"signed DEC"(有符号十进制)。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZDKAZgREAADdPvtHtmY566.png
图 15
点击当前窗口右上角"File",选择"Export Wave Date",导出波形数据.csv文件。导出完成后,会弹出窗口显示导出文件的路径以及名称。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZD-AbzD0AADGX3V866o534.png
图 16
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZD-AKlHXAAAlWTTU9oc979.png
图 17
(3)结果验证请将生成的.csv文件使用Excel打开,如下图所示。其中,第C列数据为TL7606P-A1模块V1通道的采集数据,第J列数据为TL7606P-A1模块V8通道的采集数据。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZFCAO020AAE8mLIbGKk696.png
图 18
由于本次演示通过TL7606P-A1模块的V1通道进行数据采集,因此请选中表格中的第C列,点击“插入”选项,选择“折线图”,将采集数据显示为更加直观的波形图,如下图所示。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZF2AI92iAAGYZJ_f6rk821.png
图 19
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZF2AF4_GAAH5aohEIrc293.png
图 20
根据折线图确定波峰值为:16179,波谷值为:-16321
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZHSAfilgAADCtIzqCLU127.png
图 21 波峰值
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZHuAJRkRAADQzE0FpiU792.png
根据以上波峰值和波谷值,套用计算公式:CODE = VIN x VREF / 2n,计算可得约为4.95V,与信号发生器设置峰峰值:5.00Vpp接近。参数解析:VIN:输入电压,即波峰值和波谷值之和,为16179 + 16321 = 32500;VREF:量程电压值,即为:+5V - ( -5V ) = 10V;n:数据有效位,此处为16位。3.3 IP核配置说明设置输入的时钟频率为50MHz。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZJSAWWMfAABlNS9HHz8856.png
图 23 PLL IP核配置
使能CLK0,配置输出频率为100MHz。https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZJ2AOzJ3AACHY4_0EoI517.png
图 24 PLL IP核配置
3.4 关键代码(1)顶层模块顶层模块的源码位于案例目录"project\hdl\"下的"ad7606_capture.v"。a)端口定义。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZKiAdSURAABjMUxNIA4558.png
图 25
b)仿真调试信号定义。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZK-AdSMMAAAUWF7wsz8384.png
图 26
c)实例化ad7606_capture_bd模块,该模块负责从PS端产生时钟,提供给PL端。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZLeAF2YAAAAVXyeYOc8821.png
图 27
d)使用PLL IP核输出100MHz ADC时钟。
https://file1.elecfans.com/web3/M00/46/3E/wKgZPGlfZL-AMpxRAAAQL7QQAb8577.png
图 28
e)实例化AD7606模块。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZMaAaSxpAABLHW9zATY956.png
图 29
(2)AD7606模块AD7606模块的源码位于案例目录"project\hdl\"下的"ad7606.v"。a)配置aAD7606时序信号线。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZO-AdAZqAAAPd-_fons778.png
图 30
b)将采集到的数据分离给各通道。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZPiAcgtOAABHvDbfhV4507.png
图 31
(3)parallel_adc_capture模块parallel_adc_capture模块的源码位于案例目录"project\hdl\"下的"parallel_adc_capture.v"。a)生成AD7606的采样时钟和读取数据的时钟,其中采样时钟为200KSPS,读取数据的时钟为采样时钟的50倍。
https://file1.elecfans.com/web3/M00/46/3F/wKgZO2lfZQCAbXs9AAAc4xr_9b8394.png
图 32
b)控制convst、cs/rd的信号。
https://file1.elecfans.com/web3/M00/46/3F/wKgZPGlfZZ-AVz1rAAAXFncNJRg742.png
图 33
c)以100MHz时钟分频计数生成时序信号。
https://file1.elecfans.com/web3/M00/46/3F/wKgZPGlfZaeAP7nxAABUi3RR_kg456.png
图 34
d)TL7606P模块每完成一次采样,则立刻依次读取出各通道AD数据。
https://file1.elecfans.com/web3/M00/46/3F/wKgZPGlfZa-ADNNXAACAB-Veop8882.png
图 35
页: [1]
查看完整版本: DR1 评估板 PL 端 FPGA 开发完全指南:基础案例与 ADC 采集模块详解(一)