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 61500

Article: 61500
Subject: Re: Xilinx courses
From: "Vinh Pham" <a@a.a>
Date: Mon, 06 Oct 2003 08:42:29 GMT
Links: << >>  << T >>  << A >>
> Well, we didn't do the latter.  We did the former.  And, when a student
> asked about how to use the phase shifter clock input there was no answer.

Perhaps a part of the registration process should require the students to
email the teacher a list of their most important questions, or list what
they're hoping to learn.  Then the teacher can say,  "No, you won't get what
you want from my class, so save your money and time," or "Yes, I'll be able
to answer that at the class.  I look forward to seeing you there."  Then the
teacher can better prepare the class to suit the needs of the students.

Good point about efficiency.  Of course if you put 10 Virtex-II Pros in each
of your products, you might have enough volume to get a dedicated FAE ;_)

--Vinh



Article: 61501
Subject: Should I worry about metastability
From: geschemann@yahoo.fr (Guy Eschemann)
Date: 6 Oct 2003 01:44:54 -0700
Links: << >>  << T >>  << A >>
Hi,
I need to synchronize an incoming 27MHz signal (50% duty cycle) with
an internal clock running at 108Mhz (which is 27*4, but the signals do
not have a known phase relationship). The target technology is Spartan
II-E.

Is a simple 2-stage DFF synchronizer a safe way to handle this ? (I
remember a Xilinx article stating that metastability can be ignored
for clock rates < 200MHz).

Many thanks,
Guy.

Article: 61502
Subject: Re: Should I worry about metastability
From: "Simon Peacock" <nowhere@to.be.found>
Date: Mon, 6 Oct 2003 22:33:38 +1300
Links: << >>  << T >>  << A >>
I don't think you can ever ignore metastability.  It will get up and bite
you if you do.

Simon


"Guy Eschemann" <geschemann@yahoo.fr> wrote in message
news:b9f16a5b.0310060044.4f3f135@posting.google.com...
> Hi,
> I need to synchronize an incoming 27MHz signal (50% duty cycle) with
> an internal clock running at 108Mhz (which is 27*4, but the signals do
> not have a known phase relationship). The target technology is Spartan
> II-E.
>
> Is a simple 2-stage DFF synchronizer a safe way to handle this ? (I
> remember a Xilinx article stating that metastability can be ignored
> for clock rates < 200MHz).
>
> Many thanks,
> Guy.



Article: 61503
Subject: Re: Should I worry about metastability
From: "Vinh Pham" <a@a.a>
Date: Mon, 06 Oct 2003 09:42:06 GMT
Links: << >>  << T >>  << A >>
Quick question, is your 27 MHz signal a single bit line or a bus?

If it's a single bit, I was taught that 2 stage FFs was "good enough," but I
think it depends on how you're planning to use that single bit line.  Is it
merely some sort of status flag thing?  It's not a data stream is it?

Now if your 27 MHz signal is a bus, then you should consider using an
asynchronus fifo (which I think Coregen has a core for that, or if not, i'm
sure there's a reference design on Xilinx's website).  The problem with
using 2 stage FFs with a bus is that some bits might go metastable, and get
delayed one cycle, while others don't, so the bits on your bus get
misaligned.  For example, if you have a 4-bit bus that transitions from a
0x0 to an 0xF, on the 108 MHz side you might see it go from 0x0 to 0xE then
finally to 0xF.

One important thing to keep in mind is that even if you have two "seperate"
"single bit" signals coming in, you might have to treat them as a bus if
they are related to each other.  Again, it depends on how you're planning to
use them.


--Vinh



Article: 61504
Subject: Re: Memory Handling in Altera Cyclone devices
From: "Simon Peacock" <nowhere@to.be.found>
Date: Mon, 6 Oct 2003 22:48:31 +1300
Links: << >>  << T >>  << A >>
I believe the aclr just clears the output latch.

In a FIFO it will also reset the counters.  This is as good as clearing the
ram as the FIFO will only output data it has already stored.

In a ram you will need a state machine to clear the entire memory... that is
unless you can handle unwritten locations.

You might, however, be able to set up the ram as dual port.. one port with
the 1kx4 or whatever you want, the other set to maximum width.. say 256x16.
This means it can be cleared in a minimum of 256 clocks instead of 1024.

Am not sure about the Cyclone.. BUT with the Xilinx it is only the output
latch of the ram that is cleared.. this means the ram always returns 0x00
until it is released.. but you can still write to it.. this means you can
background clear it while appearing to be clear on the second port.

Someone might be able to say if this is true for the Cyclone too but I
believe from what I have read it is so.


Simon


"Vazquez" <andres.vazquez@gmx.de> wrote in message
news:eee19a7a.0310052333.cb7e111@posting.google.com...
> Hello Mr Leventis,
>
> you said that to clear memory I have to iterate through it and write 0s.
> In Cyclone Devices there is the possibility to create FIFO and RAM
structures
> by using the MegaWizard Manager. By doing so there is a signal called
'aclr'.
> What function does this signal have in
> a) FIFOs
> b) RAMs    ?
> Is the content of the memory set to 0 or only the surrounding registers?
>
> Thank you very much
>
> Kind regards
> Andrés Vázquez
> G&D System Development
>
>
> "Paul Leventis" <paul.leventis@utoronto.ca> wrote in message
news:<rgAeb.22504$lKj.10858@news04.bloor.is.net.cable.rogers.com>...
> > Hi Andres,
> >
> > The problem isn't your "writing" signal -- it is the asynchronous
clearing
> > of the memory.  Memories are not clearable -- if you want to clear your
> > memory, you must do so by iterating through it and writing 0s.
> >
> > Regards,
> >
> > Paul Leventis
> > Altera Corp.
> >
> >
> >
> > "Vazquez" <andres.vazquez@gmx.de> wrote in message
> > news:eee19a7a.0310010044.249af36e@posting.google.com...
> > > Dear Mr Leventis,
> > >
> > > thank you for your answer.
> > >
> > > The problem of the QuartusII-Software-Compiler seems to be
> > > the recognition of RAM-structures.
> > > The following source code is synthesized using memory bits
> > > when the signal writing is not used.
> > > When the signal writing is used then QuartusII tries to synthesize
> > > it without any memory bits.
> > > Where could be the problem in the use of the signal writing?
> > >
> > > Kind regards
> > > Andrés
> > > G&D System Development - FPGA design
> > >
> > >
> > > -------------------------------------------------
> > > -------------------------------------------------
> > > LIBRARY ieee;
> > > USE ieee.std_logic_1164.ALL;
> > >
> > > PACKAGE test_ram_package IS
> > >
> > >    CONSTANT ram_width : INTEGER := 8;
> > >    CONSTANT ram_depth : INTEGER := 2048;
> > >
> > >    TYPE word IS ARRAY(0 to ram_width - 1) of std_logic;
> > >    TYPE ram IS ARRAY(0 to ram_depth - 1) of word;
> > >    SUBTYPE address_vector IS INTEGER RANGE 0 to ram_depth - 1;
> > >
> > >    CONSTANT xram_width : INTEGER := 12;
> > >    CONSTANT xram_depth : INTEGER := 16;
> > >
> > >    TYPE xword IS ARRAY(0 to xram_width - 1) of std_logic;
> > >    TYPE xram IS ARRAY(0 to xram_depth - 1) of address_vector;
> > >    SUBTYPE xaddress_vector IS INTEGER RANGE 0 to xram_depth - 1;
> > >
> > > END test_ram_package;
> > >
> > > LIBRARY ieee;
> > > USE ieee.std_logic_1164.ALL;
> > > USE ieee.std_logic_arith.ALL;
> > > USE ieee.std_logic_unsigned.ALL;
> > > USE work.test_ram_package.ALL;
> > >
> > >
> > > ENTITY test_inferred_ram IS
> > >    PORT
> > >    (  --reset  : IN   std_logic;
> > >       clock1 : IN   std_logic;
> > >       clock2 : IN   std_logic;
> > >       data   : IN   word;
> > >       write_address: IN  address_vector;
> > >       read_address:  IN  xaddress_vector;
> > >   write_xaddress : IN xaddress_vector;
> > >   xdata : IN address_vector;
> > >       we     : IN   std_logic;
> > >       q      : OUT  word
> > >    );
> > > END test_inferred_ram;
> > >
> > > ARCHITECTURE rtl OF test_inferred_ram IS
> > >
> > >
> > >    SIGNAL ram_block : RAM;
> > >    SIGNAL xram_block : XRAM;
> > >    SIGNAL read_address_reg : xaddress_vector;
> > >    SIGNAL writing : std_logic;
> > >
> > > BEGIN
> > >
> > >    PROCESS (clock1)
> > >    BEGIN
> > >       --IF reset='1' then
> > >       --   ram_block <= (others => (others=>'0'));
> > >       --   xram_block <= (others=>0);
> > >       --   writing <= '0';
> > >       IF (clock1'event AND clock1 = '1') THEN
> > >          IF (we = '1' and writing='0') THEN
> > >             ram_block(write_address) <= data;
> > > xram_block(write_xaddress) <= xdata;
> > > writing <= '1';
> > >      ELSIF (we='1' and writing='1') then
> > >            ram_block(write_address) <= data;
> > >    xram_block(write_xaddress) <= xdata;
> > >    writing <= '0';
> > >          END IF;
> > >       END IF;
> > >    END PROCESS;
> > >
> > >    PROCESS (clock2)
> > >    BEGIN
> > >       IF (clock2'event AND clock2 = '1') THEN
> > >          q <= ram_block(xram_block(read_address_reg));
> > >          read_address_reg <= read_address;
> > >       END IF;
> > >    END PROCESS;
> > >
> > > END rtl;



Article: 61505
Subject: Re: Should I worry about metastability
From: "Vinh Pham" <a@a.a>
Date: Mon, 06 Oct 2003 10:04:22 GMT
Links: << >>  << T >>  << A >>
> (I remember a Xilinx article stating that metastability can be ignored
> for clock rates < 200MHz).

It might be a good idea to see what situation that < 200 MHz thing applies
to.

Metastability can happen at any frequency.  Say you have just a 1 Hz signal
that you're resynching to just a 2 Hz clock.  If the phase relationship is
just right, your FFs can go metastable all the time.

Besides, bugs caused by metastability are a pain to track down.  If you're
unlucky, they'll occur with the customer's equipment, but not with the one
in your lab.  Worse yet, when you pay to ship the customer's equipment back
to your lab, the bug mysteriously disappears.  Prevention is far more
valuable than a cure, in this case.  :_)

--Vinh



Article: 61506
Subject: Re: Host-PCI Bridge
From: Mario Trams <Mario.Trams@informatik.tu-chemnitz.de>
Date: Mon, 06 Oct 2003 12:19:41 +0200
Links: << >>  << T >>  << A >>
naveen wrote:

> Hi,
>    But if the host frequency is different from pci frequency we need
> to keep asynchronous fifo, i guess. Am i true? In that case do we need
> totally 4 fifos?

Yes, asynchronous clocks complicate the design substantially,
especially in view of metastability issues.

But two buffers (one upstream and one downstream) should be 
sufficient. The only thing you have to take care for is to 
avoid deadlock-conditions during simultaneous access-attempts
from both sides.

> Also, can i get any document of implementation for host-pci bridge on
> net? I searched but unable to find out.

I don't know whether there is a documentation as such available.
However, a host bridge is not some general thing as it's requirements
depend heavily on the host bus. Consider to have a look inside the 
PCI-to-PCI bridge spec. There you might find important hints for 
general bridge design. 

> In case of configuration transactions in host-pci bridge how will be
> the flow?

Actually, there is no special requirement. The PCI spec (2.1s) specifies
two modes for "normal" PC systems: A mode with a few control registers 
(easy to implement) and a mode with IO-mapping (a little bit more
difficult). But generally it is left open how one implements a 
mechanism for generating those transactions.

Regards,
Mario

Article: 61507
Subject: Re: Digesting runs of ones or zeros "well"
From: Magnus Homann <d0asta@mis.dtek.chalmers.se>
Date: 06 Oct 2003 13:58:05 +0200
Links: << >>  << T >>  << A >>
hmurray@suespammers.org (Hal Murray) writes:

> >I overuse the syn_keep attribute and I hate the idea of instantiating
> >LUTs.  My Carnot skills aren't exactly used regularly.
> 
> Are Carnot skills needed?

Not unless you're building a heat engine out of your FPGA...

Homann
-- 
Magnus Homann, M.Sc. CS & E
d0asta@dtek.chalmers.se

Article: 61508
Subject: Re: Timing from 1x to 2x and back
From: Brian Drummond <brian@shapes.demon.co.uk>
Date: Mon, 06 Oct 2003 12:58:40 +0100
Links: << >>  << T >>  << A >>
On Mon, 6 Oct 2003 09:27:25 +0200, "Morten Leikvoll"
<m-leik@online.nospam> wrote:

>My collegue and I discussed how our placer (xilinx's) handled going from 1x
>clocks to 2x clocks and back. (These have of course common rising edge)
>
>For this example I use a 100Mhz clock and a 200Mhz clock:
>
>There are 3 ways of doing this:
>
>1 (based on the timing of the previous ff's output )

>2 (based on the input timing) 

>3 (based on the lowest delay of input and previous output) 

>How DOES the placer tool handle this?

How about...

4. Based on your own explicit timing constraints, defined in the UCF
file, applied to TIMEGRPs defined by you, to include all the
domain-crossing signals?

- Brian


Article: 61509
Subject: Re: Interesting article about FPGAs
From: Brian Drummond <brian@shapes.demon.co.uk>
Date: Mon, 06 Oct 2003 12:58:46 +0100
Links: << >>  << T >>  << A >>
On Sun, 05 Oct 2003 17:52:58 GMT, "Martin Euredjian"
<0_0_0_0_@pacbell.net> wrote:

>"Paul Leventis" wrote:
>
>I appreciate your opinion.  And thanks for jumping in.
>
>> I must say, as an FPGA software developer I disagree with most of what you
>> have to say.  Altera (and I'm sure Xilinx too) has 100's of sw engineers
>> banging on the software at any given time.
>
>Somehow I have more faith in third parties doing a better job.  

>> Now, you can argue this means we've brought the software up to "adequate"
>> levels.  But then why would we be constantly adding new features and
>> improving tool quality?  We feel the competitive pressure -- even in a
>> two-horse race you have to gallop as fast as you can.
>
>But you still only have two horses.  How many people tried to build a
>powered flying machine?  People with lots of money and resources failed
>miserably.  Yet, a couple of bicycle makers hell-bent to make it happen did.

As a couple of bicycle makers, we can tap into (for Xilinx anyway)
pretty much every detail of the design with or without placement and
routing information, using XDL format (is XDL still supported in the
latest tool chain?), which is plain text and doesn't look too difficult
to parse. 

Therefore the way is open to us to develop hierarchical floorplanning or
advanced routing tools, using XDL format, converting between NCD and XDL
to go to and from the Xilinx toolchain. 

The last little step, the fairly mechanical conversion of NCD to
bitstream, remains under Xilinx control for reasons/excuses (according
to POV) that have been discussed here before. But that's not the
"interesting" part of the problem, where performance can be won or lost.

So far, I haven't seen any great rush to use this facility, and (cough)
haven't had/made/found any time to do so myself...

- Brian

Article: 61510
Subject: Re: Timing from 1x to 2x and back
From: "Morten Leikvoll" <m-leik@online.nospam>
Date: Mon, 6 Oct 2003 14:04:04 +0200
Links: << >>  << T >>  << A >>
"Brian Drummond" <brian@shapes.demon.co.uk> skrev i melding
news:87m2ovk1sgk2acqt19s6udrbg8uu57adi4@4ax.com...
> How about...
>
> 4. Based on your own explicit timing constraints, defined in the UCF
> file, applied to TIMEGRPs defined by you, to include all the
> domain-crossing signals?

That was the solution, but still I'd like to know how it's done without
manually placing the constraint.




Article: 61511
Subject: Re: Timing from 1x to 2x and back
From: Marc Randolph <mrand@my-deja.com>
Date: Mon, 06 Oct 2003 12:11:06 GMT
Links: << >>  << T >>  << A >>
Morten Leikvoll wrote:
> My collegue and I discussed how our placer (xilinx's) handled going from 1x
> clocks to 2x clocks and back. (These have of course common rising edge)
> 
> For this example I use a 100Mhz clock and a 200Mhz clock:
> 
> There are 3 ways of doing this:
> 
> 1 (based on the timing of the previous ff's output ) Signals coming from 1x
> to 2x will be routed with max 10ns delay. This means that you can not tell
> wether the signal will appear at the 2x at the 5ns or 10ns rising 2x clock.
> 
> 2 (based on the input timing) Signals coming from 2x to 1x will be routed
> with max 10ns delay. This means that the output can sometimes skip the first
> 1x edge.
> 
> 3 (based on the lowest delay of input and previous output) This works, but
> my collegue claims this tool doesn't do it this way. Can anyone confirm this
> is the case?
> 
> How DOES the placer tool handle this?

Howdy Morten,

Ask your colleague how would he would be able to guarantee the design to 
work under all conditions if you have the situations described in 
options 1 and 2.  Especially if there is more than the bus taking part 
in the domain crossing.

The answer, of course, is option 3.  But you don't have to take my word, 
or the word of anyone else.  It is easy to set this up yourself in a 
couple lines of code, run it through PAR, and then run timing analyzer 
on it.

Have fun,

    Marc


Article: 61512
Subject: Re: Should I worry about metastability
From: Philip Freidin <philip@fliptronics.com>
Date: Mon, 06 Oct 2003 12:25:26 GMT
Links: << >>  << T >>  << A >>
On 6 Oct 2003 01:44:54 -0700, geschemann@yahoo.fr (Guy Eschemann) wrote:
>Hi,
>I need to synchronize an incoming 27MHz signal (50% duty cycle) with
>an internal clock running at 108Mhz (which is 27*4, but the signals do
>not have a known phase relationship). The target technology is Spartan
>II-E.

See Vinh's response in regard to whether this 27MHz thing is one
or more signals.

For a better understanding on Metastability, I recommend:

   http://www.fpga-faq.com/FAQ_Pages/0017_Tell_me_about_metastables.htm

>Is a simple 2-stage DFF synchronizer a safe way to handle this ?

This MAY be sufficient. The primary requirement is that there be
maximum possible slack time in the path between the two FFs that
make up your synchronizer. At 108MHz, the cycle time is about 9.25ns.

If the first FF has a clock to output delay of .5 ns, and the second
FF has an input setup time of .5 ns, and the max delay of the routing
between them is 1ns, then you have a slack of 7.25ns.

A 3 stage synchronizer would effectively have double this slack time
(2 x 7.25ns) , but would add another cycle of latency.

If you don't control the routing delay, your efforts may be wasted.

For example, if you set a the timespec to 9ns for this path, the
current Xilinx router will stop optimizing the path as soon as it
has met this requirement, and you will have a miserable synchronizer
because the slack time will be far less than 7.25 ns. Maybe as
little as .25ns . 
 
You need to set specific timespecs that cover this critical path,
and set it far more aggressively than the clock frequency would
indicate. I would recommend a target of 3 ns for the path, which
if the spec is met, will give you at least 6 ns of slack.

The most useful thing you can do to help the tools is to put
placement constraints on the two FFs of the synchronizer, and
place them in the same CLB. This makes it far easier to meet the
aggressive timespec that you must also specify.


>(I remember a Xilinx article stating that metastability can be ignored
>for clock rates < 200MHz).

This is NEVER (absolutely, categorically NEVER) true. (can you remember
which article you saw this in? 

>Many thanks,
>Guy.

Well designed synchronizers are your friend!

Philip




Philip Freidin
Fliptronics

Article: 61513
(removed)


Article: 61514
Subject: Re: MicroBlaze size
From: antti@case2000.com (Antti Lukats)
Date: 6 Oct 2003 05:34:47 -0700
Links: << >>  << T >>  << A >>
jon@beniston.com (Jon Beniston) wrote in message news:<e87b9ce8.0310030831.39ab6933@posting.google.com>...
> Goran Bilski <goran@xilinx.com> wrote in message news:<blj44a$hht2@cliff.xsj.xilinx.com>...
> > Hi,
> > 
> > The register file is included in that number.
> > 
> > Göran
> 
> Thanks. One other question, is it a pure RTL design or does it
> instantiate Xilinx specific primitives? Ditto for NIOS?

it is 99.99 xilinx stuff inside, and its all encrypted files so you cant
even see whats inside.

NIOS is on demand generated by a large PERL framework called Europe,
get Alter EPP (Embedded Processor Portfolio) and dig into the PERL
sources if interested in deepinfo :)

antti

Article: 61515
Subject: Re: Xilinx S3 I/O robustness question
From: lecroy7200@chek.com (lecroy)
Date: 6 Oct 2003 05:52:11 -0700
Links: << >>  << T >>  << A >>
It appears that Xilinx does not care to discuss their models.

rickman <spamgoeshere4@yahoo.com> wrote in message news:<3F7B1765.D691F1C5@yahoo.com>...
> lecroy wrote:
> > > Look at the IBIS simulation at the output pin to see what the voltage excursions are, an be sure they stay
> > > within the specifications sheet and user's guide.
> > 
> > Well, not like Mr. Pease, I have always been a big user of simulation
> > as one tool.  Certainly, not the last tool and I don't see it
> > replacing the VNA any time soon as a way to get the 'real' picture of
> > what is going on.  But the question I always have when some one throws
> > out the simulation card is how good is your model.  When Xilinx
> > released the IBIS models for the S3, how much data was it based upon?
> > Have they continued to update the model as parts are being tested?
> > How much do you trust it?
> 
> That is a *very* important question.  We have seen the timing files go
> through iteration after iteration of refinement.  At what point can be
> believe that the IBIS models will be stable?  
> 
> 
> > > If you have a specific waveform, you may email it to me directly, and I will get the "final word" from the
> > > designers and technology groups.
> > 
> > Do I have a specific waveform, no.  I am asking a general question
> > about the S3.  Just how sensitive it really is and what precautions do
> > I need to take to make it work.  Because each layout is different, the
> > loading can be anything if you consider all of the failure modes.
>  
> -- 
> 
> Rick "rickman" Collins
> 
> rick.collins@XYarius.com
> Ignore the reply address. To email me use the above address with the XY
> removed.
> 
> Arius - A Signal Processing Solutions Company
> Specializing in DSP and FPGA design      URL http://www.arius.com
> 4 King Ave                               301-682-7772 Voice
> Frederick, MD 21701-3110                 301-682-7666 FAX

Article: 61516
Subject: synplify vqm not able to fit in Quartus
From: stenasc@yahoo.com (Bob)
Date: 6 Oct 2003 05:57:19 -0700
Links: << >>  << T >>  << A >>
Hi,

I am trying to fit this particular design. I run Synplify Pro to map
the device.
In Synplify, with mapping logic to atoms turned on, the design won't
fit so I disable mapping logic to atoms and can get the design to fit
(63 % of device)
onto the device....see log file from synplify below. 

However, when I try to place and route the device in Quartus III, it
cannot fit.
Quartus uses the same project directory as Synplify so it has access
to all constraints and tcl files. Can anybody shed any light on this
subject. I have used Synplify in conjunction with Quartus before and
the resource useage results
from both are nearly always about the same. Why the large discrepency
?

Do I manually need to read in some tcl files or have I forgotten to
switch on
a particular option in Quartus ?

As always, thanks for any help
Bob






Found clock clk with period 33.3333ns
---------------------------------------
Resource Usage Report

Final cell packing will be performed by Max+plus II.
Please select a Logic synthesis style of "FAST" in Max+plus II.
The following resource values are estimates.

Design view:work.comms(comms_architecture)
Selecting part ep20k1000efc33-1

Logic resources:  24440 ATOMs of 38400 (63%)
Number of Nets:   190215
Number of Inputs: 1298480
Register bits:    14312 (4094 using enable)
Latch bits:      8106
ESBs:                0  (0% of 160)
I/O cells:       0

Details:
AND2:           8298
INV1:           3879
MUX1:           5834
SYNLPM_LAT1:    16356
S_DFF:          10218
S_DFFE:         4113
XOR2:           291
apex20k_lcell:  77185
apex20k_lcell_ff: 19
false:          7
inv:            9189
true:           7

Number of Inputs on ATOMs: 1298480
Number of Nets:   190215

Writing .vqm output for Quartus
Writing Cross reference file for Quartus to
c:\comms_vhdl\rev_1\comms.xrf
Mapper successful!
Process took 7284.92 seconds realtime, 7284.92 seconds cputime

Article: 61517
Subject: Re: Digesting runs of ones or zeros "well"
From: news@sulimma.de (Kolja Sulimma)
Date: 6 Oct 2003 06:16:49 -0700
Links: << >>  << T >>  << A >>
> > Two LUT's to look at two consecutive nibbles.
> > One LUT to AND the output of the above with the next most significant bit
> > (the ninth bit).
> > That's it.  Two levels.  24 LUT's.
> > Is that what you wanted?
> 
> Almost.  The LUTs can't look at full nibbles.  Since I need to make
> sure all bits are equal to each other, there's a "smear."  
You can look at nibbles without the smear.
If you know that all bits in each of the nibbles are equal you can
select one bit for each nibble as a representant and check whether the
nibbles are equal.

for each byte:
eq3210 <= '1' when data(3 downto 0) = "0000" or data(3 downto 0) =
"1111" else '0';
eq7654 <= '1' when data(7 downto 4) = "0000" or data(7 downto 4) =
"1111" else '0';
eq840  <= '1' when data(8)&data(4)&data(0) = "000" or
data(8)&data(4)&data(0) = "111" else '0';
run_found <= eq3210 and eq7654 and eq840;

That's three lut's and a carry chain or four luts in two levels of
logic.


Kolja Sulimma

Article: 61518
Subject: Re: Should I worry about metastability
From: "Paul Leventis" <paul.leventis@utoronto.ca>
Date: Mon, 06 Oct 2003 13:41:54 GMT
Links: << >>  << T >>  << A >>
As Vinh says, once you have more than one related signal that you need to
synchronize, the two flop method breaks down.  Have look at the following
tutorial/paper that describes various ways to handle asynchronous design.
I've posted it before, but it never hurts to do so again...

www.sunburst-design.com/papers/CummingsSNUG2001SJ_AsyncClk_rev1_1.pdf

- Paul Leventis
Altera Corp.



Article: 61519
Subject: Re: synplify vqm not able to fit in Quartus
From: "Subroto Datta" <sdatta@altera.com>
Date: Mon, 06 Oct 2003 13:47:49 GMT
Links: << >>  << T >>  << A >>
Bob,
    I assume the first experiment was run with Quartus II 2.2 (the one where
it fit without atoms), and the second one was in Quartus II 3.0. As a rule
of thumb using the atom (vqm) netlist  should give fairly close results in
the two versions of Quartus, assuming you are optimizing for area (lcell
count) or speed in both cases inside Quartus.

You may want to run one more experiment. Use the vqm netlist, and in Quartus
II 3.0

1. Set WYSIWYG Primitive resynthesis (aka atom resynthesis) to on. You can
do this from the Assignments->Settings->Compiler Settings->Netlist
Optimizations dialog. This will make Quartus take the vqm netlist, convert
it to a gate level netlist and synthesize it further.

2. Next set the Optimization Technique to Area. You can do this from the
Assignments->Settings->Default Logic Option Settings->Optimization
Technique -  APEX20K/APEX20K... to Area.

3. Set Register Packing to off. You can do this from the
Assignments->Settings->Default Logic Option Settings->Auto Packed Register
Settings list box. Register Packing can sometimes hurt fiting in the APEX
architectures.

4.Compile this design with Quartus II 3.0 and check the results.

If this works turn off the setting in Step 1 and follow recompile the
design.


- Subroto Datta
Altera Corp.

"Bob" <stenasc@yahoo.com> wrote in message
news:20540d3a.0310060457.37847daf@posting.google.com...
> Hi,
>
> I am trying to fit this particular design. I run Synplify Pro to map
> the device.
> In Synplify, with mapping logic to atoms turned on, the design won't
> fit so I disable mapping logic to atoms and can get the design to fit
> (63 % of device)
> onto the device....see log file from synplify below.
>
> However, when I try to place and route the device in Quartus III, it
> cannot fit.
> Quartus uses the same project directory as Synplify so it has access
> to all constraints and tcl files. Can anybody shed any light on this
> subject. I have used Synplify in conjunction with Quartus before and
> the resource useage results
> from both are nearly always about the same. Why the large discrepency
> ?
>
> Do I manually need to read in some tcl files or have I forgotten to
> switch on
> a particular option in Quartus ?
>
> As always, thanks for any help
> Bob
>
>
>
>
>
>
> Found clock clk with period 33.3333ns
> ---------------------------------------
> Resource Usage Report
>
> Final cell packing will be performed by Max+plus II.
> Please select a Logic synthesis style of "FAST" in Max+plus II.
> The following resource values are estimates.
>
> Design view:work.comms(comms_architecture)
> Selecting part ep20k1000efc33-1
>
> Logic resources:  24440 ATOMs of 38400 (63%)
> Number of Nets:   190215
> Number of Inputs: 1298480
> Register bits:    14312 (4094 using enable)
> Latch bits:      8106
> ESBs:                0  (0% of 160)
> I/O cells:       0
>
> Details:
> AND2:           8298
> INV1:           3879
> MUX1:           5834
> SYNLPM_LAT1:    16356
> S_DFF:          10218
> S_DFFE:         4113
> XOR2:           291
> apex20k_lcell:  77185
> apex20k_lcell_ff: 19
> false:          7
> inv:            9189
> true:           7
>
> Number of Inputs on ATOMs: 1298480
> Number of Nets:   190215
>
> Writing .vqm output for Quartus
> Writing Cross reference file for Quartus to
> c:\comms_vhdl\rev_1\comms.xrf
> Mapper successful!
> Process took 7284.92 seconds realtime, 7284.92 seconds cputime



Article: 61520
Subject: Re: Digesting runs of ones or zeros "well"
From: johnhandwork@mail.com (John_H)
Date: 6 Oct 2003 06:52:21 -0700
Links: << >>  << T >>  << A >>
"Morten Leikvoll" <m-leik@online.nospam> wrote in message news:<5z9gb.28389$os2.397003@news2.e.nsc.no>...
> I just started reading this thread.. Am I correct if you really want to
> detect 9 EQUAL bits in a row from a stream?
> Could you not do this just with a 4bits counter and a comparator/zero
> detector?

Correct, I need "equal" bits, either 9'h000 or 9'h1ff, starting from
0, 8, 16, ... 56.

The input is 65 bits per clock with a fast clock, output from BlockRAM
which was loaded at full width.

Counters require more than one clock.

Article: 61521
Subject: Re: Should I worry about metastability
From: geschemann@yahoo.fr (Guy Eschemann)
Date: 6 Oct 2003 06:57:57 -0700
Links: << >>  << T >>  << A >>
My 27 MHz signal is a single bit line, not a bus.
Actually it is the clock line for an 8-bit video data stream. My
problem is to synchronize this incoming data stream with the 108MHz
system clock.

I know I could be using an asynchronous FIFO for this, but this might
be overkill. In order to save resources, wouldn't it be better to
synchronize the 27 MHz clock with my system clock (2-stage pipeline
should do the job), then use some logic to detect the appropriate edge
and use the output of the edge detector as a clock enable signal for
the input data FFs, which are clocked by the system clock ?

Regards,
Guy.


"Vinh Pham" <a@a.a> wrote in message news:<ONagb.26378$Ak3.15511@twister.socal.rr.com>...
> Quick question, is your 27 MHz signal a single bit line or a bus?
> 
> If it's a single bit, I was taught that 2 stage FFs was "good enough," but I
> think it depends on how you're planning to use that single bit line.  Is it
> merely some sort of status flag thing?  It's not a data stream is it?
> 
> Now if your 27 MHz signal is a bus, then you should consider using an
> asynchronus fifo (which I think Coregen has a core for that, or if not, i'm
> sure there's a reference design on Xilinx's website).  The problem with
> using 2 stage FFs with a bus is that some bits might go metastable, and get
> delayed one cycle, while others don't, so the bits on your bus get
> misaligned.  For example, if you have a 4-bit bus that transitions from a
> 0x0 to an 0xF, on the 108 MHz side you might see it go from 0x0 to 0xE then
> finally to 0xF.
> 
> One important thing to keep in mind is that even if you have two "seperate"
> "single bit" signals coming in, you might have to treat them as a bus if
> they are related to each other.  Again, it depends on how you're planning to
> use them.
> 
> 
> --Vinh

Article: 61522
Subject: Problem with PCI cards
From: irum4@yahoo.com (irum4)
Date: 6 Oct 2003 07:35:10 -0700
Links: << >>  << T >>  << A >>
I have developed the PCI-device for which it is necessary 128 bytes of
ports of input-output, 512 Kb of memory and one interrupt.
When I install 4 devices simultaneously, BIOS allocates for them
necessary resources, windows 98 allocates resources only for 3
devices.
And Windows XP at all it does not want to be loaded ("Blue screen"
before installation of drivers).

Article: 61523
Subject: Re: Should I worry about metastability
From: Marc Randolph <mrand@my-deja.com>
Date: Mon, 06 Oct 2003 14:46:22 GMT
Links: << >>  << T >>  << A >>
Guy Eschemann wrote:

> My 27 MHz signal is a single bit line, not a bus.
> Actually it is the clock line for an 8-bit video data stream. My
> problem is to synchronize this incoming data stream with the 108MHz
> system clock.
> 
> I know I could be using an asynchronous FIFO for this, but this might
> be overkill. In order to save resources, wouldn't it be better to
> synchronize the 27 MHz clock with my system clock (2-stage pipeline
> should do the job), then use some logic to detect the appropriate edge
> and use the output of the edge detector as a clock enable signal for
> the input data FFs, which are clocked by the system clock ?

At the risk of proposing something you've already thought of, is there 
really no way to use the 108 MHz clock in the FPGA as the source of the 
27 MHz clock that video data source uses, so that there is a known phase 
relationship between the two?  If you can swing that, they'll be in the 
same domain and all you have to worry about is a non-varying setup time.

    Marc


Article: 61524
Subject: Re: Xilinx courses
From: Austin Lesea <Austin.Lesea@xilinx.com>
Date: Mon, 06 Oct 2003 07:47:54 -0700
Links: << >>  << T >>  << A >>
Theron, Martin,

We have a number of folks actively researching this issue,  The class mentioned
turns out to be one of the most popular (from what the surveys from the attendees
say), and the one that gets very high marks from the attendees also.

The instructor has taught this (as well as other courses) for 6 years, and also gets
very high marks in his reviews.

It is extrememly important to us to discover what happened in this case, as it seems
very unusual, and not in keeping with the survey results, and comments from other
attendees.

One bad review posted here does a lot of damage:  and we are concerned especially
when we have hundreds of glowing reviews for the same class/instructor!

Austin


"Theron Hicks (Terry)" wrote:

> I agree with Martin!  I can't speak for the classes, but the rest is definitely
> true.  I hope someone at Xilinx is listening.  There is no doubt (at least in my
> mind) that Xilinx has some great FPGAs, etc.  The software seems to be fairly
> well done, although it could use some improvement.  The area of improvement is
> in simple, useable documentation.  If I need to check three or for different
> areas for a full picture of what it taakes to get a job done, can you at least
> create a link between the areas.  Xilinx could save a bundle in tech support, if
> they would just improve the documentation.  It might even get them a few more
> customers.  It generally is not a good idea to PO the customer.  (Usually Xilinx
> does not do that.)
>
> Theron Hicks
>
> Martin Euredjian wrote:
>
> > Maybe so.  Hart to tell at this point.  Certainly the material in the book
> > would open the door to very interesting and useful discussion of advanced
> > topics, none of which were explored, some were recited, others skipped over.
> >
> > I think there are two groups within your company that might need a flame
> > (not a match) lit under their chairs:  web design and
> > education/documentation.
> >
> > The website can be incredibly retarded and just not up to par with what good
> > website design folks can do today.  Sure, it's expensive to hire these heavy
> > hitters, but Xilinx can afford it.
> >
> > I only have one sample of the education group's output and, as you learned,
> > they didn't put on a good show as far as I am concerned.
> >
> > I think there are huge gaping holes in the available documentation and
> > devices are getting increasingly more complex.  I think there's a need to
> > address this --by experts, not fresh grads-- and it's not being done.
> >
> > Some of these topics might include floorplanning, design optimization,
> > timing optimization, FPGA Editor, design flow optimization and automation
> > (XFLOW, scripting, command-line tricks, etc.).  I'm not talking about being
> > able to download a document describing the various available timing
> > constraints, for example, but a practical, in-the-trenches set of docs
> > treating these topics in order to support designers in both adopting and
> > succesfully utilizing these devices in an already difficult marketplace.
> >
> > Within the next few months I'll probably have a need to hire a couple of
> > FPGA/Embedded guys, and the realization that I can't seem to rely on even
> > sending them to a manufacturer-provided course in order to enhance their
> > ability to generate accurate designs that perform well is what triggered
> > some of my concern.
> >
> > Still, this is not a Xilinx putdown but rather costructive criticism.  I
> > love the chips and will probably continue to use them for a long time.  I
> > have over half a dozen high-performance imaging products in the works and,
> > at this point, all of them have Xilinx FPGA's in them.
> >
> > --
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Martin Euredjian
> >
> > To send private email:
> > 0_0_0_0_@pacbell.net
> > where
> > "0_0_0_0_"  =  "martineu"
> >
> > "Austin Lesea" <Austin.Lesea@xilinx.com> wrote in message
> > news:3F7DB8E8.A11339E0@xilinx.com...
> > > Martin,
> > >
> > > I am sorry you had a bad experience.
> > >
> > > I will ask about it.  I had heard from others that this particular course
> > was a
> > > good one (some of my own staff have taken it), so I am hoping that your
> > > experience was not the course, but perhaps the instructor (still
> > unfortunate,
> > > and not acceptable).
> > >
> > > Austin
> > >
> > > Martin Euredjian wrote:
> > >
> > > > I recently took the "Advanced FPGA Implementation (v6)" Instructor-Led
> > > > Course and came out of it with a fair bit of dissappointment.  I don't
> > want
> > > > to engage in Xilinx-bashing but it bothers me that the course was simply
> > not
> > > > worthy of the title it was given.
> > > >
> > > > The only reason I might get something out of it will be because I will
> > pour
> > > > over the 500 page book on my own and experiment for many, many hours.
> > The
> > > > class boiled down to a bunch of slides (a very small subset of the book,
> > > > maybe 20%) being read out loud with a degree of re-interpretation.  The
> > labs
> > > > were based on an obscure design that was not introduced at all.  So, all
> > you
> > > > could do in the alloted time was type from the book like a robot and
> > move
> > > > on.  No real learning took place there.
> > > >
> > > > I took the course because, after a two-year effort --starting from
> > scratch--
> > > > to learn FPGA's, I thought that an advanced course taught by an expert
> > in
> > > > the field would be a great way to take my skills up a notch or two.  I
> > > > needed to get to that proverbial last few percent and, frankly, I also
> > felt
> > > > stuck with regards to timing optimization, floorplanning and other
> > advanced
> > > > areas.  I thought that an "advanced" course would be taught by a peer
> > who'd
> > > > offer the sort of insight that only comes from significant experience in
> > the
> > > > field and, yes, inside information.  That is certainly not what
> > happened.  I
> > > > can read slides just as well as the next guy.  I don't need to pay
> > $1,000,
> > > > travel and burn two days' work to endure that experience.
> > > >
> > > > So, I wonder.  Was this a fluke?  Are the other coursed different,
> > better,
> > > > worst?  Are Altera's courses better?  It seems that Xilinx contracts out
> > the
> > > > trainig to a third party (a company called "Technically Speaking".  I
> > heard
> > > > that Altera chooses to use insiders.  Is this true?  Does it make a
> > > > difference?
> > > >
> > > > Thanks,
> > > >
> > > > --
> > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > Martin Euredjian
> > > >
> > > > To send private email:
> > > > 0_0_0_0_@pacbell.net
> > > > where
> > > > "0_0_0_0_"  =  "martineu"
> > >




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