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 146825

Article: 146825
Subject: Re: infering BRAM for a FIFO in XST(spartan 3)
From: Patrick Maupin <pmaupin@gmail.com>
Date: Mon, 29 Mar 2010 14:26:45 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 11:43=A0am, PureSine <Green.Tech.Co...@gmail.com> wrote:
> Hello, I want to tell XST that uses block RAM for my FIFO,
> but I couldn't till now. can you please take a look at my
> code and tell me what should I do ?http://openpaste.org/en/20191/
>
> thanks

I'm not looking at your code right now, but I will tell you how to fix
it.

Start with one of the BRAM examples in Xilinx's XST guide.  Make sure
that when you synthesize it, it generates a block ram.  Munge on it
until the I/Os to the module look like what you want (resynthesizing
as you go to insure you haven't done anything to make XST think it's
not a synchronous block ram any more).  Then build your FIFO wrapper
around it.

BTW, if you are building a synchronous FIFO where both input and
output are on the same clock, some of the xilinx tools get pissy if
you don't declare the two ports to the RAM in two different
processes.  That can be a problem, because you can have a design that
is logically correct for a block ram, but won't infer as one.  That's
why the best approach is to incrementally modify a working design --
the synthesis tools are a little fragile on the whole inference thing.

Alternatively, you could just instantiate the block ram, but I prefer
not to do that if I don't have to, since if it's inferred I can
simulate it with anything.


Regards,
Pat

Article: 146826
Subject: Re: XST optimization
From: Jason Thibodeau <jason.p.thibodeau@gmail.com>
Date: Mon, 29 Mar 2010 17:29:37 -0400
Links: << >>  << T >>  << A >>
On 03/29/2010 05:20 PM, Patrick Maupin wrote:
> On Mar 29, 2:36 pm, Jason Thibodeau<jason.p.thibod...@gmail.com>
> wrote:
>> What I'm working on, I need to be able to place these gates into
>> specific portions of the chip. This is why I cannot have them optimized
>> or absorbed into other CLB's.
>
> I have no idea why you would want to do this, but I would build the
> design as discrete units.  At the top, you can stitch them together
> using xilinx's "black box" stuff, and then the synthesizer won't be
> smart enough to optimize things out.  Also, doing it this way makes it
> easy to constrain placement.
>
> HOWEVER, the map has gotten a lot smarter lately, so you'll probably
> need to set some options on that to keep it from resynthesizing the
> chip when it sees the full picture.
>
> Regards,
> Pat

Unfortunately, the gates that are being optimized out, are being 
inserted into an existing design file. They are, however, instances of a 
predefined entity. I cannot move them to be parts of a "black box".

-- 
Jason Thibodeau

Article: 146827
Subject: Re: Which is the most beautiful and memorable hardware structure in a CPU?
From: Jonathan Bromley <jonathan.bromley@MYCOMPANY.com>
Date: Mon, 29 Mar 2010 22:36:36 +0100
Links: << >>  << T >>  << A >>
On Sun, 28 Mar 2010 19:06:23 -0700 (PDT), Weng Tianxiang wrote:

>From the first moment I learn how stack segment and stack pointer are
>used to link all subroutines in PC, I have been appreciating the
>hardware structure as I can and I think it is the the most beautiful
>and memorable hardware structure I have learn from the CPU structure.

Aw, c'mon.  Most of that is software - the only hardware
requirements are the ability to copy a stack pointer
to/from some other place, and the ability to construct an
address that's offset from a register or memory value.

For sheer luminous beauty, let's hear it for the PDP-8's
JMS instruction...

oh, maybe not.  OK, second attempt.  SPARC register windows.

No?  Don't like that?  OK, the Transputer's tiny 3-register
evaluation stack, with context switches permitted only at
points where the stack is known to be empty.  The
21st century operating system wonks could REALLY learn
something about lightweight elegance from that one.

What about the whole idea of a stack?  How cool is that,
if you haven't seen it before?

Set-associative cache?

Sheesh, the field is so crowded with beautiful, genius-level
ideas - but we're all so familiar with them that we don't 
see how hard it must have been to come up with them in 
the first place.  Trying to single out just one is silly.

>Oh, I forgot to mention the most important invention since then is the
>Mouse we use it every day.

Crap.

Are you *really* trying to convince us that the mouse is
more important, elegant, beautiful than...
- convolution codes? and Shannon's theorem?
- quadrature modulation?
- Boolean algebra?  Set theory?
- The Fourier transform?
- crystallography?
- The Goldberg Variations?

The kind of slavish technology-worship that your original
question exemplifies is depressing and backward-looking;
it leads us into relying on past achievements instead of
being thrilled by what might be if only we keep questioning.
It's the kind of thinking that should (but too often does
not) give technologists and businessmen a bad reputation.

We technologists are the 21st-century equivalent of the
19th century ironfounders.  We're exploiting the heroic
achievements of the recent past to build the infrastructure
that the future needs.  We are facilitators, not visionaries.
The next half-century belongs to the molecular biologists
and geneticists, and we are merely there to help out with
the menial work.  Get a sense of proportion.
-- 
Jonathan Bromley

Article: 146828
Subject: Re: Spartan 3E: MAX_STEPS as a function of CLKIN frequency
From: austin <austin@xilinx.com>
Date: Mon, 29 Mar 2010 15:06:30 -0700 (PDT)
Links: << >>  << T >>  << A >>
Bill,

The DCM "fits" a delay line of 256 taps long, to the period of the
clock input signal.

In 3E & 3A, a different architecture was used than in the V2, V2P, 3
and V4, where the taps are always 20 to 40 ps long, and there are
always enough of them to even fit 256 of them to a 5 MHz input clock.

I know, its magic.

Austin







Article: 146829
Subject: Re: Spartan 3E: MAX_STEPS as a function of CLKIN frequency
From: austin <austin@xilinx.com>
Date: Mon, 29 Mar 2010 15:08:04 -0700 (PDT)
Links: << >>  << T >>  << A >>
Bill,

Oops.  I mean that it has as many taps as required to "fit" a 5 MHz
input clock, not 256 like V2, V2P, 3, and V4....

Magic...

Austin

Article: 146830
Subject: Re: Spartan 3E: MAX_STEPS as a function of CLKIN frequency
From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Date: Mon, 29 Mar 2010 22:53:20 +0000 (UTC)
Links: << >>  << T >>  << A >>
austin <austin@xilinx.com> wrote:
 
> Oops.  I mean that it has as many taps as required to "fit" a 5 MHz
> input clock, not 256 like V2, V2P, 3, and V4....

So as the process gets faster, the number of taps will increase?

(With a margin big enough for process/temperature/voltage variations.)

-- glen

Article: 146831
Subject: Re: Free VHDL or Verilog Simulator
From: Alan Fitch <apf@invalid.invalid>
Date: Tue, 30 Mar 2010 00:57:26 +0100
Links: << >>  << T >>  << A >>
On 29/03/10 21:22, Abby Brown wrote:
> Hi,
> 
> Altera's Quartus II does not include a free simulator.  Is there 
> a free VHDL or Verilog simulator that is reasonalbly good? 
> Google shows a few but I would prefer a recommendation.
> 
> Thanks,
> Gary 
> 
> 

Depends what you mean by "include" - you can download a completely free
version of Modelsim from the Altera Website,

regards
Alan

-- 
Alan Fitch

Article: 146832
Subject: Re: PCB routing issues for sync SRAM
From: KJ <kkjennings@sbcglobal.net>
Date: Mon, 29 Mar 2010 17:31:40 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 28, 5:27=A0pm, John_H <newsgr...@johnhandwork.com> wrote:
> On Mar 28, 1:22=A0pm, KJ <kkjenni...@sbcglobal.net> wrote:

> > If you're going to feed the clock back, then you'll want to parallel
> > terminate to ground rather than series terminate at the source.
>
> I figured the external lines are small enough that the transmission
> line characteristics are no longer as important as the lumped model.

Depends on the edge rates...but likely true that no termination might
be needed.  The point is to add one resistor as insurance against a
nasty surprise on an unexpectedly high edge rate.

> Having a series resistor could help the transmitter avoid too much of
> a surge.

If you're talking abou the 'surge' from when the I/O switches, then
series termination causes the large surge, parallel termination has
much smaller AC current changes.

> =A0The termination at the final destination is the classical
> version, however. =A0Having room for both can help, perhaps more than
> hinder.

Ummm...nothing 'classical' about it.  If you have a multi-drop net and
you need clean edges at each load, you don't use series termination,
you use parallel.

If you have a driver that can't provide a clean incident wave
switching edge into the PCB then you need to rethink having a multi-
drop net, go back to having one load and then series terminate...in
the radarman's case, that would mean not feeding back the SRAM clock
back to the FPGA.

Kevin Jennings

Article: 146833
Subject: Re: Which is the most beautiful and memorable hardware structure
From: whygee <yg@yg.yg>
Date: Tue, 30 Mar 2010 02:40:55 +0200
Links: << >>  << T >>  << A >>
Jonathan Bromley wrote:
> Crap.
> 
> Are you *really* trying to convince us that the mouse is
> more important, elegant, beautiful than...
> - convolution codes? and Shannon's theorem?
> - quadrature modulation?
> - Boolean algebra?  Set theory?
> - The Fourier transform?
> - crystallography?
> - The Goldberg Variations?

I'll add the Burrows-Wheeler transform which enables great compression
and the Reed-Solomon method for forward error correction, used in so many places.
I wish I could come up with something as mind-boggling AND useful.

> The kind of slavish technology-worship that your original
> question exemplifies is depressing and backward-looking;
> it leads us into relying on past achievements instead of
> being thrilled by what might be if only we keep questioning.
> It's the kind of thinking that should (but too often does
> not) give technologists and businessmen a bad reputation.
he seems to be too young or too noob to understand that yet.
Give him 10 or 20 years...

> Get a sense of proportion.
This comes with learning, and Internet is a great facilitator
for this. And other less noble things, but so is the human nature...

yg
-- 
http://ygdes.com / http://yasep.org

Article: 146834
Subject: Spartan 6 PLL - Why such a strict input jitter requirement?
From: Andrew FPGA <andrew.newsgroup@gmail.com>
Date: Mon, 29 Mar 2010 18:37:34 -0700 (PDT)
Links: << >>  << T >>  << A >>
Hi there,
Looking for insight here - Spartan 6 adds a PLL to the mix and we
wondered to what extent it can be used to filter jitter, for example
for a Synchronous Ethernet product requirement we have. However, the
SP6 PLL seems to have a very stringent max input jitter requirement.
It does not allow an input clock with more that 1ns jitter (not much).

Looking in the datasheet, the SP6 PLL looks like a classic PLL, so why
the input jitter requirement? (I can understand the jitter requriement
for a DCM).

I.e.
Table 49, pg 45 of DC and switching characteristics.
FINJITTER Maximum Input Clock Period Jitter All <20% of clock input
period or 1 ns Max

Anyone (from Xilinx?) prepared to comment on this?

Cheers
Andrew


Article: 146835
Subject: Re: infering BRAM for a FIFO in XST(spartan 3)
From: PureSine <Green.Tech.Coder@gmail.com>
Date: Tue, 30 Mar 2010 06:26:52 +0430
Links: << >>  << T >>  << A >>
On 3/30/2010 1:56 AM, Patrick Maupin wrote:
> On Mar 29, 11:43 am, PureSine<Green.Tech.Co...@gmail.com>  wrote:
>> Hello, I want to tell XST that uses block RAM for my FIFO,
>> but I couldn't till now. can you please take a look at my
>> code and tell me what should I do ?http://openpaste.org/en/20191/
>>
>> thanks
>
> I'm not looking at your code right now, but I will tell you how to fix
> it.
>
> Start with one of the BRAM examples in Xilinx's XST guide.  Make sure
> that when you synthesize it, it generates a block ram.  Munge on it
> until the I/Os to the module look like what you want (resynthesizing
> as you go to insure you haven't done anything to make XST think it's
> not a synchronous block ram any more).  Then build your FIFO wrapper
> around it.
>
> BTW, if you are building a synchronous FIFO where both input and
> output are on the same clock, some of the xilinx tools get pissy if
> you don't declare the two ports to the RAM in two different
> processes.  That can be a problem, because you can have a design that
> is logically correct for a block ram, but won't infer as one.  That's
> why the best approach is to incrementally modify a working design --
> the synthesis tools are a little fragile on the whole inference thing.
>
> Alternatively, you could just instantiate the block ram, but I prefer
> not to do that if I don't have to, since if it's inferred I can
> simulate it with anything.
>
>
> Regards,
> Pat
Thanks a lot Pat :) , I will try and if I had problem I'll post it here.

Regards

Article: 146836
Subject: Re: XST optimization
From: Patrick Maupin <pmaupin@gmail.com>
Date: Mon, 29 Mar 2010 19:19:57 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 4:29=A0pm, Jason Thibodeau <jason.p.thibod...@gmail.com>
wrote:
> Unfortunately, the gates that are being optimized out, are being
> inserted into an existing design file. They are, however, instances of a
> predefined entity. I cannot move them to be parts of a "black box".

OK, from what I've seen:

1) You claim the gates are an "integral part of the design", but that
TWO different synthesizers remove them.

2) You claim that for some unreported reason they HAVE to be placed at
a certain place on the chip (and we haven't even gotten to how routing
will affect the timing on that...)

3) You claim that you can't change the design; yet you simultaneously
have to change the design.

4) You are apparently reluctant to explain enough about the design to
let others independently judge the veracity of claims 1-3.

I don't know whether you are building one of these weird neural nets
where some genetic trial and error algorithm has found a design that
does something strange and wonderful, or what.  It sounds like an
interesting puzzle; unfortunately most of the give and take around
here is on puzzles that have solutions that are useful to multiple
people, especially where two different people giving answers can learn
a bit from each other.  I'm beginning to suspect that you are the only
person on the planet with this particular problem, and since I can't
see its relevance to my life, and I tried (and also read a bunch of
answers where others have tried), I only have one answer left for
you:  FPGA Editor.

And I'm sure you have a reason why that won't work, and although I
shouldn't care, I would like to see this reason.  It's like watching
one of those slow motion train-wrecks...

Regards,
Pat

Article: 146837
Subject: Re: upgrading to ISE 11.x
From: Patrick Maupin <pmaupin@gmail.com>
Date: Mon, 29 Mar 2010 19:36:43 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 9:30=A0am, colin <colin_toog...@yahoo.com> wrote:
> I need to start using ISE 11.4 instead of 10.1
>
> Copy a full project using explorer and open with 10.1, all paths are
> relative and you have a "new project"
>
> Copy a full project with explorer and open with 11.4 and you need to
> upgrade the project.
>
> Start editing stuff and then discover that the project upgrade used
> absolute pathnames and I've been editing the original files.
>
> Hello XILINX this is the real world calling........... is anyone
> there?..........................

That's just Xilinx's little way of gently reminding you that you
really *should* be using verson control on your sources ;-)

Article: 146838
Subject: Re: Which is the most beautiful and memorable hardware structure in a
From: MitchAlsup <MitchAlsup@aol.com>
Date: Mon, 29 Mar 2010 19:39:12 -0700 (PDT)
Links: << >>  << T >>  << A >>
The most memorable hardware structure is the vector indirect
addressing mode.

Mitch

Article: 146839
Subject: Re: infering BRAM for a FIFO in XST(spartan 3)
From: PureSine <Green.Tech.Coder@gmail.com>
Date: Tue, 30 Mar 2010 07:19:48 +0430
Links: << >>  << T >>  << A >>
On 3/30/2010 1:56 AM, Patrick Maupin wrote:
> On Mar 29, 11:43 am, PureSine<Green.Tech.Co...@gmail.com>  wrote:
>> Hello, I want to tell XST that uses block RAM for my FIFO,
>> but I couldn't till now. can you please take a look at my
>> code and tell me what should I do ?http://openpaste.org/en/20191/
>>
>> thanks
>
> I'm not looking at your code right now, but I will tell you how to fix
> it.
>
> Start with one of the BRAM examples in Xilinx's XST guide.  Make sure
> that when you synthesize it, it generates a block ram.  Munge on it
> until the I/Os to the module look like what you want (resynthesizing
> as you go to insure you haven't done anything to make XST think it's
> not a synchronous block ram any more).  Then build your FIFO wrapper
> around it.
>
> BTW, if you are building a synchronous FIFO where both input and
> output are on the same clock, some of the xilinx tools get pissy if
> you don't declare the two ports to the RAM in two different
> processes.  That can be a problem, because you can have a design that
> is logically correct for a block ram, but won't infer as one.  That's
> why the best approach is to incrementally modify a working design --
> the synthesis tools are a little fragile on the whole inference thing.
>
> Alternatively, you could just instantiate the block ram, but I prefer
> not to do that if I don't have to, since if it's inferred I can
> simulate it with anything.
>
>
> Regards,
> Pat
Thanks Pat :) , that worked. Now I have a BRAM FIFO.
Thanks for your help.
Regards

Article: 146840
Subject: Re: Spartan 3E: MAX_STEPS as a function of CLKIN frequency
From: John_H <newsgroup@johnhandwork.com>
Date: Mon, 29 Mar 2010 20:37:23 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 6:06=A0pm, austin <aus...@xilinx.com> wrote:
> Bill,
>
> The DCM "fits" a delay line of 256 taps long, to the period of the
> clock input signal.
>
> In 3E & 3A, a different architecture was used than in the V2, V2P, 3
> and V4, where the taps are always 20 to 40 ps long, and there are
> always enough of them to even fit 256 of them to a 5 MHz input clock.
>
> I know, its magic.
>
> Austin

Austin - are you up on your Spartan3E variable phase shift trivia?

There is unfortunately no 256-tap fit (for the variable phase shift,
at least).  The variable phase shift is a tap-by-tap adjustment unlike
most every other family out there which did the 256 tap "fit" properly
even if it took more than one inc or dec to change taps.  The limits
defined by the data sheet ended up being a very unusual set of numbers
and is enough to make an engineer sweat about whether they'll be able
to get the phase shift they want.  I was happy to get the 3 bit
periods of phase adjustment out of the 300 MHz multiplied clock (based
off a 50MHz reference).  But what a wild ride that was!  I ended up
with correspondence directly with the silicon designer when the phase
inc/dec update started ignoring commands on occasion.

So, Bill - word of caution...  If you use the variable phase shift and
consider the "about 100 clocks" to make sure the adjustment occurs -
or similarly worded metric - you may have occasion where the
adjustment doesn't happen or at least for a duration much longer than
expected.  I ended up with a timeout count such that if I didn't get
an ack after a certain period of time, I retried the adjustment.
Sadly, I forget what the final implementation included, whether the
timeout was still the way to go or if there was a "real" solution.

Article: 146841
Subject: Re: PCB routing issues for sync SRAM
From: John_H <newsgroup@johnhandwork.com>
Date: Mon, 29 Mar 2010 20:47:35 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 8:31=A0pm, KJ <kkjenni...@sbcglobal.net> wrote:
> On Mar 28, 5:27=A0pm, John_H <newsgr...@johnhandwork.com> wrote:
>
> > On Mar 28, 1:22=A0pm, KJ <kkjenni...@sbcglobal.net> wrote:
> > > If you're going to feed the clock back, then you'll want to parallel
> > > terminate to ground rather than series terminate at the source.
>
> > I figured the external lines are small enough that the transmission
> > line characteristics are no longer as important as the lumped model.
>
> Depends on the edge rates...but likely true that no termination might
> be needed. =A0The point is to add one resistor as insurance against a
> nasty surprise on an unexpectedly high edge rate.
>
> > Having a series resistor could help the transmitter avoid too much of
> > a surge.
>
> If you're talking abou the 'surge' from when the I/O switches, then
> series termination causes the large surge, parallel termination has
> much smaller AC current changes.
>
> > =A0The termination at the final destination is the classical
> > version, however. =A0Having room for both can help, perhaps more than
> > hinder.
>
> Ummm...nothing 'classical' about it. =A0If you have a multi-drop net and
> you need clean edges at each load, you don't use series termination,
> you use parallel.
>
> If you have a driver that can't provide a clean incident wave
> switching edge into the PCB then you need to rethink having a multi-
> drop net, go back to having one load and then series terminate...in
> the radarman's case, that would mean not feeding back the SRAM clock
> back to the FPGA.
>
> Kevin Jennings

Kevin, you're turning my stomach in knots here.  You're regurgitating
transmission line theory quoting "edge rates" without apparent
consideration for the extremely minute distances involved.  At 250-750
mil, you will NOT see a classic step, reflect, step kind of response.

And when's the last time you really fixed a signal by capacitively
loading it?  Your suggestion that lightening the driver's load with a
series resistor (hence, reducing initial overshoot that I've seen on
the scope in many families) exacerbates the problem is downright
ludicrous.

Please stop parroting what you heard in transmission line theory; it's
good stuff but it doesn't apply for these flight times with the SSTL
drivers involved.  Take some time and check out the signal fidelity on
boards with various terminations with a high end scope or run some
IBIS simulations to see what really happens when traces become lumped
elements rather than transmission lines.

Article: 146842
Subject: Re: infering BRAM for a FIFO in XST(spartan 3)
From: Patrick Maupin <pmaupin@gmail.com>
Date: Mon, 29 Mar 2010 20:48:22 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 9:49=A0pm, PureSine <Green.Tech.Co...@gmail.com> wrote:
> Thanks Pat :) , that worked. Now I have a BRAM FIFO.
> Thanks for your help.

You're welcome!  Glad you got it working.

Pat

Article: 146843
Subject: Re: Which is the most beautiful and memorable hardware structure in a
From: Andrew Reilly <areilly---@bigpond.net.au>
Date: 30 Mar 2010 06:17:04 GMT
Links: << >>  << T >>  << A >>
On Mon, 29 Mar 2010 19:39:12 -0700, MitchAlsup wrote:

> The most memorable hardware structure is the vector indirect addressing
> mode.

I had a soft spot for the 3D-matrix-stride post-modify addressing mode 
that the Motorola 56000 had, for a while.  (The processor still has the 
mode, I'm no longer so sure it was a good idea...)  Certainly memorable.

Cheers,

-- 
Andrew

Article: 146844
Subject: Re: XST optimization
From: Muzaffer Kal <kal@dspia.com>
Date: Tue, 30 Mar 2010 00:16:36 -0700
Links: << >>  << T >>  << A >>
On Mon, 29 Mar 2010 13:15:11 -0400, Jason Thibodeau
<jason.p.thibodeau@gmail.com> wrote:

>I know the design intimately, and I know for a fact the gates it is 
>optimizing out are necessary for proper operation. I'm trying to figure 
>out WHY this is happening.
>
>FWIW, this is not just a problem with Xilinx's optimization. Synopsys 
>does the same thing during synthesis, but I can tell it to not optimize.
>The branches it is optimizing have a VERY (<.000001%) low probability of 
>activation, but I need the gates to remain, anyway.

For logic synthesis probability of activity doesn't matter. If the
logic cone includes the path, it will be kept. Maybe your gates are
being merged in a LUT instead of being kept as individual gates which
XST maybe more inclined than Synopsys is (DC is usually more
obsequious  as ASIC developers are more insistent on what they want to
keep). 
One thing you can check is to compare the behavior of the post map
netlist vs your input structural netlist. If they're the same XST is
restructuring your code. It is extremely unlikely that they are
different but if so  open a case with Xilinx.
One final thing you can try is to replace each gate with LUTs and
equivalent INIT statements which are protected with an abundence of
keep, no_prune etc. You should be able to protect every single gate
with this method.
-- 
Muzaffer Kal

DSPIA INC.
ASIC/FPGA Design Services

http://www.dspia.com

Article: 146845
Subject: Re: XST optimization
From: Alan Fitch <alan.fitch@spamtrap.com>
Date: Tue, 30 Mar 2010 09:13:20 +0100
Links: << >>  << T >>  << A >>
On 29/03/2010 20:36, Jason Thibodeau wrote:

e raison d'ętre of HDL synthesizers is to produce an optimized
>> design that matches the HDL input code. If the tools didn't do this
>> then they no one would use or buy them.
>>
>> If the gate/net was optimized away then it wasn't needed. Either the
>> input (registers and IO pads) equation cone had redundancies or there
>> was a redundancy to the final output (registers or IO pads). The
>> synthesizer will also move the equations around to optimize timing. A
>> signal that you have coded to appear early in an multi-level logic
>> cone may be pushed to later in the logic cone to improve the timing.
>>
>> If the synthesizer changed the logic then it would be a bug. Since
>> you have said that this happens in two different tools it is very
>> unlikely to be a bug.
>>
>> I think that you mentioned that you had OR'ed all of the outputs
>> together to keep all of the logic from being trimmed. I would suggest
>> instead that you register all of the outputs and then OR the registers
>> outputs to keep the logic. Optimizing across the register boundaries
>> is available in some synthesizers, but there is usually an option to
>> enable/disable the feature.
>>
>> Ed McGettigan
>> --
>> Xilinx Inc.
>>
>
> The logic that is being optimized out is a simple comparator. And gates
> in roughly a tree structure, with a final or gate to feed it back into
> the 'main' circuit.
>
> The or gate was not implemented to keep the tool from trimming the
> logic, rather it was necessary for proper function of the circuit.
>
> What I'm working on, I need to be able to place these gates into
> specific portions of the chip. This is why I cannot have them optimized
> or absorbed into other CLB's.
>
> I'm really just trying to figure out if it is possible to place an
> attribute before an instantiation so it will not be trimmed. I realize
> what I want may not be a standard request, but I just want to make it work.
>
> Thanks for all your help, everyone.
>

Hi Jason,
   I still don't really understand - but I suspect there may be a 
misunderstanding here. If you say the gates are "optimized out", to me 
that means, as Ed and others have said, that they are redundant - to put 
it bluntly, the tool is right and you are wrong :-;

However I wonder if what you really mean is that the functionality of 
those gates has been merged in with other logic, and you want to keep it 
separate?

If that is the case, then you need to put those gates in a separate 
component and tell the tool to preserve the hierarchy, and to keep that 
component using whatever magic spells are required by XST,

regards
Alan


-- 
Alan Fitch
Senior Consultant

Doulos – Developing Design Know-how
VHDL * Verilog * SystemVerilog * SystemC * PSL * Perl * Tcl/Tk * Project 
Services

Doulos Ltd. Church Hatch, 22 Marketing Place, Ringwood, Hampshire, BH24 
1AW, UK
Tel:  + 44 (0)1425 471223		Email: alan.fitch@doulos.com	
Fax:  +44 (0)1425 471573		http://www.doulos.com

------------------------------------------------------------------------

This message may contain personal views which are not the views of 
Doulos, unless specifically stated.

Article: 146846
Subject: Re: Which is the most beautiful and memorable hardware structure in a
From: nmm1@cam.ac.uk
Date: Tue, 30 Mar 2010 10:38:17 +0100 (BST)
Links: << >>  << T >>  << A >>
In article <27ebdb37-e3ba-4559-be7d-d7f3b6613d77@30g2000yqi.googlegroups.com>,
MitchAlsup  <MitchAlsup@aol.com> wrote:
>The most memorable hardware structure is the vector indirect
>addressing mode.

Yes.  There were and are more bizarre ones, but they are Not Memorable
(see Sellars and Yeatman).


Regards,
Nick Maclaren.

Article: 146847
Subject: Re: PCB routing issues for sync SRAM
From: "Nial Stewart" <nial*REMOVE_THIS*@nialstewartdevelopments.co.uk>
Date: Tue, 30 Mar 2010 10:45:25 +0100
Links: << >>  << T >>  << A >>
As others have said you at least need to have series termination on your
clock, unless you're bringing it back to the FPGA then parallel terminate it
at the end.

CycloneIII s have on chip termination which you could try using for this, but
this only has two settings, 25R and 50R so if you need to tweak values you're
stuffed (although you can add an external resistor to set the termination
value).

I'd play safe and add an external resistor.



Nial. 



Article: 146848
Subject: Re: PCB routing issues for sync SRAM
From: KJ <kkjennings@sbcglobal.net>
Date: Tue, 30 Mar 2010 03:53:40 -0700 (PDT)
Links: << >>  << T >>  << A >>
On Mar 29, 11:47=A0pm, John_H <newsgr...@johnhandwork.com> wrote:
> On Mar 29, 8:31=A0pm, KJ <kkjenni...@sbcglobal.net> wrote:

>
> Kevin, you're turning my stomach in knots here. =A0You're regurgitating
> transmission line theory quoting "edge rates" without apparent
> consideration for the extremely minute distances involved. =A0At 250-750
> mil, you will NOT see a classic step, reflect, step kind of response.
>

I have considered the distances...and every post said that the
termination is probably not needed, but is cheap insurance if it turns
out to be needed for some unforeseen reason down the road.

> And when's the last time you really fixed a signal by capacitively
> loading it? =A0

Never...nor did I suggest it here.

> Your suggestion that lightening the driver's load with a
> series resistor (hence, reducing initial overshoot that I've seen on
> the scope in many families) exacerbates the problem is downright
> ludicrous.
>

Not my suggestion at all.  What I said was that you series terminate
when the load is at the end of a line; parallel terminate if you have
multiple loads along the line.  Radarman said he was going to
implement someone's suggestion to route the clock to the SRAM and then
feed it back to the FPGA...sounds like two loads to me, SRAM in the
middle, FPGA at the end.

> Please stop parroting <snip>

I don't parrot...I gave sound advice that you seem to have trouble
understanding.  I run the sims, make the measurements, add insurance
where necessary, been doing this successfully for a long time too.

Time to end this thread

Kevin Jennings

Article: 146849
Subject: Re: Spartan 3E: MAX_STEPS as a function of CLKIN frequency
From: Bill Valores <bill.valores@gmail.com>
Date: Tue, 30 Mar 2010 04:14:04 -0700 (PDT)
Links: << >>  << T >>  << A >>
Thank you for your answers.

I take it that they're serious about having some 4000 taps. Also, I
keep hearing (reading, actually) about the variable phase shifter
taking a long time to acknowledge its commands. Make me wonder why,
since all we're asking for is "what you did right now, just another
tap".

I wish someone revealed what really goes on there, and how they
reached those peculiar equations. All this feels like witchcraft.

I'm going to experiment a bit. The problem is that my experiments will
be on a stepping 0 FPGA, while the target board will have a stepping 1
high speed grade chip. With all this mystery, I wonder if that's going
to make a difference (and they obviously did something with the DCM
between the steppings).

Bill.



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