cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
moon5756
Explorer
Explorer
645 Views
Registered: ‎09-05-2015

IBUFGDS not recognized as IO buf

Jump to solution

Hi,

 

I have a IBUFGDS instantiated like below,

 

IBUFGDS #(.DIFF_TERM("FALSE"),

    .IOSTANDARD("DEFAULT"))

    IBUFGDS_inst(.O(I_HCLK),

    .I(I_HCLK_P),

    .IB(I_HCLK_N));

 

I synthesized the design with Synplify Premier and open the synthesized design in Vivado(2018.3), and found that this IBUFGDS_int is not synthesized as IBUFDS primitive.

I think this leads to Vivado not recognizing I_HCLK_P as a differential clock. Instead Vivado recognized I_HCLK_P as single-ended.

 

I think the problem is that I manually added IBUFGDS.v file that has a module IBUFGDS.

Not sure what this file is though...

 

moon5756_0-1599698706194.png

 

 

My question is that 

1) Is IBUFGDS a verilog primitive so that I don't need a separate IBUFGDS module definition?

2) Then, what is this IBUFGDS.v that seems like Xilinx generated 10 years ago?

 

Thanks in advance.

0 Kudos
1 Solution

Accepted Solutions
hongh
Moderator
Moderator
617 Views
Registered: ‎11-04-2010

IBUFGDS.v file you imported seems to be a simulation model file and you don't need to add it into Synplify project.

You can just instantiate IBUFDS primitive in your source code directly.

IBUFDS #(
.DIFF_TERM("FALSE"), // Differential Termination
.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE"
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

1 Reply
hongh
Moderator
Moderator
618 Views
Registered: ‎11-04-2010

IBUFGDS.v file you imported seems to be a simulation model file and you don't need to add it into Synplify project.

You can just instantiate IBUFDS primitive in your source code directly.

IBUFDS #(
.DIFF_TERM("FALSE"), // Differential Termination
.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE"
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post