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 52500

Article: 52500
Subject: Re: XST choking hazard
From: chris.rosewarne@calyptech.com (Chris Rosewarne)
Date: 11 Feb 2003 16:27:51 -0800
Links: << >>  << T >>  << A >>
Hi,

One thing to consider with this code is that the process is only
triggered by W changing, but it actually depends on both W and nz. 
This is because assigning to a signal does not take effect immediately
(unlike a variable)

Assigning a signal to itself should only be done when you wish to
infer a register, not to create combinatorial feedback loops.  XST is
probably crashing as this code is not what it would normally expect to
see.

What would work is declaring a variable in the 'cond' process to use
in the loop.  Once the loop is complete, then assign the variable to
the signal.  This might cause too long a combinatorial path though..

Try simulating the code first to see how it behaves, but bear in mind
that synthesisable code is a subset of simulatable code.

cheers,
Chris

brad@tinyboot.com (Brad Eckert) wrote in message news:<4da09e32.0302110800.3b7cb342@posting.google.com>...
> Hi all, 
> 
> I have a small piece of code that the XST synthesis tool in Xilinx ISE
> 5.1 Webpack chokes on:
> 
> signal W: std_logic_vector(n+1 downto 0); -- generic n=15
> signal nz: std_logic;
> ...
>     cond: process(W) begin        
>         nz <= '0';                
>         for i in W'range loop     
>             nz <= nz or W(i);     
>         end loop;                 
>     end process cond;
> 
> FATAL_ERROR:Xst:Portability/export/Port_Main.h:126:1.13 - This
> application has discovered an exceptional condition from which it
> cannot recover.
> 
> Meanwhile, this version of it works:
> 
>     nz <= W(16) or W(15) or W(14) or W(13)
>        or W(12) or W(11) or W(10) or W(9)
>        or  W(8) or  W(7) or  W(6) or W(5)
>        or  W(4) or  W(3) or  W(2) or W(1) or W(0);
> 
> Does anyone know why this happens?

Article: 52501
Subject: Re: JBits
From: private1313@yahoo.com (Eric Pearson)
Date: 11 Feb 2003 17:12:58 -0800
Links: << >>  << T >>  << A >>
> >
> > "Peter Sommerfeld" <petersommerfeld@hotmail.com> wrote in message
> > news:5c4d983.0302081113.48392c92@posting.google.com...
> > > Is there anything equivalent to JBits for Altera devices? I'm dearly
> > hoping so ...
> >
> >
> "Eric Pearson" <epearson@lsil.com> wrote in message
> news:b28bov$6od$1@news.lsil.com...
> > Hi Pete...
> >
> > How does Jbits help one get better Altera designs?
> >
> > Eric Pearson
> >
"Steve Casselman" <sc@vcc.com> wrote in message news:<Jpa2a.482$UL6.53376127@newssvr14.news.prodigy.com>...
> There are all sorts of reasons to do this. Just go and look up all the paper
> written about JBits. Most of it has to do with using the configuration
> infrastructure to change and update a small part of a devices configuration

Thanks for the summary. There is alot of info when you just google 'jbits'.

> often at runtime. If you think about it there are a lot of resources that go
> into configuring these devices and it is a waste to only use that once. 

I agree that being able to really take advantage of virtual hardware 
one needs to keep the configuration port busy, however I'd like to
discuss 'how' further....

I disagree that partial reconfigurability is the immediate answer. 
To use proven tool chains, it would be much more pratical if efforts (Altera+)
to make the configuration infrastructure more useful were focused on 
shortening reconfiguration times. A sub mSec full chip reconfiguration time
would go a long ways towards virtual hardware. Imagine the applications
available with a mere 90% temporal utilization.

> one time Altera and Xilinx had the same market cap (number of shares times
> share price) and that changed the day EETimes ran the headline "Xilinx
> believes in reconfigurable computing and Altera thinks it is a red herring."
> It told investors and engineers that Xilinx believed in a future and Altera
> did not.

Algorithmic programming of fpga's for wild-a$$ genetic search 
machines is a great application, but it seems a ways off before
its ready for the masses of programmers writing software that manipulates 
hardware in realtime.

> JBits gives users a direct programming model, something that Altera does not
> have. In my opinion if Altera wants to capture the imagination of the top
> engineers in the world they should design a part starting with a bit level
> programming model that makes sense and then make that public. It would be
> great if there were a part that I could give a partial bitstream that would
> just program the lookup tables and not have to include any routing bits.

Yes, being able to program lookup tables saves space when you need to cram
a bit more in, but that level of reconfiguration is more often a part of the
real design rather than a side effect. 

> 
> We are coming into the age where 10's of thousands of programmers are going
> to start using FPGA's. Access to, and knowledge of, the bitstream will allow
> companies to be successful quicker and add value beyond what HDLs and
> standard programming models of today can offer. I think the biggest
> challenge that faces FPGA companies is not more gates or bigger ram or
> faster embedded processors those things all come with more transistors. But
> rather how to design a part that starts with a straight forward, well
> documented, bit level programming model that will allow programmer to write
> software that can manipulate the hardware during runtime.
> 
> Steve

I can see you vision, but with the Xilinx 6000 demise, (too early to market?)
as an example, potential backers of open bitstream fpga architectures 
should think long and hard. There is perceived value in having your hardware
designs distributed in a traditional confusticated form, produced and verified
by commodity toolchains (sim,syn,par, and timing).

Respectfully,...

Eric Pearson

Article: 52502
Subject: Einstein era>>the ultimate killer experiment! (do it your self instantaneous signal propagation above 40 x c speed )***************************
From: "Mathew Orman" <orman@nospam.com>
Date: Wed, 12 Feb 2003 02:26:56 +0100
Links: << >>  << T >>  << A >>
"Welcome to the machine............"


In this simple two part experiment you will demonstrate instantaneous
propagation of electric field gradient change.

Part A demonstrates instantaneous signal propagation over 2m long copper
wire.
Part B demonstrates signal propagation speeds 7 to 15 times faster than
speed of light using ordinary 50Ohm coax cable!

You need.....

One 2 m long pierce of bare copper wire 1.5 or 2mm diameter.
One 2 m long  pierce of 50Ohm coax cable.
One 50Ohm 0.5W resistor.
HP 33120A waveform generator with frequency set at 1MHz sin waveform 10Vp-p.
Oscilloscope HP 54602A or similar one.
Use 10X high impedance scope probes (standart).
Two peace of nylon string.


Part A.............................................................

Stretch horizontally the 2m copper wire across your room about 1m above the
floor
using two pierce of nylon stings as an insulators.

Connect Oscilloscope HP 54602A channel 1 to one end of the 2m copper
Connect  1MHz sin waveform 10Vp-p signal cable to the same end that channel
1 probe connects.
Connect the ground lead of channel 1 scope probe with the ground lead of
1MHz sin waveform 10Vp-p cable.
Set the scope trigger source on channel 1.

Connect channel 2 probe to the other end of 2m copper wire using the tip
only, the ground tip
should hang loose.
The scopes time base should be set to max speed which is 2ns/div (large grid
and 100ps small) for the
HP 54602A scope.
Also stretch the vertical signals on bough channels using the gain function.

You should see no delay at all at any point on the 2m wire.
Switch the hookup position of the channel 2 probe to verify any delay.
Remember not to touch the copper wire with you hands or any metal objects.

Einstein claimed the electric field  propagates with speed of light  which
is about 1ns per 30 cm of the copper wire length.
Your calculated delay should be about 6ns.

I did not see any delay at all!




Part B.............................................................

Connect 50Ohm resistor to one and of coax (one end of the resistor to coax
core and the other to coax shield)
Connect Oscilloscope HP 54602A channel 1 to the other end of the 2m coax
cable ( hot tip to coax core  and ground tip to coax shield)
Connect  1MHz sin waveform 10Vp-p signal cable to the same end that channel
1 probe connects ( hot tip to coax core  and ground tip to coax shield)
Connect Oscilloscope HP 54602A channel 2 to the end  that has 50 Ohm
resistor termination. ( hot tip to coax core  and ground tip to coax shield)

The scopes time base should be set to max speed which is 2ns/div (large grid
and 100ps small) for the
HP 54602A scope.
Also stretch the vertical signals on bough channels using the gain function.

You should observe about 10 ns delay between the two 1MHz sin waveforms.

Now disconnect the 50Ohm resistor and observe the delay.
There  delay now should be  from 400ps to 800ps dependent of quality of coax
that you have.

This correspond to the signal propagation speed 7 to 15 times faster than
speed of light!

According to Einstein it is not possible to ecocide the speed of light.

But I was able to do it in such a simple way!


Sincerely,


Mathew Orman
ps. Share this experiments with your colleagues and university professors
or any one that it interesting in the science of true physical reality!



Article: 52503
Subject: Re: Quartus / ModelSim
From: hmurray@suespammers.org (Hal Murray)
Date: Wed, 12 Feb 2003 03:20:21 -0000
Links: << >>  << T >>  << A >>
>Some would argue that if designs are properly synchronous and
>the static timing report is OK then post P+R simulation is
>not necessary.

You forgot the part about "Tools are bug free".

It's just CPU cycles rather that man-power.
Seems like a good investment.

-- 
The suespammers.org mail server is located in California.  So are all my
other mailboxes.  Please do not send unsolicited bulk e-mail or unsolicited
commercial e-mail to my suespammers.org address or any of my other addresses.
These are my opinions, not necessarily my employer's.  I hate spam.


Article: 52504
Subject: Newbie Starting Places + Books?
From: Matthew Fowle <thefowle@wam.umd.edu>
Date: Tue, 11 Feb 2003 22:29:33 -0500
Links: << >>  << T >>  << A >>
Been a long time microcontroller man, but I'd really like to start
getting into fpga's.  Can anyone recommend good starting places?  Good
books?

Thanks
Matt

Article: 52505
Subject: Re: Distributed RAM/ROM
From: chris.rosewarne@calyptech.com (Chris Rosewarne)
Date: 11 Feb 2003 21:22:01 -0800
Links: << >>  << T >>  << A >>
Hi,

To implement the ROMs you could also try instantiating the LUTs
manually and setting their INIT generic to the content of the ROM.

cheers,
Chris

"Norbert Hermann Pramstaller - nhp" <prammi@sbox.tugraz.at> wrote in message news:<3e496626$0$24278$3b214f66@aconews.univie.ac.at>...
> Hi all,
> 
> 
> 
> I work with the Spartan II and I need a small RAM (16x8). Due to the fact
> that one LUT  provides a 16x1 synchronous RAM I only need 8 LUTs (2 CLBs)
> for the 16x8 RAM. By using this distributed LUT RAM I have all on-chip Block
> RAMs unused and that's what I want. But now my question: "Do other FPGAs,
> e.g. Altera, also provide this kind of LUT based RAM or is this feature
> Xilinx specific?
> 
> 
> 
> Next I also need a ROM and as before I would like to implement it as a
> distributed ROM instead of using a Block RAM. During synthesis (ISE Webpack)
> XST detects the Rom but during optimization the ROM is replaced by Logic
> (MUXs). This depends on which values I define within the ROM. How can I turn
> off the optimisation for a single component in my VHDL code?
> 
> 
> 
> Has somebody experience with Dual Port RAMs? I heard that concurrent reading
> and writing from/to the same address is problematic (not for simulation but
> for implementation)?
> 
> 
> 
> Thx
> 
> 
> 
> -Norbert

Article: 52506
Subject: Re: Newbie Starting Places + Books?
From: Russell <rjshaw@iprimus.com.au>
Date: Wed, 12 Feb 2003 17:31:25 +1100
Links: << >>  << T >>  << A >>
Matthew Fowle wrote:
> Been a long time microcontroller man, but I'd really like to start
> getting into fpga's.  Can anyone recommend good starting places?  Good
> books?

Better to read data books and app.notes on smallish popular chips
such as spartan2, acex1k, 22v10 varieties etc, then find free tools
to download and try something out. You'll need books for learning
HDL such as VHDL/verilog. If you already can program s/w, it'll take
at least 3months to learn decent HDL implementation and know what
you're doing, and have your tools running right.


Article: 52507
Subject: Re: Einstein era>>the ultimate killer experiment! (do it your self instantaneous signal propagation above 40 x c speed )***************************
From: Bernhard Holzmayer <holzmayer.bernhard@deadspam.com>
Date: Wed, 12 Feb 2003 08:14:20 +0100
Links: << >>  << T >>  << A >>
Hi Mathew,

if that's a serious challenge, reproduce it with a single pulse 
generator, and come back here with your results.

if it's a joke (I hope so), I'll show you my favorite one
(I've received this from a mailing list, and I really like it :-))

Bernhard


This bloke is working on the buses and collecting tickets. He rings 
the
bell for the driver to set off when there's a woman half getting on 
the
bus. The driver sets off, the woman falls from the bus and is 
killed.
At the trial the bloke is sent down for murder and seeing as it's 
Texas
he's sent to the electric chair. On the day of his execution he's 
sat in
the chair and the executioner grants him a final wish.  "Well" says 
the
man, "is that your packed lunch over there?"
"Yes" answers the executioner.
"Can I have that green banana?"
The executioner gives the man his green banana and waits till he's
eaten it. When the man's finished, the executioner flips the switch 
sending hundreds of thousands of volts through the man.
When the smoke clears the man is still alive. The executioner can't
believe it.
"Can I go ?" the man asks.
"I suppose so" says the executioner, "that's never happened before."

The man leaves and eventually gets his job back on the buses selling
tickets. Again he rings the bell for the driver to go when people 
are 
still getting on. A man falls under the wheels and is killed. The 
bloke 
is sent down for murder again and sent to the electric chair. The 
executioner is determined to do it right this time so rigs the chair 
up to the electric supply for the whole of Texas. The bloke is again 
sat 
in the chair.
"What is your final wish ?" asks the executioner.
"Can I have that green banana in your packed lunch ?" says the 
condemned
man. The executioner sighs and reluctantly gives up his banana. The 
bloke
eats the banana all up and the executioner flips the switch.
Millions of volts course through the chair blacking out Texas. 
When the smoke clears the man is still sat there smiling in the 
chair.
The executioner can't believe it and lets the man go. 

Well, would you believe, the bloke gets his job back on the buses. 
Once again he rings the bell whilst passengers are still getting on, 
this time killing three of them. He is sent to the electric chair 
again.
The executioner rigs up all the worlds electricity to the chair, 
determined
to get his man this time. The man sits down in the chair smiling.
"What's your final wish ?" asks the executioner.
"Well" says the man, "Can I have that green banana out of your 
packed lunch."
The executioner hands over his banana and the man eats it all, skin 
included.
The executioner pulls the handle and a zillion million trillion 
volts go
through the chair. When the smoke rises the man is still sat there 
alive
without even a burn mark.
"I give up" says the executioner, "I don't understand how you can 
still be 
alive after all that?". He stroked his chin. "It's something to do 
with that 
green banana isn't it?" he asked.




(are you ready for this ...


.



.



.




.




.




.



"Nahh" said the bloke, "I'm just a really bad conductor."


+==================================================================+
 Phil Daly, NOAO/AURA, 950 N. Cherry Avenue, Tucson AZ 85719, U S A



-- 
before sending to the above email-address:
replace deadspam.com by foerstergroup.de

Article: 52508
Subject: Re: Virtex-II Pro PowerPC cache memory as main program/data storage?
From: Peter Ryser <ryserp@xilinx.com>
Date: Tue, 11 Feb 2003 23:22:05 -0800
Links: << >>  << T >>  << A >>
Valeri,

the instruction and data caches can be loaded with program and data
without the use of any BRAM or external memory if (and only if) you are
configuring through JTAG. In particular, you can build a system in which
you don't need to have any other memory to execute the program from or
store data in, i.e. your program can directly run out of the instruction
cache and stack, bss, and data is stored in the data cache.

Possible configuration solutions are System ACE CF or any other JTAG based
configuration solution as described in XAPP058.

How is it done? When you write your code you will have to include
information in the linker script where the instruction and data cache are
mapped in the memory space. You don't need to have physical memory in
these locations. When you use GDB to download the code, or when you
generate a SVF or ACE file with the tools included in V2PDK (Virtex-II Pro
developer's kit), GDB or the tools will recognize the mapping of the
caches and generate JTAG sequences that loads the instruction and data
cache. People who own V2PDK can have a look at source/sw/mapfiles/mapfile5
and source/sw/apps/xrom for an example of a linker script and a program
that is compiled and linked so that when loaded it directly runs out of
cache.

Currently, there is no way to include the cache contents in the bitstream
itself, i.e. there is no way to load the caches if you configure with
slave/master serial or slave/master selectmap.

This all sounds more confusing than it is. For the user it is a
transparent process. Map the code in the right location and everything
else will happen in the background.

- Peter


Valeri Serebrianski wrote:

> In Virtex-II Pro datasheet stated that PowerPC processor has 16 KByte
> of instruction and 16 KByte of data cache onboard. For my application
> that amount of memory is more than enough (processor speed is far more
> valuable).
> Is this possible to store both the program and data tables solely in
> those caches without any use of Virtex-II Pro SelectRAM or external
> RAM? It assumes that initial content for both caches will be stored in
> main Virtex-II Pro configuration RAM and will be loaded at startup.
>
> Valeri Serebrianski.


Article: 52509
Subject: Re: USB2 or firewire or 100Mb ethernet link to FPGA design
From: David A Hand <hand@corestar-corp.com>
Date: Wed, 12 Feb 2003 03:42:29 -0500
Links: << >>  << T >>  << A >>
Aurash,

Does Xilinx have a TCP/IP stack available for the Microblaze or did you use a
third party solution?

Thanks,

Dave

Aurash Lazarut wrote:

> Terry,
>
> You can use EDK ( embedded dev. kit) and spartan2e (xc2s400e or
> xc2s600e) and build a small system around MicroBlaze
> with Ethernet 10/100 MAC and use BRAM for the SW (tcp/ip stack) I've
> used this "receipe" and it works fine.
>
> Aurash
>
> "Theron Hicks (Terry)" wrote:
> >
> > Hi,
> >     I am looking at design upgrade of an existing instrumentation
> > project.  Currently the design talks over a high speed bus to a rather
> > expensive (~$1600 US) parrallel digital input board.  The data rate
> > would be on the order of 50M bits per second not including any
> > overhead.  I do not think I want to go to an all FPGA based solution.
> > Currently the FPGA in the system is the smallest Spartan2e series
> > device.  By the way, quantities are very small, on the order of less
> > than 50 pieces per year.
> >
> >     So here are my questions...
> >
> > 1.    Does anyone happen to know what the USB2 or firewire is rated for
> > in terms of the longest cable length?  I had thought USB2 was limited to
> > about 2 meters but I have seen USB cables about 5 meters long recently.
> > A longer length interconnect would appear to be desireable.  I know that
> > ethernet is good for several hundred meters.  That would be far beyond
> > my needs.
> >
> > 2.    Has anyone had any experience with either USB2 or 100mB or
> > firewire as an interconnect to an FPGA based design?
> >
> > 3.    Do you happen to have any recommendations as to a possible
> > off-the-shelf solution (either a small board or a 1 or two chip
> > solution, ideally something with a demo board available)?
> >
> > Thanks,
> > Theron Hicks
>
> --
>  __
> / /\/\ Aurelian Lazarut
> \ \  / System Verification Engineer
> / /  \ Xilinx Ireland
> \_\/\/
>
> phone:  353 01 4032639
> fax:    353 01 4640324


Article: 52510
Subject: Re: Newbie Starting Places + Books?
From: hmurray@suespammers.org (Hal Murray)
Date: Wed, 12 Feb 2003 09:05:45 -0000
Links: << >>  << T >>  << A >>
>> Been a long time microcontroller man, but I'd really like to start
>> getting into fpga's.  Can anyone recommend good starting places?  Good
>> books?

How much hardware background do you have?  If not much, then try to
find a friend who does know hardware to give you a quick lesson.
You need to understand the timing limitations - what setup, hold,
and prop times mean.  And about clock skew.  You can probably do
it in 10-30 minutes at a white board.  Work out a few examples,
like a counter or a state machine.  Figure out how fast they will
run.  (Look up the numbers for LS or HC chips.)


>Better to read data books and app.notes on smallish popular chips
>such as spartan2, acex1k, 22v10 varieties etc, then find free tools
>to download and try something out. You'll need books for learning
>HDL such as VHDL/verilog. If you already can program s/w, it'll take
>at least 3months to learn decent HDL implementation and know what
>you're doing, and have your tools running right.

Data sheets are good.  Modern FPGAs are very complicated.  22V10
or smaller CPLD might be a better place to start.

The older Xilinx data books (when they were actually paper books)
had a good intro section that explained some of the economics.

-- 
The suespammers.org mail server is located in California.  So are all my
other mailboxes.  Please do not send unsolicited bulk e-mail or unsolicited
commercial e-mail to my suespammers.org address or any of my other addresses.
These are my opinions, not necessarily my employer's.  I hate spam.


Article: 52511
Subject: Re: Quartus / ModelSim
From: "Arash Salarian" <arash dot salarian at epfl dot ch>
Date: Wed, 12 Feb 2003 10:34:09 +0100
Links: << >>  << T >>  << A >>
> You should be able to use the same testbench in Modelsim to
> test RTL and post P+R designs. The results should be
> identical. The post P+R simulations are an

Well, although it's principally correct, but basically it's not always the
case! In simulation a RTL design, you don't talk about time and timing, but
you just talk about clock events. Everything is propagated, computed,
generated in just some few simulation deltas.
In post P+R simulation, now, you face the time, timing and absolute times.
There are cases that you have to modify the testbench to conform to the
"valid" setup/hold times just as an example. Also, you may need to add much
more to the automatic verifications like to check for jitters and calculate
statistics on setup/hold times and more... Also you may as well need to
write different stimulus as now the should mimic real-world signals with
specific timings (like simulation the transactions of a bus).
All this depends on the problems in hand; but the moral of the story is that
the worlds of RTL and post P+R can be far and different worlds...

Best Regards
Arash



Article: 52512
Subject: Re: Multicontext FPGA
From: russelmann@hotmail.com (Rudolf Usselmann)
Date: 12 Feb 2003 03:24:01 -0800
Links: << >>  << T >>  << A >>
Christian Plessl <plessl@tik.ee.ethz.ch> wrote in message news:<3e47e49e@pfaff.ethz.ch>...
> Nicholas C. Weaver wrote:
> 
> > In article <b235lh$n01$03$1@news.t-online.com>,
> > Florian-Wolfgang Stock  <f.stock@tu-bs.de> wrote:
> >>S. Trimberger, D. Carberry, A. Johnson, J. Wong: A time-multiplexed
> >>FPGA. In "Proceedings of IEEE Workshop on FPGAs for Custom Computing
> >>Machines" (April 1997), pp. 22-28
> > 
> > This one, a Xilinx design for a multicontext XC4000, was basically
> > killed as a potential product because context switching draws a LOT of
> > power, especially in all the interconnect bits, and they envisionsed
> > multicontext being used to virtualize larger circuits.
> 
> Do you have any idea, why some multi-context devices are seem to consume a
> lot of power when context switching?
> 
> Any idea how the power dissipation related to context switching relates to
> the power consumed by a 'typical' user application? I understand that a
> context switch can potentially cause a lot of elements to switch at once,
> but also a user application might generate quit a lot of signal toggling.

The problem lies in changing the interconnect configuration during
a "context switch". To fully understand the details you need to look
at how those switches are implemented: typically some combination of
pass-gates and buffers. The characteristics are typically so, that
the actual signal propagation is quick (e.g. low resistance pass-gates
and very quick buffers), however the turn on and off time are relatively
slow. So what happens when you change the configuration ? Multiple pass
gates can be closed at the same time and drive different logic values
on the bus, creating a short. Count the nuber of interconnects and
possible shorts, even in the smallest FPGA, and it becomes clear why
you can cook coffee on them if constantly context switching. (I suspect
this is the same reason why the "power-on-current" requirement is so
high.)

Of course the idea of context switching programmable logic is not new,
I have worked on a proprietary "processor" that had 64 "time slices".
This was basically an FPGA type of structure with its inputs and outputs
going through a multilevel register file as well as to an IO ring. It
was meant to be used as the hart in a Hardware Accelerator, and burned
about 20 Watts each. (This was in 1995)

Regards,
rudi
------------------------------------------------
www.asics.ws   - Solutions for your ASIC needs -
FREE IP Cores  -->   http://www.asics.ws/  <---
-----  ALL SPAM forwarded to: UCE@FTC.GOV  -----



> Regrads,
>  Christian

Article: 52513
Subject: Floorplanning of design written in verilogHDL Designer question
From: "Peter Baltazarovic" <baltazarovic@"nospam"ncode.sk>
Date: Wed, 12 Feb 2003 13:04:10 +0100
Links: << >>  << T >>  << A >>
Hi,

    is it possible to floorplan design written in verilog/Mentor HDL
Designer? I use Leonardo for synthesis and Xilinx ISE 4.2 for
Transl/Map/P&R. My problem is that I have to add new functionality to
existing design (Spatan2-150 ) and I need to make existing design run
faster. The design takes now 80% of FPGA. I know that I can assign RLOCs to
instantiated components like LUTs, FFs, IOBs ... but how can I do this in
Verilog? Is there any way to tell P&R tools that:  "I want this 64x16 RAM to
be placed here and this counter there." ? I don't like the work that
automatical PAR does. And I noticed that it does different place each time i
PAR the design. I need to have control of PAR proces.

Can anybody help?


All answers are greatly appreciated.


Peter



Article: 52514
Subject: Re: USB2 or firewire or 100Mb ethernet link to FPGA design
From: Aurash Lazarut <aurash@xilinx.com>
Date: Wed, 12 Feb 2003 12:32:25 +0000
Links: << >>  << T >>  << A >>
David A Hand wrote:
> 
> Aurash,
> 
> Does Xilinx have a TCP/IP stack available for the Microblaze or did you use a
> third party solution?
> 
> Thanks,
> 
> Dave
> 
> Aurash Lazarut wrote:
> 
> > Terry,
> >
> > You can use EDK ( embedded dev. kit) and spartan2e (xc2s400e or
> > xc2s600e) and build a small system around MicroBlaze
> > with Ethernet 10/100 MAC and use BRAM for the SW (tcp/ip stack) I've
> > used this "receipe" and it works fine.
> >
> > Aurash
> >
> > "Theron Hicks (Terry)" wrote:
> > >
> > > Hi,
> > >     I am looking at design upgrade of an existing instrumentation
> > > project.  Currently the design talks over a high speed bus to a rather
> > > expensive (~$1600 US) parrallel digital input board.  The data rate
In EDK (embedded dev. kit) thre is library XilNet - with ethernet, +
TCP/IP (and UDP/IP of course)

Aurash

> > > would be on the order of 50M bits per second not including any
> > > overhead.  I do not think I want to go to an all FPGA based solution.
> > > Currently the FPGA in the system is the smallest Spartan2e series
> > > device.  By the way, quantities are very small, on the order of less
> > > than 50 pieces per year.
> > >
> > >     So here are my questions...
> > >
> > > 1.    Does anyone happen to know what the USB2 or firewire is rated for
> > > in terms of the longest cable length?  I had thought USB2 was limited to
> > > about 2 meters but I have seen USB cables about 5 meters long recently.
> > > A longer length interconnect would appear to be desireable.  I know that
> > > ethernet is good for several hundred meters.  That would be far beyond
> > > my needs.
> > >
> > > 2.    Has anyone had any experience with either USB2 or 100mB or
> > > firewire as an interconnect to an FPGA based design?
> > >
> > > 3.    Do you happen to have any recommendations as to a possible
> > > off-the-shelf solution (either a small board or a 1 or two chip
> > > solution, ideally something with a demo board available)?
> > >
> > > Thanks,
> > > Theron Hicks
> >
> > --
> >  __
> > / /\/\ Aurelian Lazarut
> > \ \  / System Verification Engineer
> > / /  \ Xilinx Ireland
> > \_\/\/
> >
> > phone:  353 01 4032639
> > fax:    353 01 4640324

-- 
 __
/ /\/\ Aurelian Lazarut
\ \  / System Verification Engineer
/ /  \ Xilinx Ireland
\_\/\/
 
phone:	353 01 4032639
fax:	353 01 4640324

Article: 52515
Subject: Re: Fast BlockRAM updates
From: Ray Andraka <ray@andraka.com>
Date: Wed, 12 Feb 2003 13:07:21 GMT
Links: << >>  << T >>  << A >>
John,

The issue only arises when the write data is different than the current data and
you are simultaneously reading the same location.  In the case where you are
writing garbage to your next write location until you have valid data, you
presumably have already finished with any valid reads of that location, and you
don't do any further valid reads at that location until after the write is
completed.

If you are holding the last write data and last write address going into the
BRAM, then the only real conflict with the read is on the first cycle that data
is getting written, and that is no different than when you use the enables.


John_H wrote:

> This is what I was referring to.
>
> For verilog type folks,
>
> always @(posedge clk)  // slower write performance due to .WE
> begin
>   reg_data_placed[15:0] <= in_data;
>   reg_addr_placed[7:0] <= in_addr;
>   write_ctrl <= in_data_valid;             // pipeline matching
>   if( write_ctrl )  mem[reg_addr_placed] <= reg_data_placed;
> end
>
> always @(posedge clk)  // faster write performance with "effective" write
> enable
> begin
>   if( in_data_valid )  reg_data_placed[15:0] <= in_data;
>   if( in_data_valid )  reg_addr_placed[7:0] <= in_addr;
>   mem[reg_addr_placed] <= reg_data_placed;
> end
>
> No garbage location required.  The concern I had was that the data bypass
> ciruitry might mess things up.
> From one port to the other, it probably doesn't care what the address on
> port A is when reading from port B as long as the clock to clock constraints
> are met.  If the address "goes away" on the other port, as long as the the
> old address is on the old clock and the new address is on the new clock and
> the old data stays the same, the old data will be read.  I don't know if
> this is guaranteed.  A garbage location would eliminate the match of a read
> address to the last-written write address many cycles before but I can get
> better utilization if the bypass works.
>
> I certainly won't try to read data that's freshly changing on the write port
> but I'd continue to write at the same port over and over even when reading
> the last value written (e.g. an empty FIFO condition).  I won't have an
> address match on the read and write when the value is first written, but I
> will afterwards and it's the behavior of the BlockRAM at this tail end I'm
> concerned about.
>
> "Nial Stewart" <nial@spamno.nialstewart.co.uk> wrote in message
> news:3e48c33f$0$29909$fa0fcedb@lovejoy.zen.co.uk...
> > Ray Andraka <ray@andraka.com> wrote in message
> > news:3E486125.AC4E29E3@andraka.com...
> > > That works just fine as long as you don't mind overwriting the data at
> the
> > > current address with garbage.  In FIFOs and other similar buffers this
> is
> > rarely
> > > a problem.  In random access buffers, you might need valid data present
> at
> > all
> > > normal write locations at all times, in which case you will need to
> either
> > use
> > > the enable ( :-( ) or you'll have to substitute an address where it is
> > > acceptable to push the garbage.
> >
> > Ray,
> >
> > You could also push the enabling back one level to a set of registers
> > which would store the last valid address/data combination.
> >
> >
> > Nial.
> >
> > ------------------------------------------------
> > Nial Stewart Developments Ltd
> > FPGA and High Speed Digital Design
> > www.nialstewartdevelopments.co.uk
> >
> >
> >
> >

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930     Fax 401/884-7950
email ray@andraka.com
http://www.andraka.com

 "They that give up essential liberty to obtain a little
  temporary safety deserve neither liberty nor safety."
                                          -Benjamin Franklin, 1759



Article: 52516
Subject: Re: Fast BlockRAM updates
From: Ray Andraka <ray@andraka.com>
Date: Wed, 12 Feb 2003 13:08:18 GMT
Links: << >>  << T >>  << A >>
This is only true if the write data is different than the current
contents.

RISC taker wrote:

> Well,
>
> there IS a hazard case in which it WILL go wrong:
>
> if one port is writing to an address, and the other port is reading
> from that same address at the same clock cycle (or shortly after), the
> reading port WILL read garbage.
>

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930     Fax 401/884-7950
email ray@andraka.com
http://www.andraka.com

 "They that give up essential liberty to obtain a little
  temporary safety deserve neither liberty nor safety."
                                          -Benjamin Franklin, 1759



Article: 52517
Subject: Re: Newbie Starting Places + Books?
From: Ray Andraka <ray@andraka.com>
Date: Wed, 12 Feb 2003 13:14:36 GMT
Links: << >>  << T >>  << A >>
Depends on your hardware background.  FPGA design _IS_ digital hardware
design, not programming.  if you don't have a hardware background, the first
step is learn about digital design.  There are important concepts to do with
timing, asynchronous operation, concurrency, etc that are quite foriegn to
the software world.  You can get lucky and  get something that works (at
least most of the time) without a firm basis, but you are alse very likely
to trip over one of these without even knowing it.  Most of these are not
covered or are covered fairly far into an entry level digital logic design
course, so you really need to go a little deeper than introductory level
learning.

Russell wrote:

> Matthew Fowle wrote:
> > Been a long time microcontroller man, but I'd really like to start
> > getting into fpga's.  Can anyone recommend good starting places?  Good
> > books?
>
> Better to read data books and app.notes on smallish popular chips
> such as spartan2, acex1k, 22v10 varieties etc, then find free tools
> to download and try something out. You'll need books for learning
> HDL such as VHDL/verilog. If you already can program s/w, it'll take
> at least 3months to learn decent HDL implementation and know what
> you're doing, and have your tools running right.

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930     Fax 401/884-7950
email ray@andraka.com
http://www.andraka.com

 "They that give up essential liberty to obtain a little
  temporary safety deserve neither liberty nor safety."
                                          -Benjamin Franklin, 1759



Article: 52518
Subject: Re: Fast BlockRAM updates
From: Philip Freidin <philip@fliptronics.com>
Date: Wed, 12 Feb 2003 14:19:59 GMT
Links: << >>  << T >>  << A >>
On Tue, 11 Feb 2003 00:21:29 GMT, "John_H" <johnhandwork@mail.com> wrote:
>I'm wondering: would there be any problems if - rather than using a trash
>location - the last address and data were just kept?  The .CEs on the CLB
>registers that feed the BlockRAM are easily manipulated.  Would I give
>myself any problems?

If the same data is written to a location (and the contents have
not been changed from the other port), then the location contents
do not change.

>My gut says it's fine but I worry that the logic that bypasses the portA .D
>input to the portB .Q output when the two port addresses match might get
>confused either by the nature of the bypass logic or - more probable - if
>the load address and data change away from the common value on the high
>speed write port around the clock edge of the lower speed read port.

What bypass logic are you talking about? in your HDL or in the
BRAM itself?  There is no such path in the BRAM, and there is
no address match logic in the BRAM either. The two ports are
totally independent, and only share the storage array. If a
location is being written with the same data as it already has,
a read on the other port will get the current contents regardless
of the relationship of the two clocks.

>Any thoughts or experiences would be appreciated.
>- John_H

Philip Freidin



Philip Freidin
Fliptronics

Article: 52519
Subject: Re: Fast BlockRAM updates
From: Philip Freidin <philip@fliptronics.com>
Date: Wed, 12 Feb 2003 14:30:48 GMT
Links: << >>  << T >>  << A >>
On 11 Feb 2003 05:04:35 -0800, RISC_taker@alpenjodel.de (RISC  taker) wrote:
>Well,
>
>there IS a hazard case in which it WILL go wrong:
>
>if one port is writing to an address, and the other port is reading
>from that same address at the same clock cycle (or shortly after), the
>reading port WILL read garbage.

Only if the contents is changing from one value to another.

>If you can guarantee that this never happens in your design, you have
>no problem :) I've designed a similar thing which is pipelined and you
>never know...
>
>Solutions:
>- this applies to Spartan-II. If you use Virtex-II instead, you can
>configure the RAM to "read first" mode. That way, you'll read the old
>data for one clock cycle, later the new data. Better than garbage :)

Woaaaa.  The "read first" only relates to reads on the same port as
the write is occuring on. The other port is totally independent
except for the storage array. (but see below for special case of
both ports using the same clock)

If the contents of a location are not changing (writing the same
data), a read on the other port will get the right value regardless
of timing between the two port clocks.

If the data is being written by one port to a new value, and the
other port does a read, then you may/will have problems.

If the two clocks are the same, then what you read on the
read port will depend on the "read first" control of the
write port (because this mode delays write while doing the read).
Otherwise you will get the new data.

If the two clocks are different, all bets are off. Old data,
new data, some bits old/new, bits in transition, etc. Indicative
of bad design if you depend on this to somehow "work".

>But Spartan-II RAMs don't support that feature.
>- you could build a logic that catches this hazard case and
>multiplexes the output. I once did this. It works fine, but in your
>case, having a dummy location for dump writing would probably be
>faster and require less logic.

This only works if both ports use the same clock. 

>Regards,
>Dennis


Philip


Philip Freidin
Fliptronics

Article: 52520
Subject: Re: Silly Quartus Question
From: ruthsims@hotmail.com (Ruth)
Date: 12 Feb 2003 07:35:04 -0800
Links: << >>  << T >>  << A >>
> Yes, I know what you mean and although you can move the label around, the
> pin stays on the side. Annoying.

......and what a daft way to design it :-)

> It's interesting that you use VHDL and graphical entry. This is the way I do
> designs as I like a graphical top level although I think it's not the done
> thing anymore (for some reason).

I think it makes it easier to see the structure of the design even
though its more time consuming, and in any case my project manager
wouldn't be happy without a picture.

> I'm glad your Quartus hangs up now and again as well. It's obviously not my
> fault! Maybe later versions will improve its reliability.
> 
> I'm having problems with simulation. Which simulator do you use?

Either Quartus for little bits and pieces or ModelSim for verifying
larger bits of code.

R

Article: 52521
Subject: Re: Multicontext FPGA
From: Austin Lesea <austin.lesea@xilinx.com>
Date: Wed, 12 Feb 2003 07:54:24 -0800
Links: << >>  << T >>  << A >>


Rudy,

It is sure amusing to read all of the conjectures.....

Now that we are designing our 12th generation FPGA, we are able to control current quite well,
thank you.

Note:  that is 12 successful FPGA designs.  You get pretty good at something when you work on
it for that long (and do some experimentation along the way).

Virtex II and Virtex II Pro have no current surge on power ON, as we found what causes that,
and addressed it.

As for multi-context FPGAs, they were simply killed by FPGAs with million+ "gates" (who needs
to switch?).  As well, with partial reconfiguration in Virtex II and II Pro, you can at any
time reconfigure parts and pieces (with no current issue).

Austin


Rudolf Usselmann wrote:

> Christian Plessl <plessl@tik.ee.ethz.ch> wrote in message news:<3e47e49e@pfaff.ethz.ch>...
> > Nicholas C. Weaver wrote:
> >
> > > In article <b235lh$n01$03$1@news.t-online.com>,
> > > Florian-Wolfgang Stock  <f.stock@tu-bs.de> wrote:
> > >>S. Trimberger, D. Carberry, A. Johnson, J. Wong: A time-multiplexed
> > >>FPGA. In "Proceedings of IEEE Workshop on FPGAs for Custom Computing
> > >>Machines" (April 1997), pp. 22-28
> > >
> > > This one, a Xilinx design for a multicontext XC4000, was basically
> > > killed as a potential product because context switching draws a LOT of
> > > power, especially in all the interconnect bits, and they envisionsed
> > > multicontext being used to virtualize larger circuits.
> >
> > Do you have any idea, why some multi-context devices are seem to consume a
> > lot of power when context switching?
> >
> > Any idea how the power dissipation related to context switching relates to
> > the power consumed by a 'typical' user application? I understand that a
> > context switch can potentially cause a lot of elements to switch at once,
> > but also a user application might generate quit a lot of signal toggling.
>
> The problem lies in changing the interconnect configuration during
> a "context switch". To fully understand the details you need to look
> at how those switches are implemented: typically some combination of
> pass-gates and buffers. The characteristics are typically so, that
> the actual signal propagation is quick (e.g. low resistance pass-gates
> and very quick buffers), however the turn on and off time are relatively
> slow. So what happens when you change the configuration ? Multiple pass
> gates can be closed at the same time and drive different logic values
> on the bus, creating a short. Count the nuber of interconnects and
> possible shorts, even in the smallest FPGA, and it becomes clear why
> you can cook coffee on them if constantly context switching. (I suspect
> this is the same reason why the "power-on-current" requirement is so
> high.)
>
> Of course the idea of context switching programmable logic is not new,
> I have worked on a proprietary "processor" that had 64 "time slices".
> This was basically an FPGA type of structure with its inputs and outputs
> going through a multilevel register file as well as to an IO ring. It
> was meant to be used as the hart in a Hardware Accelerator, and burned
> about 20 Watts each. (This was in 1995)
>
> Regards,
> rudi
> ------------------------------------------------
> www.asics.ws   - Solutions for your ASIC needs -
> FREE IP Cores  -->   http://www.asics.ws/  <---
> -----  ALL SPAM forwarded to: UCE@FTC.GOV  -----
>
> > Regrads,
> >  Christian



Article: 52522
Subject: Re: Quartus / ModelSim
From: ruthsims@hotmail.com (Ruth)
Date: 12 Feb 2003 07:56:58 -0800
Links: << >>  << T >>  << A >>
I take it that you have already tried to export your vwf files as a
vht file and used the vht file as the testbench in modelsim to get you
started?

Article: 52523
Subject: constant on maxplus
From: denisrabaste@voila.fr (denis.r)
Date: 12 Feb 2003 08:35:35 -0800
Links: << >>  << T >>  << A >>
hello everybody,

On the software maxplus+ II, I try to use the symbol "constant" of the
"maxplus2\max2lib\prim" library in a graphic description file (.gdf).

I give a name on the left of the symbol, CST for example, a value on
the right, 2 for example, and I try to affect the constant on an
output (output symbol of the prim library) named CST[3..0] to have 4
bits on this output.
The output is connected to a bus line named CST[3..0];

When I compil, I have always error message like "node missing name" or
"mismatch pinstub" etc..(I have tried serveral solutions).

What is the syntax for use this symbol (with the lpm_cosntant of lpm
library, there is no problem, but the software recommand "constant"
for a best fitting).

Thank you for your help.

Article: 52524
Subject: difficulty in designing butterfly processor
From: Kuan Zhou <zhouk@rpi.edu>
Date: Wed, 12 Feb 2003 12:01:54 -0500
Links: << >>  << T >>  << A >>
Hi,
   I am designing a butterfly processor.But the issue is the professor
wants to pipeline on each CLB stage so he can get the maximum speed.Since
butterfly processor is manily consisted of adders and multipliers,I have
to design the bit-level adder.The multiplier is made too big because the
clock rate is the propogation delay of a single CLB.Does anyone have any
suggestions?

   Thank you very much!

sincerely
-------------
Kuan Zhou
ECSE department





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