Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search

Messages from 139400

Article: 139400
Subject: Re: FIFO controlled loop, PLL, FLL or something else?
From: Robert Adams <robert.adams@analog.com>
Date: Sat, 28 Mar 2009 05:41:40 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 4:31=A0am, rickman <gnu...@gmail.com> wrote:
> On Mar 27, 10:34 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>
>
>
>
>
> > On Fri, 27 Mar 2009 16:03:09 -0700 (PDT), rickman <gnu...@gmail.com>
> > wrote:
>
> > >On Mar 27, 1:25 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>
> > >> Also sometimes called a "delay-locked loop".
>
> > >I am pretty sure that this is not a delay locked loop. =A0A DLL uses a
> > >delay in the feedback path to generate an output that has a different
> > >phase than the original. =A0This is often used to compensate for a del=
ay
> > >elsewhere in the clock path.
>
> > >In one incarnation of the design of this circuit the error integrator
> > >was enabled by the input clock enable. =A0If there was a phase shift i=
n
> > >the input and output clock enables, it would produce a single count of
> > >difference during part of the cycle, but would be zero again by the
> > >next input clock enable. =A0However, with the phase accumulator (DCO)
> > >operating on each cycle of the main clock, this single count would be
> > >added in producing what amounted to a fractional phase step compared
> > >to the value in the error integrator. =A0The result is that the smalle=
st
> > >adjustments in output frequency would be made by the phasing of the
> > >input and output signals. =A0However, the phase would never be correct=
ed
> > >in the error integrator.
>
> > >This is a bit hard to describe in words. =A0I hope it is clear.
>
> > >Rick
>
> > That's also a DLL, and perhaps the more commonly-used meaning of the
> > term in my experience.
>
> Yeah, I guess people use whatever term they want often and that makes
> it hard to communicate about these things. =A0I am pretty sure that the
> "correct" definition of a Delay Locked Loop is as I described above.
> But if there is no "official" group to decide these things, there
> really is no correct definition.
>
> > This FIFO thing is also pretty common but doesn't seem to have a
> > universal name. =A0 As John mentioned, they've been referred to as RLLs=
,
> > "Elastic buffer", and I've heard DLL when the purpose was to match the
> > delay to some other output to which the stream needs to be
> > synchronized. =A0In the satellite world there's also "plesiochronous
> > buffer" (one of my fave names for this).
>
> In my case the use is two fold. =A0I am receiving a bit stream and I
> need to interleave other data with it at a odd ratio (31:1, 15:1,
> etc). =A0The interleave ratio also determines a delay in the other bit
> stream which must be compensated for in the first bit stream with a
> fixed quantity delay. =A0Then as the first bit stream speeds or slows,
> the second bit stream clock rate is adjusted to match. =A0The second bit
> rate is just a simple ratio to the first, so that would not require a
> PLL. =A0But the output stream is now 32/31 times the bit rate of the
> first input. =A0This is what the PLL is for.
>
> At the other end a similar circuit de-interleaves the two bit streams
> and a PLL generates the output clock. =A0A similar FIFO adds a delay at
> this end and the FIFO data count is again used as the phase
> detector.
>
> > I guess since the jobs that it does can different a universal name is
> > impractical.
>
> I would like to think that the name would be based on how the circuit
> works, not so much on what it is used for. =A0A FIFO is always called a
> FIFO (or a queue) regardless of how it is being used. =A0Oh, well. =A0The
> main thing is to get it to work.
>
> Rick- Hide quoted text -
>
> - Show quoted text -

One drawback of the "buffer-half-full" control loop is that the jitter
present on the DCO depends on how "bursty" the input data is.

An alternative approach which is used in sending data over bursty
channels link Ethernet is the concept of a "time stamp". Assume that
evey so often (8 samples or so) you interleave a time stamp with the
data. The time stamp is simply a counter running from the local clock
that has enough bits that it never wraps around.

So you take this stream and put it through some bursty channel which
is potentially interleaved with other streams that compete for
bandwidth. Assume you have some mechanism on the remote node for
deriving a copy of the "global time", so there is a counter which is
synced pretty closely with the source counter.

So you put your data into a buffer as before, but now whenever you
clock out a data sample that has an associated time stamp, you compare
the time stamp with the local time, and you adjust your DCO based on
this difference.

So how is this different than the "buffer-half-full" scheme? The
difference is that the jitter of the dco, in the case where your data
is very bursty, is independant of the burstiness. You still need a
buffer large enough to handle the burstiness, but you end up only
making very small changes to the dco in order to make it track.

There are many networking standards that take this approach, for
example you can google "Ethernet AVB".


Bob Adams

Article: 139401
Subject: VHDL : how to make a bunch of arbitary signals into a vector?
From: Mike Harrison <mike@whitewing.co.uk>
Date: Sat, 28 Mar 2009 16:02:21 +0000
Links: << >>  << T >>  << A >>
My VHDL is somwhat rusty.... 
What's the correct syntax to alias a bunch of signals into a vector - the code below shows what I'm
trying to do, but ISE doesn't like the '&'.... 

Port declaration : 
FX2_IO:in std_logic_vector(1 to 40);

Signal declaration :

alias dvi_red: std_logic_vector(7 downto 0) is  FX2_IO(18) & FX2_IO(24) & FX2_IO(30) & FX2_IO(36) &
FX2_IO(19) & FX2_IO(25) & FX2_IO(35) & FX2_IO(37);



Article: 139402
Subject: partitions and incremental design with xilinx ISE
From: ACD <acd4usenet@lycos.de>
Date: Sat, 28 Mar 2009 18:00:34 +0100
Links: << >>  << T >>  << A >>
For educational purposes I want to implement a function that has a high 
number of inputs.
Since such a function would end up anyway only as a component of a 
larger design I do not care for pin limitations of a given chip.
But the entire design does not exist.
So currently I try to use the INCREMENTAL_SYNTHESIS attribute.
Now I get the warning that this is deprecated, and I should use 
partitions instead.
As far as I have understood XAPP918 I have to have the entire design to 
be able to define my particular function as partition.
Of course I could build a dummy-top design which uses a shift register 
or something like that to provide the input pins.

There has to be a way to build a core with ISE, not?

Andreas

Article: 139403
Subject: Re: Where to find a xc6200 xilinx fpga?
From: ACD <acd4usenet@lycos.de>
Date: Sat, 28 Mar 2009 18:13:03 +0100
Links: << >>  << T >>  << A >>
rickman schrieb:
> On Mar 27, 6:55 pm, thomas.sch...@hotmail.fr wrote:
>> Does anyone know where I could find a xc6200 fpga? I would like to
>> experiment things on reconfigurable computing and it seems to be the
>> only fpga with a complete documentation to be fully dynamically
>> reconfigurable.
> 
> These chips were only available for a short while.  I don't really
> know why Xilinx produced them and then not only stopped, but seems to
> have killed them off entirely.
> 
> I seem to recall that there were projects around to allow you to do
> any manipulation of the bit stream you wish through a JAVA interface.
> Not the same as open source tools, but it was supposed to make the
> same functionality available.
> 
> Rick

Xilinx inherited them when they bought Algotronix.
I think the main reason for that takeover where some patents
xilinx needed (or maybe did not want to get into the hands of a 
competitor).
Xilinx kept the devices for some time in the market, in particular to
get the favor of academia where they were quite popular.

But since commercial customes never really went for them they eventually 
died.

Andreas

Article: 139404
Subject: Re: FIFO controlled loop, PLL, FLL or something else?
From: rickman <gnuarm@gmail.com>
Date: Sat, 28 Mar 2009 10:17:55 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 8:41=A0am, Robert Adams <robert.ad...@analog.com> wrote:
> On Mar 28, 4:31=A0am, rickman <gnu...@gmail.com> wrote:
>
>
>
> > On Mar 27, 10:34 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>
> > > On Fri, 27 Mar 2009 16:03:09 -0700 (PDT), rickman <gnu...@gmail.com>
> > > wrote:
>
> > > >On Mar 27, 1:25 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>
> > > >> Also sometimes called a "delay-locked loop".
>
> > > >I am pretty sure that this is not a delay locked loop. =A0A DLL uses=
 a
> > > >delay in the feedback path to generate an output that has a differen=
t
> > > >phase than the original. =A0This is often used to compensate for a d=
elay
> > > >elsewhere in the clock path.
>
> > > >In one incarnation of the design of this circuit the error integrato=
r
> > > >was enabled by the input clock enable. =A0If there was a phase shift=
 in
> > > >the input and output clock enables, it would produce a single count =
of
> > > >difference during part of the cycle, but would be zero again by the
> > > >next input clock enable. =A0However, with the phase accumulator (DCO=
)
> > > >operating on each cycle of the main clock, this single count would b=
e
> > > >added in producing what amounted to a fractional phase step compared
> > > >to the value in the error integrator. =A0The result is that the smal=
lest
> > > >adjustments in output frequency would be made by the phasing of the
> > > >input and output signals. =A0However, the phase would never be corre=
cted
> > > >in the error integrator.
>
> > > >This is a bit hard to describe in words. =A0I hope it is clear.
>
> > > >Rick
>
> > > That's also a DLL, and perhaps the more commonly-used meaning of the
> > > term in my experience.
>
> > Yeah, I guess people use whatever term they want often and that makes
> > it hard to communicate about these things. =A0I am pretty sure that the
> > "correct" definition of a Delay Locked Loop is as I described above.
> > But if there is no "official" group to decide these things, there
> > really is no correct definition.
>
> > > This FIFO thing is also pretty common but doesn't seem to have a
> > > universal name. =A0 As John mentioned, they've been referred to as RL=
Ls,
> > > "Elastic buffer", and I've heard DLL when the purpose was to match th=
e
> > > delay to some other output to which the stream needs to be
> > > synchronized. =A0In the satellite world there's also "plesiochronous
> > > buffer" (one of my fave names for this).
>
> > In my case the use is two fold. =A0I am receiving a bit stream and I
> > need to interleave other data with it at a odd ratio (31:1, 15:1,
> > etc). =A0The interleave ratio also determines a delay in the other bit
> > stream which must be compensated for in the first bit stream with a
> > fixed quantity delay. =A0Then as the first bit stream speeds or slows,
> > the second bit stream clock rate is adjusted to match. =A0The second bi=
t
> > rate is just a simple ratio to the first, so that would not require a
> > PLL. =A0But the output stream is now 32/31 times the bit rate of the
> > first input. =A0This is what the PLL is for.
>
> > At the other end a similar circuit de-interleaves the two bit streams
> > and a PLL generates the output clock. =A0A similar FIFO adds a delay at
> > this end and the FIFO data count is again used as the phase
> > detector.
>
> > > I guess since the jobs that it does can different a universal name is
> > > impractical.
>
> > I would like to think that the name would be based on how the circuit
> > works, not so much on what it is used for. =A0A FIFO is always called a
> > FIFO (or a queue) regardless of how it is being used. =A0Oh, well. =A0T=
he
> > main thing is to get it to work.
>
> > Rick- Hide quoted text -
>
> > - Show quoted text -
>
> One drawback of the "buffer-half-full" control loop is that the jitter
> present on the DCO depends on how "bursty" the input data is.
>
> An alternative approach which is used in sending data over bursty
> channels link Ethernet is the concept of a "time stamp". Assume that
> evey so often (8 samples or so) you interleave a time stamp with the
> data. The time stamp is simply a counter running from the local clock
> that has enough bits that it never wraps around.
>
> So you take this stream and put it through some bursty channel which
> is potentially interleaved with other streams that compete for
> bandwidth. Assume you have some mechanism on the remote node for
> deriving a copy of the "global time", so there is a counter which is
> synced pretty closely with the source counter.
>
> So you put your data into a buffer as before, but now whenever you
> clock out a data sample that has an associated time stamp, you compare
> the time stamp with the local time, and you adjust your DCO based on
> this difference.
>
> So how is this different than the "buffer-half-full" scheme? The
> difference is that the jitter of the dco, in the case where your data
> is very bursty, is independant of the burstiness. You still need a
> buffer large enough to handle the burstiness, but you end up only
> making very small changes to the dco in order to make it track.
>
> There are many networking standards that take this approach, for
> example you can google "Ethernet AVB".
>
> Bob Adams

Isn't this what the low pass filter helps with?  Even if the packets
arrive at very random times, the LPF will smooth the control "voltage"
to the DCO.  In my case I don't expect a lot of jitter from the input
signal.  On the other end, I am not handling the packet interface.  My
customer's equipment is doing that.  I am supplied with data and
clock.  I just have to separate the two data streams and reclock the
output with the fixed delay line.

In another approach, I have to provide a fixed time delay independent
of the data rate.  In that case the error integrator is removed and
the buffer length directly controls the DCO rate.  I expect that will
not have stability issues.

Rick

Article: 139405
Subject: Re: VHDL : how to make a bunch of arbitary signals into a vector?
From: rickman <gnuarm@gmail.com>
Date: Sat, 28 Mar 2009 10:51:38 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 12:02=A0pm, Mike Harrison <m...@whitewing.co.uk> wrote:
> My VHDL is somwhat rusty....
> What's the correct syntax to alias a bunch of signals into a vector - the=
 code below shows what I'm
> trying to do, but ISE doesn't like the '&'....
>
> Port declaration :
> FX2_IO:in std_logic_vector(1 to 40);
>
> Signal declaration :
>
> alias dvi_red: std_logic_vector(7 downto 0) is =A0FX2_IO(18) & FX2_IO(24)=
 & FX2_IO(30) & FX2_IO(36) &
> FX2_IO(19) & FX2_IO(25) & FX2_IO(35) & FX2_IO(37);

I looked and I don't see where this is supported within the standard.
However, the standard is a bit obtuse in this area and I can't say I
understand it well.  That said, it seems that at earlier times at
least, the use of alias was not well supported.  I can't say it is
widely supported for synthesis now, so maybe it is best to be
avoided.

dvi_red <=3D (FX2_IO(18) & FX2_IO(24) & FX2_IO(30) & FX2_IO(36) & FX2_IO
(19) & FX2_IO(25) & FX2_IO(35) & FX2_IO(37));

How about this instead?

Rick

Article: 139406
Subject: XST segmentation fault on top level synthesis
From: nike <gkamendje@gmail.com>
Date: Sat, 28 Mar 2009 11:33:42 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi All,
I have a design that fails on XST synthesis with the message
"synthesis failed see design summary for more information" (on ISE10.1
lin64). However, the design summary does not contain any information
on the failure. No warning nothing. I am able to synthesize all sub-
modules successfully. The top level module does not contain any logic
only submodules instances.  There is absolutely no clue in the .syr
file. Synthesis fails at the beginning of the "Advanced HDL Synthesis"
step.
Synplify Pro has no problem synthesizing the entire design.
Trying to synthesize the design from the command line results in
segmentation fault again after the beginning of the "Advance HDL
Synthesis" step.
Thanks for any hint.

Article: 139407
Subject: Re: VHDL : how to make a bunch of arbitary signals into a vector?
From: Mike Treseler <mtreseler@gmail.com>
Date: Sat, 28 Mar 2009 11:42:17 -0700
Links: << >>  << T >>  << A >>
Mike Harrison wrote:
> My VHDL is somwhat rusty.... 
> What's the correct syntax to alias a bunch of signals into a vector - the code below shows what I'm
> trying to do, but ISE doesn't like the '&'.... 
> 
> Port declaration : 
> FX2_IO:in std_logic_vector(1 to 40);
> 
> Signal declaration :

That would be
  signal dvi_red : std_logic_vector(7 downto 0);
before the architecture BEGIN.

If the right side expression is used only once,
I would make a simple assignment as rickman demonstrated.

If I wanted to attach a name to the *expression* for reuse,
I would use a function rather than an alias.

         -- Mike Treseler

Article: 139408
Subject: Re: FIFO controlled loop, PLL, FLL or something else?
From: Eric Jacobsen <eric.jacobsen@ieee.org>
Date: Sat, 28 Mar 2009 12:08:16 -0700
Links: << >>  << T >>  << A >>
On Sat, 28 Mar 2009 10:17:55 -0700 (PDT), rickman <gnuarm@gmail.com>
wrote:

>On Mar 28, 8:41 am, Robert Adams <robert.ad...@analog.com> wrote:
>> On Mar 28, 4:31 am, rickman <gnu...@gmail.com> wrote:
>>
>>
>>
>> > On Mar 27, 10:34 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>>
>> > > On Fri, 27 Mar 2009 16:03:09 -0700 (PDT), rickman <gnu...@gmail.com>
>> > > wrote:
>>
>> > > >On Mar 27, 1:25 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
>>
>> > > >> Also sometimes called a "delay-locked loop".
>>
>> > > >I am pretty sure that this is not a delay locked loop.  A DLL uses a
>> > > >delay in the feedback path to generate an output that has a different
>> > > >phase than the original.  This is often used to compensate for a delay
>> > > >elsewhere in the clock path.
>>
>> > > >In one incarnation of the design of this circuit the error integrator
>> > > >was enabled by the input clock enable.  If there was a phase shift in
>> > > >the input and output clock enables, it would produce a single count of
>> > > >difference during part of the cycle, but would be zero again by the
>> > > >next input clock enable.  However, with the phase accumulator (DCO)
>> > > >operating on each cycle of the main clock, this single count would be
>> > > >added in producing what amounted to a fractional phase step compared
>> > > >to the value in the error integrator.  The result is that the smallest
>> > > >adjustments in output frequency would be made by the phasing of the
>> > > >input and output signals.  However, the phase would never be corrected
>> > > >in the error integrator.
>>
>> > > >This is a bit hard to describe in words.  I hope it is clear.
>>
>> > > >Rick
>>
>> > > That's also a DLL, and perhaps the more commonly-used meaning of the
>> > > term in my experience.
>>
>> > Yeah, I guess people use whatever term they want often and that makes
>> > it hard to communicate about these things.  I am pretty sure that the
>> > "correct" definition of a Delay Locked Loop is as I described above.
>> > But if there is no "official" group to decide these things, there
>> > really is no correct definition.
>>
>> > > This FIFO thing is also pretty common but doesn't seem to have a
>> > > universal name.   As John mentioned, they've been referred to as RLLs,
>> > > "Elastic buffer", and I've heard DLL when the purpose was to match the
>> > > delay to some other output to which the stream needs to be
>> > > synchronized.  In the satellite world there's also "plesiochronous
>> > > buffer" (one of my fave names for this).
>>
>> > In my case the use is two fold.  I am receiving a bit stream and I
>> > need to interleave other data with it at a odd ratio (31:1, 15:1,
>> > etc).  The interleave ratio also determines a delay in the other bit
>> > stream which must be compensated for in the first bit stream with a
>> > fixed quantity delay.  Then as the first bit stream speeds or slows,
>> > the second bit stream clock rate is adjusted to match.  The second bit
>> > rate is just a simple ratio to the first, so that would not require a
>> > PLL.  But the output stream is now 32/31 times the bit rate of the
>> > first input.  This is what the PLL is for.
>>
>> > At the other end a similar circuit de-interleaves the two bit streams
>> > and a PLL generates the output clock.  A similar FIFO adds a delay at
>> > this end and the FIFO data count is again used as the phase
>> > detector.
>>
>> > > I guess since the jobs that it does can different a universal name is
>> > > impractical.
>>
>> > I would like to think that the name would be based on how the circuit
>> > works, not so much on what it is used for.  A FIFO is always called a
>> > FIFO (or a queue) regardless of how it is being used.  Oh, well.  The
>> > main thing is to get it to work.
>>
>> > Rick- Hide quoted text -
>>
>> > - Show quoted text -
>>
>> One drawback of the "buffer-half-full" control loop is that the jitter
>> present on the DCO depends on how "bursty" the input data is.
>>
>> An alternative approach which is used in sending data over bursty
>> channels link Ethernet is the concept of a "time stamp". Assume that
>> evey so often (8 samples or so) you interleave a time stamp with the
>> data. The time stamp is simply a counter running from the local clock
>> that has enough bits that it never wraps around.
>>
>> So you take this stream and put it through some bursty channel which
>> is potentially interleaved with other streams that compete for
>> bandwidth. Assume you have some mechanism on the remote node for
>> deriving a copy of the "global time", so there is a counter which is
>> synced pretty closely with the source counter.
>>
>> So you put your data into a buffer as before, but now whenever you
>> clock out a data sample that has an associated time stamp, you compare
>> the time stamp with the local time, and you adjust your DCO based on
>> this difference.
>>
>> So how is this different than the "buffer-half-full" scheme? The
>> difference is that the jitter of the dco, in the case where your data
>> is very bursty, is independant of the burstiness. You still need a
>> buffer large enough to handle the burstiness, but you end up only
>> making very small changes to the dco in order to make it track.
>>
>> There are many networking standards that take this approach, for
>> example you can google "Ethernet AVB".
>>
>> Bob Adams
>
>Isn't this what the low pass filter helps with?  Even if the packets
>arrive at very random times, the LPF will smooth the control "voltage"
>to the DCO.  In my case I don't expect a lot of jitter from the input
>signal.  On the other end, I am not handling the packet interface.  My
>customer's equipment is doing that.  I am supplied with data and
>clock.  I just have to separate the two data streams and reclock the
>output with the fixed delay line.
>
>In another approach, I have to provide a fixed time delay independent
>of the data rate.  In that case the error integrator is removed and
>the buffer length directly controls the DCO rate.  I expect that will
>not have stability issues.
>
>Rick

FWIW, this sounds a lot like a typical demultiplexing problem where a
multiplexed stream has to be broken back out into the constituent
signals.   The sub-channels are often at different average rates, and
depending on how the multiplexing scheme worked the subchannels may
fill their indvidual buffers in a pretty bursty fashion.

Some standardized interfaces (well, many, actually) want the data to
come back out at a very stable rate.   In some cases it needs to come
out at a ridiculously stable rate, and when the FIFO is filling in
bursts it can turn into a tricky problem.

I think you're on the right track, though.   We've done this quite a
few times with a similar approach, but it seems like there's always
some pitfall that's specific to the application.

Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.ericjacobsen.org

Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php

Article: 139409
Subject: Re: What does Xilinx mean by "Real 6-input look-up (LUT) technology"?
From: -jg <Jim.Granville@gmail.com>
Date: Sat, 28 Mar 2009 12:59:16 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 9:08=A0pm, rickman <gnu...@gmail.com> wrote:
> On Mar 27, 9:16=A0pm, Tommy Thorn <tommy.th...@gmail.com> wrote:
>
> > For some time I've found it pretty humorous that Xilinx boast of "True
> > LUT6" in all their Virtex 5+ marketing material. Do they really think
> > that they can somehow imply that Altera's ALM isn't a "True LUT6" when
> > in fact it's obvious that the ALM encompasses a LUT6 and much more.
>
> > Or are there some unreal LUT6 out there?
>
> I don't know what they are referring to by that. =A0I Lattice provides a
> dual LUT6 or a single LUT7 in their equivalent to the CLB. =A0I think
> they do that by combining LUT4 outputs with dedicated muxes. =A0Heck,
> that's "real" enough for me. =A0I wonder what the advantage of a "real"
> LUT6 is? =A0:^)
>
> Rick

Maybe it's in the logic coverage, and the background resource that
implies ?
- and what you can then do with that resource.
This sounded like a reasonable advance ?

G=F6ran Bilski  did make this comment :
[" With Xilinx 6-LUT, you can really make small 16-bit RISC machines
which is register file based.
Programming a register based CPU in assembler is much easier than a
stack machine.
I crafted a couple of years ago a 16-bit machine which could be as
small as 200 LUTs (4-LUT) but was around 300 LUTs in general.
It might be possible to do a 16-bit RISC at around 100 LUTs (6-LUT)."]

and also this
["RAM32M primitives .... this primitive
 helped to reduce the register file size with around 7x.
 It handles 1 write and 3 read ports very efficient."]
Antti: [ cool, 4 LUTs are used for 4 port 32 x 2 RAM with async read
ports!! ]

Article: 139410
Subject: Re: added jitter on FPGAs
From: Joerg <notthisjoergsch@removethispacbell.net>
Date: Sat, 28 Mar 2009 13:35:04 -0700
Links: << >>  << T >>  << A >>
John Larkin wrote:
> On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <ah@nospam.co.uk>
> wrote:
> 
>> "John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
>> news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>>> <pabloalvarezsanchez@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> For several reasons a need very low jitter on some of my outputs. I
>>>> was thinking of using LVDS for my I/Os and of course I do not consider
>>>> using a clock manager. Do you have an idea of the order of magnitude
>>>> of jitter one can get? What fpga would you recomend for a low cost
>>>> small design?
>>>>
>>>> Cheers
>>>>
>>>> Pablo
>>>
>>> Here's a signal that has made three independent non-trivial in/out
>>> passes through a Spartan3, plus passed through six external SSI CMOS
>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>>
>>> ftp://jjlarkin.lmi.net/Jitter3.jpg
>>>
>>>
>>> We were fairly impressed. Spartans are like having a few thousand 10KH
>>> ECL gates on a $20 chip.
>>>
>>> John
>>>
>> I've just built a fractional-N synthesizer using a Spartan 3.  The reference 
>> frequency comes from an LVDS-output crystal oscillator.  The VCO frequency 
>> is fed into the opposite side of the FPGA using an LVDS-output comparator 
>> and the (AD9901 style) PFD output from the FPGA to the loop filter is also 
>> LVDS on a third physical side.
>>
>> Inside the FPGA, the VCO divider and reference divider are on local clocks 
>> confined to small regions around the pads where they enter.  BUFGCE 
>> primitives are used to gate the clocks so I only send edges over the global 
>> clock network when a divider resets.  The AD9901 PFD ensures that the VCO 
>> and reference divider outputs are 180 degrees out of phase.
>>
>> Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84 
>> CPLD.  It worked quite well, but there was some interation between the VCO 
>> and reference frequencies which caused integer-N boundary spurs.  I see no 
>> trace of these spurs on my new Spartan 3 design, and the phase noise is much 
>> lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I 
>> haven't finished tweaking things yet.
>>
>>
>> They say don't attempt analogue functions in FPGAs; but it seems to work 
>> remarkably well in the Spartan 3, which is fully static when I'm not 
>> clocking it.
>>
>>
> 
> The Spartan LVDS inputs are pretty good r-r comparators. And you can
> make lots of good, cheap delta-sigma dacs from an FPGA.
> 
> You can do cool analog things with FPGAs. ...


Can you tell us more about that? Sounds very interesting. As long as it 
doesn't rely on really undocumented parameters like leakage currents, or 
goes away when the family gets discontinued (one reason I don't like 
FPGA much).


>  ... You can also get into a heap of trouble.
> 

Probably of the exothermic kind where the smoke alarms kick in and the 
sprinkler system comes on :-)

-- 
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.

Article: 139411
Subject: Re: What does Xilinx mean by "Real 6-input look-up (LUT) technology"?
From: rickman <gnuarm@gmail.com>
Date: Sat, 28 Mar 2009 13:39:36 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 3:59=A0pm, -jg <Jim.Granvi...@gmail.com> wrote:
> On Mar 28, 9:08=A0pm, rickman <gnu...@gmail.com> wrote:
>
>
>
> > On Mar 27, 9:16=A0pm, Tommy Thorn <tommy.th...@gmail.com> wrote:
>
> > > For some time I've found it pretty humorous that Xilinx boast of "Tru=
e
> > > LUT6" in all their Virtex 5+ marketing material. Do they really think
> > > that they can somehow imply that Altera's ALM isn't a "True LUT6" whe=
n
> > > in fact it's obvious that the ALM encompasses a LUT6 and much more.
>
> > > Or are there some unreal LUT6 out there?
>
> > I don't know what they are referring to by that. =A0I Lattice provides =
a
> > dual LUT6 or a single LUT7 in their equivalent to the CLB. =A0I think
> > they do that by combining LUT4 outputs with dedicated muxes. =A0Heck,
> > that's "real" enough for me. =A0I wonder what the advantage of a "real"
> > LUT6 is? =A0:^)
>
> > Rick
>
> Maybe it's in the logic coverage, and the background resource that
> implies ?
> - and what you can then do with that resource.
> This sounded like a reasonable advance ?

If you mean the coverage of possible functions of the 6 inputs, a mux
gives total coverage.  That's all the LUTx is, a set of FFs with the
outputs selected by a mux.  The "real" LUTs use particular
combinations of of pass transistors or transmission gates to implement
the muxes.  I can't say how the "extra" muxs (that connect the LUT4
outputs) are made.

One advantage of the separate LUT4 connected by 2 input MUXes is that
you can implement a large number of functions of up to 16 inputs,
possibly as many as 19 inputs.  But this depends on the available
routing.  The advantage of combining 8 LUTs and FFs in a single CLB/
PFU is that you can save a bit on routing by not providing 8 x N
inputs from the routing matrix as you would for LUTs in separate
CLBs.


> G=F6ran Bilski =A0did make this comment :
> [" With Xilinx 6-LUT, you can really make small 16-bit RISC machines
> which is register file based.
> Programming a register based CPU in assembler is much easier than a
> stack machine.
> I crafted a couple of years ago a 16-bit machine which could be as
> small as 200 LUTs (4-LUT) but was around 300 LUTs in general.
> It might be possible to do a 16-bit RISC at around 100 LUTs (6-LUT)."]
>
> and also this
> ["RAM32M primitives .... this primitive
> =A0helped to reduce the register file size with around 7x.
> =A0It handles 1 write and 3 read ports very efficient."]
> Antti: [ cool, 4 LUTs are used for 4 port 32 x 2 RAM with async read
> ports!! ]

I'm not sure you can compare apples (LUT4) and oranges (LUT6) this
way.  You can create a 32 x 1 ram using two LUT4s and an "extra" mux
(in CLB/PFU, not LUT).  To get 4 port x 32 x 1 bit requires 8 LUT4s.
To get N bits requires 8 x N LUT4s or 16 in this case which is 4x the
number of LUT6s used.

However, how do you compare the "cost" of a LUT6 vs a LUT4?  There are
4 times as many FFs and muxes in the LUT itself.  There are fewer
inputs, so less routing required.  There are a lot fewer LUT6 elements
in a given price/size FPGA than a LUT4 equivalent, but how many
fewer?

The trade off is how often the LUT6 is wasted on logic with fewer than
6 inputs vs. how often it allows reduced routing resources to fully
connect your design.  I expect the size/cost of the LUT6 is 4x the
LUT4 in respects other than routing.

I would guess that they picked the LUT6 rather than a LUT5 because it
allows a 4:1 mux with no wasted inputs.  Muxes are real LUT eaters in
many designs, including CPUs.

Rick

Article: 139412
Subject: Re: FIFO controlled loop, PLL, FLL or something else?
From: rickman <gnuarm@gmail.com>
Date: Sat, 28 Mar 2009 14:23:13 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 3:08 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote:
> On Sat, 28 Mar 2009 10:17:55 -0700 (PDT), rickman <gnu...@gmail.com>
> wrote:
>
> >On Mar 28, 8:41 am, Robert Adams <robert.ad...@analog.com> wrote:
> >> One drawback of the "buffer-half-full" control loop is that the jitter
> >> present on the DCO depends on how "bursty" the input data is.
>
> >> An alternative approach which is used in sending data over bursty
> >> channels link Ethernet is the concept of a "time stamp". Assume that
> >> evey so often (8 samples or so) you interleave a time stamp with the
> >> data. The time stamp is simply a counter running from the local clock
> >> that has enough bits that it never wraps around.
>
> >> So you take this stream and put it through some bursty channel which
> >> is potentially interleaved with other streams that compete for
> >> bandwidth. Assume you have some mechanism on the remote node for
> >> deriving a copy of the "global time", so there is a counter which is
> >> synced pretty closely with the source counter.
>
> >> So you put your data into a buffer as before, but now whenever you
> >> clock out a data sample that has an associated time stamp, you compare
> >> the time stamp with the local time, and you adjust your DCO based on
> >> this difference.
>
> >> So how is this different than the "buffer-half-full" scheme? The
> >> difference is that the jitter of the dco, in the case where your data
> >> is very bursty, is independant of the burstiness. You still need a
> >> buffer large enough to handle the burstiness, but you end up only
> >> making very small changes to the dco in order to make it track.
>
> >> There are many networking standards that take this approach, for
> >> example you can google "Ethernet AVB".
>
> >> Bob Adams
>
> >Isn't this what the low pass filter helps with?  Even if the packets
> >arrive at very random times, the LPF will smooth the control "voltage"
> >to the DCO.  In my case I don't expect a lot of jitter from the input
> >signal.  On the other end, I am not handling the packet interface.  My
> >customer's equipment is doing that.  I am supplied with data and
> >clock.  I just have to separate the two data streams and reclock the
> >output with the fixed delay line.
>
> >In another approach, I have to provide a fixed time delay independent
> >of the data rate.  In that case the error integrator is removed and
> >the buffer length directly controls the DCO rate.  I expect that will
> >not have stability issues.
>
> >Rick
>
> FWIW, this sounds a lot like a typical demultiplexing problem where a
> multiplexed stream has to be broken back out into the constituent
> signals.   The sub-channels are often at different average rates, and
> depending on how the multiplexing scheme worked the subchannels may
> fill their indvidual buffers in a pretty bursty fashion.
>
> Some standardized interfaces (well, many, actually) want the data to
> come back out at a very stable rate.   In some cases it needs to come
> out at a ridiculously stable rate, and when the FIFO is filling in
> bursts it can turn into a tricky problem.
>
> I think you're on the right track, though.   We've done this quite a
> few times with a similar approach, but it seems like there's always
> some pitfall that's specific to the application.

Yes, that is exactly what both approaches are doing.  The difference
is in the delay that needs to be added to the one channel to
compensate for a delay in the other.  In addition to needing to
provide data at an even rate, the design has to preserve a timing
relationship between the two signals.  Both have even rates coming
into the system.  The combined data packets are conveyed over a
network and regenerated at the other end.  Because the system is
giving me a clock that is already stabilized, I don't need to worry
about "bursty" clocking.  I just have to work with the average rate
changing.  The requirement I was given is 10 ppm/s, but that was
plucked from air and I am sure I should do better than that.

The main goal is to preserve the timing relationship between the two
signals.  One is a time code reference and the other is data that
needs to be analyzed in a context of the time code.

There are two approaches to solving the larger problem.  One is to
treat the time code signal as an analog signal and convey that as time
samples.  I can slave the rate of conversion to the rate of the
incoming data stream so the rate ratio does not change.  The CODEC has
a delay which scales with the sample rate.  So a fixed size buffer on
the other data stream will keep them aligned.  The other approach is
to decode the time code and send symbols which requires a much lower
data rate on the network.  The decoding takes time, but is a fixed
amount.  So the delay of the other data stream has to scale with its
data rate to get a fixed time delay.  I am about done simulating the
first approach.  I should be able to get the second approach to work
much more easily.

Rick

Article: 139413
Subject: Xilinx options (synthesis and map) in Synplify Pro
From: nike <gkamendje@gmail.com>
Date: Sat, 28 Mar 2009 15:31:02 -0700 (PDT)
Links: << >>  << T >>  << A >>
ISE10 Project Navigator offers a lot of synthesis and map options
(Block Ram packing, LUT combining just to name a few of them) that I
have successfully used to shrink my design. I was wondering how to use
this options when using Synplify Pro (as integrated tool in ISE10 and
as stand alone tool).
Thanks for any hint.
GA

Article: 139414
Subject: Re: added jitter on FPGAs
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Sat, 28 Mar 2009 15:52:00 -0700
Links: << >>  << T >>  << A >>
On Sat, 28 Mar 2009 13:35:04 -0700, Joerg
<notthisjoergsch@removethispacbell.net> wrote:

>John Larkin wrote:
>> On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <ah@nospam.co.uk>
>> wrote:
>> 
>>> "John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
>>> news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>>>> <pabloalvarezsanchez@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> For several reasons a need very low jitter on some of my outputs. I
>>>>> was thinking of using LVDS for my I/Os and of course I do not consider
>>>>> using a clock manager. Do you have an idea of the order of magnitude
>>>>> of jitter one can get? What fpga would you recomend for a low cost
>>>>> small design?
>>>>>
>>>>> Cheers
>>>>>
>>>>> Pablo
>>>>
>>>> Here's a signal that has made three independent non-trivial in/out
>>>> passes through a Spartan3, plus passed through six external SSI CMOS
>>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>>>
>>>> ftp://jjlarkin.lmi.net/Jitter3.jpg
>>>>
>>>>
>>>> We were fairly impressed. Spartans are like having a few thousand 10KH
>>>> ECL gates on a $20 chip.
>>>>
>>>> John
>>>>
>>> I've just built a fractional-N synthesizer using a Spartan 3.  The reference 
>>> frequency comes from an LVDS-output crystal oscillator.  The VCO frequency 
>>> is fed into the opposite side of the FPGA using an LVDS-output comparator 
>>> and the (AD9901 style) PFD output from the FPGA to the loop filter is also 
>>> LVDS on a third physical side.
>>>
>>> Inside the FPGA, the VCO divider and reference divider are on local clocks 
>>> confined to small regions around the pads where they enter.  BUFGCE 
>>> primitives are used to gate the clocks so I only send edges over the global 
>>> clock network when a divider resets.  The AD9901 PFD ensures that the VCO 
>>> and reference divider outputs are 180 degrees out of phase.
>>>
>>> Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84 
>>> CPLD.  It worked quite well, but there was some interation between the VCO 
>>> and reference frequencies which caused integer-N boundary spurs.  I see no 
>>> trace of these spurs on my new Spartan 3 design, and the phase noise is much 
>>> lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I 
>>> haven't finished tweaking things yet.
>>>
>>>
>>> They say don't attempt analogue functions in FPGAs; but it seems to work 
>>> remarkably well in the Spartan 3, which is fully static when I'm not 
>>> clocking it.
>>>
>>>
>> 
>> The Spartan LVDS inputs are pretty good r-r comparators. And you can
>> make lots of good, cheap delta-sigma dacs from an FPGA.
>> 
>> You can do cool analog things with FPGAs. ...
>
>
>Can you tell us more about that? Sounds very interesting. As long as it 
>doesn't rely on really undocumented parameters like leakage currents, or 
>goes away when the family gets discontinued (one reason I don't like 
>FPGA much).

How are you going to get an edge on your competition unless you use
stuff that they don't know?

John



Article: 139415
Subject: Re: added jitter on FPGAs
From: rickman <gnuarm@gmail.com>
Date: Sat, 28 Mar 2009 16:09:45 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 6:52=A0pm, John Larkin
<jjlar...@highNOTlandTHIStechnologyPART.com> wrote:
> On Sat, 28 Mar 2009 13:35:04 -0700, Joerg
>
>
>
> <notthisjoerg...@removethispacbell.net> wrote:
> >John Larkin wrote:
> >> On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <a...@nospam.co.uk>
> >> wrote:
>
> >>> "John Larkin" <jjlar...@highNOTlandTHIStechnologyPART.com> wrote in m=
essage
> >>>news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
> >>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
> >>>> <pabloalvarezsanc...@gmail.com> wrote:
>
> >>>>> Hi,
>
> >>>>> For several reasons a need very low jitter on some of my outputs. I
> >>>>> was thinking of using LVDS for my I/Os and of course I do not consi=
der
> >>>>> using a clock manager. Do you have an idea of the order of magnitud=
e
> >>>>> of jitter one can get? What fpga would you recomend for a low cost
> >>>>> small design?
>
> >>>>> Cheers
>
> >>>>> Pablo
>
> >>>> Here's a signal that has made three independent non-trivial in/out
> >>>> passes through a Spartan3, plus passed through six external SSI CMOS
> >>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>
> >>>>ftp://jjlarkin.lmi.net/Jitter3.jpg
>
> >>>> We were fairly impressed. Spartans are like having a few thousand 10=
KH
> >>>> ECL gates on a $20 chip.
>
> >>>> John
>
> >>> I've just built a fractional-N synthesizer using a Spartan 3. =A0The =
reference
> >>> frequency comes from an LVDS-output crystal oscillator. =A0The VCO fr=
equency
> >>> is fed into the opposite side of the FPGA using an LVDS-output compar=
ator
> >>> and the (AD9901 style) PFD output from the FPGA to the loop filter is=
 also
> >>> LVDS on a third physical side.
>
> >>> Inside the FPGA, the VCO divider and reference divider are on local c=
locks
> >>> confined to small regions around the pads where they enter. =A0BUFGCE
> >>> primitives are used to gate the clocks so I only send edges over the =
global
> >>> clock network when a divider resets. =A0The AD9901 PFD ensures that t=
he VCO
> >>> and reference divider outputs are 180 degrees out of phase.
>
> >>> Some years ago, I built a cruder fractional-N synth using a 5V Altera=
 PLCC84
> >>> CPLD. =A0It worked quite well, but there was some interation between =
the VCO
> >>> and reference frequencies which caused integer-N boundary spurs. =A0I=
 see no
> >>> trace of these spurs on my new Spartan 3 design, and the phase noise =
is much
> >>> lower. =A0I'm seeing around -95 dBc/Hz at 100 Hz offsets at the momen=
t; and I
> >>> haven't finished tweaking things yet.
>
> >>> They say don't attempt analogue functions in FPGAs; but it seems to w=
ork
> >>> remarkably well in the Spartan 3, which is fully static when I'm not
> >>> clocking it.
>
> >> The Spartan LVDS inputs are pretty good r-r comparators. And you can
> >> make lots of good, cheap delta-sigma dacs from an FPGA.
>
> >> You can do cool analog things with FPGAs. ...
>
> >Can you tell us more about that? Sounds very interesting. As long as it
> >doesn't rely on really undocumented parameters like leakage currents, or
> >goes away when the family gets discontinued (one reason I don't like
> >FPGA much).
>
> How are you going to get an edge on your competition unless you use
> stuff that they don't know?
>
> John

You mean the stuff that can change without warning? One place where I
worked had a design that was using FET transistors to control the
current to control the current to an LED backlight, V in and I out.
Heck, they publish a curve for that right?  That would be a *typical*
curve.  After using this part for some years, the circuit stopped
working right with a dim backlight.  The FET maker had "improved"
their process and changed the threshold voltage just a bit, still
within spec, but not the same curve.  So now the ROM values for the
DAC didn't let enough current pass.

It's not likely that the LVDS circuit would be changed at any point in
the future... I guess that is where the "trouble" part comes in.

Rick

Article: 139416
Subject: Re: added jitter on FPGAs
From: krw <krw@att.bizzzzzzzzzzz>
Date: Sat, 28 Mar 2009 18:19:58 -0500
Links: << >>  << T >>  << A >>
On Thu, 26 Mar 2009 13:39:47 -0700, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

>On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <ah@nospam.co.uk>
>wrote:
>
>>
>>"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
>>news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>>> <pabloalvarezsanchez@gmail.com> wrote:
>>>
>>>>Hi,
>>>>
>>>>For several reasons a need very low jitter on some of my outputs. I
>>>>was thinking of using LVDS for my I/Os and of course I do not consider
>>>>using a clock manager. Do you have an idea of the order of magnitude
>>>>of jitter one can get? What fpga would you recomend for a low cost
>>>>small design?
>>>>
>>>>Cheers
>>>>
>>>>Pablo
>>>
>>>
>>> Here's a signal that has made three independent non-trivial in/out
>>> passes through a Spartan3, plus passed through six external SSI CMOS
>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>>
>>> ftp://jjlarkin.lmi.net/Jitter3.jpg
>>>
>>>
>>> We were fairly impressed. Spartans are like having a few thousand 10KH
>>> ECL gates on a $20 chip.
>>>
>>> John
>>>
>>
>>I've just built a fractional-N synthesizer using a Spartan 3.  The reference 
>>frequency comes from an LVDS-output crystal oscillator.  The VCO frequency 
>>is fed into the opposite side of the FPGA using an LVDS-output comparator 
>>and the (AD9901 style) PFD output from the FPGA to the loop filter is also 
>>LVDS on a third physical side.
>>
>>Inside the FPGA, the VCO divider and reference divider are on local clocks 
>>confined to small regions around the pads where they enter.  BUFGCE 
>>primitives are used to gate the clocks so I only send edges over the global 
>>clock network when a divider resets.  The AD9901 PFD ensures that the VCO 
>>and reference divider outputs are 180 degrees out of phase.
>>
>>Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84 
>>CPLD.  It worked quite well, but there was some interation between the VCO 
>>and reference frequencies which caused integer-N boundary spurs.  I see no 
>>trace of these spurs on my new Spartan 3 design, and the phase noise is much 
>>lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I 
>>haven't finished tweaking things yet.
>>
>>
>>They say don't attempt analogue functions in FPGAs; but it seems to work 
>>remarkably well in the Spartan 3, which is fully static when I'm not 
>>clocking it.
>>
>>
>
>The Spartan LVDS inputs are pretty good r-r comparators. And you can
>make lots of good, cheap delta-sigma dacs from an FPGA.

I asked the Altera rep (actually from Arrow) to check on that for me.
It seemed like a possibility.  I have a bunch of ideas if this is
really a possibility (noise and such).

>You can do cool analog things with FPGAs. You can also get into a heap
>of trouble.

I may try? So far the other engineers don't think it can be done.
We'll see.  ;-)  

Article: 139417
Subject: Re: added jitter on FPGAs
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Sat, 28 Mar 2009 16:20:11 -0700
Links: << >>  << T >>  << A >>
On Sat, 28 Mar 2009 16:09:45 -0700 (PDT), rickman <gnuarm@gmail.com>
wrote:

>On Mar 28, 6:52 pm, John Larkin
><jjlar...@highNOTlandTHIStechnologyPART.com> wrote:
>> On Sat, 28 Mar 2009 13:35:04 -0700, Joerg
>>
>>
>>
>> <notthisjoerg...@removethispacbell.net> wrote:
>> >John Larkin wrote:
>> >> On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <a...@nospam.co.uk>
>> >> wrote:
>>
>> >>> "John Larkin" <jjlar...@highNOTlandTHIStechnologyPART.com> wrote in message
>> >>>news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>> >>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>> >>>> <pabloalvarezsanc...@gmail.com> wrote:
>>
>> >>>>> Hi,
>>
>> >>>>> For several reasons a need very low jitter on some of my outputs. I
>> >>>>> was thinking of using LVDS for my I/Os and of course I do not consider
>> >>>>> using a clock manager. Do you have an idea of the order of magnitude
>> >>>>> of jitter one can get? What fpga would you recomend for a low cost
>> >>>>> small design?
>>
>> >>>>> Cheers
>>
>> >>>>> Pablo
>>
>> >>>> Here's a signal that has made three independent non-trivial in/out
>> >>>> passes through a Spartan3, plus passed through six external SSI CMOS
>> >>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>
>> >>>>ftp://jjlarkin.lmi.net/Jitter3.jpg
>>
>> >>>> We were fairly impressed. Spartans are like having a few thousand 10KH
>> >>>> ECL gates on a $20 chip.
>>
>> >>>> John
>>
>> >>> I've just built a fractional-N synthesizer using a Spartan 3.  The reference
>> >>> frequency comes from an LVDS-output crystal oscillator.  The VCO frequency
>> >>> is fed into the opposite side of the FPGA using an LVDS-output comparator
>> >>> and the (AD9901 style) PFD output from the FPGA to the loop filter is also
>> >>> LVDS on a third physical side.
>>
>> >>> Inside the FPGA, the VCO divider and reference divider are on local clocks
>> >>> confined to small regions around the pads where they enter.  BUFGCE
>> >>> primitives are used to gate the clocks so I only send edges over the global
>> >>> clock network when a divider resets.  The AD9901 PFD ensures that the VCO
>> >>> and reference divider outputs are 180 degrees out of phase.
>>
>> >>> Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84
>> >>> CPLD.  It worked quite well, but there was some interation between the VCO
>> >>> and reference frequencies which caused integer-N boundary spurs.  I see no
>> >>> trace of these spurs on my new Spartan 3 design, and the phase noise is much
>> >>> lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I
>> >>> haven't finished tweaking things yet.
>>
>> >>> They say don't attempt analogue functions in FPGAs; but it seems to work
>> >>> remarkably well in the Spartan 3, which is fully static when I'm not
>> >>> clocking it.
>>
>> >> The Spartan LVDS inputs are pretty good r-r comparators. And you can
>> >> make lots of good, cheap delta-sigma dacs from an FPGA.
>>
>> >> You can do cool analog things with FPGAs. ...
>>
>> >Can you tell us more about that? Sounds very interesting. As long as it
>> >doesn't rely on really undocumented parameters like leakage currents, or
>> >goes away when the family gets discontinued (one reason I don't like
>> >FPGA much).
>>
>> How are you going to get an edge on your competition unless you use
>> stuff that they don't know?
>>
>> John
>
>You mean the stuff that can change without warning? One place where I
>worked had a design that was using FET transistors to control the
>current to control the current to an LED backlight, V in and I out.
>Heck, they publish a curve for that right?  That would be a *typical*
>curve.  After using this part for some years, the circuit stopped
>working right with a dim backlight.  The FET maker had "improved"
>their process and changed the threshold voltage just a bit, still
>within spec, but not the same curve.  So now the ROM values for the
>DAC didn't let enough current pass.

Using a fet open-loop as a linear current controller is more risk that
I'm willing to take... especially when it's easy to do it right.

>
>It's not likely that the LVDS circuit would be changed at any point in
>the future... I guess that is where the "trouble" part comes in.
>
>Rick


It's a matter of calculated risk. If a part behaves in some useful but
undocumented way, and the process is likely stable, the performance
may be worth the risk. I think I've been burned more times by
semiconductors being discontinued than by their behavior changing.

On a thing we're doing now, we're using some SOT-89 power phemts as
switches. These are RF parts, and are barely specified for DC
behavior; hell, lots of RF fets are totally unspecified for DC
behavior. So we're including a place to install a trimpot in case the
transfer curves don't stay put.

John


Article: 139418
Subject: Re: added jitter on FPGAs
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Sat, 28 Mar 2009 16:30:48 -0700
Links: << >>  << T >>  << A >>
On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <ah@nospam.co.uk>
wrote:

>
>"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
>news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>> <pabloalvarezsanchez@gmail.com> wrote:
>>
>>>Hi,
>>>
>>>For several reasons a need very low jitter on some of my outputs. I
>>>was thinking of using LVDS for my I/Os and of course I do not consider
>>>using a clock manager. Do you have an idea of the order of magnitude
>>>of jitter one can get? What fpga would you recomend for a low cost
>>>small design?
>>>
>>>Cheers
>>>
>>>Pablo
>>
>>
>> Here's a signal that has made three independent non-trivial in/out
>> passes through a Spartan3, plus passed through six external SSI CMOS
>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>
>> ftp://jjlarkin.lmi.net/Jitter3.jpg
>>
>>
>> We were fairly impressed. Spartans are like having a few thousand 10KH
>> ECL gates on a $20 chip.
>>
>> John
>>
>
>I've just built a fractional-N synthesizer using a Spartan 3.  The reference 
>frequency comes from an LVDS-output crystal oscillator.  The VCO frequency 
>is fed into the opposite side of the FPGA using an LVDS-output comparator 
>and the (AD9901 style) PFD output from the FPGA to the loop filter is also 
>LVDS on a third physical side.
>
>Inside the FPGA, the VCO divider and reference divider are on local clocks 
>confined to small regions around the pads where they enter.  BUFGCE 
>primitives are used to gate the clocks so I only send edges over the global 
>clock network when a divider resets.  The AD9901 PFD ensures that the VCO 
>and reference divider outputs are 180 degrees out of phase.
>
>Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84 
>CPLD.  It worked quite well, but there was some interation between the VCO 
>and reference frequencies which caused integer-N boundary spurs.  I see no 
>trace of these spurs on my new Spartan 3 design, and the phase noise is much 
>lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I 
>haven't finished tweaking things yet.
>
>
>They say don't attempt analogue functions in FPGAs; but it seems to work 
>remarkably well in the Spartan 3, which is fully static when I'm not 
>clocking it.
>
>

We did some playing with FPGA-based PLLs. The classic charge-pump PDs
didn't work very well. This works...


fpga_up------ak----R-----+-------opamp
                         |
                         |
                         |
fpga_dn------ka----R-----+


where AK and KA are schottky diodes feeding an opamp integrator (P+I
control) thing, and the up/down things pulse in the obvious
polarities. The fpga outputs are hard and fast, not tri-state, and
overlap a good bit. No deadband, fast as all getout, low phase noise.

John


Article: 139419
Subject: Re: USB port on FPGA - How is data transmitted?
From: Muzaffer Kal <kal@dspia.com>
Date: Sat, 28 Mar 2009 16:58:18 -0700
Links: << >>  << T >>  << A >>
On Sun, 29 Mar 2009 18:34:04 -0500, "dts4theworld"
<dts4theworld@gmail.com> wrote:

>Hi everyone,
>
>I'm currently working on a project which involves a Virtex 5 board with
>USB port (and Cypress FX2 MicroController). 
>My goal is to connect a webcam to the FPGA board and process that input
>data with an algorithm which should detect movement (a simple one).
>
>From the forums I found on the web I understood that this is not an easy
>task - connecting the webcam to the FPGA and processing the video signal -
>and I'm now searching for any relevant information regarding this.
>
>I'm using an UVC (USB Video Class) compatible webcam, and I have the
>documentation for this from usb.org, but still can't figure out exactly how
>the video signal is transmitted (how do you initialize the webcam, how does
>the host ask for data, and how is the received data structured). By the
>way, I'm working in verilog.
>
>Is there any link/documentation or example which could possibly help me? 
> 
>Thank you in advance,
>Chris
>

This is  a significant project as you have figured out. It is not
advisable to try to implement the UVC portion in hardware. My
suggestion would be to get the linux UVC stack and port the relevant
portions of it to a processor (soft-core or otherwise) implemented in
your fpga design.
Very simplistically, you need a host controller and a UVC driver to
talk to the webcam. When the webcam is attached, the host controller
sends it USB packets to enumerate the device to find what kind of
end-point(s) it supports and hand it off to the UVC stack for video
related packet processing. You really don't want to (re)do this in
hardware. Get a processor and port enough of linux UVC stack to it,
which is a significant task by itself but much smaller than doing all
of it yourself.
There is also the problem of convincing the fx2 to act as a usb host.
It's usually used in peripheral device implementations but it might be
possible to hack it to behave like a host in a limited way which
should be enough for your purposes.
-- 
Muzaffer Kal

DSPIA INC.
ASIC/FPGA Design Services
http://www.dspia.com

Article: 139420
Subject: Re: added jitter on FPGAs
From: Joerg <notthisjoergsch@removethispacbell.net>
Date: Sat, 28 Mar 2009 17:38:50 -0700
Links: << >>  << T >>  << A >>
John Larkin wrote:
> On Sat, 28 Mar 2009 13:35:04 -0700, Joerg
> <notthisjoergsch@removethispacbell.net> wrote:
> 
>> John Larkin wrote:
>>> On Thu, 26 Mar 2009 19:34:22 -0000, "Andrew Holme" <ah@nospam.co.uk>
>>> wrote:
>>>
>>>> "John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
>>>> news:nhfns4lrd245pvu2lt4pnn03lio466j5ti@4ax.com...
>>>>> On Wed, 26 Nov 2008 10:05:06 -0800 (PST), palvarez
>>>>> <pabloalvarezsanchez@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> For several reasons a need very low jitter on some of my outputs. I
>>>>>> was thinking of using LVDS for my I/Os and of course I do not consider
>>>>>> using a clock manager. Do you have an idea of the order of magnitude
>>>>>> of jitter one can get? What fpga would you recomend for a low cost
>>>>>> small design?
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> Pablo
>>>>> Here's a signal that has made three independent non-trivial in/out
>>>>> passes through a Spartan3, plus passed through six external SSI CMOS
>>>>> chips. Total jitter of that whole chain is below 20 ps RMS.
>>>>>
>>>>> ftp://jjlarkin.lmi.net/Jitter3.jpg
>>>>>
>>>>>
>>>>> We were fairly impressed. Spartans are like having a few thousand 10KH
>>>>> ECL gates on a $20 chip.
>>>>>
>>>>> John
>>>>>
>>>> I've just built a fractional-N synthesizer using a Spartan 3.  The reference 
>>>> frequency comes from an LVDS-output crystal oscillator.  The VCO frequency 
>>>> is fed into the opposite side of the FPGA using an LVDS-output comparator 
>>>> and the (AD9901 style) PFD output from the FPGA to the loop filter is also 
>>>> LVDS on a third physical side.
>>>>
>>>> Inside the FPGA, the VCO divider and reference divider are on local clocks 
>>>> confined to small regions around the pads where they enter.  BUFGCE 
>>>> primitives are used to gate the clocks so I only send edges over the global 
>>>> clock network when a divider resets.  The AD9901 PFD ensures that the VCO 
>>>> and reference divider outputs are 180 degrees out of phase.
>>>>
>>>> Some years ago, I built a cruder fractional-N synth using a 5V Altera PLCC84 
>>>> CPLD.  It worked quite well, but there was some interation between the VCO 
>>>> and reference frequencies which caused integer-N boundary spurs.  I see no 
>>>> trace of these spurs on my new Spartan 3 design, and the phase noise is much 
>>>> lower.  I'm seeing around -95 dBc/Hz at 100 Hz offsets at the moment; and I 
>>>> haven't finished tweaking things yet.
>>>>
>>>>
>>>> They say don't attempt analogue functions in FPGAs; but it seems to work 
>>>> remarkably well in the Spartan 3, which is fully static when I'm not 
>>>> clocking it.
>>>>
>>>>
>>> The Spartan LVDS inputs are pretty good r-r comparators. And you can
>>> make lots of good, cheap delta-sigma dacs from an FPGA.
>>>
>>> You can do cool analog things with FPGAs. ...
>>
>> Can you tell us more about that? Sounds very interesting. As long as it 
>> doesn't rely on really undocumented parameters like leakage currents, or 
>> goes away when the family gets discontinued (one reason I don't like 
>> FPGA much).
> 
> How are you going to get an edge on your competition unless you use
> stuff that they don't know?
> 

Oh, I do a lot of unorthodox stuff. Using 74HCU or CD4000 in analog 
circuits, switcher FETs in servos, RF parts for digital functions and so 
on. I am just curious what can be done with an FPGA in that respect.

A long time ago I was looking into using the old Intel CPLD series that 
way because of they microamp capabilities. Boy was I glad I didn't, 
shortly after they ditched the whole line. Thing is, most of my designs 
are targeted for more than a decade in production. And no trimpots or 
calibration allowed unless that can be automated.

-- 
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.

Article: 139421
Subject: Re: partitions and incremental design with xilinx ISE
From: Brian Drummond <brian_drummond@btconnect.com>
Date: Sun, 29 Mar 2009 02:29:59 +0100
Links: << >>  << T >>  << A >>
On Sat, 28 Mar 2009 18:00:34 +0100, ACD <acd4usenet@lycos.de> wrote:

>For educational purposes I want to implement a function that has a high 
>number of inputs.
>Since such a function would end up anyway only as a component of a 
>larger design I do not care for pin limitations of a given chip.
>But the entire design does not exist.
>So currently I try to use the INCREMENTAL_SYNTHESIS attribute.
>Now I get the warning that this is deprecated, and I should use 
>partitions instead.
>As far as I have understood XAPP918 I have to have the entire design to 
>be able to define my particular function as partition.
>Of course I could build a dummy-top design which uses a shift register 
>or something like that to provide the input pins.
>
>There has to be a way to build a core with ISE, not?
>
>Andreas

Just use the regular synthesis flow, but with the setting to generate I/O
buffers turned OFF. 

Then you can instantiate it as a component in a top level design, and attach a
"box_type" attribute to that component, set to the string "black_box".
(Using a component gives you something to attach the attribute to.
Direct entity instantiation is sometimes preferred; but then I don't know what
you attach the attribute to: maybe a label you later attach to the instance?)

Synthesising the top level should report a black box for the component. 
The NGDbuild then needs to find the synthesised output (ngc file) for the
component; either in the project dir, or in its core search path.
This is just how EDK cores are treated in the ISE flow.

- Brian

Article: 139422
Subject: Re: added jitter on FPGAs
From: "Symon" <symon_brewer@hotmail.com>
Date: Sun, 29 Mar 2009 02:39:04 +0100
Links: << >>  << T >>  << A >>

"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
news:s8cts4d6jcmvbk2tu3cd3tua362o6gtde7@4ax.com...
>
> We did some playing with FPGA-based PLLs. The classic charge-pump PDs
> didn't work very well. This works...
>
>
> fpga_up------ak----R-----+-------opamp
>                         |
>                         |
>                         |
> fpga_dn------ka----R-----+
>
>
> where AK and KA are schottky diodes feeding an opamp integrator (P+I
> control) thing, and the up/down things pulse in the obvious
> polarities. The fpga outputs are hard and fast, not tri-state, and
> overlap a good bit. No deadband, fast as all getout, low phase noise.
>
> John
>
Even better is :-

                 V+
                 |
                 R
                 |
fpga_up------ka----ak-----+-------opamp
                          |
                          |
                          |
fpga_dn------ak----ka-----+
                 |
                 R
                 |
                 0V

Syms.




Article: 139423
Subject: Re: added jitter on FPGAs
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Sun, 29 Mar 2009 02:09:17 +0000 (UTC)
Links: << >>  << T >>  << A >>
In comp.arch.fpga Joerg <notthisjoergsch@removethispacbell.net> wrote:
 
> Oh, I do a lot of unorthodox stuff. Using 74HCU or CD4000 in analog 
> circuits, switcher FETs in servos, RF parts for digital functions and so 
> on. I am just curious what can be done with an FPGA in that respect.

I once knew someone who built an FM radio transmitter
using a 74S04 as the output stage.  I suppose
cheaper than RF transistors at the time.

-- glen

Article: 139424
Subject: Re: added jitter on FPGAs
From: Allan Herriman <allanherriman@hotmail.com>
Date: 29 Mar 2009 02:52:39 GMT
Links: << >>  << T >>  << A >>
On Sun, 29 Mar 2009 02:39:04 +0100, Symon wrote:

> "John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in
> message news:s8cts4d6jcmvbk2tu3cd3tua362o6gtde7@4ax.com...
>>
>> We did some playing with FPGA-based PLLs. The classic charge-pump PDs
>> didn't work very well. This works...
>>
>>
>> fpga_up------ak----R-----+-------opamp
>>                         |
>>                         |
>>                         |
>> fpga_dn------ka----R-----+
>>
>>
>> where AK and KA are schottky diodes feeding an opamp integrator (P+I
>> control) thing, and the up/down things pulse in the obvious polarities.
>> The fpga outputs are hard and fast, not tri-state, and overlap a good
>> bit. No deadband, fast as all getout, low phase noise.
>>
>> John
>>
> Even better is :-
> 
>                  V+
>                  |
>                  R
>                  |
> fpga_up------ka----ak-----+-------opamp
>                           |
>                           |
>                           |
> fpga_dn------ak----ka-----+
>                  |
>                  R
>                  |
>                  0V
> 
> Syms.


I've used 74HCT9046 parts for the same purpose.  The '9046 has an 
accurately matched (~1%) current source and sink which is something 
that's hard to achieve with discretes.

The output of the FPGA can be AC coupled into the '9046 to get around the 
level shifting problem.

Regards,
Allan



Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search