FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-11-2004, 08:43 AM
ALuPin
Guest
 
Posts: n/a
Default Routing PLL output

Hi,

I have decided to post this problem again because it has gone down
in my last post, so here it is;

How do I route the output of the PLL (Altera Cyclone) to the PLL_OUT+
and PLL_OUT- pins for differential clock use?
I mean the PLL has only one output ... Do I have to create an inverted clock -
only by an inverter ?


How do I have to make clock settings to get differential clocks?

Thank you for your help.

Kind regards

Andre
Reply With Quote
  #2 (permalink)  
Old 10-12-2004, 09:37 AM
ALuPin
Guest
 
Posts: n/a
Default Re: Routing PLL output

Some additional thing:

"Differential" is the wrong expression. I need
inverted clocks on a 3,3V logic level.

But in my opinion there is no 180° phase allignment given when
inverting one of the clocks, isn't there?

Does QuartusII provide some module to make this phase allignment?

Thank you.

Rgds
André
Reply With Quote
  #3 (permalink)  
Old 10-12-2004, 10:07 AM
Ben Twijnstra
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Andre,

> I have decided to post this problem again because it has gone down
> in my last post, so here it is;
>
> How do I route the output of the PLL (Altera Cyclone) to the PLL_OUT+
> and PLL_OUT- pins for differential clock use?
> I mean the PLL has only one output ... Do I have to create an inverted
> clock - only by an inverter ?


Just set the I/O type of the clock signal to be LVDS or another differential
spec. It'll become differential automagically. With the appropriate
electrical specs, of course.

Best regards,


Ben


Reply With Quote
  #4 (permalink)  
Old 10-12-2004, 10:53 PM
Ben Twijnstra
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Andre,

> "Differential" is the wrong expression. I need
> inverted clocks on a 3,3V logic level.


Ooops... that complicates things a bit, since LVDS is only 2.5V in a
Cyclone, and probably not enough voltage swing as well.

I suggest that you use normal I/O pins to generate the clock, or maybe use
some external device to make sure that the LVDS I/Os are brought to a level
that is acceptable for the recipient.

What was your base frequency again, and what is the output frequency?

Best regards,



Ben

Reply With Quote
  #5 (permalink)  
Old 10-13-2004, 10:17 AM
Karl
Guest
 
Posts: n/a
Default Re: Routing PLL output

[email protected] (ALuPin) wrote in message news:<[email protected] com>...
> Some additional thing:
>
> "Differential" is the wrong expression. I need
> inverted clocks on a 3,3V logic level.
>
> But in my opinion there is no 180° phase allignment given when
> inverting one of the clocks, isn't there?
>
> Does QuartusII provide some module to make this phase allignment?
>
> Thank you.
>
> Rgds
> André


Hi Andre,

You could use the c0 & c1 output of the PLL's, where you give the c1
an 180 deg shift, and both route them to output pins. The internal
routing within the device and the placement of the pins could give
some phase shift, but you could 'fiddle' around with that a little to
get it working.

Karl.
Reply With Quote
  #6 (permalink)  
Old 10-13-2004, 12:42 PM
ALuPin
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Ben,

thank you for your answer.

The base frequency that is the input of my PLL is 30MHz,
the output clock frequency is 90MHz.

Rgds
André

>
> What was your base frequency again, and what is the output frequency?
>
> Best regards,
>
>
>
> Ben

Reply With Quote
  #7 (permalink)  
Old 10-14-2004, 08:54 AM
ALuPin
Guest
 
Posts: n/a
Default Re: Routing PLL output

> Hi Andre,
>
> You could use the c0 & c1 output of the PLL's, where you give the c1
> an 180 deg shift, and both route them to output pins. The internal
> routing within the device and the placement of the pins could give
> some phase shift, but you could 'fiddle' around with that a little to
> get it working.
>
> Karl.



Hi Karl,

thank you for your answer.
The problem is that c0 is a clock with a different frequency used for internal
operations. That is c1 remains the only clock. So I could route this one
to an output pin. But I also need an inverted clock of c1 to route to an output
pin. So the only possibility would be to invert c1. But could that be
a problem ? I mean the inverted clock then would not directly come out
of the PLL ...

Rgds
André
Reply With Quote
  #8 (permalink)  
Old 10-14-2004, 03:35 PM
Paul Leventis \(at home\)
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Andre,

> The problem is that c0 is a clock with a different frequency used for

internal
> operations. That is c1 remains the only clock. So I could route this one
> to an output pin. But I also need an inverted clock of c1 to route to an

output
> pin. So the only possibility would be to invert c1. But could that be
> a problem ? I mean the inverted clock then would not directly come out
> of the PLL ...


If you do not make use of the differential output standard to generate the
clock and !clock signals, nor use the PLL to do so, then you will have some
delay of one clock relative to the other unless you are really careful. You
could, for example, take your c1 clock and feed it to two parallel logic
elements, which then take identical routes to two I/Os. One logic element
does nothing (implements a wire function :-)), the other implements an
invert function. If you place this LAB adjacent to the horizontal I/O that
you want to bring the two signals out of, then you should get pretty
similar, short routes from the LEs to the I/Os.

Do you need a known phase relationship between the internal clock and the
external clocks?

Paul Leventis
Altera Corp.


Reply With Quote
  #9 (permalink)  
Old 10-15-2004, 08:55 AM
ALuPin
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Paul,

thank you for your help.
What kind of logic element are you thinking of when you talk of
wire function?

The phase relationship between the internal clock and the external clocks do not
matter so that would be no problem ...

Rgds
André


> could, for example, take your c1 clock and feed it to two parallel logic
> elements, which then take identical routes to two I/Os. One logic element
> does nothing (implements a wire function :-)), the other implements an
> invert function. If you place this LAB adjacent to the horizontal I/O that
> you want to bring the two signals out of, then you should get pretty
> similar, short routes from the LEs to the I/Os.
>
> Do you need a known phase relationship between the internal clock and the
> external clocks?
>
> Paul Leventis
> Altera Corp.

Reply With Quote
  #10 (permalink)  
Old 10-15-2004, 09:35 AM
Paul Leventis \(at home\)
Guest
 
Posts: n/a
Default Re: Routing PLL output

Hi Andre,

> What kind of logic element are you thinking of when you talk of
> wire function?


Actually, you don't need LEs at all. Just feed the output of the PLL and
the negation of it directly to two I/O pins. The negation will be performed
in the I/O interface. Be sure to place them in the same row/column on the
same side to minimize skew. If you do so, the only difference in delay will
be due to slightly different delays through the inverting and non-inverting
paths of the I/O programmable invert. Oh yeah -- you should also make sure
you use I/Os that have the same functionality. Any I/O that has
dual-purpose will have slightly higher pin cap and thus slightly greater
delay.

For example, in a 1C12 I used two I/Os in fourth row on the left side, and
Quartus tells me I get 2.037 ns of Tco to each (from the PLL -> pin).

thepll mypll( // instantiates a PLL I made with the megafunction wizard
.inclk0(in_clock),
.c0(internal_clock)
);
assign out_clock = internal_clock;
assign out_clock_bar = !internal_clock;


In the event that you did want to use two LEs (as I suggested originally for
some bone-headed reason), you can explicitly force Quartus to do so by
instantiating an LCELL buffer. This example gives me something in the range
of 2.7 ns of Tco. Not that the Tco matters.

thepll mypll(
.inclk0(in_clock),
.c0(internal_clock)
);
lcell lcell1(
.in(internal_clock),
.out(out_clock)
);
lcell lcell2(
.in(!internal_clock),
.out(out_clock_bar)
);

You will also need to constrain these two LCELLs to be in the same lab near
the I/Os you are driving.


Hopefully I didn't get too much of this wrong; I do not use Quartus much
myself. This example and the add/sub Cyclone question were my first two
verilog designs :-)

Paul Leventis
Altera Corp.


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Routing Resources Ted FPGA 0 09-17-2004 02:17 AM
Routing algorithm - help needed Chris Jones FPGA 2 02-24-2004 07:01 PM
regarding clock routing praveen FPGA 5 11-21-2003 02:38 PM


All times are GMT +1. The time now is 01:32 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved