【XILINX】Vivado - 严重警告:[Vivado 12-1411] Cannot set LOC property of ports, The pin ~ 无法设置端口的 LOC 属性

项目场景:

尝试在 VCU108 板上实现 MicroBlaze 系统,但我在时钟系统方面遇到了问题。


问题描述

我已将时钟向导设置为在单端运行模式输入时钟中具有自定义板接口。在我的顶级文件中,我实例化了一个 IBUFDS,用于将差分时钟(MGT_SI570_CLOCK2_C_N 和 MGT_SI570_CLOCK2_C_P)转换为单端时钟,并将其输入到 MB 的时钟输入引脚。

它会导致以下严重警告:

[Vivado 12-1411] Cannot set LOC property of ports, Could not find a valid bel for the shape with the following elements: 

MGT_SI570_CLOCK2_C_P

mb_clk/IBUFCTRL_INST

MGT_SI570_CLOCK2_C_N

mb_clk/DIFFINBUF_INST

[Vivado 12-1411] Cannot set LOC property of ports, Could not find a valid bel for the shape with the following elements: 

MGT_SI570_CLOCK2_C_P

mb_clk/IBUFCTRL_INST

MGT_SI570_CLOCK2_C_N

mb_clk/DIFFINBUF_INST

所实现设计的原理图看起来不错,如下所示,并且所选网络直接进入 MicroBlaze 时钟向导块,正如我所期望的那样:

【XILINX】Vivado - 严重警告:[Vivado 12-1411] Cannot set LOC property of ports, The pin ~ 无法设置端口的 LOC 属性_第1张图片

顶层如下:

module top_file(
        MGT_SI570_CLOCK2_C_N,
        MGT_SI570_CLOCK2_C_P
    );
    
    input MGT_SI570_CLOCK2_C_N;
    input MGT_SI570_CLOCK2_C_P;
    
    wire buf_clk_in_n;
    wire buf_clk_in_p;
    wire buf_clk_out;
    
    assign buf_clk_in_n = MGT_SI570_CLOCK2_C_N;
    assign buf_clk_in_p = MGT_SI570_CLOCK2_C_P;
    
    IBUFGDS mb_clk
    (
      .I                (buf_clk_in_p),
      .IB               (buf_clk_in_n),
      .O                (buf_clk_out)
    );
    
    microblaze mb(
        .clk_in1_0(buf_clk_out),
        .reset_rtl(1'b0)    
    );
endmodule

约束如下:

set_property PACKAGE_PIN AF39 [get_ports "MGT_SI570_CLOCK2_C_N"] ;# Bank 127 - MGTREFCLK0N_127

set_property PACKAGE_PIN AF38 [get_ports "MGT_SI570_CLOCK2_C_P"] ;# Bank 127 - MGTREFCLK0P_127


原因分析:

所选择的时钟是特殊的,可与 GTY 接收器一起使用(参见UG1066(v1.5)的第 44-45 页)。


解决方案1:

需为 MicroBlaze 时钟选择另一个时钟(参见 UG1066 中的表 1-10)。-SYSCLK1 或 SYSCLK2 都是不错的选择。

可以通过 MMCM 路由这些时钟,并配置 MMCM 以生成具有您所需频率的另一个时钟。


 解决方案2:

在约束文件前加上空约束,取消默认IP的默认约束

set_property PACKAGE_PIN { } [get_ports "MGT_SI570_CLOCK2_C_N"] ;

set_property PACKAGE_PIN { } [get_ports "MGT_SI570_CLOCK2_C_P"] ;

set_property PACKAGE_PIN AF39 [get_ports "MGT_SI570_CLOCK2_C_N"] ;# Bank 127 - MGTREFCLK0N_127

set_property PACKAGE_PIN AF38 [get_ports "MGT_SI570_CLOCK2_C_P"] ;# Bank 127 - MGTREFCLK0P_127

参考:https://support.xilinx.com/s/question/0D52E00006hpl3fSAA/vivado-121411-cannot-set-loc-property-of-ports-instance-uibertgthcore?language=en_US 

你可能感兴趣的:(xilinx,fpga开发,xilinx,Vivado,12-1411)