分享

软核(IP)的timing

 mzsm 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那点事儿”运营团队,转载请注明出处。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多