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 111525

Article: 111525
Subject: Re: Scientific Computing on FPGA
From: scott moore <nospam@nowhere.com>
Date: Sat, 04 Nov 2006 11:16:48 -0800
Links: << >>  << T >>  << A >>
Another advantage to FPGAs is that the work can be migrated to an ASIC,
yeilding further speed gains. For serious projects, that can be a real
advantage.

JJ wrote:
> Nico Coesel wrote:
>> helmut.leonhardt@gmail.com wrote:
>>
>>> Everything what can parallelize is possibly running faster in Hardware
>>> than in Software.
>> Still, the amount of processing power a modern PC processor can
>> deliver is enormous. It is problably more cost effective to optimize
>> an algorithm to run parallel on 10 PC's than to develop a specific
>> FPGA solution. If space is a constraint, the answer is in using blade
>> servers.
>>
> 
> This is often true even for obvious applications of FPGA, PC can still
> be better.
> 
> The analysis needs to account for factors such as floating point use,
> high locality referencing or lots of computing on tiny data sets and
> use of standard 32, 64 bit operands favors PCs  On the other hand bit
> mangling, very high rates of memory shuffling, use of unusual bit wise
> or odd size mathematical operators and strategic use of buffer memories
> are a win for FPGAs.
> 
> I suspect that as Flash drives replace hard drives at the 30GByte level
> the case for hardware taking control of data management in Flash only
> increases since a hardware FPGA design wouldn't usually include disk
> systems and can then push the PC host further away.
> 
> Some problems can be factored both ways to get similar results in which
> case PCs still have the familiarity edge. Still a PC based solution
> that is just recompiled to hardware will perform far less well  since
> it has already been factored to favor the PC.
> 
> For a hardware solution, the software version can be viewed as the
> simulation of same hardware and most simulations usually run many
> orders slower than real hardware.
> 
> This is why the best hardware solution is unlikeley to ever be achieved
> by software folks who have little experience in hardware who would
> force the FPGA to emulate the PC strengths.
> 
> John Jakson
> transputer guy
> 

Article: 111526
Subject: Re: EDK - XPS 8.1i segmentation
From: "=?iso-8859-1?q?Jaime_Andr=E9s_Aranguren_Cardona?=" <jaime.aranguren@gmail.com>
Date: 4 Nov 2006 11:36:05 -0800
Links: << >>  << T >>  << A >>

Frank van Eijkelenburg wrote:
> Jaime Andr=E9s Aranguren Cardona wrote:
> > Hi,
> >
> > I installed XPS - EDK 8.1i in my WinXP machine. When I try to call XPS
> > the DPS window appears, and dissapears within a few seconds and nothing
> > else happens. Reviewing the C:\EDK folder, a file bash.exe.stackdump
> > appears, which contents are:
> >
> > Exception: STATUS_ACCESS_VIOLATION at eip=3D00000000
> > eax=3D00000000 ebx=3D0247ED28 ecx=3D0247EB64 edx=3D7C91EB94 esi=3D0247E=
D2C
> > edi=3D00000000
> > ebp=3D0247ED30 esp=3D0247ED08 program=3DC:\EDK\cygwin\bin\bash.exe, pid=
 1680,
> > thread main
> > cs=3D001B ds=3D0023 es=3D0023 fs=3D003B gs=3D0000 ss=3D0023
> > Stack trace:
> > Frame     Function  Args
> > End of stack trace
> >
> > How could I fix this?
> >
> > Regards.
> >
>
> Did you also installed ISE 8.1?! ISE and EDK must have the same version n=
umbers.
>
> Frank

Hi Frank,

Yes, they are the same version. Seems like something else messed the
system up. Not even deinstalling and reisntalling fixed the issue. Only
re-formatting the HDD and starting it all from scratch could fix it.

Now it works flawless, as it used to.

Kindest regards,

JaaC


Article: 111527
Subject: Re: Interface standards (was Re: Dual Port RAM)
From: "KJ" <kkjennings@sbcglobal.net>
Date: Sat, 04 Nov 2006 19:38:08 GMT
Links: << >>  << T >>  << A >>

"Mike Treseler" <mike_treseler@comcast.net> wrote in message 
news:4quvu0Foq72hU1@individual.net...
> KJ wrote:
>
>> But you didn't answer the question....reworded to 'What is the name of 
>> that
>> standard IP'?  lpm_fifo is the only one that I can think of that fits 
>> your
>> functional description.  Writing the function yourself (while you may 
>> want
>> to do it anyway) does not qualify it as a 'standard'.  You write good 
>> code
>> Mike, but not everything you write is ready to be called a standard ;)
>
> Ready or not,
> I'll call it sync_fifo.
> See it here:
> http://home.comcast.net/~mike_treseler/

I've got the definite impression that we are not on the same page when we 
talk about what it means for something to be 'standardized'.  The usage I'm 
talking about is that something 'standardized' if it is interchangable with 
something else that accomplishes that same function but not necessarily in 
the same way.  Although the fifo functionality is pretty low level, since 
you suggested it I'll use it for the example....it will also be a good 
indicator of exactly what I mean about the lack of standardization even on 
something that is easy to describe.

Copied below (without permission of the authors but only done for 
demonstration purposes) are the entity definitions for 'lpm_fifo' (an EIA 
standard) and 'sync_fifo' (Mike Tressler standard).  Keeping mind what it is 
that a fifo is supposed to do (the function) and the intended USER of the 
fifo who has to deal with the interface to that function (i.e. signals and 
generics on the entity) let's peruse these two.

Both have generics for specifying width of the fifo...but can't agree on the 
name of that generic parameter.

Both have generics for specifying the depth of the fifo....but again can't 
agree on the name of that generic parameter.  Both are bad from the 
standpoint of the user since Mike makes you specify depth as an address 
length (which is really log2(depth)) and lpm_fifo makes you use two 
parameters (the depth and log2(depth)).  Each has their own unique way of 
not really telling you that their parameters really are simply log2(depth).

Lpm_fifo allows you an option (Lpm_Showahead) for having the output show up 
as soon as it is available or only after in response to the read command. 
sync_fifo  has no similar option.  Having used fifos for a number of years I 
can say that both forms are generally useful depending on the application 
and performance requirements so in that regard sync_fifo is less useful than 
lpm_fifo.

Lpm_fifo has some mystery parameters (lpm_type and lpm_hint) that are 
intended to be used to pass information further down the tool chain.  From 
the standpoint of a user of the fifo, they just clutter up the interface and 
are no value.  sync_fifo has nothing comparable so in that regard it is 
better tham lpm_fifo.  LPM intended those to be used to pass info on to the 
fitter in some way but those strings are all going to be 'vendor specific' 
so no kudos there.

Users of a fifo need to reset it, write to it and read from it.  Again here 
there is no naming consistency on any of the signals with the exception of 
the 'full' and 'empty' status outputs.  sync_fifo also has some two forms of 
reset (rst and init) that apparently Mike has found to be useful that the 
rest of the industry has not seen to be of enough value to include.  Maybe 
sync_fifo is more useful because of this...or maybe it was a band-aid for a 
particular nitch problem but in most cases I would likely end up tying them 
to the same signal or tying one of them to '0'.  lpm_fifo also has two forms 
of reset (async and sync); I won't rant on the dubious value of async resets 
maybe some find value to it.

Although 'full' and 'empty' outputs are usually all that most users of a 
fifo will need, there are more than a few occasions where more status is 
needed.  'sync_fifo' does not provide anything, 'lpm_fifo' goes to the other 
extreme and provides a raw dump of the count.  What is generally more useful 
would be to have a number of flag outputs where the depth where the flag 
gets triggered can be specified by a generic value (like half full, three 
quarters full, .98% full, etc.)  Give both a failing mark on this for not 
giving much thought to how fifos really get used.

Users of fifos tend to think of 'writing' and 'reading' the fifo, not 
'pushing' and 'popping' it as sync_fifo does.  In fact 'push' and 'pop' give 
the implication of a stack (which is a "last in first out" memory) not a 
fifo (which is "first in, first out") which would make one question whether 
you're even using the right function so demerits to sync_fifo on that one.

So now that the long winded critique of two definitions of a fifo has been 
completed, so what?  Why does any of this matter?  Mike would probably agree 
that his 'sync_fifo' could very well have been implemented with the exact 
same set of parameter and signal names as lpm_fifo but he chose not to.  So 
what is the impact of that decision?  Well, if you want to switch from 
lpm_fifo over to Mike's sync_fifo because maybe it is so much better you've 
got a bunch of editing to do (every usage of lpm_fifo)...and yet sync_fifo 
implements the EXACT SAME FUNCTION.  Even worse, maybe you'd just like to 
evaluate that supposed performance improvement.

You're not getting anything more, and maybe you're simply trying to figure 
out if you get better performance using Mike's implementation but you've got 
a bit of effort in front of you to do that evaluation.  Why?  Because the 
interface to these two things that implement the EXACT SAME FUNCTION are 
completely different.  Which is the situation that we're in today.  Some 
FPGA vendors support the one sorry standard that exists (LPM) but are not 
doing much to improve it and move up the ladder to more higher level 
functions while one large FPGA vendor (namely 'X') does not directly support 
it that one standard...but they do provide their own unique way to implement 
the EXACT SAME FUNCTION.

Peter Alfke goes off on his rant about his X's hard coded fifo runs at 550 
MHZ but doesn't seem to grasp the fact that he is talking about performance 
and that that hard coded fifo is implementing the EXACT SAME FUNCTION.  I 
find it hard to believe that the Xilnx tool set could not, once it 
encountered the entity called 'lpm_fifo' that it could plop in that hard 
coded block.  Maybe there are some usage restrictions that would prevent 
that hard coded block from always being instantiated but hey, isn't that 
what synthesis is supposed to figure out?  How to best implement the 
specified function?  Perhaps Peter can explain to everyone how the interface 
to that Xilinx hard coded fifo differs in some fundamental manner that the 
interface to that EXACT SAME FUNCTION could not be the same.

Last, I would like to thank Mike for making available his code on his web 
site.  His example designs are a definite 'good' thing.  My comparisons of 
Mike's fifo implementation to LPM fifo is not meant to imply that his is any 
way worse just that it goes to show you that even with something simple, 
agreement on the interface to the EXACT SAME FUNCTION differs for no 
rational reason.  Mike being able to reuse 'sync_fifo' wherever he needs 
fifo functionality though is no different than any other FPGA vendor pushing 
their 'standard'.

Look at the IC industry and how they can standardize on things and fairly 
ask yourself why IP can't follow that model.  Hint:  The answer is not "Well 
IP is not the same as ICs".....if you analyze it rationally I think you'll 
see that the answer is more along the lines of "Well dang, it really could 
be standardized and still come out with new stuff as well as improve on old 
stuff".

KJ
-------------
entity LPM_FIFO
   generic (
       LPM_WIDTH     : natural;       -- MUST be greater than 0
       LPM_WIDTHU    : natural := 1;  -- MUST be greater than 0
       LPM_NUMWORDS  : natural;       -- MUST be greater than 0
       LPM_SHOWAHEAD : string := "OFF";
       LPM_TYPE      : string := L_FIFO;
       LPM_HINT      : string := "UNUSED");
   port (
       DATA  : in std_logic_vector(LPM_WIDTH-1 downto 0);
       CLOCK : in std_logic;
       WRREQ : in std_logic;
       RDREQ : in std_logic;
       ACLR  : in std_logic := '0';
       SCLR  : in std_logic := '0';
       Q     : out std_logic_vector(LPM_WIDTH-1 downto 0);
       USEDW : out std_logic_vector(LPM_WIDTHU-1 downto 0);
       FULL  : out std_logic;
       EMPTY : out std_logic);
end LPM_FIFO;

entity sync_fifo is
   generic (dat_length : natural := 16;
       add_length : natural := 8   -- 7 for 127x16  8 for 255x16
       );

   port (clk     : in  std_ulogic;
     rst    : in  std_ulogic;      -- powerup init of pointers, flags
     init   : in  std_ulogic;      -- synch   init of pointers, flags
                                   --  (but not data)
     push   : in  std_ulogic;      -- data_i latched on edge after push
                                   -- ok to push and pop at same time
     pop    : in  std_ulogic;      -- hold one tick, read data_q while low
     data_i : in  std_logic_vector(dat_length-1 downto 0);
     data_q : out std_logic_vector(dat_length-1 downto 0);  -- readback
     full   : out std_ulogic;
     empty  : out std_ulogic);

end sync_fifo;




Article: 111528
Subject: Re: Spectre of Metastability Update
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Sun, 05 Nov 2006 09:57:07 +1300
Links: << >>  << T >>  << A >>
rickman wrote:
>>>Three dual 4 input muxes (analog switch based), a 4 bit counter, a dual
>>>tri-state buffer, a dual NAND gate and a dual FF.  Together with two 8
>>>bit SPI port relay drivers, they all fit in a 10 x 20 mm area.
>>
>>Up to here, I count only 33 macrocells, probably less.
> 
> 
> This logic is only 15 or so MC.  The part that controls the relays is a
> bit more complex.  I don't recall the exact MC count, but it was in the
> low 50's for the whole shooting match, but that was not a formal,
> complete analysis and would likely grow a bit.  Then we have a
> requirement for 40% spare capacity so that we can accommodate later
> revisions and updates.  That puts the design clearly in the 128 MC
> part.
> 
> 
> 
>>  The
>>
>>>smallest CPLD I can easily use is a 128 macrocell part in a 100 pin
>>>TQFP at 16 mm sq package and still requires the two relay drivers plus
>>>a JTAG header.
>>
>>Why not use a 64MC device in CS package?
> 
> 
> Actually, it has occured to me that I could do a combined approach
> using a 32 or 64 MC CPLD to replace the discrete logic only and not the
> relay drivers.  An MCU could do the job of sorting out the SPI data and
> provide "intelligence" for driving the relays.
> 
> The MCU would have to be very low power, but that might be doable with
> adequate power management.

If the relay logic is that complex, why not use a uC and SPI relay drivers ?

Look at the Silabs C8051F41x/F53x family.
When I asked them about the SPI port waking up the on chip OSC, they
said "Oh yes, the osc starts in spec almost instantly" (couple of 
cycles), and they have some clk ratio requirement anyway, so the upshot 
was, this chip could sit in deep sleep, and wakeup on SPI ready to 
service the first byte, then go back to deep sleep again : ie behave 
rather like Logic or a low power CPLD.

-jg


Article: 111529
Subject: Re: maximum distanse beetwin SFP-module and FPGA (RocketIO) ???
From: Duane Clark <junkmail@junkmail.com>
Date: Sat, 04 Nov 2006 21:04:03 GMT
Links: << >>  << T >>  << A >>
axalay wrote:
> :) are you serious or it is joke? (it about distanse 70 and 71 mm)
> 

No, it is serious ;) My PCB layout program will easily tell me the exact 
length of the traces, so I just fired it up and found out what the 
length was. I could have given the length to 3 decimal places, if desired ;)

Article: 111530
Subject: Re: Cleaning generated files in Xilinx 8.2 EDK and ISE
From: Duane Clark <junkmail@junkmail.com>
Date: Sat, 04 Nov 2006 21:14:58 GMT
Links: << >>  << T >>  << A >>
Jhlw wrote:
> See whole thread at:
> http://groups.google.ca/group/comp.arch.fpga/browse_thread/thread/322e88de0fbb80e8/65ecc09c50ed8d9b?lnk=raot&hl=en#65ecc09c50ed8d9b
> 
> I have been getting exactly the same output continually
> from my project when I load it into my development board
> (ML403), in spite of making changes that should cause
> different output. When I did "Project -> Clean All Generated
> Files" in EDK, I finally managed to get some changes to
> appear.

I have not used EDK 8.2 yet, but version 7.1 did not recognize changes 
to your custom cores automatically. Apparently that has not changed. 
There is a flag you can set to cause the cores to be rebuilt 
automatically every time.

The very strange thing, is that EDK creates conventional make files, so 
it would be easy for it to detect changes in source files and rebuild 
when changes are detected. And in my case, that is what I have done. I 
take the EDK generated make files, edit them to add the appropriate 
lines to recognize changes in the source files, and then build projects 
from the command line with "make".

> ...
> It does seem to be my experience as a user with a couple of
> months of experience that project files need to be cleaned in ISE,
> too ...

Unlike EDK, ISE has always correctly detected changes for me. I don't 
"clean" the files there, and use the GUI to rebuild. It now seems good 
enough for everyday use.

Article: 111531
Subject: Re: reset
From: yttrium <yttrium@telenet.be>
Date: Sat, 04 Nov 2006 23:02:37 +0100
Links: << >>  << T >>  << A >>
ALuPin@web.de wrote:
>> or use something like
>>
>> 	ff_resetn:process(boot_clk)
>> 	begin
>> 		if (boot_clk'event and boot_clk='1') then
>> 			if (reset_cnt/="111") then
>> 				reset_cnt<=reset_cnt + 1;
>> 			end if;
>> 			reset_n<=(reset_cnt(2) AND reset_cnt(1) AND 		reset_cnt(0));
>> 		end if;
>> 	end process;
>>
>> 	ff_reset:process(boot_clk)
>> 	begin
>> 		if (boot_clk'event and boot_clk='1') then
>> 			reset<=not reset_n;
>> 		end if;
>> 	end process;
> 
> How do you know which value "reset_cnt" will start with after
> configuration ?
> Rgds
> André
> 

you just write

signal reset_cnt : std_logic_vector(2 downto 0) := (others=>'0');

so that when the FPGA is configured it always starts at 0

Article: 111532
Subject: Re: chipscope
From: yttrium <yttrium@telenet.be>
Date: Sat, 04 Nov 2006 23:05:51 +0100
Links: << >>  << T >>  << A >>
Roberto wrote:
> I am trying to use Xilinx chipscope, but it is not working properly
> (probably mishandling by the user...). Perhaps somebody can give me
> some light...
> 
> I used core inserter, and I have a ICON and a ILA core.
> I want to monitor a SPI bus in a 2VP2 device, that has 12 RAM blocks
> available.
> I defined a  1 trigger port with width 1, set with the sclk (that
> should be around 10MHz).
> And I have a 40 data width bus where I try to see many data signals.
> 
> I can go to the point where I generate the programming file (bit file).
> Startup clock is set to JTAGclk, keep hierarchy is set to YES. I also
> generate (just in case) the mcs file and load my 18V04 EEPROM. I
> recicle power and then I click in the Analyze Design Using Chipscope.
> After opening the JTAG Chain (XILINX Parallel IV cable), it says that
> it found 1 core unit in the JTAG device Chain. But if I press the
> "trigger now" button, it does not give me the status of the lines. It
> enters a mode where it says"siting for core to be armed." and stays
> there forever. Am I setting the trigger in a wrong way?
> 
> We are talking about versions 7.1 os ISE and chipscope pro.
> 
> I would appreciate any input!
> 
just press the immediate sample/trigger button if you do not want to 
trigger for an event but just see the 'current' signal values ...

OR setup the right triggers like Markus Meng said

Article: 111533
Subject: Re: Scientific Computing on FPGA
From: yttrium <yttrium@telenet.be>
Date: Sat, 04 Nov 2006 23:08:52 +0100
Links: << >>  << T >>  << A >>
lancepickens@gmail.com wrote:
> Hi,
> Coming from a scientific computing standpoint (with no hardware
> experience).
> I was wondering if you can improve any dedicated tasks by designing a
> special
> purpose chips ala FPGA to run your code? Does anyone have any
> experience
> with this?
> 
<http://www.nallatech.com/?node_id=1.2.1&id=8>

<http://www.sgi.com/products/rasc/>

<http://www.cray.com/products/xd1/index.html>

...

Article: 111534
Subject: Re: Spectre of Metastability Update
From: "rickman" <gnuarm@gmail.com>
Date: 4 Nov 2006 14:26:58 -0800
Links: << >>  << T >>  << A >>
Jim Granville wrote:
> rickman wrote:
> >>>Three dual 4 input muxes (analog switch based), a 4 bit counter, a dual
> >>>tri-state buffer, a dual NAND gate and a dual FF.  Together with two 8
> >>>bit SPI port relay drivers, they all fit in a 10 x 20 mm area.
> >>
> >>Up to here, I count only 33 macrocells, probably less.
> >
> >
> > This logic is only 15 or so MC.  The part that controls the relays is a
> > bit more complex.  I don't recall the exact MC count, but it was in the
> > low 50's for the whole shooting match, but that was not a formal,
> > complete analysis and would likely grow a bit.  Then we have a
> > requirement for 40% spare capacity so that we can accommodate later
> > revisions and updates.  That puts the design clearly in the 128 MC
> > part.
> >
> >
> >
> >>  The
> >>
> >>>smallest CPLD I can easily use is a 128 macrocell part in a 100 pin
> >>>TQFP at 16 mm sq package and still requires the two relay drivers plus
> >>>a JTAG header.
> >>
> >>Why not use a 64MC device in CS package?
> >
> >
> > Actually, it has occured to me that I could do a combined approach
> > using a 32 or 64 MC CPLD to replace the discrete logic only and not the
> > relay drivers.  An MCU could do the job of sorting out the SPI data and
> > provide "intelligence" for driving the relays.
> >
> > The MCU would have to be very low power, but that might be doable with
> > adequate power management.
>
> If the relay logic is that complex, why not use a uC and SPI relay drivers ?
>
> Look at the Silabs C8051F41x/F53x family.
> When I asked them about the SPI port waking up the on chip OSC, they
> said "Oh yes, the osc starts in spec almost instantly" (couple of
> cycles), and they have some clk ratio requirement anyway, so the upshot
> was, this chip could sit in deep sleep, and wakeup on SPI ready to
> service the first byte, then go back to deep sleep again : ie behave
> rather like Logic or a low power CPLD.

The original idea was the CPLD was needed and could provide the logic
for the relay control too.  It was only in the last couple of weeks
that I realized that I couldn't get the chip on the board with the size
of the relays that were selected.  Then I realized that there was no
real need for the "complex" control logic since that is only an
artifact of the SPI bus protocol which I didn't think was cast in
concrete.  It's not, but because we are a sub working with a prime, we
don't do squat without asking "mother may I".

So we can treat the relay driver as a simple SPI relay driver and put
the "intelligence" in existing processors on other boards.  I think a
Monahan should have enough horsepower to handle a relay drive when
nothing else is going on.

Or we can add an MCU and offload this burden from the slow 400 MHz
processor to a 4 MHz MCU.

My real concern is that the RF section can grow and squeeze the
controller space even more.

My point was that not so much because it is needed, but as a compromise
I could use a small MCU and a small CPLD with the small relay driver
chips.  This is only a bit larger than the "dumb" approach.  But it
will require a lot more development work (remember this is a very
inefficient company) and I will have a very hard time getting the
support I need to fully test the board.

The really sad part is that this is costing 10 to 100 times what it
would cost in commercial work and it is being paid for by the
Government.


Article: 111535
Subject: Re: Scientific Computing on FPGA
From: Ray Andraka <ray@andraka.com>
Date: Sat, 04 Nov 2006 19:48:56 -0500
Links: << >>  << T >>  << A >>


There are plenty of scientific apps out there that are being sped up by 
FPGAs.  I, for instance am just finishing up a 2D 32-2048 point floating 
point FFT engine in Virtex4 that can compute a 2D 2Kx2K FFT on complex 
data in under 13 msec including raster order input and output for an 
imaging application.  It resides in a single Virtex4 SX55 with external 
QDR memory.

Article: 111536
Subject: Using Altera Nios II Stratix II dev kit just as FPGA.
From: drop669@gmail.com
Date: 4 Nov 2006 17:33:16 -0800
Links: << >>  << T >>  << A >>
Hello.

Got this board without any intention to use Nios, but just to use
EP2S60 chip.
Drawed very simple schematics, loaded it via EPCS config port (using
Active Serial Programming method), powered it, and all LEDs are
blinking, with about 2Hz frequency, except of those LEDs which was used
in project. However, when one of LEDs must be turned on regarding my
goal, it blinking modulated by about 2Hz.
What is this? Probably some problem signalization, but where should I
start?


Article: 111537
Subject: Re: Interface standards (was Re: Dual Port RAM)
From: "Peter Alfke" <alfke@sbcglobal.net>
Date: 4 Nov 2006 19:48:55 -0800
Links: << >>  << T >>  << A >>
Well, KJ, first of all, tone down, and dont second-guess how much I can
grasp.
"Peter Alfke goes off on his rant about his X's hard coded fifo runs at
550
MHZ but doesn't seem to grasp the fact that he is talking about
performance
and that that hard coded fifo is implementing the EXACT SAME FUNCTION."
I have designed FIFOs over a longer time period than anybody else in
the world, for I created the world's first IC FIFO design in 1970, the
Fairchild 3341. So much for credentials...

When we put a HARD FIFO into the Virtex-4 and Virtex-5 devices, we
realized that it had to be fully functional, fast and small, for every
BlockRAM is "burdened" with it. And once the transistors are
implemented on the chip, there is nothing that can be changed or taken
away, and any additional circuitry in the fabric would reduce
performance significantly. (There was, unfortunately, a subtle error in
the Virtex-4 implementation that forced us to come up with a
work-araound. We did not repeat that mistake inVirtex-5).
We had talked to many customers and listened to their ideas. That's why
there are not only programmable "ALMOST" full or empty flag, there is
also the "First-word-fall-though option", (Lpm_Showahead), and a
synchronous option that avoids the one-clock ambiguity at the trailing
edge of FULL or EMPTY (inherently unavoidable in an asynchronous FIFO,
but avoidable in a synchronous one).
We designed the FIFO to be fast and small, with a comprehensive and
intuitive user interface.
If somebody wants to have a different interface, thousands of gates and
LUTs are available to implement that.
Did we design the LUTs to a specific standard? Do SRL16 shift register
abide by an industy-wide standard?  Are clock-multiplexers
standardized? How's about DCMs and PLLs, and IDELAY and ODELAY
fine-tuning circuits, and even multiplier/accumulators. Of course not,
none do!
Inside the chip we optimize the circuitry, and we are running way ahead
of standardization.
But, thanks to programmable logic, you can add soft standardization
layers to your heart's content. Nothing stops smart IP of implementing
any conceivable standard, but unfortunately usually at a cost and
performance sacrifice.
If someone knows a smarter way to design FPGAs, we really are
listening. Honest !
Our customers want performance at the lowest cost, plus ease-of-design.
But everybody has his own ideas about relative priorities.
Peter Alfke, from home
==================
On Nov 4, 11:38 am, "KJ" <kkjenni...@sbcglobal.net> wrote:
> "Mike Treseler" <mike_trese...@comcast.net> wrote in messagenews:4quvu0Foq72hU1@individual.net...
>
>
>
> > KJ wrote:
>
> >> But you didn't answer the question....reworded to 'What is the name of
> >> that
> >> standard IP'?  lpm_fifo is the only one that I can think of that fits
> >> your
> >> functional description.  Writing the function yourself (while you may
> >> want
> >> to do it anyway) does not qualify it as a 'standard'.  You write good
> >> code
> >> Mike, but not everything you write is ready to be called a standard ;)
>
> > Ready or not,
> > I'll call it sync_fifo.
> > See it here:
> >http://home.comcast.net/~mike_treseler/I've got the definite impression that we are not on the same page when we
> talk about what it means for something to be 'standardized'.  The usage I'm
> talking about is that something 'standardized' if it is interchangable with
> something else that accomplishes that same function but not necessarily in
> the same way.  Although the fifo functionality is pretty low level, since
> you suggested it I'll use it for the example....it will also be a good
> indicator of exactly what I mean about the lack of standardization even on
> something that is easy to describe.
>
> Copied below (without permission of the authors but only done for
> demonstration purposes) are the entity definitions for 'lpm_fifo' (an EIA
> standard) and 'sync_fifo' (Mike Tressler standard).  Keeping mind what it is
> that a fifo is supposed to do (the function) and the intended USER of the
> fifo who has to deal with the interface to that function (i.e. signals and
> generics on the entity) let's peruse these two.
>
> Both have generics for specifying width of the fifo...but can't agree on the
> name of that generic parameter.
>
> Both have generics for specifying the depth of the fifo....but again can't
> agree on the name of that generic parameter.  Both are bad from the
> standpoint of the user since Mike makes you specify depth as an address
> length (which is really log2(depth)) and lpm_fifo makes you use two
> parameters (the depth and log2(depth)).  Each has their own unique way of
> not really telling you that their parameters really are simply log2(depth).
>
> Lpm_fifo allows you an option (Lpm_Showahead) for having the output show up
> as soon as it is available or only after in response to the read command.
> sync_fifo  has no similar option.  Having used fifos for a number of years I
> can say that both forms are generally useful depending on the application
> and performance requirements so in that regard sync_fifo is less useful than
> lpm_fifo.
>
> Lpm_fifo has some mystery parameters (lpm_type and lpm_hint) that are
> intended to be used to pass information further down the tool chain.  From
> the standpoint of a user of the fifo, they just clutter up the interface and
> are no value.  sync_fifo has nothing comparable so in that regard it is
> better tham lpm_fifo.  LPM intended those to be used to pass info on to the
> fitter in some way but those strings are all going to be 'vendor specific'
> so no kudos there.
>
> Users of a fifo need to reset it, write to it and read from it.  Again here
> there is no naming consistency on any of the signals with the exception of
> the 'full' and 'empty' status outputs.  sync_fifo also has some two forms of
> reset (rst and init) that apparently Mike has found to be useful that the
> rest of the industry has not seen to be of enough value to include.  Maybe
> sync_fifo is more useful because of this...or maybe it was a band-aid for a
> particular nitch problem but in most cases I would likely end up tying them
> to the same signal or tying one of them to '0'.  lpm_fifo also has two forms
> of reset (async and sync); I won't rant on the dubious value of async resets
> maybe some find value to it.
>
> Although 'full' and 'empty' outputs are usually all that most users of a
> fifo will need, there are more than a few occasions where more status is
> needed.  'sync_fifo' does not provide anything, 'lpm_fifo' goes to the other
> extreme and provides a raw dump of the count.  What is generally more useful
> would be to have a number of flag outputs where the depth where the flag
> gets triggered can be specified by a generic value (like half full, three
> quarters full, .98% full, etc.)  Give both a failing mark on this for not
> giving much thought to how fifos really get used.
>
> Users of fifos tend to think of 'writing' and 'reading' the fifo, not
> 'pushing' and 'popping' it as sync_fifo does.  In fact 'push' and 'pop' give
> the implication of a stack (which is a "last in first out" memory) not a
> fifo (which is "first in, first out") which would make one question whether
> you're even using the right function so demerits to sync_fifo on that one.
>
> So now that the long winded critique of two definitions of a fifo has been
> completed, so what?  Why does any of this matter?  Mike would probably agree
> that his 'sync_fifo' could very well have been implemented with the exact
> same set of parameter and signal names as lpm_fifo but he chose not to.  So
> what is the impact of that decision?  Well, if you want to switch from
> lpm_fifo over to Mike's sync_fifo because maybe it is so much better you've
> got a bunch of editing to do (every usage of lpm_fifo)...and yet sync_fifo
> implements the EXACT SAME FUNCTION.  Even worse, maybe you'd just like to
> evaluate that supposed performance improvement.
>
> You're not getting anything more, and maybe you're simply trying to figure
> out if you get better performance using Mike's implementation but you've got
> a bit of effort in front of you to do that evaluation.  Why?  Because the
> interface to these two things that implement the EXACT SAME FUNCTION are
> completely different.  Which is the situation that we're in today.  Some
> FPGA vendors support the one sorry standard that exists (LPM) but are not
> doing much to improve it and move up the ladder to more higher level
> functions while one large FPGA vendor (namely 'X') does not directly support
> it that one standard...but they do provide their own unique way to implement
> the EXACT SAME FUNCTION.
>
> Peter Alfke goes off on his rant about his X's hard coded fifo runs at 550
> MHZ but doesn't seem to grasp the fact that he is talking about performance
> and that that hard coded fifo is implementing the EXACT SAME FUNCTION.  I
> find it hard to believe that the Xilnx tool set could not, once it
> encountered the entity called 'lpm_fifo' that it could plop in that hard
> coded block.  Maybe there are some usage restrictions that would prevent
> that hard coded block from always being instantiated but hey, isn't that
> what synthesis is supposed to figure out?  How to best implement the
> specified function?  Perhaps Peter can explain to everyone how the interface
> to that Xilinx hard coded fifo differs in some fundamental manner that the
> interface to that EXACT SAME FUNCTION could not be the same.
>
> Last, I would like to thank Mike for making available his code on his web
> site.  His example designs are a definite 'good' thing.  My comparisons of
> Mike's fifo implementation to LPM fifo is not meant to imply that his is any
> way worse just that it goes to show you that even with something simple,
> agreement on the interface to the EXACT SAME FUNCTION differs for no
> rational reason.  Mike being able to reuse 'sync_fifo' wherever he needs
> fifo functionality though is no different than any other FPGA vendor pushing
> their 'standard'.
>
> Look at the IC industry and how they can standardize on things and fairly
> ask yourself why IP can't follow that model.  Hint:  The answer is not "Well
> IP is not the same as ICs".....if you analyze it rationally I think you'll
> see that the answer is more along the lines of "Well dang, it really could
> be standardized and still come out with new stuff as well as improve on old
> stuff".
>
> KJ
> -------------
> entity LPM_FIFO
>    generic (
>        LPM_WIDTH     : natural;       -- MUST be greater than 0
>        LPM_WIDTHU    : natural := 1;  -- MUST be greater than 0
>        LPM_NUMWORDS  : natural;       -- MUST be greater than 0
>        LPM_SHOWAHEAD : string := "OFF";
>        LPM_TYPE      : string := L_FIFO;
>        LPM_HINT      : string := "UNUSED");
>    port (
>        DATA  : in std_logic_vector(LPM_WIDTH-1 downto 0);
>        CLOCK : in std_logic;
>        WRREQ : in std_logic;
>        RDREQ : in std_logic;
>        ACLR  : in std_logic := '0';
>        SCLR  : in std_logic := '0';
>        Q     : out std_logic_vector(LPM_WIDTH-1 downto 0);
>        USEDW : out std_logic_vector(LPM_WIDTHU-1 downto 0);
>        FULL  : out std_logic;
>        EMPTY : out std_logic);
> end LPM_FIFO;
>
> entity sync_fifo is
>    generic (dat_length : natural := 16;
>        add_length : natural := 8   -- 7 for 127x16  8 for 255x16
>        );
>
>    port (clk     : in  std_ulogic;
>      rst    : in  std_ulogic;      -- powerup init of pointers, flags
>      init   : in  std_ulogic;      -- synch   init of pointers, flags
>                                    --  (but not data)
>      push   : in  std_ulogic;      -- data_i latched on edge after push
>                                    -- ok to push and pop at same time
>      pop    : in  std_ulogic;      -- hold one tick, read data_q while low
>      data_i : in  std_logic_vector(dat_length-1 downto 0);
>      data_q : out std_logic_vector(dat_length-1 downto 0);  -- readback
>      full   : out std_ulogic;
>      empty  : out std_ulogic);
> 
> end sync_fifo;


Article: 111538
Subject: Re: JTAG connection for chipscope
From: yttrium <yttrium@telenet.be>
Date: Sun, 05 Nov 2006 15:15:27 +0100
Links: << >>  << T >>  << A >>
John Adair wrote:
> One thing to check is that Impact is not open when using Chipscope. I
> have seen cases of Impact affecting chipscope operation.
> 
> John Adair
> Enterpoint Ltd.
> 
> kollarameshk@gmail.com wrote:
>> Hi,
>>      I need help for solving the following problem.I am trying to
>> connect to ML461 JTAG port from PC parallel port by using XILINX
>> parallel cable through chipscope.But it couldn't connect properly.It
>> gives the following error.
>>
>> ERROR: Socket Open Failed. localhost/127.0.0.1:50001
>> localhost
>> java.net.ConnectException: Connection refused: connect
>> ERROR: Failed to open Xilinx Parallel Cable. See message(s) above.
>>
>> And the same cable setup works properly with the another same board.
>>
>> I really appreciate your help.
>>
>> Thanks,
>> -Ramesh
> 

yes i had the same problems ... and yes [Markus Meng] the parallel pod 
is still supported (i still use it) ... maybe something to do with the 
IO settings of the parallel port (ECP/EPP...) i had to change this one 
in the beginning ...

Article: 111539
Subject: Integration of modules
From: "Amirtham" <amirtham@microview-tech.com>
Date: 5 Nov 2006 07:45:37 -0800
Links: << >>  << T >>  << A >>
Hi everybody,
I have implemented a SDRAM Controller in Spartan 3s400.I already have
another working core inside the same FPGA. when i try to implement my
design with this, my device is not detected atall. In am in a very high
pressure to complete this task. Can anybody help me please.

Thanks,
Amir.


Article: 111540
Subject: Re: Integration of modules
From: Ralf Hildebrandt <Ralf-Hildebrandt@gmx.de>
Date: Sun, 05 Nov 2006 17:25:13 +0100
Links: << >>  << T >>  << A >>
Amirtham schrieb:

> I have implemented a SDRAM Controller in Spartan 3s400.I already have
> another working core inside the same FPGA. when i try to implement my
> design with this, my device is not detected atall.

Simulate you design - including SDF backannotation.
Break your design into smaller components, Test these components.
Feed interesting signals to output pins / LEDs. Generate Signals, that
allow you decide, if a part is working or not.

Ralf

Article: 111541
Subject: Re: chipscope
From: "motty" <mottoblatto@yahoo.com>
Date: 5 Nov 2006 08:54:46 -0800
Links: << >>  << T >>  << A >>

Yeah, the core is not getting a clock signal.  You stated that you
connected SCLK to the trigger port of ChipScope.  Is that really what
you meant?  If so, you never stated what the CLK port of chipScope is
connected to, if anything.


Article: 111542
Subject: How to transform matlab value to FPGA value
From: "ZHI" <threeinchnail@gmail.com>
Date: 5 Nov 2006 10:33:44 -0800
Links: << >>  << T >>  << A >>
I have implemented (-1,+1) boxed-constraint algorithm into FPGA desgin.
The algorithm is to solve the equation Rh+n=b in telecommunication
application. For my project case, all the elements of size NxN Matrix
R  in the region [-1,1], and n is the Gauss noise. h is a size
Nx1vector . For example:
 R =

    1.0000    0.5000    0.5000    0.5000
    0.5000    1.0000         0         0
    0.5000         0    1.0000    1.0000
    0.5000         0    1.0000    1.0000

b =

   -1.2672
   -0.5291
    2.1703
    1.2486

R1=round(2*R); b1=round(2*b);
It is easily seen that all elements can be presented by 4 bit. But for
the transmission to FPGA board, I extend sign bit to 8 bit . Then I
write Matrix R1 and vector b1 into FPGA board.

In Matlab simulation, I used constraint H=2^0  as  the biggest step
size .Then is d=2^-1, d=2^-2....to approach the expected h value. So my
question is: Shall I use H=00000001 to presnted 1? Some said I used 4
bit to present input data. I should use 2^4 to present H. I don't agree
with it. And now I am a little confused about it. Does anybody can help
me figure me out?  I have tried my best to explain it clearly.  Thank
you very much.

Zhi


Article: 111543
Subject: Re: Scientific Computing on FPGA
From: "Marc Battyani" <Marc.Battyani@fractalconcept.com>
Date: Sun, 5 Nov 2006 23:25:10 +0100
Links: << >>  << T >>  << A >>

"Nico Coesel" <nico@puntnl.niks> wrote
> helmut.leonhardt@gmail.com wrote:
>
>>Everything what can parallelize is possibly running faster in Hardware
>>than in Software.
>
> Still, the amount of processing power a modern PC processor can
> deliver is enormous. It is problably more cost effective to optimize
> an algorithm to run parallel on 10 PC's than to develop a specific
> FPGA solution. If space is a constraint, the answer is in using blade
> servers.

Well this power is precisely the problem of grid systems. I mean the real 
power in Watts.

The modern PC have also problem with very very slow communication between 
them, and the current processors have also some issues with the very slow 
memory access. The good news is that it's even getting worse with the FBDIMM 
;-)

We are not doing scientific but financial computing so it's closely related. 
Though it's not always obvious to have an idea of what speed gain can be 
achieveable on FPGA systems, we have already got performance ratios of x50 
to x140 on things like Monte-Carlo simulation for instance.

Marc



Article: 111544
Subject: post-synthesis simulation issues with ModelSim
From: "sergey" <skatsev@gmail.com>
Date: 5 Nov 2006 14:47:41 -0800
Links: << >>  << T >>  << A >>
Hi all again,

I have a fairly straight forward systolic array design which uses the
fixed_point type.  It simulates fine for the behavioral simulation.  It
synthesizes fine (there are a few warnings, but they appear to be
OK)... but when I try to do a post-synthesis simulation in ModelSim, I
get:

** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
Unknown identifier 'std_logic_vector2'.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
Unknown identifier 'std_logic_vector2'.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
Prefix of a slice must be a 1 dimensional array.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
Unknown identifier 'std_logic_vector3'.
** Error:
C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(241):
VHDL Compiler exiting

Do I need to include some library that I'm not?  What might be the
issue? 

Thanks in advance,

Sergey


Article: 111545
Subject: Re: post-synthesis simulation issues with ModelSim
From: "sergey" <skatsev@gmail.com>
Date: 5 Nov 2006 14:50:01 -0800
Links: << >>  << T >>  << A >>
Forgot to include the actual lines that its erroring on:

inmatA : in STD_LOGIC_VECTOR2 ( 3 downto 0 , 16 downto 0 );
    inmatB : in STD_LOGIC_VECTOR2 ( 3 downto 0 , 16 downto 0 );
    outmat : out STD_LOGIC_VECTOR3 ( 3 downto 0 , 3 downto 0 , 16
downto 0 )

(I see that they're declared as multi-dimensional and probably aren't
supposed to be... but why is Xilinx translating them that way, and what
can I do about it?)

-- Sergey

sergey wrote:
> Hi all again,
>
> I have a fairly straight forward systolic array design which uses the
> fixed_point type.  It simulates fine for the behavioral simulation.  It
> synthesizes fine (there are a few warnings, but they appear to be
> OK)... but when I try to do a post-synthesis simulation in ModelSim, I
> get:
>
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(237):
> Unknown identifier 'std_logic_vector2'.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(238):
> Unknown identifier 'std_logic_vector2'.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
> Prefix of a slice must be a 1 dimensional array.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(239):
> Unknown identifier 'std_logic_vector3'.
> ** Error:
> C:/thesis/SDRE/VHDL/FINAL/mult/netgen/synthesis/mult_arr_synthesis.vhd(241):
> VHDL Compiler exiting
>
> Do I need to include some library that I'm not?  What might be the
> issue? 
> 
> Thanks in advance,
> 
> Sergey


Article: 111546
Subject: Re: Interface standards (was Re: Dual Port RAM)
From: "KJ" <kkjennings@sbcglobal.net>
Date: Sun, 05 Nov 2006 23:08:07 GMT
Links: << >>  << T >>  << A >>

"Peter Alfke" <alfke@sbcglobal.net> wrote in message
news:1162698535.527609.266650@f16g2000cwb.googlegroups.com...
> Well, KJ, first of all, tone down, and dont second-guess how much I can
> grasp.
> "Peter Alfke goes off on his rant about his X's hard coded fifo runs at
> 550
> MHZ but doesn't seem to grasp the fact that he is talking about
> performance
> and that that hard coded fifo is implementing the EXACT SAME FUNCTION."
I call them as I see them.  You were the one who several times went on with
the sales pitch on the 550 MHz fifo when we were talking about interface
standardization, not performance.

> I have designed FIFOs over a longer time period than anybody else in
> the world, for I created the world's first IC FIFO design in 1970, the
> Fairchild 3341. So much for credentials...
Good, now let's move on.

>
> When we put a HARD FIFO into the Virtex-4 and Virtex-5 devices, we
> realized that it had to be fully functional, fast and small, for every
> BlockRAM is "burdened" with it. And once the transistors are
> implemented on the chip, there is nothing that can be changed or taken
> away, and any additional circuitry in the fabric would reduce
> performance significantly. (There was, unfortunately, a subtle error in
> the Virtex-4 implementation that forced us to come up with a
> work-araound. We did not repeat that mistake inVirtex-5).
Even now, instead of actually responding to anything that I had posted you 
are rambling on about things that Xilinx has done inside the various X 
products.  It reads again like a sales pitch, give it a rest....the 
relevance of what you have to say to my post is completely missing.....maybe 
you intended this for some other post, who can tell?

> We had talked to many customers and listened to their ideas. That's why
> there are not only programmable "ALMOST" full or empty flag, there is
I'm thinking that the programmable flags idea came not so much from 
listening to customers but from the discrete fifos that existed long before 
in the industry that also had 'programmable' flags.  A bit of digging 
would've led you to that what most customers really needed was not 
programmability of the flag levels but being able to specify as a generic 
parameters the fifo fill level and how many flags were needed.  The discrete 
IC fifo guys couldn't really do this so they had to make it programmable, 
but in the soft IP world of CPLD/FPGAs you could....but instead chose to 
copy industry parts.  Maybe that's a good decision, maybe not but I'll bet 
not having run-time programmability is acceptable in most situations.  For 
the others, this would be a different function (different entity).

> We designed the FIFO to be fast and small, with a comprehensive and
> intuitive user interface.
Fifo interfaces are all pretty intuitive, so why does X not support the
lpm_fifo interface?  Is it not intuitive?

> Are clock-multiplexers
> standardized? How's about DCMs and PLLs, and IDELAY and ODELAY
> fine-tuning circuits, and even multiplier/accumulators. Of course not,
> none do!
Why not?  As a user I want to multiply and divide clock frequency, skew them 
if necessary and possibly mux them together.  Sounds like something that can 
be standardized to me.  Toss in standardization of the various memory 
controllers as well while you're at it since the memory devices are 
standardized.  Remember what standardization means....interchangable with 
somebody else equivalent function.

> Inside the chip we optimize the circuitry, and we are running way ahead
> of standardization.
That's your opinion (about being so far ahead).  Does that statement also 
imply that Xilinx is just so far ahead that they can't bother with component 
standardization?  That's another reading I could take away from that 
statement and seems to be what you're suggesting as well.

> But, thanks to programmable logic, you can add soft standardization
> layers to your heart's content. Nothing stops smart IP of implementing
> any conceivable standard, but unfortunately usually at a cost and
> performance sacrifice.
Maybe.  Are you suggesting that the lpm_fifo function wouldn't run at your 
horn tooting 550 MHz?  Would be a bit of a bummer to think that you 
couldn't.

> If someone knows a smarter way to design FPGAs, we really are
> listening. Honest !
I don't want to design FPGAs, I want to use them better and not be 
re-creating the wheel either and I think darn near all of your users would 
too.  The Xilinx way appears to be to avoid adhering to or encouraging any 
design standards for IP creation other than to imply that the X way is the 
only and the best way.

> Our customers want performance at the lowest cost, plus ease-of-design.
> But everybody has his own ideas about relative priorities.
Yep

KJ 



Article: 111547
Subject: Spartan3E kit and BPI configuration problem.
From: "JG" <jorgen.gade@gmail.com>
Date: 5 Nov 2006 15:15:48 -0800
Links: << >>  << T >>  << A >>
Hi!

There got to be a large number of owners of the $149 Spartan3E kit out
there. I wonder if you have as little success as I if you try to
perform a BPI (byte-wide peripheral interface) configuration of a basic
MicroBlaze project built with BSB. Can you please try the following
simple steps and see what happens:

1. Built simple basic MicroBlaze system using BSB with OPB_EMC
controller for the Strataflash, DDR controller for the DDR_SDRAM and a
uartlite.
2. Download the design via JTAG to make sure the automatically
generated memory test application works.
3. Start a command prompt window and go to the implementation
directory. You will find 2 bit-files. Download.bit and system.bit.
Convert download.bit to a bin file with the following command: "promgen
-p bin -c FF -o output.bin -u 0x0 download.bit".
4. Program the output.bin file at offset 0x2000 in the Intel
Strataflash with the "device configuration -> program flash memory"
option found in Xilinx Platform Studio.
5. After flash programming; Turn of power to the board.
6. Strap it for BPI_UP configuration mode "010" (Strap J30).
7. Turn power on again.

Does the DONE LED turn on? Mine doesn't.
If DONE lights up: Does the automatically generated memory test
application start printing via uart_lite?

Thanks!
/JG

http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=HW-SPAR3E-SK-US


Article: 111548
Subject: Re: Help required regarding PCI Master core
From: Mark McDougall <markm@vl.com.au>
Date: Mon, 06 Nov 2006 10:33:32 +1100
Links: << >>  << T >>  << A >>
Adnan wrote:

> Sir you are right, I want to read configuration space(only BARS) of
> another target.

I don't think using the bridge in host mode is an option in a PC...

As Andreas rightly pointed out, not only do you have to read config
space of other cards, you also need to ensure IDSEL is generated.

And as we both suggested, have your host driver probe the required
information and explicitly write it to your card. It is the most
practical and benign solution.

Regards,

-- 
Mark McDougall, Engineer
Virtual Logic Pty Ltd, <http://www.vl.com.au>
21-25 King St, Rockdale, 2216
Ph: +612-9599-3255 Fax: +612-9599-3266

Article: 111549
Subject: Re: Cleaning generated files in Xilinx 8.2 EDK and ISE
From: "Jhlw" <james.h.w@gmail.com>
Date: 5 Nov 2006 15:51:54 -0800
Links: << >>  << T >>  << A >>
See whole thread at:
http://groups.google.ca/group/comp.arch.fpga/browse_thread/thread/322e88de0fbb80e8/65ecc09c50ed8d9b?lnk=raot&hl=en#65ecc09c50ed8d9b

Duane Clark wrote:
> Jhlw wrote:
> > It does seem to be my experience as a user with a couple of
> > months of experience that project files need to be cleaned in ISE,
> > too ...
>
> Unlike EDK, ISE has always correctly detected changes for me. I don't
> "clean" the files there, and use the GUI to rebuild. It now seems good
> enough for everyday use.

OK; I think you have more experience on this than I do.

I sent the following to the Xilinx customer service manager:

Since you are a customer service manager,
I wonder if you can help with the suggestion that I
have below? There was a simple point that would have only
taken a minute to explain to me, and would have saved me
days and possibly up to a week or two.
Today on my way in to my office, I helped a 50-60-something
lady in the parking lot hold something that would have caused
her a lot of inconvenience if it had blown away in the wind.
Similarly, if somebody could have helped me as I suggest
below, it would have saved me days, etc., of my time.
Wouldn't it be nice if I could feel it a pleasure to help
someone else rather than to have to grit my teeth and think,
over and over, "If I help someone, what goes around will come
around... If I help someone, what goes around will come around..." ??

Here is my message that I just sent (this CAE is a
pretty good guy, in
contrast with another guy from California, who was very
selfish and uncaring (in a previous webcase, "FPGA tools
do unexpected things" -- he ended up with a random guess
designed to get rid of me and told me that he couldn't give
me any more support because he had to close the web
case "for statistics" (i.e., so he could look good))):

Date: Nov 5, 2006 5:24 PM (-0500)
Subject: Re: FW: WebCase "ACTUAL results DISAGREE with
SIMULATOR results." Re: 8.2i XST - support of VHDL function

Hi ,

My whole difficulty for which I needed this webcase was
resolved by realizing that I had to do "Clean All Generated
Files" in EDK, not only "Cleanup Project Files" in ISE
(and according to the people on Usenet, doing it in ISE
is not even necessary).
This was why my results were not agreeing with simulation,
because I wasn't building what I thought I was building.

Today I realized what my bug was, in only a short time.
It only took me a short time to debug my code, but it
took me many days because I didn't know about "Clean
All Generated Files" in EDK, and I wasn't getting results
I could use to debug. This was very confusing, because
it is in ISE in which it seems that all the generated files
are being created, so I think that's what I have to clean,
not EDK, because it just seems like it only creates "source"
files.
So I have two recommendations:

1. please put in a change
request for the documentation and for EDK. Ideally EDK
should just automatically delete its generated files when
the user makes a change that requires them to be deleted.
Where the documentation says:
 "The Clean All Generated Files command removes the generated files
from a specific task. For example, the Platform Generation tool
(Platgen), which is invoked using the Generate Netlist command,
generates the netlist files from the source VHDL code.  When you clean
the process, the generated netlists are removed."
(file:///C:/EDK/doc/usenglish/help/platform_studio/platform_studio.htm#html/ps_c_gst_whatsnew.htm)
That is horrible rubbish, since that is the ENTIRE contents of
that help page. Instead, it should say "You must do "Project ->
Clean All Generated Files" after making changes to System Assembly,
or your changes WILL NOT be recognized." But that is still not very
good. A user should not have to search an obscure manual to find
out about such an important step that will really hurt him like this if
he doesn't know about it. The EDK should at least TELL the user with
a message box that "Now Generated Files Should Be Cleaned" if it
cannot do it automatically. Also, that help information should not
just talk about "cleaning a process" with NO information about how
you specify a process or DO the things it is talking about -- that is
horrible user abuse. It is horrible abuse
of the user to put in such an obscure bit of help "information" when a
clear statement: "You must do "Project ->
Clean All Generated Files" after making changes to System Assembly,
or your changes WILL NOT be recognized." is what is needed. Please
put in the simple, needed help information, first, and THEN, when you
as a company have time, add the technobabble when you
have time to add the complete explanation. Even
so, with something like this, it is still horrible abuse of the user to
have
this only in the documentation; it should show as a message when
EDK is used. Ideally the objective is that a user should not have to
read a manual, because no one likes studying obscure and confusing
fine print when they have a job that they have to be doing. I hope I
am making myself very clear on this point.




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