Anlogic Serdes PRBS 环路FMC子板测试
本实验以 PRBS 产生测试数据,用于验证 Serdes 部分及FMC子板硬件电路是否正常工作 。
1.硬件电路
PH1A90有两个Serdes BANK 分别为BANK82 和BANK 83。需要注意的是该开发板Serdes引出到SFP的是Channel1,引出到FMC的是Channel0。
2.系统框图
Serdes 的应用需要外围电路的辅助,以 PH1 logic serdesIP 为核心,配以时钟模块和初始化模块,为了验证基本的 serdes 的建链与数据收发外部进行 prbs(伪随机码常用于高速串行通信的通道验证)数据的生成与校验。
3.FPGA 默认配置
在上板测试前先看本示例公测默认的SERDES IP配置信息。
3.1 本参考示例工程的默认SERDES IP配置
PH1A90 有 2 个 BANK 的 SERDES,分别是 BANK82 和 BANK83,软件 IP 中的位置为🙁 x71y120z0, x71y159z0 ) 。本次实验中对FMC SFP模块进行测试,仅使用BANK 82的Channel0。因此使用TD5.6.2打开SERDES IP 图形界面,配置如图所示。
Protocol and dual 页面
PCS界面
PMA界面
默认配置下不需要修改,若需要更新SERDES IP配置,对SERDES IP进行更新配置之后,点击OK。
弹出该界面继续点击OK。重新生成IP。
打开工程路径下的/RTL/serdes/serdes_ip/serdes_dual_src.v文件,打开工程路径下的define.v文件,将serdes_dual_src.v文件中的宏定义赋值到define.v中。注意复制替换部分为:`timescale上的所有部分。
完成后更新配置就已经替换到了本示例工程里了。
3.2代码中时钟选择设置
REF_REPEAT_CLK_EN:
使 能 参 考 时 钟 复 制 功能 , 用 于 参 考 时 钟 共享 。 设 置 1 表 示 需 要共 享 使 用 其 他 BANK 的 时 钟 。REF_CLK_UP_DOWN参数用于设置1需要共享的参考时钟位置是来自上方还是下方。
REF_CLK_UP_DOWN:参考时钟共享时参考时钟来源选择,合法设置包括“UP”和 “DOWN”,当参考时钟共享自本 SERDES DUAL 位置上方时,设置 为“UP”,从本 SERDES DUAL 位置下方来时,设置为“DOWN”,当 REF_USE_PAD 为 0 时该属性有效。默认值设置为“UP”,推荐使 用 IP Generator 产生的值。该属性仅在 PH1A90 器件生效。
REF_CLK_MUX_EN:默认值 1’b0。当使用 BUFG 驱动参考时钟时,设置为 1’b1, 其他情况下设置为 1’b0,推荐使用 IP Generator产生的值。
REF_USE_PAD:
选择参考时钟由外部管脚提供还是内部提供。接 1 使用外部管脚做参考时钟。接 0 使用内部提供的参考时钟。默认值为 0。推 荐使用 IP Generator 产生的值。
BANK 82 时钟参数设置如下:
3.3 更新SERDES DUAL
在使用PH1A90 器件时,默认使用BANK 82对应的SERDES DUAL。如果需要新增或者切换。步骤如下:
1.根据需要修改define.v文件 对BANK 进行使能
2.之后进行对应的BANK 的adc约束进行修改。
3.4NCS23345配置
在define.v文件里进行定义使能
multi_dual_top文件中已经对NCS23345配置程序进行了条件例化。
3.5使能SFPA
4.FPGA 上板测试步骤
1.硬件连线完成后进行bit文件下载。可以看到加载完成后,l1_data_locked 信号会拉高(LED7 亮),表示Lane1的数据校验正确。
2.数据校验成功并保持一段时间后,link_status_out会拉低(LED8灭),表示建链成功。
3.出现乱码(按下按键SW2注入错误或断连SFP模块)则信号l1_data_locked(LED7) 拉低锁存建链失败历史信息。过程为 link_status_out(LED8)拉高表示链路不正常。
- 松开按键SW2或回路连接正常后,数据恢复正常。之后l1_data_locked (LED7)自动拉高。过了若干周期,link_status_out (LED8)拉低表示建链恢复正常。
至此Anlogic Serdes PRBS 环路FMC子板测试成功。