【问题标题】:Applying simple inversion (NOT function) to OBUFDS将简单反转(非函数)应用于 OBUFDS
【发布时间】:2020-10-28 06:13:53
【问题描述】:

我是新手来这里问一个问题,你回答太容易了,但我不熟悉。

我的 BD 中有“cabletester_prbs15_bytegenerator”IP,其中有“data_out_p”和“data_out_n”连接到 OBUFDS 端口。

在我的情况下,我有一个连接到“data_out_p”的 OBUFDS,但在实现中分配给 NEGATIVE DIFFERENTIAL LEG。目前综合成功后,在综合设计中尝试分配给IO_@@_N时,报错“cannot set LOC property of ports,negative port (N-side) can not be放置在正极引脚上”

长话短说,我需要反转 OBUFDS 的极性。

cabletester_prbs15_bytegenerator IP 使用模块“prbs15_bytegenerator”,如下所示。

module cabletester_prbs15_bytegenerator_0_0 (
  clk,
  clk_div4,
  resetb,
  data_out_p,
  data_out_n
);

(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME clk, ASSOCIATED_RESET resetb:reset, FREQ_HZ 640000000, FREQ_TOLERANCE_HZ 0, PHASE 0.0, CLK_DOMAIN cabletester_clk_wiz_0_0_clk_320, INSERT_VIP 0" *)
(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 clk CLK" *)
input wire clk;
input wire clk_div4;
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME reset, POLARITY ACTIVE_LOW, INSERT_VIP 0" *)
(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 reset RST" *)
input wire resetb;
output wire data_out_p;
output wire data_out_n;

  prbs15_bytegenerator inst (
    .clk(clk),
    .clk_div4(clk_div4),
    .resetb(resetb),
    .data_out_p(data_out_p),
    .data_out_n(data_out_n)
  );
endmodule

在prbs15_bytegenerator中,最后可以看到OBUFDS相关部分

OSERDESE3  #(
      .DATA_WIDTH(8),
      .IS_CLKDIV_INVERTED(0),
      .IS_CLK_INVERTED(0),
      .IS_RST_INVERTED(1),
      .SIM_DEVICE("ULTRASCALE_PLUS")
      )
      oserdes_inst
    (
     .OQ(data_out),
     .CLK(clk),
     .CLKDIV(clk_div4),
     .D(prbsbyte),
     .RST(resetb)
     );
     
        OBUFDS outputbuf
     (
      .I(data_out),
      .O(data_out_p),
      .OB(data_out_n)
     );
endmodule

反转极性是否就像将 ~ 放在 .O(data_out_p) 前面一样简单? 如果有人能展示代码应该是什么样子,我将不胜感激,因为我对 Verilog 知之甚少.....

非常感谢……

【问题讨论】:

    标签: fpga xilinx vivado


    【解决方案1】:

    您可能希望保持 OBUFDS 的极性正确定向。 P 接正极,N 接负极。相反,请尝试通过进行以下调整来反转 OBUFDS 的输入。

    OBUFDS outputbuf
         (
          .I(~data_out),  // This will invert the input and cause the 
          .O(data_out_p), // output to logically invert.
          .OB(data_out_n)
         );
    

    【讨论】:

      【解决方案2】:

      您的引脚分配可能有问题。您应该查看 XDC 约束文件。 或者,在此处使用设备部件号发布您的约束。

      【讨论】:

      • 我已经检查过了,没有问题。我的 BD 处于某种需要反转信号的方式。
      猜你喜欢
      • 1970-01-01
      • 2020-02-14
      • 2019-03-17
      • 2020-04-25
      • 1970-01-01
      • 2018-12-16
      • 2019-12-17
      • 1970-01-01
      • 2021-10-01
      相关资源
      最近更新 更多