打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
软核(IP)的timing
userphoto

2016.04.06

关注


 最近客户碰到一个问题vivado中带有高速收发器GTX的时钟约束的问题。之前用vivado做了一个数字信号处理的工程,系统工作频率为312.5MHz,共有64路并行输出,并且通过了时序约束。现在我要把这64路并行输出信号通过2GTX发射出去,GTX的参考时钟频率为156.25MHz,现在产生64路并行信号的时钟采用GTX的输出信号TxOUTCLK时钟信号,可是现在时钟约束过不了了,不知道是我的时钟约束出了什么问题?


XDC文件:

create_clock -period 6.400 [get_portsQ0_CLK1_GTREFCLK_PAD_P_IN]   #收发器参考时钟
set_false_path -to [get_pins -hierarchical -filter {NAME =~*_txfsmresetdone_r*/CLR}]
set_false_path -to [get_pins -hierarchical -filter {NAME =~*_txfsmresetdone_r*/CLR}]
set_false_path -to [get_pins -hierarchical -filter {NAME =~*_txfsmresetdone_r*/D}]
set_false_path -to [get_pins -hierarchical -filter {NAME =~*_txfsmresetdone_r*/D}]

###### RefClk Location constraints 收发器参考时钟位置约束###########
set_property PACKAGE_PIN AK8 [get_ports Q0_CLK1_GTREFCLK_PAD_P_IN]
set_property PACKAGE_PIN AK7 [get_ports Q0_CLK1_GTREFCLK_PAD_N_IN]

## LOC constrain for DRP_CLK_P/N     #收发器复位用时钟

#set_property LOC E19 [get_ports  DRP_CLK_IN_P]
#set_property LOC E18 [get_ports  DRP_CLK_IN_N]

####################### mgt wrapper constraints收发器位置约束###################

##---------- Set placement for gt0_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X1Y0 [get_cellsgtwizard_0_exdes_10g_2/gtwizard_0_support_i/gtwizard_0_init_i/inst/gtwizard_0_i/gt0_gtwizard_0_i/gtxe2_i]
##---------- Set placement for gt1_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X1Y1 [get_cellsgtwizard_0_exdes_10g_2/gtwizard_0_support_i/gtwizard_0_init_i/inst/gtwizard_0_i/gt1_gtwizard_0_i/gtxe2_i]

#收发器复位用时钟
create_clock -period 5.000 -name DRP_CLK_IN_P -waveform {0.000 2.500}[get_ports DRP_CLK_IN_P]
set_property PACKAGE_PIN E19 [get_ports DRP_CLK_IN_P]
set_property IOSTANDARD LVDS [get_ports DRP_CLK_IN_P]

# User Clock Constraints   gtx IP内部产生的约束时钟文件
create_clock -period 3.2 [get_pins -hier -filter{name=~*gt0_gtwizard_0_i*gtxe2_i*TXOUTCLK}]
create_clock -period 3.2 [get_pins -hier -filter{name=~*gt1_gtwizard_0_i*gtxe2_i*TXOUTCLK}]

set_false_path -to [get_cells -hierarchical -filter {NAME =~ *data_sync_reg1}]





解决方法:

1.    首先工程师不要认为软核任何设置下满足timing;这一点大家可以在网站查看MIGDDR控制器)的timing问题,有很多。


原因软核也是逻辑,需要和IO位置以及布局布线的结果一起来衡量,上面的timing问题就是通过设置Pblock的方式解决的,因为目前的器件太大了,对于一个小的设计一条线的不合理就会影响到整体的timing


2.    IP timing的解决办法:

A.   需要更改IP设置,包括IO的位置管脚约束;

B.    降低逻辑的时钟频率,比如上面设计中TXOUTCLK

C.    IPtiming问题也可以不用担心,当整个工程都实现后,有些Timing问题自然解决了。这和整个设计的布局布线都有很大关系。




:版权归“FPGA那点事儿”运营团队,转载请注明出处。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
高速串行接口与GTXE_COMMON / GTXE_CHANNEL 问题汇总
Aurora IP建立仿真及测试
(1)用QuartusIITimequestTimingAnalyzer进行时序分析:实例讲解(二)
IC设计中的时钟类型约束
DC综合约束012
FPGA学习历程(Ex):Quartus Warning收录(不定期更新)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服