使用软件:vivado2020.1、仿真用vivado自带的仿真
摘要: 仅仅使用这个IP核,在硬件上实现外回环测试。IP参数设置与内回坏一样
外回环:走外部硬件光模块,光模块短接
1.Xilinx文档
文档中提到,在调试的时候,可使用ctl_local_loopback信号执行局部环回即PMA回环,所以当此信号为低电平的时候可以去执行外回坏。文档中提到ctl_local_loopback与MODE_REG:008这个地址有关(将这个地址的31位置0就可以完成外回坏)。
2.注意事项
在完成外回环测试的时候,我遇到的三个问题:
第一个问题是tb文件中的的gt_rxp_in_0与gt_rxn_in_0需要改掉,如果这两个信号连上了gt_txp_out_0和gt_txn_out_0的话,在仿真测试的时候内外回环没有区别(外回坏的话仿真完不成回环,外部SFP口短接,方可完成回环)。
第二个问题是,正确修改地址。MODE_REG:008的第31位与ctl_local_loopback有关。文档中有一张图,我找到 ctl_local_loopback在axi_if_top.v文件中,可以通过AXI-4用户接口更改。对应的文件是i_xxv_ethernet_0_axi4_lite_user_if.v。
第三个问题是,复位。在改完地址后,生成比特流上板测试的时候,我发现下载bit到正常运行这个时间需要拉的长一点,所以最好复位时间也给长一点,保证程序正常运行。我后面用vio ip核去验证了这一点。
3.VIO IP核(补充)
VIO既能对信号进行实时改变,也可以对信号进行抓取观察。input是要观察的信号,output是需要改变的信号(个人理解)。两种信号都可以设置位宽,具体使用在代码中都体现了。我做的是输入计数器值(位宽20),越大表示复位时间越长。
4.总结
外回环和内回环差不多,把MODE_REG:008第31位地址改掉就是外回环。