发 帖  
原厂入驻New
[问答] 如何使用IBERT生成眼图
15 Hibert GTX
分享
嗨,
我有一个AD9625 ADC(数据表)被路由到xc7z045ffg676-2上的8个GTX端口。
我想使用IBERT 3.0查看眼图。
我可以找到的所有示例和文档都使用环回来测试GTX端口(即一个GTX端口是TX,另一个是RX)。
以下是顶层模块中IBERTblock的实例化。
ibert_7series_gtx_0 ibert_0 //在顶层生成iBert块

.TXN_O(),
.TXP_O(),
.RXOUTCLK_O(),
.RXN_I(SERDOUT_n),// 8位JESD204b N.
.RXP_I(SERDOUT_p),// 8位JESD204b P.
.GTREFCLK0_I(divclk_2bit),// 625Mhz时钟
.GTREFCLK1_I(),
.SYSCLK_I(rxclk)//156.25MHz时钟
);
我的iBERT IP如下:
我能够生成一个比特流文件并对FPGA进行编程,但由于我的外部TX源,我无法生成二维眼图。
是否可以在不使用环回功能的情况下使用IBERT 3.0获取眼图?
0
2020-5-22 10:18:07   评论 分享淘帖 邀请回答
6个回答
我刚才解决了这个问题,但忘了更新这个论坛。
我使用了ug476的这个图:
事实证明我的QPLL分频器N设置为20.但是,如果refclk为625MHz,线速率为6.25Gbps,我需要它为10. N = 10不是一个选项,所以我将我的refclk设置为
使用我的外部时钟进入的IBUFDS_GTE2块中的div2输出的前一个值的一半: 
IBUFDS_GTE2#( 
.CLKCM_CFG(“TRUE”),//请参阅“收发器用户指南” 
.CLKRCV_TRST(“TRUE”),//请参阅“收发器用户指南” 
.CLKSWING_CFG(2'b11)//请参阅“收发器用户指南” 
) 
IBUFDS_GTE2_inst( 
.O(),// 1位输出:请参阅“收发器用户指南” 
.ODIV2(divclk_div2),// 1位输出:请参阅“收发器用户指南” 
.CEB(1'b0),// 1位输入:请参阅“收发器用户指南” 
.I(divclk_p),// 1位输入:请参阅“收发器用户指南” 
.IB(divclk_n)// 1位输入:请参阅“收发器用户指南” 
);
另一个更简单的选择是在硬件管理器中简单地设置M = 2。
在原帖中查看解决方案
2020-5-22 10:28:23 评论

举报

嗨,
您可以通过选择Loopback = None来关闭Vivado IBERT GUI中的环回。
见附件截图。
谢谢,
叶夫根
2020-5-22 10:45:52 评论

举报

嗨Evgeni,
谢谢你的回复!
我确实把它设置为无。
不幸的是我仍然没有链接。
我正在使用Vivado 2015.4。
另一个问题可能与我的系统时钟rxclk有关,rxclk是一个内部时钟,而在时钟设置选项卡中除了外部没有其他选项:
引脚G7只是一个不用的引脚。
我的外部时钟源非常有限,所以我想改用内部时钟。
查看已实现的设计,rxclk网络与SYSCLK_I网络相同,因此内部时钟似乎是连接的内部时钟。
有没有办法在IP块中设置内部选项?
2020-5-22 10:52:07 评论

举报

你好@ checkandmate
请更改近端PMA和PCS环回选项在GUI中,看到您看到链接。
谢谢,
Sarada
--------------------------------------------------
----------------将此标记为答案,以防它帮助解决您的查询/问题。给予帮助您指导解决方案的帖子。
2020-5-22 11:08:46 评论

举报

你好@ saradapr
我已经尝试过所有类型的环回而没有运气。
我也尝试从ADC输出各种模式,但没有成功。
谢谢,
伴侣
2020-5-22 11:19:20 评论

举报

我刚才解决了这个问题,但忘了更新这个论坛。
我使用了ug476的这个图:
事实证明我的QPLL分频器N设置为20.但是,如果refclk为625MHz,线速率为6.25Gbps,我需要它为10. N = 10不是一个选项,所以我将我的refclk设置为
使用我的外部时钟进入的IBUFDS_GTE2块中的div2输出的前一个值的一半: 
IBUFDS_GTE2#( 
.CLKCM_CFG(“TRUE”),//请参阅“收发器用户指南” 
.CLKRCV_TRST(“TRUE”),//请参阅“收发器用户指南” 
.CLKSWING_CFG(2'b11)//请参阅“收发器用户指南” 
) 
IBUFDS_GTE2_inst( 
.O(),// 1位输出:请参阅“收发器用户指南” 
.ODIV2(divclk_div2),// 1位输出:请参阅“收发器用户指南” 
.CEB(1'b0),// 1位输入:请参阅“收发器用户指南” 
.I(divclk_p),// 1位输入:请参阅“收发器用户指南” 
.IB(divclk_n)// 1位输入:请参阅“收发器用户指南” 
);
另一个更简单的选择是在硬件管理器中简单地设置M = 2。
2020-5-22 11:38:21 评论

举报

只有小组成员才能发言,加入小组>>

83个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表