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 48650

Article: 48650
Subject: Re: Transferring Design from XILINX --> ALTERA
From: rrr@ieee.org (Rajeev)
Date: 22 Oct 2002 06:20:08 -0700
Links: << >>  << T >>  << A >>
Sven,

What is it you wish to accomplish by porting the design ?  
Are you targeting a specific device or family ?

-rajeev-

> "Sven T" <hw_engineer@NOSPAMgmx.net> wrote in message news:<ap0bk3$cjq$1@vistranem1.vi.vector.int>...
> > Hi there,
> > I have the following problem.
> > A partner firm has a design implemented on a XILINX Virtex XCV800.
> > The design is in VHDL and I want to check if this design can be ported to an
> > ALTERA.

Article: 48651
Subject: Re: 6502 core available
From: "David Betz" <dbetz@xlisper.mv.com>
Date: Tue, 22 Oct 2002 14:02:34 GMT
Links: << >>  << T >>  << A >>
If I click on the link:

bc6502-base.v (Reference version)

I get an error saying the URL does not exist.

"Rob Finch" <robfinch@sympatico.ca> wrote in message
news:dg2t9.2898$Kf.581559@news20.bellglobal.com...
> b.t.w I have verified the latest version of the t80 (z80) core at
> > www.opencores.org to be absolutely cycle accurate - at least for all the
> > code I have run on it so far - may have missed some though ;-)
> >
>
> Let's start a z80 vs 6502 war :)
>
> > > I would guess available as in "for license" as in for commercial
> payment.
>
> The core is available for free for individual use or evaluation purposes.
> Only commercial use requires a license.
> http://www.birdcomputer.ca/Projects/Prj6502/bc6502_page.html
> I assumed that people would be able to find this link, but maybe I need to
> organize my website a little better...
>
> > > Does this newsgroup allow commercial advertisements?  So... No it is
not
>
> Where do you find the rules of the newsgroup or any newsgroup ?
>
> Obviously, I should have put more detail in my original post.
>
> Rob
>
>
>



Article: 48652
Subject: slow slew rate signal...
From: "Leon de Boer" <ldeboer@attglobal.net>
Date: Tue, 22 Oct 2002 22:48:59 +0800
Links: << >>  << T >>  << A >>
I ran into a problem which drove me nuts but when I thought about it, it
made sense.

- I have a signal I am trying to monitor with a state machine
- The state machine runs at 25Mhz
- The signal to sample incoming comes through an opto coupler and has a slow
slew rate.
- If I sample the high slew clock at this fast rate the state machine
glitches.
- I understand (NOW!!) the state machine glitches because I sample while the
signal is in the undefined point anround half Vcc or whatever where the
input can't decided if it is low or high so sometimes 2 samples in here are
seen as high an low and thus my state machine glitches.

SOLUTIONS I CANT DO THAT WOULD WORK
1.) Put a schmidt trigger on the signal (requires board change)
2.) Slow the state machine down to go over the state machine

Can anyone think of a solution that I could implement in VHDL code so I
don't have to relay the board?

TIA Leon





Article: 48653
Subject: Re: Using MXE II starter as a restricted user
From: "Francisco Rodriguez" <prodrig@disca.upv.es>
Date: Tue, 22 Oct 2002 16:49:02 +0200
Links: << >>  << T >>  << A >>
Hi

Have you checked the log file permissions?
This file is updated while Modelsim is running.
Maybe a restricted account does not have write permissions on that file
and that confuses the daemon.

Regards
    Francisco Rodriguez
====================================================
Francisco Rodriguez Ballester (prodrig@disca.upv.es)
Dept. DISCA, EUI - Univ. Politecnica de Valencia
c/Camino de Vera s/n, E-46022, VALENCIA (SPAIN)
tlf: +(34) 96 387 75 77 - fax: +(34) 96 387 75 79
====================================================


"Kolja Sulimma" <kolja@bnl.gov> escribió en el mensaje
news:25c81abf.0210210939.1a50edd9@posting.google.com...
> I hope that somebody out there can help me with this installation
> issue:
>
> For a lab course I need ISE 5.1i to run on a student accessible PC.
> Everything works fine if one is loged into an administrator account.
> But when I try to start Modelsim from a restricted account I get a
> message:
> "Your evaluation license is no longer valid. If this has happened in
> error, please contact Model Technology Customer Support for
> assistance.
> Evaluation Error Code : 104"
>
> The licensing wizard tells me:
> "Your evaluation license has been invalidated because
> a text file necessary for licensing cannot be written.
> In order to continue with the evaluation of Modelsim you will need to
> correct the error, re-install the evaluation copy and re-request
> an evaluation license from Model Technology."
>
> Which is strange, because I do not use an evaluation license.
>
> I checked that the  LM_LICENSE_FILE variable for the user points to
> the same license file that the administrator uses.
>
> Of course I contacted modeltech support. They pointed me to the Xilinx
> US support who forward my request to the german support team who just
> don't have
> a clue. (I had to point out some related answers from their database
> before they agreed that apparently ISE is supposed to work for
> restricted users)
>
> So, anybody know which file permissions need to be changed to get this
> working?
>
> Thanks in advance,
>
> Kolja Sulimma



Article: 48654
Subject: Re: slow slew rate signal...
From: "Ansgar Bambynek" <a.bambynek_xxx_@avm.de>
Date: Tue, 22 Oct 2002 16:55:42 +0200
Links: << >>  << T >>  << A >>
Not absolutely sure what you mean by state machine glitches.
What is the slew rate of your incoming signal and what is the frequency of
this signal.
Additionaly I think you are facing a metastability problem.

If the frequency of your incoming signal is lower that the fsm's frequency
you can use a sync stage. Just use 2 ffs  in series to sample the incoming
data.
The output of your second ff can be used to feed the fsm. You can also use
these two ffs
for edge detection.

HTH

Ansgar

--
Attention please, reply address is invalid, please remove "_xxx_" ro reply


"Leon de Boer" <ldeboer@attglobal.net> schrieb im Newsbeitrag
news:3db567c7_3@news1.prserv.net...
> I ran into a problem which drove me nuts but when I thought about it, it
> made sense.
>
> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a
slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.
> - I understand (NOW!!) the state machine glitches because I sample while
the
> signal is in the undefined point anround half Vcc or whatever where the
> input can't decided if it is low or high so sometimes 2 samples in here
are
> seen as high an low and thus my state machine glitches.
>
> SOLUTIONS I CANT DO THAT WOULD WORK
> 1.) Put a schmidt trigger on the signal (requires board change)
> 2.) Slow the state machine down to go over the state machine
>
> Can anyone think of a solution that I could implement in VHDL code so I
> don't have to relay the board?
>
> TIA Leon
>
>
>
>



Article: 48655
Subject: Re: Nios and quartus linux version
From: "Mancini =?iso-8859-1?q?St=E9phane=22?= <stephane.mancini@inpg.fr>
Date: Tue, 22 Oct 2002 16:59:32 +0200
Links: << >>  << T >>  << A >>
Thanks for your responses.
As you said, it seems OK to run quartus under Linux. In fact, as we also
have Sun workstations, we are able to run it over the network.
Our main problem is the use of NIOS tools such as nios-run
with linux. How does it work to use the serial port
to communicate with the dev board over the serial link with 
a linux workstation ?
Thank you very much
Stephane

> I run Quartus using Mandrake 8.0.
> I have not run into many problems with Quartus for Linux, other than the
> windows that sometime dissapear (esp when opening a Megawizard function, for
> example).
> 


Article: 48656
Subject: Re: slow slew rate signal...
From: "Theron Hicks" <hicksthe@egr.msu.edu>
Date: Tue, 22 Oct 2002 11:09:41 -0400
Links: << >>  << T >>  << A >>
Leon,
    A few ideas...
1.     Can you oversample the data in some fashion and then look for more
that just 1 changed bit?
2.    Can you use a different type of opto-coupler such as one with either a
higher gain or a built-in Schmidt trigger?
3.    Depending on the configuration could you use a non-opto isolator such
as the iso-loop parts from nve corp? http://www.nve.com  (I have used these
at 100 megabaud and they are available from Digikey.  Cost seems to be
reasonable given Digikey as a distributor.)

Theron

"Leon de Boer" <ldeboer@attglobal.net> wrote in message
news:3db567c7_3@news1.prserv.net...
> I ran into a problem which drove me nuts but when I thought about it, it
> made sense.
>
> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a
slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.
> - I understand (NOW!!) the state machine glitches because I sample while
the
> signal is in the undefined point anround half Vcc or whatever where the
> input can't decided if it is low or high so sometimes 2 samples in here
are
> seen as high an low and thus my state machine glitches.
>
> SOLUTIONS I CANT DO THAT WOULD WORK
> 1.) Put a schmidt trigger on the signal (requires board change)
> 2.) Slow the state machine down to go over the state machine
>
> Can anyone think of a solution that I could implement in VHDL code so I
> don't have to relay the board?
>
> TIA Leon
>
>
>
>



Article: 48657
Subject: Re: slow slew rate signal...
From: Austin Lesea <austin.lesea@xilinx.com>
Date: Tue, 22 Oct 2002 08:10:28 -0700
Links: << >>  << T >>  << A >>
Leon,

You are completely correct in your assesment of what is happening.

One way to deal with slow rising signals that may have noise on them is to add
states to the state machine.  If it senses a 'high', it then goes to a "check
that it is really going high+1" state where on the next state machine clock, it
checks again to see if it is still high.  One might have to add as many as 128
checks (or more) for high, or low, depending on the state machine clock rate,
and the rise and fall times of the slow signal.

If any sample disagrees, then the state returns to the beginning where it starts
all over checking for a change.

Austin

Leon de Boer wrote:

> I ran into a problem which drove me nuts but when I thought about it, it
> made sense.
>
> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.
> - I understand (NOW!!) the state machine glitches because I sample while the
> signal is in the undefined point anround half Vcc or whatever where the
> input can't decided if it is low or high so sometimes 2 samples in here are
> seen as high an low and thus my state machine glitches.
>
> SOLUTIONS I CANT DO THAT WOULD WORK
> 1.) Put a schmidt trigger on the signal (requires board change)
> 2.) Slow the state machine down to go over the state machine
>
> Can anyone think of a solution that I could implement in VHDL code so I
> don't have to relay the board?
>
> TIA Leon


Article: 48658
Subject: Re: Newbie Questions - Jan Gray XSOC
From: Goran Bilski <Goran.Bilski@Xilinx.com>
Date: Tue, 22 Oct 2002 08:10:42 -0700
Links: << >>  << T >>  << A >>
Hi,

I can only agree with Ray.
My coding is mostly instanciation of Xilinx primitive surrounded with generate
statement and generics.

I have also found out that it takes me roughly 5-10 minutes to write the above
combined adder/mux using LUT,MUXCY,XORCY and generate statements.
It can take me almost a day trying to foul one synthesis tool to do the same and I
might have to redo that day when I change synthesis tool or get a new version.

I just want most result of the effort I put in my work and that's why roughly 90% of
MicroBlaze is directly instanciated Xilinx primitives.
What I also get by instanciating the primitives is a possibility of controlling the
placement, which is much tougher if you stick to RTL.
It's extremely easy to floorplan the above module and getting maximum performance.

Why only 90% not 100% in MicroBlaze?
Sometimes I know that even the stupidest synthesis tool can't go wrong and it's not
in a critical section.
Doing large boolean expression is faster in RTL and most synthesis tool can handle
that.

Göran

Ray Andraka wrote:

> Jan, Ralph,
>
> Long time ago we got tired of pushing on the rope for every design we did, so we
> went ahead and created a library of parameterized structurally instantiated
> things like d registers, various flavors of adders/subtractors, delay queues,
> etc.  Easy to do in VHDL with the generate statement, a real PITA in verilog
> without the v2000 extensions.  Because of some of the things like the generate,
> I have become something of a VHDL bigot so you'll have to excuse that.  Usually
> I could get the tools to behave with inferred stuff if I structured the
> inference to look like the hardware, something like this:
>
> neg_b<= b when sub='1' else not b;
> cin<= 1 when sub='1' else 0;
> sum_d<= a + neg_b+cin;
>
> The results vary by synth and version, but this structure seems to get there
> most of the time.
>
> Jan Gray wrote:
>
> > Ralph Mason wrote
> >
> > > 1.  As a learning process I have copped his adder, he says that it turns
> > > into 17 LUT's although mine ends up at 52 - Is there some optimizations I
> > am
> > > missing here? are there any pragmas you can use in these situations to say
> > > what you want? Can you get right down to the actual LUT level and connect
> > > them up yourself? Using the free Xilinx tools can you actually see the way
> > > it has connected the actual LUTs?
> >
> > First, congratulations on going to the trouble of actually looking under the
> > hood and *inspecting* what came out of your tools.  That is a very good
> > practice.
> >
> > Welcome to "pushing on a rope".  (fpgacpu.org/usenet/rope_pushing.html: "You
> > know exactly what you want -- a particular optimal, hand-mapped, hand-placed
> > layout for your datapath -- but the tools get in the way, and you spend
> > hours trying to discover an incantation that persuades the tools to emit the
> > desired result.")
> >
> > Here the goal was to generate a+b or a-b with cin and cout at a cost of one
> > LUT per bit.  The hardware is willing, but you will need to perform a bit of
> > experimentation to discover an expression that the synthesis tool will
> > repeatably synthesize into the desired hardware idiom.
> >
> > The construction you 'copped' did work for one version of some synthesis
> > tool once.  Of course that does not mean it works reliably across all tools
> > and all versions of all tools!
> >
> > I like John_H's suggestion -- it may succeed more often than the mux(+,-)
> > that I used.
> >
> > BTW IIRC in this specific instance it was also necessary to move the single
> > assignment into its own module -- the synthesis tool created the inefficient
> > mux(+, -) form if the assignment was inline in the parent module.
> >
> > > 2.  Floorplaning - Is there any info on this, it seems that you don't need
> > > to do it because the tools do it automatically, I am guessing sometimes
> > you
> > > can do it better yourself to give a faster device?  It looks like a
> > > laborious process - is it?
> >
> > It need not be laborious, but you have to learn the ropes.  It think we old
> > timers are fortunate because we grew up doing hierarchical schematics, and
> > so writing the same hierarchical structural HDL is familiar and natural.
> >
> > It is long past time I investigated how to do this with XST Verilog and
> > wrote it up for my site...
> >
> > > 3. General -  The CPU I want to design is a RISC / CISC design where a pre
> > > processor reads CISC instructions from ram and places RISC instructions
> > (or
> > > jumps to RISC subs) to do the same  them in an internal pipeline for a
> > RISC
> > > internal cpu ( or perhaps many instances of the same RISC cpu and a single
> > > pre processor to provide a kind of hardware multithreading) - Is there any
> > > notes on existing designs like this that one could read.
> >
> > Interesting.  If the "preprocessor" is hardware, this was done in e.g. Intel
> > P6, in the AMD K6, in some VAX implementations, and so forth.  If the
> > "preprocessor" is software, this was done in e.g. SoftWindows, Digital's
> > FX!32 and Transmeta. There's lots in the library (see e.g. IEEE Micro) and
> > in Google!  (Also time to update my resources/book section of my site.)
> >
> > Jan Gray, Gray Research LLC
>
> --
> --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: 48659
Subject: Re: slow slew rate signal...
From: Mike Treseler <mike.treseler@flukenetworks.com>
Date: Tue, 22 Oct 2002 08:36:08 -0700
Links: << >>  << T >>  << A >>
Leon de Boer wrote:


> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.


Consider synchronizing all inputs to the state machine to the 25Mhz clock.

     -- Mike Treseler




Article: 48660
Subject: Re: slow slew rate signal...
From: Peter Alfke <peter@xilinx.com>
Date: Tue, 22 Oct 2002 08:55:22 -0700
Links: << >>  << T >>  << A >>
I support Austin's idea of filtering the input signal with a digital low-pass
filter.
But there may also be another solution.
You don't like to add a Schmitt trigger because that would change the pc-board.

Well, it doesn't have to.
Depending on the output impedance of your optocoupler, you can achieve
Schmitt-trigger performance if you drive the input signal non-inverted back
onto the same pin. Make the output drive as week as you can ( 2 mA) which means
about 100 to 200 Ohm.
If the optocoupler output impedance is in the 50 to 100 Ohm range, you might
have a nice hysteresis on the input...

Peter Alfke
=================
Leon de Boer wrote:

> I ran into a problem which drove me nuts but when I thought about it, it
> made sense.
>
> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.
> - I understand (NOW!!) the state machine glitches because I sample while the
> signal is in the undefined point anround half Vcc or whatever where the
> input can't decided if it is low or high so sometimes 2 samples in here are
> seen as high an low and thus my state machine glitches.
>
> SOLUTIONS I CANT DO THAT WOULD WORK
> 1.) Put a schmidt trigger on the signal (requires board change)
> 2.) Slow the state machine down to go over the state machine
>
> Can anyone think of a solution that I could implement in VHDL code so I
> don't have to relay the board?
>
> TIA Leon


Article: 48661
Subject: Re: Newbie Questions - Jan Gray XSOC
From: Ray Andraka <ray@andraka.com>
Date: Tue, 22 Oct 2002 16:02:28 GMT
Links: << >>  << T >>  << A >>
Ours has a high degree of instantiation in stuff that gets used alot...adders, d
registers, delay queues etc are all 100%.   For less often used, I'll often use the D
register then use RTL to describe the LUTs in front of it and let the mapper worry about
placing them, and for some of the control logic I just go to an all RTL taking care to
keep the inputs to the logic in front each register to 4 or 5.  The motivation of course
is design turn time, which includes making the design hit the timing goals.  Once you
have a library of some of the basic stuff, putting together pretty complicated data
paths goes quite quickly, and in the end you have a placed component that you know has a
good shot of making timing and should be left alone by the tools.

Goran Bilski wrote:

> Hi,
>
> I can only agree with Ray.
> My coding is mostly instanciation of Xilinx primitive surrounded with generate
> statement and generics.
>
> I have also found out that it takes me roughly 5-10 minutes to write the above
> combined adder/mux using LUT,MUXCY,XORCY and generate statements.
> It can take me almost a day trying to foul one synthesis tool to do the same and I
> might have to redo that day when I change synthesis tool or get a new version.
>
> I just want most result of the effort I put in my work and that's why roughly 90% of
> MicroBlaze is directly instanciated Xilinx primitives.
> What I also get by instanciating the primitives is a possibility of controlling the
> placement, which is much tougher if you stick to RTL.
> It's extremely easy to floorplan the above module and getting maximum performance.
>
> Why only 90% not 100% in MicroBlaze?
> Sometimes I know that even the stupidest synthesis tool can't go wrong and it's not
> in a critical section.
> Doing large boolean expression is faster in RTL and most synthesis tool can handle
> that.
>
> Göran
>
> Ray Andraka wrote:
>
> > Jan, Ralph,
> >
> > Long time ago we got tired of pushing on the rope for every design we did, so we
> > went ahead and created a library of parameterized structurally instantiated
> > things like d registers, various flavors of adders/subtractors, delay queues,
> > etc.  Easy to do in VHDL with the generate statement, a real PITA in verilog
> > without the v2000 extensions.  Because of some of the things like the generate,
> > I have become something of a VHDL bigot so you'll have to excuse that.  Usually
> > I could get the tools to behave with inferred stuff if I structured the
> > inference to look like the hardware, something like this:
> >
> > neg_b<= b when sub='1' else not b;
> > cin<= 1 when sub='1' else 0;
> > sum_d<= a + neg_b+cin;
> >
> > The results vary by synth and version, but this structure seems to get there
> > most of the time.
> >
> > Jan Gray wrote:
> >
> > > Ralph Mason wrote
> > >
> > > > 1.  As a learning process I have copped his adder, he says that it turns
> > > > into 17 LUT's although mine ends up at 52 - Is there some optimizations I
> > > am
> > > > missing here? are there any pragmas you can use in these situations to say
> > > > what you want? Can you get right down to the actual LUT level and connect
> > > > them up yourself? Using the free Xilinx tools can you actually see the way
> > > > it has connected the actual LUTs?
> > >
> > > First, congratulations on going to the trouble of actually looking under the
> > > hood and *inspecting* what came out of your tools.  That is a very good
> > > practice.
> > >
> > > Welcome to "pushing on a rope".  (fpgacpu.org/usenet/rope_pushing.html: "You
> > > know exactly what you want -- a particular optimal, hand-mapped, hand-placed
> > > layout for your datapath -- but the tools get in the way, and you spend
> > > hours trying to discover an incantation that persuades the tools to emit the
> > > desired result.")
> > >
> > > Here the goal was to generate a+b or a-b with cin and cout at a cost of one
> > > LUT per bit.  The hardware is willing, but you will need to perform a bit of
> > > experimentation to discover an expression that the synthesis tool will
> > > repeatably synthesize into the desired hardware idiom.
> > >
> > > The construction you 'copped' did work for one version of some synthesis
> > > tool once.  Of course that does not mean it works reliably across all tools
> > > and all versions of all tools!
> > >
> > > I like John_H's suggestion -- it may succeed more often than the mux(+,-)
> > > that I used.
> > >
> > > BTW IIRC in this specific instance it was also necessary to move the single
> > > assignment into its own module -- the synthesis tool created the inefficient
> > > mux(+, -) form if the assignment was inline in the parent module.
> > >
> > > > 2.  Floorplaning - Is there any info on this, it seems that you don't need
> > > > to do it because the tools do it automatically, I am guessing sometimes
> > > you
> > > > can do it better yourself to give a faster device?  It looks like a
> > > > laborious process - is it?
> > >
> > > It need not be laborious, but you have to learn the ropes.  It think we old
> > > timers are fortunate because we grew up doing hierarchical schematics, and
> > > so writing the same hierarchical structural HDL is familiar and natural.
> > >
> > > It is long past time I investigated how to do this with XST Verilog and
> > > wrote it up for my site...
> > >
> > > > 3. General -  The CPU I want to design is a RISC / CISC design where a pre
> > > > processor reads CISC instructions from ram and places RISC instructions
> > > (or
> > > > jumps to RISC subs) to do the same  them in an internal pipeline for a
> > > RISC
> > > > internal cpu ( or perhaps many instances of the same RISC cpu and a single
> > > > pre processor to provide a kind of hardware multithreading) - Is there any
> > > > notes on existing designs like this that one could read.
> > >
> > > Interesting.  If the "preprocessor" is hardware, this was done in e.g. Intel
> > > P6, in the AMD K6, in some VAX implementations, and so forth.  If the
> > > "preprocessor" is software, this was done in e.g. SoftWindows, Digital's
> > > FX!32 and Transmeta. There's lots in the library (see e.g. IEEE Micro) and
> > > in Google!  (Also time to update my resources/book section of my site.)
> > >
> > > Jan Gray, Gray Research LLC
> >
> > --
> > --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

--
--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: 48662
Subject: CLK question for the VHDL daddy
From: "Brannon King" <bking@starbridgesystems.com>
Date: Tue, 22 Oct 2002 10:11:45 -0600
Links: << >>  << T >>  << A >>
I'm sorry if this has been posted before. I'm using Virtex2.

I have 600 input/output buffers that I want to run registered (ODFX and
OFDDRTCPE/IFDDRCPE). However, when I plug the CLK in that many places the
timing just goes all to heck. I tried running the clock through a BUFG
first, but the timing is worse off doing that than it was before. I tried
running the clock through a register itself like this:

yada: process(CLK) begin
    if(CLK'event) then
      if(CLK = '1') then newCLK = '1';
      elsif(CLK = '0') then newCLK = '0';
      end if;
    end if;
end process;

The timing came out great when I did that, but the program wouldn't work
then. I suppose that makes sense because my data coming in with the CLK
would probably be pushed out on the wrong cycle. I'm assuimg the registers
don't lose the 'pulse' effect of the CLK signal.

So my question: how do you clock 600 buffers and still meet the timing
constraints?



Article: 48663
Subject: Re: Xilinx logiCore PCIX controller issues w/ Virtex2
From: "Brannon King" <bking@starbridgesystems.com>
Date: Tue, 22 Oct 2002 10:18:32 -0600
Links: << >>  << T >>  << A >>
Some more on this issue:

It ended up that the unstability was caused by running the CLK pin too many
places. I cut those lines and things are running much better.



Article: 48664
Subject: Re: Decoupling BF957 Virtex II package
From: John_H <johnhandwork@mail.com>
Date: Tue, 22 Oct 2002 16:30:15 GMT
Links: << >>  << T >>  << A >>
Consider for a moment that the via grid under the part isn't a 31 square
solid grid, but four grids of about 15x16 vias.  In order to keep the
escapes for the outside pins going outside, the vias are going to spread
from the center.  This effectively leaves an unpopulated row of vias in a
32 square grid that splits the part in half both ways.  This is where
we'll put 0402 (or 0603) caps to decouple much of the power.  There are
also those who believe that the center ground vias don't have to all
radiate outward;  they make a square of vias in the center where the
ground vias radiate inward (fewer overall connections to the place)
leaving a ring around the center for these tiny caps.

If your slew rates and drive strengths aren't extreme, you might get away
with having the caps for VCCO around the periphery instead of "within" the
part.  The overall effect would be - I expect - a degredation of the
Simultaneous Switching Output guidelines for the device.  Since slower
slew, lower drive signals have high SSO pin counts per power/ground, a
degradation here wouldn't be bad.  Just don't expect flawless operation if
you're pushing those SSO numbers.

There isn't complete agreement in the engineering community about what
really is necessary for decoupling, but good (closely spaced) power and
ground planes are an essential start both for the very high frequency
distributed capacitance as well as the low impedance paths to the
decoupling caps.


Albert Ross wrote:

> The Xilinx guidelines recommend one HF cap per supply pin (VCCINT,
> VCCO, VCCAUX), yet the power pins are mostly in the centre of the
> chip. Assuming one via per pin, how have people managed to place
> decouplers close to these pins on the underside of the board to
> minimise trace length? Is it adequate to place the decouplers around
> the periphery of the chip, or is the only solution to use buried /
> blind vias with caps underneath the chip?
> Having viewed the recommended standard routing diagrams in the Virtex
> II databook it shows there is no unused area in the centre of the chip
> as there are in some of the BG packages for Virtex E.
> Has anyone got any words of wisdom?
> 'Bert Ross


Article: 48665
Subject: New brochure: KAP books on SOC and Design Reuse
From: vhdlcohen@aol.com (ben cohen)
Date: 22 Oct 2002 09:33:03 -0700
Links: << >>  << T >>  << A >>
FYI, 
Received new brochure from KluwerAcademic Publishers.  Link: 
  http://members.cox.net/vhdlcohen/vhdlcode/SOCbrochure.pdf

Hope you'll find it useful.
Ben

Article: 48666
Subject: Re: CLK question for the VHDL daddy
From: "Falk Brunner" <Falk.Brunner@gmx.de>
Date: Tue, 22 Oct 2002 18:52:47 +0200
Links: << >>  << T >>  << A >>
"Brannon King" <bking@starbridgesystems.com> schrieb im Newsbeitrag
news:3db5867f@news.splitrock.net...
> I'm sorry if this has been posted before. I'm using Virtex2.
>
> I have 600 input/output buffers that I want to run registered (ODFX and
> OFDDRTCPE/IFDDRCPE). However, when I plug the CLK in that many places the
> timing just goes all to heck. I tried running the clock through a BUFG
> first, but the timing is worse off doing that than it was before. I tried
> running the clock through a register itself like this:
>
> yada: process(CLK) begin
>     if(CLK'event) then
>       if(CLK = '1') then newCLK = '1';
>       elsif(CLK = '0') then newCLK = '0';
>       end if;
>     end if;
> end process;
>
> The timing came out great when I did that, but the program wouldn't work
> then. I suppose that makes sense because my data coming in with the CLK
> would probably be pushed out on the wrong cycle. I'm assuimg the registers
> don't lose the 'pulse' effect of the CLK signal.
>
> So my question: how do you clock 600 buffers and still meet the timing
> constraints?

By doing it just right.

signal data_internal : std_logic_vector (599 downto 0);

process(clk)
begin
  if clk='1' and clk'event then
    data_internal <= data_from_outside;
  end if;
end process;





Article: 48667
Subject: Re: slow slew rate signal...
From: "Falk Brunner" <Falk.Brunner@gmx.de>
Date: Tue, 22 Oct 2002 19:01:09 +0200
Links: << >>  << T >>  << A >>
"Peter Alfke" <peter@xilinx.com> schrieb im Newsbeitrag
news:3DB574EB.3286B6B4@xilinx.com...
> I support Austin's idea of filtering the input signal with a digital
low-pass
> filter.

I would go for the digital low pass filter. Make a shift register, lets say
4 bits. Shift you input sinal into this register. Then another (5th)
FlipFLop is loaded with '1', when the register is "1111", and with "0" wheh
the register is "0000", all other codes of the register leave the state of
the FlipFlop unaltered.

In VHDL this looks like this.

signal shift : std_logic_vector (3 downto 0);
signal clean_input : std_logic;

process(clk25MHz)
begin
  if clk25MHz=1 and clk25MHz'event then
    shift <= shift(2 downto 0) & data_from_opto;
    if shift="0000" then
      clean_signal <='0';
    elsif shift="1111" then
       clean_signal <= '1';
    end if;
  end if;
end process;

The shift register should be long enough to cover the whole rise/fall time
of the signal, e.g. if the rise/fall time is 1us (sloooooow), then it must
be 25 stages (if you run @25 MHz)

--
MfG
Falk





Article: 48668
Subject: Silly Virtex 2 Pro question...
From: nweaver@ribbit.CS.Berkeley.EDU (Nicholas C. Weaver)
Date: Tue, 22 Oct 2002 17:06:48 +0000 (UTC)
Links: << >>  << T >>  << A >>
The Xilinx Answer Record states that the RocketI/Os on the V2Pro have
been tested and verified to work with 1000BASE-SX (fiber Gb ethernet,
multimode fiber).

The media for 1000BASE-T however is a 4 pair differential signaling,
rather than the serial send/receive of the fiber standards.

Are there low cost solutions for driving 1000BASE-T ethernet using the
RocketI/Os?

-- 
Nicholas C. Weaver                                 nweaver@cs.berkeley.edu

Article: 48669
Subject: Re: CLK question for the VHDL daddy
From: "Brannon King" <bking@starbridgesystems.com>
Date: Tue, 22 Oct 2002 11:14:48 -0600
Links: << >>  << T >>  << A >>
> By doing it just right.
>
> signal data_internal : std_logic_vector (599 downto 0);
>
> process(clk)
> begin
>   if clk='1' and clk'event then
>     data_internal <= data_from_outside;
>   end if;
> end process;

I understand that the above code would do a fine job of instantiating normal
buffers.

So if I have 10 sets of 32pins that all need to be R/W DDR (=640 buffers)
with T plugged into a separate input (I also have C0 => CLK, C1 => not CLK),
how would I declare them as such in one big chunk without manually declaring
the components and plugging the CLK into all of them? Is that what you are
inferring I should do?



Article: 48670
Subject: Buy fpga
From: minosss@yahoo.com (Javier Garcia)
Date: 22 Oct 2002 10:15:23 -0700
Links: << >>  << T >>  << A >>
Someone know  where to buy fpga (Xilinx,Altera) in quantities of 1 to 5
in Mexico or Usa ??

thanks in advance

Article: 48671
Subject: Altera FPGA and EPLD Download ByteBlaster
From: minfordtec@aol.com (James Wang)
Date: 22 Oct 2002 10:32:33 -0700
Links: << >>  << T >>  << A >>
Hi,

We are making Download ByteBlasterMV for Altera FPGA and EPLD
configuration/programming. It's reliable, affordale and suitable for
PLD development and somebody who want's to learn PLD. Details please
check at: http://www.minford.ca.

Minford Technology

Article: 48672
Subject: clock divider
From: "Jamie Morken" <jmorken@shaw.ca>
Date: Tue, 22 Oct 2002 18:08:36 GMT
Links: << >>  << T >>  << A >>
Hi,

I am building a circuit that requires a 120MHz clock and a 24MHz clock and
they also need to be synchronous.  Is there a "divide by 5" clock divider
chip I could use to get the synchronous 24MHz clock from the 120Mhz clock?

cheers,
Jamie Morken



Article: 48673
Subject: Re: slow slew rate signal...
From: Jim Granville <jim.granville@designtools.co.nz>
Date: Wed, 23 Oct 2002 07:40:30 +1300
Links: << >>  << T >>  << A >>
Leon de Boer wrote:
> 
> I ran into a problem which drove me nuts but when I thought about it, it
> made sense.
> 
> - I have a signal I am trying to monitor with a state machine
> - The state machine runs at 25Mhz
> - The signal to sample incoming comes through an opto coupler and has a slow
> slew rate.
> - If I sample the high slew clock at this fast rate the state machine
> glitches.
> - I understand (NOW!!) the state machine glitches because I sample while the
> signal is in the undefined point anround half Vcc or whatever where the
> input can't decided if it is low or high so sometimes 2 samples in here are
> seen as high an low and thus my state machine glitches.

 Correct - when running state machines from async IPs ( including those 
with perfect rise times ) it is important to avoid aperture effects,
where more than one State Bit depends on the IP at a given time.
 Whilst it is possible to code such state machines, it can be much
simpler to add at least one syncronising flip-flop to the IP.
 
 An additional voting noise filter can help, esp if the state engine
actually
has a MIN HI or LOW requirement - many do, and you should check what
your
effective Fmax IP is, and design a noise filter/vote scheme to keep
under that.

 The Shift register + Sticky Bit filter idea already proposed is a good
one.

> 
> SOLUTIONS I CANT DO THAT WOULD WORK
> 1.) Put a schmidt trigger on the signal (requires board change)
> 2.) Slow the state machine down to go over the state machine
> 
> Can anyone think of a solution that I could implement in VHDL code so I
> don't have to relay the board?

 For testing, add a Schmitt to the path 
( eg Schmitt opto H11L1/better, or TinylLogic 1G17 ) and check 
it actually works 100.00%
 Apply the coding changes, until it worka 100.00%, then remove the
schmitt,
and check it is still OK.

-jg

Article: 48674
Subject: Re: clock divider
From: Peter Alfke <peter@xilinx.com>
Date: Tue, 22 Oct 2002 11:46:50 -0700
Links: << >>  << T >>  << A >>
Any programmable device can divide 120 MHz by five inside the chip.
Xilinx Virtex devices have a built-in delay-locked loop (DLL) circuit that
can divide the clock by 5 ( and also many other values) and guaranteed that
the 24 MHz output edges are synchronous and coincident ( within <100 ps) with
the incoming 120 MHz rising clock edge.
Without using the DLL or DCM your derived clock will trail the input clock by
1 to 2 ns. (clock-to-Q plus some routing)

Peter Alfke, Xilinx Applications.
======================
Jamie Morken wrote:

> Hi,
>
> I am building a circuit that requires a 120MHz clock and a 24MHz clock and
> they also need to be synchronous.  Is there a "divide by 5" clock divider
> chip I could use to get the synchronous 24MHz clock from the 120Mhz clock?
>
> cheers,
> Jamie Morken




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