Xilinx Artix-7系列FPGA 高速采集卡开发例程使用手册

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Xilinx Artix-7系列FPGA 高速采集卡开发例程使用手册Revision History
Draft Date Revision No. Description
2016/07/07 V1.3 1.添加PCIE_SGDMA_ADC采集显示例程。

2.添加SRIO_ADC板间通信例程。

3.添加CAMERALINK相机图像采集实时显示例程。

4.添加I2C功能测试。

2016/04/15 V1.2 1.添加SRIO_DMA_DSP收发测试。

2.添加SRIO_DSP_X1收发测试。

3.添加PCIE_SGDMA测试例程。

4.更新SRIO接口数据回环收发测试。

5.更新XADC功能测试。

6.更新PCIE_EP_X2测试程序。

2016/02/18 V1.1 1.添加UDP网络通信功能测试。

2.添加ADC功能测试。

3.添加DAC功能测试。

4.PCIE数据读写功能测试。

5.PWM信号驱动LED输出测试。

6.GTP接口回环通讯及信号质量测试。

7.SRIO接口数据回环收发测试。

2015/11/20 V1.0 1.初始版本。

目录
1 基于下载器的程序加载与烧写 (4)
1.1程序加载 (4)
1.2程序烧写 (8)
2 采集卡功能测试 (10)
2.1LED——流水灯测试 (10)
2.2KEY——按键测试 (10)
2.3PWM——PWM信号驱动LED输出测试 (11)
2.4UART——UART回环测试 (11)
2.5EEPROM——IIC总线写入和读取测试 (13)
2.6DDR3——DDR3的读写测试 (14)
2.7XADC——XADC功能测试 (16)
2.8UDP_DEMO——UDP网络通信功能测试 (18)
2.9ADC_AD9613——ADC功能测试 (20)
2.10DAC_AD9706——DAC功能测试 (21)
2.11PCIE_EP_X2——PCIE数据读写功能测试 (23)
2.12PCIE_SGDMA——PCIE SGDMA的传输功能测试 (27)
2.13PCIE_SGDMA_ADC——ADC数据通过PCIE传输到PC波形显示 (36)
2.14GTP_CONNECTION——GTP接口回环通讯及信号质量测试 (37)
2.15FPGA_SRIO——SRIO接口数据回环收发测试 (41)
2.16SRIO_DSP_X1——SRIO板间通信测试 (46)
2.17SRIO_DMA_DSP——SRIO_DMA方式收发测试 (48)
2.18SRIO_ADC——SRIO板间ADC通讯测试 (51)
2.19CAMERALINK_VGA_V1——CAMERALINK相机图像采集实时显示 (52)
2.20I2C——I2C功能测试 (54)
备注:
●如实验无特别说明,表示广州创龙Artix-7采集卡均在VIVADO开发平台做对应实验。

●默认.bit和.bin文件位于相应工程下的.runs\impl_1或ForDownload文件夹内。

1 基于下载器的程序加载与烧写
1.1程序加载
(1)将下载器连接到电脑。

打开设备管理器查看下载器连接是否正常,如图所示:
图1
(2)将下载器连接到采集卡。

打开"VIVADO->Open Hardware Manager",如图所示:
图2
(3)采集卡上电,在菜单栏选择"Tools->Auto Connect",如图所示:
图3
(4)下载器连接电脑与采集卡成功,如图所示:
图4
(5)右键点击FPGA核,选择"Program Device…",如图所示:
图5
(6)选择需要加载的.bit文件。

可直接输入路径或者通过浏览选择,如图所示:
图6
(7)点击"OK",等待加载完成即可。

1.2程序烧写
(1)根据上节内容连接连接电脑与采集卡;
(2)右键点击FPGA核,选择"Add Configuration Memory Device…",如图所示:
图7
(3)选择正确的memory型号,点击OK。

如图所示:
(4)若弹出如下对话框,继续点击OK;
(5)选择正确的bin文件,点击OK即可。

图10
2 采集卡功能测试
所有软件工具均在光盘资料tools文件夹内。

2.1LED——流水灯测试
本测试程序实现的功能是:点亮LED和实现LED的流水灯状态闪烁。

按程序加载步骤加载LED.bit文件。

演示现象:
①LED1-LED3做循环流水灯闪烁。

2.2KEY——按键测试
本测试程序实现的功能是:实现按键控制LED灯的亮灭。

按程序加载步骤加载KEY.bit 文件。

演示现象:
①按下USER KEY1,点亮LED1保持1S后熄灭;
②按下USER KEY2,点亮LED2保持1S后熄灭。

2.3PWM——PWM信号驱动LED输出测试
本测试程序实现的功能是:产生3路1KHz占空比分别为80%、50%和20%的PWM信号,连接至led输出管脚,3个LED灯会呈现出不同的亮度。

按程序加载步骤加载PWM_TOP.bit文件。

演示现象:
①板上LED1、LED2和LED3呈现出不同的亮度。

2.4UART——UART回环测试
本测试程序实现的功能是:实现UART回环,使用波特率为115200。

将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载uart_test.bit文件。

演示现象:
①在串口调试终端输入字符,FPGA串口接收后返回,在接收端显示,如图所示:
②可在顶层通过修改参数直接修改串口波特率,如图所示:
图12
2.5EEPROM——IIC总线写入和读取测试
本测试程序实现的功能是:实现IIC总线底层的写入和读取操作。

写操作:由地址0开始向EEPROM中写入了10个十六进制数据,分别是11、12、13、14、15、16、17、18、19和21;读操作:由地址0开始从EEPROM中读出24个数据(注:EEPROM中没写数据的地址,数据读出为FF)。

将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载EEPROM.bit文件。

演示现象:
①接收区选择十六进制显示,可以看到串口打印数据,如图所示:
图13
2.6DDR3——DDR3的读写测试
本测试程序实现的功能是:实现DDR3的写入和读取操作。

写操作:串口助手以文件方式发送1K个数据,FPGA接收并将数据写入DDR3;读操作:FPGA从DDR3读取数据,并将1K个数据连续发送到串口,串口助手以文件方式保存数据。

将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载DDR3.bit 文件。

演示现象:
①发送区勾选“启用文件数据源”,然后选中测试文件“1024字节测试数据.txt”,接收区勾选“接收另存为文件”,命个名“1024字节接收数据.txt”,点保存。

然后点击
发送,可以看到串口打印数据,如图所示:
②可在顶层通过修改参数直接修改DDR3通信频率,如图所示:
图15
2.7XADC——XADC功能测试
本测试程序实现的功能是:实现XADC十个AD通道的读取过程。

读取的AD值分别是温度值、VCCINT电压、VCCAUX电压、VP/VN专用通道电压、VCCBRAM电压、辅助通道AUX0电压、辅助通道AUX1电压、辅助通道AUX2电压、辅助通道AUX3电压、辅助通道AUX8电压(注:专用通道,辅助通道板子上都没有加输入,电压应该都是约0V)。

将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载xadc_uart_tx_top.bit文件。

演示现象:
①每隔200ms,串口打印各通道的对应值,如图所示:
图16
②将XADC采到的数据填入“XADC值计算.xls”,该表在XADC工程目录下,即可自动算出对应的温度及电压。

③专用通道VP/VN、辅助通道AUX0、辅助通道AUX8可测0-1V电压。

原理图如下:
图17
2.8UDP_DEMO——UDP网络通信功能测试
本测试程序实现的功能是:UDP通讯功能,不支持PING命令。

测试方法:使用测试工具软件,创建一个UDP连接,FPGA采集卡IP地址:192.168.0.25,端口:6666,FPGA 会发回接收到的数据。

将采集卡的网口和PC机连接,按程序加载步骤加载UDP_RX_TX_TOP_TEST.bit文件。

演示现象:
修改主机IP跟采集卡处于同一网段,可看到连接信息如下:
图18
打开网络调试助手软件,新建UDP,输入主机IP跟端口号,输入采集卡IP跟端口号,按启动。

在发送区输入需要发送的数据,FPGA采集卡回送接收到的数据并显示,如图所示:
图20
2.9ADC_AD9613——ADC功能测试
本测试程序实现的功能是:实现ADC双通道的读取过程。

ADC量程是1.75Vpp,请确认输入电压不要超量程,AD采集12位,每行打印5个点,默认打印的采样率1KHz。

将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载ADC_A D9613.bit文件。

演示现象:
串口调试助手接收区设置串口波特率115200,8位,无校验,1位停止位,ASCII显示。

可以打印通道A或通道B的数据。

用串口发送''B(ASCII)''即采集并打印B通道的数
据;同理可采集并打印A通道数据。

如图所示:
图21
将ADC采到的数据填入“ADC值计算.xls”,该表在ADC_AD9613工程目录下,即可自动算出电压。

2.10DAC_AD9706——DAC功能测试
本测试程序实现的功能是:实现DAC三角波数模转换。

频率和伏值各三个等级,如下表所示:
表1
等级 1 2 3
频率175MHZ 87.5MHZ 43.75MHZ
表2
等级 1 2 3
伏值 1.2V 0.6V 0.3V
通过串口可以选择转换频率和伏值的等级。

发送''SET 21''意思为选择频率第2级、伏值第1级。

注意为ASCII码输入,中间有空格,若设置正确,串口会收到''SET OK'',若没收到,说明设置格式有误,请重新设置。

图22
将采集卡的串口和PC机连接,打开串口调试助手软件。

按程序加载步骤加载DAC_AD9706.bit文件。

演示现象:
用示波器可以观察到DAC输出三角波,如图所示:
图23
2.11PCIE_EP_X2——PCIE数据读写功能测试
本测试程序实现的功能是:实现PCIE PIO功能。

测试步骤如下:
(1)烧写PCIE_EP_X2.bin文件到FPGA,文件位于''demo\PCIE_EP_X2\PCIE_EP_X2.runs\ impl_1''目录下;
(2)将采集卡拨码开关打到''MASTER SPI''模式,插入PC机主板PCIE插槽;
(3)启动PC机;
(4)使用PciTree测试工具(只支持32位操作系统),在光盘tools目录下,将HLP.SYS 文件拷贝到''C:\WINDOWS\system32\drivers'',即可直接运行。

客户可自行选择其他测试工具。

运行PciTree,可以看到采集卡相关信息,如下图所示:
图24
双击BAR 0,对BAR 0空间进行读写测试,出现如下对话框:
图25 选择“是”出现如下对话框:
图26
BAR 0空间偏移地址0x0为只读寄存器,读出的值为固定值0x12345678,如图所示:(FPGA采用的是大端格式)
图27
可对任意单个寄存器进行读写操作,选中对应的地址,在''edit memory''输入值,点击''Write Memory'',勾选''auto read memory'',即可看到从板卡中读出的数据。

BAR 0空间偏移地址0x4所对应的寄存器bit2-bit0,连接到LED,对此寄存器写值0x 07000000可点亮采集卡LED,勾选''auto read memory'',即可看到从板卡中读出的数据,如下图所示:
图28
2.12PCIE_SGDMA——PCIE SGDMA的传输功能测试
本测试程序实现的功能是:PC与FPGA通过PCIE进行DMA方式的数据传输。

测试步骤如下:
(1)烧写PCIE_SGDMA.bin文件到FPGA,文件位于''demo\PCIE_SGDMA\ForDownload''目录下;
(2)将采集卡拨码开关打到''MASTER SPI''模式,插入PC机主板PCIE插槽;
(3)进入目录''PCIE_SGDMA\PC\driver'',双击wd_install.bat安装PC端PCIE驱动,如遇以下提示,选择“始终安装此驱动程序软件”;
图29 安装完毕,按任意键退出:
图30 若提示需要重启计算机,则重启;
图31
驱动安装成功如图所示:
图32
(4)进入目录''PCIE_SGDMA\PC\PCIE_Video'',运行PCIE_Video.exe测试工具;
(5)点击“发送测试”进行DMA发送测试,即时速度为623830.933KB/s;
(6)点击“接收测试”进行DMA接收测试,即时速度为673034.382KB/s;
图35
(7)点击“发送接收测试”进行DMA发送接收全双工测试,即时速度为296542.995
KB/s;
图36
(8)点击“选择文件”按钮,选择一张要发送图片,图片尺寸须为320*256,图片将
显示在左边区域;
(9)点击“DMA发送”按钮,图片发送到采集卡的DMA缓冲区;
图38
(10)点击“DMA接收”按钮,PC端将读取采集卡的DMA缓冲区的数据,并以图片的
形式保存起来,保存路径为path的路径,文件名为原名加“-copy”后缀;
图39
(11)点击“停止”按钮,传输测试停止进行;点击“取消”按钮,退出程序。

2.13PCIE_SGDMA_ADC——ADC数据通过PCIE传输到PC波形显示
本测试程序实现的功能是:PC机通过PCIE PIO方式配置ADC并通过SGDMA方式将ADC采集到的数据发送至PC机。

测试步骤如下:
(1)烧写PCIE_SGDMA.bin文件到FPGA,文件位于''demo\PCIE_SGDMA\ForDownload''目录下;
(2)将采集卡拨码开关打到''MASTER SPI''模式,插入PC机主板PCIE插槽;
(3)按上节步骤安装PC端PCIE驱动
(4)进入目录''PCIE_SGDMA_ADC\PC\Waveshower'',运行Waveshower.exe测试工具;(5)点击选择A通道,点击下方“启动”按钮显示波形。

波形采样时间间隔下拉可选,
显示幅度拖动选择:
图40
(6)如需对波形进行保存,单击“保存文件”按钮,程序会在D盘中保存一帧最近采集的512M数据到RecvData.txt文件中;
(7)关闭程序过程,先单击“停止”按钮停止DMA读取板卡中数据和显示过程,然后单击“退出”按钮退出程序。

2.14GTP_CONNECTION——GTP接口回环通讯及信号质量测试
本测试程序实现的功能是:通过GTP接口进行板内回环通讯及信号质量测试,链路为x1模式。

将采集卡的CON4(GTP TXD)和CON5(GTP RXD)用HDMI线缆连接。

按程序加载步骤加载example_ibert_7series_gtp_0.bit文件。

GTP数据测试
在烧写完bit文件,系统检测到IBERT(Integrated Bit Error Ratio Tester集成式比特误
码率测试仪,是Xilinx专门用于具有高速串行接口的FPGA芯片的调试和交互式配置工具),
会弹出如下对话框:
图41
选择yes,如硬件链路正常,则弹出如下对话框,表示检测到1条链路。

图42
选择OK。

系统会自动收发数据,Errors为0,表示链路无误码,如下图:
图43
GTP信号质量测试
选择''Serial I/O Scans'',点击''Create scan'',如下图示:
图44
弹出如下界面,直接选择OK:
图45
扫描开始,等待扫描完成。

图46
眼图如下,完全张开,信号质量好。

图47
下图是信号很差时的扫描结果,几乎完全闭合。

图48
2.15FPGA_SRIO——SRIO接口数据回环收发测试
本测试程序实现的功能是:通过SRIO进行回环方式的数据传输。

将采集卡的CON4(GTP TXD)和CON5(GTP RXD)用HDMI线缆连接。

按程序加载步骤加载srio_example_top.bit和debug_nets.ltx文件(光盘资料里的路径为''demo/FPGA_SRIO/srio/srio.runs/impl_1'')。

通过JTAG控制SRIO读写
程序烧写完毕,弹出如上图界面:
选择hw_vios,可以看到控制信号vio_in_debug和vio_out_debug,如图所示:
图50
信号vio_out_debug为输入控制端,可做读写控制,信号vio_in_debug为输出显示端,如读数据会显示在这里。

vio_out_debug控制信号各比特位定义如下:
图51
●vio_out_debug[63]:写使能,上升沿有效;写控制时需先对该位写0然后写1;
●vio_out_debug[62]:读使能,上升沿有效;读控制时需先对该位写0然后写1;
●vio_out_debug[60:32]:读写地址位;
●vio_out_debug[31:0]:写数据,写控制时对应写数据。

读写测试
1)读寄存器0(地址0x00)测试。

点击vio_out_debug的值,输入4000_0000_0000_0000。

bit63位(写使能位)置0,bit62位(读使能位)置1为读操作,60-32位(地址位)置0,其它比特位无用;vio_in_debug 显示结果,读出值为12345678,如图所示:
图52
每次读写之前需要先对vio_out_debug清零(即需先写入00000000),以保证产生触发边沿。

2)写寄存器1(地址0x01)测试。

按上述步骤在vio_out_debug写入4000_0001_0000_0000,读寄存器1,返回数据vio_in_debug为0000_0000;
图53
在vio_out_debug写入8000_0001_0055_7597(低32位0055_7897为实际写入数据值);
图54
在vio_out_debug写入4000_0001_0000_0000,读寄存器1,返回数据vio_in_debug 为0055_7897;
图55
DMA测试
写入DMA地址:vio_out_debug写入8000_0002_FF00_0000,82表示写入控制,DMA 地址为FF00_0000;
图56
开启DMA:先将vio_out_debug最高比特位写零,vio_out_debug写入0000_0000_00 00_0000,再对寄存器3写1开DMA,vio_out_debug写入8000_0003_0000_0001;
图57
DMA完成:在vio_out_debug写入4000_0004_0000_0000读DMA状态,vio_in_debug 收到返回值0000_0001,最低比特位为1,表示DMA完成。

图58
DMA有部分数据存储在内部RAM可以读出,在vio_out_debug写入4000_020B_000 0_0000(需先写入0000_0000),对应读出返回值FF00_021B。

可读地址范围0x200~0x3FF。

图59
2.16SRIO_DSP_X1——SRIO板间通信测试
本测试程序实现的功能是:DSP通过SRIO链路对FPGA的地址0x0012_0000~0x0012_ FFFF进行基本的读写操作(NWRITE和NREAD)。

SRIO使用x1模式,链路速率2.5G。

将采集卡的CON4(GTP TXD)用HDMI线缆连接到TL665x-EasyEVM开发板SRIO RX 接口,CON5(GTP RXD)接到SRIO TX接口。

按程序加载步骤加载srio_example_top_sri o_gen2_0.bit(光盘资料的路径为demo\SRIO_DSP_X1\ForDownload)。

DSP端按照工程导入步骤加载SRIO_FPGA.out文件(路径为demo\SRIO_DSP_X1\ForD ownload),步骤见C665x光盘资料《TMS320C665x开发例程使用手册》。

测试说明:
(1)CCS端点击运行,初始化SRIO成功,如图所示:
图60
(2)CCS端继续点击运行,DSP端传输数据到FPAG端,如图所示:
图61
图62 发送数据
(3)CCS端继续点击运行,传输完成,读回FPAG端数据,如图所示:
图63
图64 回读数据
2.17SRIO_DMA_DSP——SRIO_DMA方式收发测试
本测试程序实现的功能是:DSP与FPGA通过SRIO进行DMA方式的数据传输。

测试说明:先运行FPGA端程序,再运行DSP端程序。

将采集卡的CON4(GTP TXD)用HDMI线缆连接到TL665x-EasyEVM开发板SRIO RX 接口,CON5(GTP RXD)接到SRIO TX接口。

按程序加载步骤加载srio_example_top_sri o_gen2_0.bit(光盘资料的路径为''demo\SRIO_DMA_DSP\FPGA\ForDownload'')。

DSP端按照工程导入步骤加载STK_SRIO_FPGA.out文件(路径为''demo\SRIO_DMA_DS P\DSP\STK_SRIO_FPGA\Debug''),步骤见C665x光盘资料《TMS320C665x开发例程使用手册》。

程序说明:
(1)DSP和FPGA分别完成各自接口初始化操作,等待链路建立连接;
(2)DSP发起SWRITE写操作,源地址0x0C000000,长度1KB。

发送完成后发门铃包通知FPGA;
图65
(3)FPGA收到DSP发出的SWRITE数据,进FIFO缓存。

检测收到门铃包后延迟一段时间,随后将收到的这批数据全部发回DSP。

对FPGA而言,发送的目的地址0x80000000。

1KB数据发送完成后,发送门铃包通知DSP;
图66
(4)DSP响应FPGA发出的门铃,中断中进行数据校验;
(5)DSP完成校验后可以重复(1)-(4)的步骤,进行多次数据传输和校验。

相关文档
最新文档