基于VC709构建FPGA开发学习平台(六)-光纤接口硬件测试

一、构建硬件环境

注意VC709的光纤接口的硬件排列顺序:4、3、1、2。由于FPGA程序中使用的是单lane,并将引脚映射至SPF+通道1,所以将光模块插入到1口中,使用光纤法兰,将收、发对插,完成外部光纤回环。

二、测试

1)下载bit后,未通过IIC接口对SI5324器件进行配置,其输出至GT_REF_CLK的参考时钟不存在;此时用户接口的RESET和PMA_INIT为1。

2)PMA_INIT为1,gt_reset_i_tmp为高→gt_reset_i_delayed为高→gt_reset_i_eff为高→gt_reset_i为高,此时GT处于复位状态;

aurora_64b66b_x1_exdes.v , line 410:   
  assign  gt_reset_i_tmp = PMA_INIT | gtreset_from_vio_r3 | pma_init_from_fsm_r1;

3)reset_i为高,aurora IP处于复位状态;

4)当IIC完成SI5324的配置后,释放用户接口的RESET和PMA_INIT,gt_pll_lock信号变为高电平:

CHANNEL_UP和LANE_UP拉高后,frame_gen和frame_check模块已经开始工作,开始数据测试了。

观察DATA_ERR_COUNT,若保持为0,则证明数据收发正确,若不为0,则链路通道可能存在误码。

注意:光模块的RS引脚无需设置,默认即可;DISABLE引脚设置为0:

assign SFP1_TX_DISABLE = 1‘b0;
assign SFP2_TX_DISABLE = 1‘b0;

约束:

set_property PACKAGE_PIN AB41 [get_ports SFP1_TX_DISABLE]
set_property IOSTANDARD LVCMOS18 [get_ports SFP1_TX_DISABLE]
set_property PACKAGE_PIN Y42 [get_ports SFP2_TX_DISABLE]
set_property IOSTANDARD LVCMOS18 [get_ports SFP2_TX_DISABLE]

在vio1_inst中,可以观察channel_up和lane_up的情况:

在vio2_inst中,reset_test_fsm_from_vio设置为1,可复位状态机;使用reset_test_enable_from_vio使能测试逻辑;reset_quality_cntrs可以复位测试时用的关键计数器;

三、问题

1)CHANNEL_UP或LANE_UP无法拉高:

a.首先确认一下光模块是否工作正常:

将光模块的TX_FAULT和LOS信号引入到FPGA中,并加入到ILA中进行观察,为了防止其被综合优化掉,这里将二者同时引出到LED。

always @ (posedge sys_clk_50m)
begin
    SFP1_TX_FAULT_r <= SFP1_TX_FAULT;
    SFP2_TX_FAULT_r <= SFP2_TX_FAULT;
    SFP1_LOS_r <= SFP1_LOS;
    SFP2_LOS_r <= SFP2_LOS;
    
end 
               
 
assign BOARD_LED2 = SFP1_TX_FAULT & SFP2_TX_FAULT ; 
assign BOARD_LED3 = SFP1_LOS & SFP2_LOS ; 

约束:

set_property PACKAGE_PIN AM39 [get_ports BOARD_LED0]
set_property IOSTANDARD LVCMOS18 [get_ports BOARD_LED0]
set_property PACKAGE_PIN AN39 [get_ports BOARD_LED1]
set_property IOSTANDARD LVCMOS18 [get_ports BOARD_LED1]

set_property PACKAGE_PIN Y38 [get_ports SFP1_TX_FAULT]
set_property IOSTANDARD LVCMOS18 [get_ports SFP1_TX_FAULT]
set_property PACKAGE_PIN AA39 [get_ports SFP2_TX_FAULT]
set_property IOSTANDARD LVCMOS18 [get_ports SFP2_TX_FAULT] 

set_property PACKAGE_PIN Y39 [get_ports SFP1_LOS]
set_property IOSTANDARD LVCMOS18 [get_ports SFP1_LOS]
set_property PACKAGE_PIN AA40 [get_ports SFP2_LOS]
set_property IOSTANDARD LVCMOS18 [get_ports SFP2_LOS]

正常情况下,FAULT和LOS信号为0,若为1,则需要检查一下光模块的安装、本身的好坏,以及光纤的通断,可以更换光模块和光纤再次尝试;

b.检查GT_REFCLK时钟配置是否正确;可参考前面专门说明SI5342配置的博文。

c.在vio1_inst中尝试复位gt和syreset:

d.调整vio1_inst中的loop_back,使用FPGA内部回环测试GT;

2)周期性的发生channel_up 拉低,同时IP报SOFT_ERR错误:

优先检查时钟!本人出现这个现象是由于之前将SI5324配置为BYPASS模式,并由FPGA提供200MHz的参考时钟,经过SI5324的BYPASS后作为FPGA的GT_REFCLK,该时钟Jitter超出了GT_REFCLK的要求,造成误码。后更改为使用SI5324的PLL输出后,问题解决。

通过了上述测试后,整个光模块部分验证基本结束,用户可以替换掉frame_gen和frame_check及相关的模块,将AXIS接口引出,自己设计数据收发逻辑。

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值