cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
1,083 Views
Registered: ‎11-24-2017

LVDS clock

Jump to solution

Hello

I have reviewed about IBUFGDS but please help me in coding:

 

It's a simple LED blinker with a LVDS clock.

 

actually my clock is LVDS, I have created a module in a separated source as following:

(I don't know how I should use such primitive cores in my design!)

module LVDS_clk_rcvr(
      pin_clk_p,
      pin_clk_n,
      clk_int
      );
    
     input pin_clk_p,
           pin_clk_n;
    
     output clk_int;


endmodule


IBUFGDS #( 
    .DIFF_TERM("TRUE"), // Differential Termination 
    .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" 
    .IOSTANDARD("DEFAULT") // Specify the input I/O standard 
) IBUFGDS_inst ( 
    .O(clk_int), // Clock buffer output 
    .I(pin_clk_p), // Diff_p clock buffer input (connect directly to top-level port) 
    .IB(pin_clk_n) // Diff_n clock buffer input (connect directly to top-level port) 
);

 

on the other hand I have created a top module:

module top (switches,leds,clk_int);
    input  [3:0] switches;
    input  clk_int;
    output [3:0] leds;
    wire   dev_freq;

LVDS_clk_rcvr LVDS_clk_rcvr_1(
??????
 );
Freq_div u1 (clk_int,dev_freq,{switches[0],switches[1]}); Direction_ctrl u2 ({switches[2],switches[3]},leds,dev_freq); endmodule

 

 

I really I don't know how I should use this primitive core. I'm really puzzled. I'm newbie please help me clear :)

 

Best Regards

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
1,068 Views
Registered: ‎01-16-2013

Re: LVDS clock

Jump to solution

@xzsawq21

 

Use IBUFDS instead of IBUFGDS which can be used for any port type including clock. Check this link

If you want to use IBUFDS then you need to have differential clock at the top module. The code should something be similar to :

 

module top (switches,leds,clk_int_p,clk_int_n);
input [3:0] switches;
input clk_int_p;
input clk_int_n;
output [3:0] leds;
wire dev_freq;
wire clk_int;

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(clk_int), // Buffer output
.I(clk_int_p), // Diff_p buffer input (connect directly to top-level port)
.IB(clk_int_n) // Diff_n buffer input (connect directly to top-level port)
);

Freq_div u1 (clk_int,dev_freq,{switches[0],switches[1]});
Direction_ctrl u2 ({switches[2],switches[3]},leds,dev_freq);


endmodule

 

--Syed

 

 

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------

View solution in original post

1 Reply
Highlighted
Moderator
Moderator
1,069 Views
Registered: ‎01-16-2013

Re: LVDS clock

Jump to solution

@xzsawq21

 

Use IBUFDS instead of IBUFGDS which can be used for any port type including clock. Check this link

If you want to use IBUFDS then you need to have differential clock at the top module. The code should something be similar to :

 

module top (switches,leds,clk_int_p,clk_int_n);
input [3:0] switches;
input clk_int_p;
input clk_int_n;
output [3:0] leds;
wire dev_freq;
wire clk_int;

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(clk_int), // Buffer output
.I(clk_int_p), // Diff_p buffer input (connect directly to top-level port)
.IB(clk_int_n) // Diff_n buffer input (connect directly to top-level port)
);

Freq_div u1 (clk_int,dev_freq,{switches[0],switches[1]});
Direction_ctrl u2 ({switches[2],switches[3]},leds,dev_freq);


endmodule

 

--Syed

 

 

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------

View solution in original post