|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 svalen 于 2016-8-10 10:42 编辑
各位论坛大神,小弟最近接手了一个使用Lattice ECP3的开发项目,需要用到ECP3的SerDes,因为是第一次使用Lattice的FPGA,遇到了一些自己无法解决的问题,特来论坛向大神们求助,主要问题如下:
我使用Diamond自带的IP生成器生成的PCS,调用的是8b10b的协议,K码使用的是K28P5,使用Reveal Analyzer进行分析,当我选择内部环回测试时(Loopback Serial data after transmit driver)时测试数据完全正确,当我不使用内部环回,在外部将Serdes的TXP、TXN直接环回RxP、RxN时数据完全错误。
求大神指示,该问题产生的原因可能是什么?是不是需要对Differential Output Voltage和Equalization Setting 等进行特别的设置?盼大神们解救!谢谢
--------------
补上PCS调用的代码,望大神不吝赐教:
pcs_8b10b8_inst: PCS_8B10B8
port map(
hdinp_ch3 => SFP_RxP,
hdinn_ch3 => SFP_RxN,
hdoutp_ch3 => SFP_TxP,
hdoutn_ch3 => SFP_TxN,
--rxiclk_ch3 => sysclk,
txiclk_ch3 => sysclk,
rx_full_clk_ch3 => rx_full_clk,
rx_half_clk_ch3 => rx_half_clk,
fpga_rxrefclk_ch3 => sysclk,
txdata_ch3 => data_buf,
tx_k_ch3 => data_k,
tx_force_disp_ch3 => '0',
tx_disp_sel_ch3 => '0',
rxdata_ch3 => rxdata,
rx_k_ch3 => rx_k,
rx_disp_err_ch3 => rx_disp_err,
rx_cv_err_ch3 => rx_cv_err,
rx_serdes_rst_ch3_c => '0',
sb_felb_ch3_c => '0',
sb_felb_rst_ch3_c => '1',
tx_pcs_rst_ch3_c => '0',
tx_pwrup_ch3_c => '1',
rx_pcs_rst_ch3_c => '0',
rx_pwrup_ch3_c => '1',
rx_los_low_ch3_s => rx_los_low,
lsm_status_ch3_s => lsm_status,
rx_cdr_lol_ch3_s => rx_cdr_lol,
tx_div2_mode_ch3_c => '0',
rx_div2_mode_ch3_c => '0',
---- Miscillaneous ports
fpga_txrefclk => sysclk,
tx_serdes_rst_c => '0',
rst_qd_c => '0',
serdes_rst_qd_c => '0'
); |
|