一:概述
最近接触FPGA比较多,本次是一款zc706芯片的FPGA,开发版是长这样的,基本上开发也是安装开发版的模块组合进行开发。
开发版上以太网芯片使用的是Marvell 881116R。
本次只是验证下控制以太网进行模式测试的说明,不包含测试结果,有需要测试该项目的首先需有有一台能测试以太网完整性的示波器以及测试套件。平常公司没有高端示波器的也一般都是可以通过iperf或者chariot进行压测即可,目前我这边有现成可以在xilinx芯片的linux平台可执行iperf程序,有需要的私信。
二:测试
1、首先需要了解以太网芯片规格书上对测试模块的概述以及相应的寄存器配置值,这里以RTL8211E芯片(基本上以太网配置测试模式的寄存器都是一样的)举例。可以在芯片手册上查看到测试模式下寄存器的相映配置。
2、直接下载xilinx下的PS部分的linux程序,该测试方便的就是直接使用xilinx提供的linux系统就可以进行以太网寄存器的操作,先在xilinx官网上瞎下载linux系统,首先需要在官网上注册一个账号,在这个页面 AMD Zynq 7000 SoC ZC706 评估套件 页面上下拉找到rdf0287-zc706-pcie-trd-2015-4.zip并下载。
3、下载完之后直接解压,把ready_to_test里面的prog_qspi里面的所有文件都放置在SD里面,板子配置使用SD卡启动。
4、 配置以太网,需要使用串口连接板子,然后启动之后进行Uboot界面下进行操作。首先进入uboot模式,连接上串口,波特率115200,在启动串口有打印数据后键盘随便按下终端系统启动操作进入到uboot模式下,在该模式下输入显示的是zymq-uboot> 。
5、通过指令mdio可以查看当前连接的设备以及设备的地址,首次启动未发现PHY地址设备。第一次启动在uboot下查看PHY地址是空,需要执行一下ping操作,随便ping一个地址例如ping 192.168.100.100,等待提示host 192.168.100.100 is not alive,再次执行mdio list之后就会显示当前的以太网。
6 、可以查看到PHY芯片是连接在地址7上的,再可以通过mii dump 7 0查看地址7 PHY芯片的寄存器的0x00地址的数据,是以二进制形式展示。例如下图显示的为0001010010000000,转换成16进制为:1140。
7、测试模式1,该模式下需要测试脉冲模板测试、电压衰落测试、峰值电压测试,以太网测试标准的模版如下图:
配置测试模式1则需要执行修改以下寄存器:
zynq-uboot> mii w 7 0 8100h
zynq-uboot> mii w 7 0 0140h
zynq-uboot> mii w 7 9 3b00h
执行完成后先示波器上显示的与模版是一致的。
测试模式2 主模式抖动
zynq-uboot> mii w 7 0 8100h
zynq-uboot> mii w 7 0 0140h
zynq-uboot> mii w 7 9 5b00h
测试模式3 从模式抖动
zynq-uboot> mii w 7 0 8100h
zynq-uboot> mii w 7 0 0140h
zynq-uboot> mii w 7 9 7b00h
测试模式4 波形失真测试、回波损耗测试、共模输出电压测试
zynq-uboot> mii w 7 0 8100h
zynq-uboot> mii w 7 0 0140h
zynq-uboot> mii w 7 9 9b00h