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
2017JanFebMarApr2017

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 33625

Article: 33625
Subject: Re: How to add carry optimizations
From: Russell Shaw <rjshaw@iprimus.com.au>
Date: Wed, 01 Aug 2001 15:31:39 +1000
Links: << >>  << T >>  << A >>
Thanks, i forget there was a 'numeric_std' library with useful things
in it like 'resize'. I tested this version, and it seems to work:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity sat_add is
generic(width:natural:=4);
port(
    a,b: in signed(width-1 downto 0);
    s: out signed(width-1 downto 0)
    );
end sat_add;

architecture rtl of sat_add is
    signal aext:signed(width downto 0);
    signal bext:signed(width downto 0);
    signal lcl_sum:signed(width downto 0);
begin
    aext<=resize(a,width+1);
    bext<=resize(b,width+1);
    lcl_sum<=aext+bext;
    s<=lcl_sum(width-1 downto 0)
    when
      lcl_sum(width)=lcl_sum(width-1)
    else
      (lcl_sum(width),others=>not lcl_sum(width));
end rtl;

i learnt quite a bit just from this simple example:)

Ray Andraka wrote:
> 
> For a saturating adder, sign extend the inputs by one bit more than you need for
> your output, then if the top two output bits don't match you substitute the
> overflow value.  The Xilinx 4K was neat because with the carry chain in front of
> the logic, you could include the mux in the adder logic to get the whole thing in
> 1 lut per bit.  Here is an RTL version that avoids having to construct the whole
> thing.  I just typed this out, and it has not been tested so use at your own
> risk.  Incidently, there are times when a structural construction is
> advantageous:  it allows you to put placement in your code, and can also be used
> to enforce a specific structure.  The synthesis tools do fine with basic adders,
> subtractors and counters.  They can be more troublesome when you try to add
> functions (for example an adder/subtractor with one input gated), in that the
> synthesis may not turn out the optimal solution.
> 
> library ieee;
> use ieee.std_logic_1164.all;
> use ieee.numeric_std.all;
> 
> entity sat_add is
>  port(
>     a: in std_logic_vector;
>     b: in std_logic_vector;
>     s: out std_logic_vector);
> 
>     constant width:natural:=s'length;
> end sat_add;
> 
> architecture rtl of sat_add is
>     signal aext:signed(width downto 0);
>     signal bext:signed(width downto 0);
>     signal lcl_sum:std_logic_vector(width downto 0);
>     signal limit:std_logic_vector(width-1 downto 0);
> begin
>     aext<= resize(signed(a),width+1);
>     bext<=resize(signed(b),width+1);
>     lcl_sum<= std_logic_vector(aext+bext);
>     limit<= (others=> lcl_sum(width);
>     s<= lcl_sum(width-1 downto 0) when lcl_sum(width)=lcl_sum_width-1 else limit;
> 
> end rtl;
> 
> Russell Shaw wrote:
> 
> > But how do you do a normal add while getting access to the right
> > carry bits?
> >
> > John_H wrote:
> > >
> > > You're trying to do all the work for the synthesizer by telling it how to
> > > perform addition.
> > > Let the synthesizer to the addition - you just concentrate on the saturable
> > > aspect.
> > > Leonardo spectrum should get all the carry chains together fine because it
> > > know how to utilize them to add.
> > >
> > > Russell Shaw wrote:
> > >
> > > > Hi all,
> > > >
> > > > I made this saturable adder from converting AHDL code in a previous
> > > > message.
> > > >
> > > > It adds signed HEX numbers together, but doesn't roll-over if there's
> > > > an overflow.
> > > >
> > > > I'm using leonardo-spectrum to generate an edif netlist, which is
> > > > compiled by altera maxplus2.
> > > >
> > > > Where and how, if any, can i add technology-dependent optimizations
> > > > such as carry chains etc?
> > > >
> > > > Also, are there such things as VHDL debuggers where you can single-
> > > > step thru the code and see what all the signals and variables are
> > > > doing?
> > > >
> > > > LIBRARY ieee;
> > > > USE ieee.std_logic_1164.all;
> > > >
> > > > PACKAGE types IS
> > > >   subtype word is std_ulogic_vector(3 downto 0);
> > > > END types;
> > > >
> > > > LIBRARY ieee;
> > > > USE ieee.std_logic_1164.all;
> > > > use work.types.all;
> > > >
> > > > ENTITY saturable_adder IS
> > > > port(
> > > >   a,b: in word;
> > > >   s:   out word
> > > >      );
> > > > END adder;
> > > >
> > > > LIBRARY ieee;
> > > > USE ieee.std_logic_1164.all;
> > > > use work.types.all;
> > > >
> > > > ARCHITECTURE total OF saturable_adder IS
> > > > BEGIN
> > > >   behav: PROCESS (a,b) is
> > > >   variable sum: word;
> > > >   variable carry_in,carry_out: std_ulogic;
> > > >   constant msb:integer:=word'left;
> > > >
> > > >   BEGIN
> > > >     carry_in:='0';
> > > >     for ndx in 0 to (word'left-1) loop
> > > >       sum(ndx):=a(ndx) xor b(ndx) xor carry_in;
> > > >       carry_out:=(a(ndx) and b(ndx)) or (a(ndx) and carry_in) or (b(ndx)
> > > > and carry_in);
> > > >       carry_in:=carry_out;
> > > >     end loop;
> > > >     sum(msb):=a(msb) xor b(msb) xor carry_in;
> > > >     if( (a(msb) and b(msb) and not carry_in)='1' )
> > > >     then
> > > >       sum:=(others=>'0');
> > > >       sum(msb):='1';
> > > >     elsif( (not a(msb) and not b(msb) and carry_in)='1' )
> > > >     then
> > > >       sum:=(others=>'1');
> > > >       sum(msb):='0';
> > > >     end if;
> > > >     s<=sum;
> > > >   END PROCESS behav;
> > > > END total;
> > > >
> >
> --
> -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

--
   ___                                           ___
  /  /\                                         /  /\
 /  /__\ Russell Shaw, B.Eng, M.Eng(Research)  /  /\/\
/__/   / Victoria, Australia, Down-Under      /__/\/\/
\  \  /  http://home.iprimus.com.au/rjshaw    \  \/\/
 \__\/                                         \__\/



Article: 33626
Subject: Vitex-II prototyping board
From: "Rotem Gazit" <rotemg@mysticom.com>
Date: Wed, 1 Aug 2001 08:47:17 +0300
Links: << >>  << T >>  << A >>
I'm looking for a prototyping board containing 3 (or more) XC2V6000 FPGAs.

Thanks,

Rotem.




Article: 33627
Subject: Spanning the heirarchy
From: Rick Collins <spamgoeshere4@yahoo.com>
Date: Wed, 01 Aug 2001 02:41:56 -0400
Links: << >>  << T >>  << A >>
I am adding some code to a verilog design for debug and I need to access
signals in a remote portion of the design. I have been told that there
is a way to do this in the form of
"top_level.mid_level.low_level.signal_name" where the level names are
module instance names. This works ok in simulation, but I can't get it
to work in synthesis. We are using Synplify. Is this not supported by
this tool? Is this not supported by any synthesis tool?

If this is supported for synthesis, any idea what I am doing wrong? Also
is there a way to use a symbol for the top level part of the name since
we have a top level test bench in the case of simulation and the top
level module name has a unique instance name. Could I use a define such
as `TOP_LEVEL.mid_level... where TOP_LEVEL is a defined symbol?

Maybe that is what is wrong. In my code I am using the top level module
name since there is no instance name. Is there something I am missing
about the top level name? How does the synthesizer know which module is
the top level?

-- 

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: 33628
Subject: Re: RAM - VHDL - Altera,...
From: "Martin Schoeberl" <martin.schoeberl@chello.at>
Date: Wed, 01 Aug 2001 06:55:36 GMT
Links: << >>  << T >>  << A >>
I tried somthing like that but with independent read and write
address. Latching the address with the clock and reading data
without clock. BUT Leonardo synthesized unlatched read address
and latched data out. It's the same function but with a very different
timing.
I think if you want to use the special functions (like embedded ram)
in a FPGA you have to code some vendor specific code.

Martin
--
Whant to see the evolution of a Java processor?

         http://www.jopdesign.com

"Mike Treseler" <mike.treseler@flukenetworks.com> schrieb im Newsbeitrag
news:3B671696.B462BDDD@flukenetworks.com...
> Something like code below should work for leo.
> --Mike Treseler
>
> --------------------------------------------------------------------------
-----
> -- Exemplar Infers lpm_ram_dq synchronous ram from this code
> -- No exemplar libraries required, generic size
> -- M. Treseler 6-13-2001
> --------------------------------------------------------------------------
-----
> library ieee;
> use ieee.std_logic_1164.all;
> use ieee.numeric_std.all;
>
> entity sync_ram is
>    generic (width       : natural := 16;
>             add_length  : natural := 3
>            );
>
>    port ( clk     : in  std_logic;
>           data    : in  std_logic_vector(width-1 downto 0);
>           address : in  std_logic_vector(add_length-1 downto 0);
>           we      : in  std_logic;
>           q       : out std_logic_vector(width-1 downto 0)
>          );
> end sync_ram;
>
> architecture synth of sync_ram is
>    constant   mem_size  : natural := 2**add_length;
>    type   mem_type is array (mem_size-1 downto 0) of
>                           std_logic_vector (width-1 downto 0);
>    signal mem           : mem_type;
>    signal address_q     : std_logic_vector (add_length-1 downto 0);
> begin
>
>    ram_write : process (clk)
>       begin
>          if clk'event and clk = '1' then
>             always_adr_sync : address_q <= address;
>
>             maybe_write : if we = '1' then
>                mem(to_integer(unsigned(address))) <= data;
>             end if;
>       end if;
>    end process ram_write;
>
>    always_ram_read:
>        q <= mem(to_integer(unsigned(address_q)));
> end architecture synth;



Article: 33629
Subject: Re: Xilinx/Altera "behavioral" verilog
From: Rick Filipkiewicz <rick@algor.co.uk>
Date: Wed, 01 Aug 2001 08:11:39 +0100
Links: << >>  << T >>  << A >>


Ray Andraka wrote:

> Paul Smart wrote:
>
> > Hi Ray,
> >
> > In principle, I agree with much of what you have said.
> >
> > On Tue, 31 Jul 2001 01:47:49 GMT, Ray Andraka <ray@andraka.com> wrote:
> >
> > >
> > >It is behavioral in the sense that you can't go back and run that vhdl
> > >through the tools to regenerate the design (wrong library).  It doesn't
> > >map directly back into the unisim primitives.
> > >
> > >
> > Is there any way to take a modified verilog simulation file and put it
> > back through to create a modified design?
>
> not any easy paths that I am aware of.  You can remap the simprims into
> unisims, but it is a very painful process.  Probably less work starting on a
> fresh design.

I think its actually impossible to do this since there is a lot of information loss
in the process of creating a Xilinx post-route sim netlist. e.g. all the various
2-way muxes, MUXF5, MUXF6, MUXCY, get turned into a single simprim X_MUX2. At least
this is true for the flattened output from NGD2VER that I use. The ``re-create
hierarchy'' mode might be better but a lot of that is still flattened.

Parenthetically I've always wondered why Xilinx don't follow standard ASIC practice
here and use the same lib for the design's EDIF netlist and the port-route sim one
? My - guessed - answer is that post-route sim is done much less frequently for
FPGAs so the effort is not worth it,  the unisims lib is far bigger than simprims.




Article: 33630
Subject: Re: Spanning the heirarchy
From: Muzaffer Kal <muzaffer@dspia.com>
Date: Wed, 01 Aug 2001 07:11:57 GMT
Links: << >>  << T >>  << A >>
On Wed, 01 Aug 2001 02:41:56 -0400, Rick Collins
<spamgoeshere4@yahoo.com> wrote:

>I am adding some code to a verilog design for debug and I need to access
>signals in a remote portion of the design. I have been told that there
>is a way to do this in the form of
>"top_level.mid_level.low_level.signal_name" where the level names are
>module instance names. This works ok in simulation, but I can't get it
>to work in synthesis. We are using Synplify. Is this not supported by
>this tool? Is this not supported by any synthesis tool?
>
>If this is supported for synthesis, any idea what I am doing wrong? Also
>is there a way to use a symbol for the top level part of the name since
>we have a top level test bench in the case of simulation and the top
>level module name has a unique instance name. Could I use a define such
>as `TOP_LEVEL.mid_level... where TOP_LEVEL is a defined symbol?
>
>Maybe that is what is wrong. In my code I am using the top level module
>name since there is no instance name. Is there something I am missing
>about the top level name? How does the synthesizer know which module is
>the top level?

Synplify doesn't support hierarchical names for synthesis. They have a
feature in the Pro version where you can generate a top level port for
any signal in the hierarchy but it can't select which instance you
want if there are multiple instances of the signal. You get all of
them at the top level.
I am pretty sure no synthesis tool supports hierarchical names for
synthesis but my experience is limited to Design Compiler and
Synplify.
The hierarchy starts with the module name of the top level. A define
should work in the context you mention.

The synthesizer doesn't know the top level. You have to tell it. In
synplify there is an option where the top level module name is
entered. In Design Compiler scripts, you set what ever module you want
to work with and compile, optimize, write edf etc on the currently
selected module.

Muzaffer

Muzaffer

FPGA DSP Consulting
http://www.dspia.com

Article: 33631
Subject: VIRTEX E FPGA Configuration through SelectMap
From: raj@sasken.com (Rajesh Kumar E.V)
Date: 1 Aug 2001 00:19:35 -0700
Links: << >>  << T >>  << A >>
Hi,
 I am trying to configure my XCV1000E FPGA through SelectMap mode(
wothout pull ups). My Configuration file (.bit) is stored in flash
mem, using the Jflash program.
I am reading the content of the flash byte by byte using a micro
processor
and sending it to FPGA . I am bit reversing the data read from flash
so that
D0 comes as MSB and D7 as LSB. Also I am not downloading the header
info in the .bit file. I am sending the  data starting from the pad
word onwards.
The DONE bit is not going HIGH after downloading the file.The FPGA is
working properly when it is programmed in JTAG mode. Am I right with
my procedure?
Can anybody tell me what can the pitfalls? Expecting ur early response
With kind regs
Rajesh Kumar E.V
raj@sasken.com

Article: 33632
Subject: Re: finite defect statistics
From: allan_herriman.hates.spam@agilent.com (Allan Herriman)
Date: Wed, 01 Aug 2001 08:40:12 GMT
Links: << >>  << T >>  << A >>
On Wed, 01 Aug 2001 10:13:05 +1200, Jim Granville
<jim.granville@designtools.co.nz> wrote:
[snip]

We've had failures here of a similar nature.  The fault was definitely
inside the FPGA, and would only occur for one particular route.
Re-routing the design (i.e. making it use different resources inside
the FPGA) would make the fault disappear.

That route worked fine on other boards.

The design (in the area that was failing) was completely synchronous,
and met the timing requirements comfortably.  The failure wasn't
affected by clock speed or temperature variations, so I'm fairly sure
it wasn't speed related.

The board that failed had been x-rayed as part of its regular
manufacturing inspection, and was believed to have all required power
connections to the FPGA intact.

Xilinx asked for the relevant part to be returned for analysis.  I'm
not sure what the final conclusion was, but I could chase it up if
anyone is interested.

Regards,
Allan.

Article: 33633
Subject: Xilinx Foundation 2.1i Update
From: LUUTHANHTRUNG <ttcminh@dee.hcmut.edu.vn>
Date: Wed, 1 Aug 2001 01:56:19 -0700
Links: << >>  << T >>  << A >>
Hi,
Please tell me how I can update Xilinx Foundation 2.1i .
Your help will be appreciated .
Thanks 
LUU^THANH TRUNG

Article: 33634
Subject: Re: computer science Vs Computer Enginnering
From: "Gabriel Caffarena" <g.caffarena@ic.ac.uk>
Date: Wed, 1 Aug 2001 09:57:54 +0100
Links: << >>  << T >>  << A >>
Hi,

I would like to point out that I've got a MSc in Telecommunication
Engineering and that didn't stopped me in working on fields that weren't
supposed to be the field I was trainned for. I spent two years programming C
code for CG animations. Lately I have spent one year working as a Network
Engineer dealing with switches, routers, wiring, etc. And now I am to start
a PhD in HW Architectures using FPGAs and DSPs. As you can see I have been
quite able to change subject with no problem. I have programmed even
although my degree wasn't a "programming" one (like Computer Science). I
think that the important thing are the skills and not the "official" labels
that some certain people likes to attach to anyone else.

(You could try to program applications for FPGA design and then move to HW
design with FPGAs. Try Altera, Xilinx, Synopsis, etc)

Good luck!


"edgar" <pound_euro@altavista.com> wrote in message
news:91f37648.0107311030.7c271698@posting.google.com...
> heya,
>
>
> This year, I got my Bachelor in computer science. i wanted to
> undertake a PhD in the fielld of FPGA, but i have been refused even
> that i have my degree with a mark of 65%.
>
> when i asked the boss there, he told me this is a computer engineering
> department and not computer science, i can't accepet you even if you
> got 90%!!!!
>
> i have decided to join a software company, but still wondering on what
> he means,
> what is the differences between computer science and computer
> engineering ?
>
>
> Edgar S



Article: 33635
Subject: [ALTERA] EPC1 devices in DIP8 package for sell
From: "Markus Meng" <meng.engineering@bluewin.ch>
Date: Wed, 1 Aug 2001 11:36:46 +0200
Links: << >>  << T >>  << A >>
Hi all,

from a 'little' a bit older project I do have ~ 400 EPC1 devices
- Unprogrammed! - for ALTERA FPGA's. If anyone is interested
in buying them, I will shurely make an attractive price...

markus

--
********************************************************************
** Meng Engineering        Telefon    056 222 44 10               **
** Markus Meng             Natel      079 230 93 86               **
** Bruggerstr. 21          Telefax    056 222 44 10               **
** CH-5400 Baden           Email      meng.engineering@bluewin.ch **
********************************************************************
** Theory may inform, but Practice convinces. -- George Bain      **







Article: 33636
Subject: Re: Spanning the heirarchy
From: "Rotem Gazit" <rotemg@mysticom.com>
Date: Wed, 1 Aug 2001 12:57:15 +0300
Links: << >>  << T >>  << A >>
> I am adding some code to a verilog design for debug and I need to access
> signals in a remote portion of the design. I have been told that there
> is a way to do this in the form of
> "top_level.mid_level.low_level.signal_name" where the level names are
> module instance names. This works ok in simulation, but I can't get it
> to work in synthesis. We are using Synplify. Is this not supported by
> this tool? Is this not supported by any synthesis tool?

Synplify doesn't support hierarchical references.


> If this is supported for synthesis, any idea what I am doing wrong? Also
> is there a way to use a symbol for the top level part of the name since
> we have a top level test bench in the case of simulation and the top
> level module name has a unique instance name. Could I use a define such
> as `TOP_LEVEL.mid_level... where TOP_LEVEL is a defined symbol?
>

Try :

`ifdef SIMULATION
fofo top_for_simulation()

`else
fofo top_for_synthesis()

`endif


Regards,
Rotem.



> Maybe that is what is wrong. In my code I am using the top level module
> name since there is no instance name. Is there something I am missing
> about the top level name? How does the synthesizer know which module is
> the top level?
>
> --
>
> 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: 33637
Subject: Re: finite defect statistics
From: "B. Joshua Rosen" <bjrosen@polybus.com>
Date: Wed, 01 Aug 2001 07:05:25 -0400
Links: << >>  << T >>  << A >>
Ray,

I believe that the reason the error rate has remained constant over the
years is because Xilinx has managed to improve their quality both in
manufacturing and in testing to keep pace with the improvement in
density. If you think about it all chip manufacturers have to improve the
defect rate at the same rate as the density rate. If you had the same
number of defects per gate at .13u as at 1.0u then the yields would be
approaching zero. For any particular yield rate there has to a certain
defect level per die. If the "hidden" defect rate is directly correlated
with the "visible" defect rate then the rates over the years would remain
constant if the yields have remained constant. If the quality of the
testing improved then the hidden/visible ratio would drop and we would
see lower hidden defect rates. 

Unfortunately I don't have good numbers on Virtex
the way I did on the various 4000 family members, but from what I've seen
in the lab on a sample size of a few thousand XCV800s I believe that the
hidden defect rate is lower, possible as low as 1 in 400 as opposed to 1
in 50 for the 4000 families. 

Josh

In article <3B67500D.31BE11ED@andraka.com>, "Ray Andraka"
<ray@andraka.com> wrote:

> I an see where my comment might have been inflammatory.  It was not
> intended to be so.  I was merely making the observation that cost and
> size of company do not determine the quality of a design. Knowing
> nothing about this particular test suite I can't say whether or not
> there is a design fault.  My experience causes me to be very skeptical
> when someone declares there is a chip problem, especially when there are
> claims of very high failure rates. Most of the time it turns out to be a
> problem with the design rather than the chip.  If you look at your posts
> from an outsider's point of view, I am sure you'd reach the same
> conclusion.
> 
> If the defects are of the order of magnitude Joshua indicates, there is
> need to worry, especially in designs like many of mine where we are
> taking some advantage of reconfiguration and depending on having a good
> device.  I do realize the that large designs do not necessarily use many
> pips. In fact, for high performance designs, I try to minimize the
> number of pips crossed.  Much of the routing is purposely to adjacent
> CLBs, which for the most part misses the majority of the pips in the
> chip.  I'm probably using significantly LESS than the average number of
> used pips,  so, I'll concede that my designs may not have hit a bad pip
> yet. Perhaps I have a lower probability of hitting a defect as a result.
> 
> One thing that puzzles me is Joshua's comment that the error rates have
> remained pretty consistent over several generations of product.  I would
> expect that as the device density increases and the feature size is
> decreased that the number of defects per chip would increase, not stay
> at some constant level.  The constant error rate was part of what
> pointed me in the direction of a clock skew or signals integrity problem
> in the first place.
> 
> 
> 
> Jim Granville wrote:
> 
>> <ray@andraka.com> wrote:
>> > >  No trying to be a pain, but I've seen some
>> > > pretty bad design in very expensive equipment over the years.
>> B. Joshua Rosen wrote:
>> >
>> > Ray I shouldn't dignify this with a response since you are clearly
>> > talking about a subject that you know nothing about.
>>
>>  Whoa guys, settle down..!
>>
>>  The subject is very interesting, don't fall into the 'shoot the
>> messenger'
>> trap.
>>
>>  This type of problem will be often missed, or taken as something else.
>>
>>  IIRC, Josh did say he fed the info back to Xilinx, and it seems
>> they have changed/improved their testing coverage as a result.
>>  That's both significant, and a step forward.
>>
>>  Test coverage is a time/cost tradeoff, but there are interesting
>>  points
>> that come from using a finite defect device.
>>  eg it means a field upgrade needs care, and may not work 100.0% of the
>> time.
>> ( if the thing is in orbit, that's something of a problem :)
> 
> It also means that you may have a yield fallout in a shipping product.
> 
> 
>>
>>  It also suggests that a single Eval/development PCB is not a good
>>  idea,
>> unless that FPGA has had the extra cost screening, or perhaps the
>> designer
>> is experienced enough to 'know' when it's a HW problem, not a SW one
>> :-)
>>
>>  Reminds me of a story I heard about Russian Microcontrollers - they
>> were
>> pushing the yield/fab envelope and every chip came with it's own
>> 'functional opcode' list. Code written for that device, had to avoid
>> the broken opcodes :-)
>>  This was many years before the 'errata' became more common practice.
>>
>> -jg
>>
>> B. Joshua Rosen wrote:
>> > I'll give more detail about the nature of the failures that we see.
>> > We run these tests on approximately 30,000 FPGAs a year. Prior to
>> > prescreening we were seeing a fall out rate of about 1 in 50. The
>> > reports that we get back form Xilinx on the screened parts are
>> > consistant with that number. The nature of the failure is that a bad
>> > part will fail 2 or 3 patterns out of a total of about 150. We can't
>> > identify a particular node because the tests are designed to give a
>> > go/no go answer. However we can generally determine which half of the
>> > FPGA failed because all of the tests are part of a pair, each member
>> > testing approximately 50% of the CLBs. It's clear that the defects
>> > are very small, maybe as small as a single gate. Bad parts mostly
>> > work, i.e. out of 150 patterns they will pass 147 or 148. The clock
>> > speed range is 12Mhz to 30Mhz. The designs are completely syncronous
>> > and there are no gated clocks. Parts that fail will generally fail at
>> > all clock speeds so you can see it's not a timing problem. It should
>> > be obvious that a design that can't run at 12Mhz on one part is
>> > unlikely to run at 30Mhz on the remaining 400 parts in the system,
>> > but of course they do run on the remaining parts because there are no
>> > timing problems in the designs. The reason that you haven't seen
>> > these problems is because you aren't looking. We only knew that there
>> > was a problem because we were getting reports from the field about
>> > failures. The nature of ASIC emulators makes it's possible to
>> > identify the source of a problem by shuffling the patterns between
>> > different FPGAs. The field guys were then able to identify the bad
>> > FPGAs. After we realized that there was a problem we developed these
>> > test patterns. Now field failures are much much less frequent,
>> > although they aren't zero because our coverage isn't 100%.
> 
> --
> -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
> 
>

Article: 33638
Subject: post synthesis simulation
From: raokk@rocketmail.com (Krishnakumar Rao)
Date: 1 Aug 2001 05:17:52 -0700
Links: << >>  << T >>  << A >>
I am using Leonardo Spectrum (Version: v20001a2.75 (Release
Production, compiled Aug 29 2000 at 12:35:44)). I have done Post
Synthesis Simulation for Xilinx Virtex devices using Unisim VHDL
Library. But using this library I am unable to do post synthesis
simulation for other Xilinx family devices. Can someone tell me
whether it is possible to do Post Synthesis Simulation for Xilinx
Spartan and 4000 series devices. If so please let me know how this can
be done ?

Article: 33639
Subject: Foundation 2.1 Schematic in WebPack
From: "Simon Webb" <sandvwebb@bigpond.com>
Date: Wed, 1 Aug 2001 22:55:40 +1000
Links: << >>  << T >>  << A >>
Has any one had a go at opening schematic files in WebPack that were
generated in Foundation 2.1?  I have been sent some source for a 9572 CPLD
and I would like to use it as a basis for further development.

Any help would be appreciated.

Regards,

Simon

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



Article: 33640
Subject: May I connect two pins to the same net?
From: "Olaf Reichenbaecher" <Olaf.Reichenbaecher@sci-worx.com>
Date: Wed, 1 Aug 2001 06:13:52 -0700
Links: << >>  << T >>  << A >>
Hello all,

just a simple question: I am concerned what might happen when
I put a Xilinx Virtex part on a board where two package pins
are connected to the same net.
In the FPGA definetely only one of the pins (inputs) is connected to
some logic / clock network. The other is left open / unused.
This is because we a using the same board for different versions
(with different pinouts) of this FPGA.

Has anybody some experience with this? Does the connection to
the unused pin have some impact on the net? What kind of problems
do I have to expect? And most of all, what can I do to avoid them
(while keeping the board connections)?
Any help is appreciated.

cheers

   olaf

Article: 33641
Subject: Re: finite defect statistics
From: "B. Joshua Rosen" <bjrosen@polybus.com>
Date: Wed, 01 Aug 2001 09:21:02 -0400
Links: << >>  << T >>  << A >>
A few thoughts about why my tests find problems that Xilinx's don't.
Xilinx has always designed their tests to maximize PIP coverage, whereas
mine are designed to test the maximum number of interconnect paths. I
design my test suite to test a range of interconnect distances from
nearest neighbor to the length of the die, and as many interconnect
directions as I can reasonably cover. I use PIP count as a proxy for my
test coverage but I don't drive my test design based on PIP count. In a
truely digital system PIP coverage would be the same as chip coverage.
However I believe that much of the interconnect on a Xilinx chip is based
on transmission gates rather than on active gates (Peter is the
Correct?). A transmission gate has analog properties, it has an on
resistance and an off resistance. If the on resistance were higher than
normal the path might still work if there were only one or two
transmission gates in the circuit. But for long runs the resistance of
each gate would add up as would the resistance of the lines between the
pass gates. As a result it's possible to have paths that don't work even
if all of the segments of the paths work individually. It also explains
why it would be impossible to test any FPGA 100%. The number of possible
paths across an FPGA is effectively infinite.

Article: 33642
Subject: Err with this AHDL code
From: "Abhimanyu Rastogi" <abhi_rastogi@hotmail.com>
Date: Wed, 01 Aug 2001 13:32:17 GMT
Links: << >>  << T >>  << A >>
Hi all,
I haveing some trouble with this code I wrote...
the pronblem i'm getting is with the values of ma[], wat i'm trying to do is
copy the values od upad[] to ma[] and where ma[] is clocked with up_ale and
it doesn't gimme the write vales after copying it to ma[]...

Wat could be the problem?

Many thx for the help...

Abhimanyu.....

Code:--

SUBDESIGN hib_card
(
 clk, reset            :INPUT;

 --micro inputs ( they already exist )
 upad[7..0], /up_cs5, /up_rd, /up_wr, up_ale   :INPUT;

 data_out, band_config[2..0]    :OUTPUT;
)

VARIABLE
 moore_state : MACHINE OF BITS (q1, q2, q3) WITH STATES (
 S0 = B"101", --hib_data2
 S1 = B"100", --hib_data1
 S2 = B"011", --hib_data0
 S3 = B"010", --hib_status
 S4 = B"001", --pr_data
 S5 = B"000"); --pr_status  (ignoring the last 2 states for the moment)

 data_word[21..0] :DFFE;  --for storing all 22 bits of address and data
 ma[7..0]   :DFFE;  --for storing the data into the reg at every !up_ale
 in_clk    :DFFE;
 hib     :NODE;
 status    :NODE;
 pll_sel    :NODE;
 p186_read   :NODE;
 p186_write   :NODE;
 hib_read_data2  :NODE;
 hib_write_data2  :NODE;
 hib_read_data1  :NODE;
 hib_write_data1  :NODE;
 hib_read_data0  :NODE;
 hib_write_data0  :NODE;
 hib_write_status :NODE;

BEGIN
 (ma[], data_word[]).clk = !up_ale;  --clocks ma, data_word with up_ale, so
that they change data at the same clock
 ma[] = upad[];  -- saves data from the micro to altera
 in_clk.clk = clk;
 in_clk = !in_clk;
 p186_read = !/up_cs5 & !/up_rd;  --sets the flag to read from altera
 p186_write = !/up_cs5 & !/up_wr; --sets the flag to write to altera
 moore_state.clk = clk;
 moore_state.reset = reset;
 CASE moore_state IS
  WHEN S0 =>
     hib = VCC;
     status = GND;
     data_out = VCC;
     hib_read_data2 = p186_read & hib & !status;
     hib_write_data2 = p186_write & hib & !status;
     data_word[21..16] = ma[5..0];
     IF up_ale THEN
      moore_state = S1;
     ELSE
      moore_state = S0;
     END IF;
  WHEN S1 =>
     hib = VCC;
     status = GND;
     data_out = VCC;
     hib_read_data1 = p186_read & hib & !status;
     hib_write_data1 = p186_write & hib & !status;
     data_word[15..8] = ma[7..0];
     IF up_ale THEN
      moore_state = S2;
     ELSE
      moore_state = S1;
     END IF;
  WHEN S2 =>
     hib = VCC;
     status = GND;
     data_out = VCC;
     hib_read_data0 = p186_read & hib & !status;
     hib_write_data0 = p186_write & hib & !status;
     data_word[7..0] = ma[7..0];
     IF up_ale THEN
      moore_state = S3;
     ELSE
      moore_state = S2;
     END IF;
  WHEN S3 =>
     hib = VCC;
     status = VCC;
     data_out = GND;
     IF ma[4] THEN
      band_config[2..0] = ma[2..0];
      pll_sel = VCC;
     ELSE
      pll_sel = GND;
     END IF;
     hib_write_status = p186_write & hib & status;
     IF up_ale THEN
      moore_state = S4;
     ELSE
      moore_state = S3;
     END IF;
  WHEN OTHERS =>
     moore_state = S0;
  END CASE;
END;






Article: 33643
Subject: Re: Xilinx/Altera "behavioral" verilog
From: Ray Andraka <ray@andraka.com>
Date: Wed, 01 Aug 2001 13:48:37 GMT
Links: << >>  << T >>  << A >>


Rick Filipkiewicz wrote:

> Ray Andraka wrote:
>
> > Paul Smart wrote:
> >
> > > Hi Ray,
> > >
> > > In principle, I agree with much of what you have said.
> > >
> > > On Tue, 31 Jul 2001 01:47:49 GMT, Ray Andraka <ray@andraka.com> wrote:
> > >
> > > >
> > > >It is behavioral in the sense that you can't go back and run that vhdl
> > > >through the tools to regenerate the design (wrong library).  It doesn't
> > > >map directly back into the unisim primitives.
> > > >
> > > >
> > > Is there any way to take a modified verilog simulation file and put it
> > > back through to create a modified design?
> >
> > not any easy paths that I am aware of.  You can remap the simprims into
> > unisims, but it is a very painful process.  Probably less work starting on a
> > fresh design.
>
> I think its actually impossible to do this since there is a lot of information loss
> in the process of creating a Xilinx post-route sim netlist. e.g. all the various
> 2-way muxes, MUXF5, MUXF6, MUXCY, get turned into a single simprim X_MUX2. At least
> this is true for the flattened output from NGD2VER that I use. The ``re-create
> hierarchy'' mode might be better but a lot of that is still flattened.

THis is why I said is is a very painful process.  You can get to something that is
functional but may not map very well into the architecture fairly easily.  Like you
point out, you lose all the architectural features like the carry chain stuff.  You
also lose any placement you might have had.

I suspect part of the reason for using different libraries is a (misguided?) attempt to
retain design security.

>
>
> Parenthetically I've always wondered why Xilinx don't follow standard ASIC practice
> here and use the same lib for the design's EDIF netlist and the port-route sim one
> ? My - guessed - answer is that post-route sim is done much less frequently for
> FPGAs so the effort is not worth it,  the unisims lib is far bigger than simprims.

--
-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



Article: 33644
Subject: Re: computer science Vs Computer Enginnering
From: Ray Andraka <ray@andraka.com>
Date: Wed, 01 Aug 2001 13:51:39 GMT
Links: << >>  << T >>  << A >>
The problem is those labels seem to be pretty important when applying for
advanced degrees, which is what prompted the question in the first place.

Gabriel Caffarena wrote:

> Hi,
>
> I would like to point out that I've got a MSc in Telecommunication
> Engineering and that didn't stopped me in working on fields that weren't
> supposed to be the field I was trainned for. I spent two years programming C
> code for CG animations. Lately I have spent one year working as a Network
> Engineer dealing with switches, routers, wiring, etc. And now I am to start
> a PhD in HW Architectures using FPGAs and DSPs. As you can see I have been
> quite able to change subject with no problem. I have programmed even
> although my degree wasn't a "programming" one (like Computer Science). I
> think that the important thing are the skills and not the "official" labels
> that some certain people likes to attach to anyone else.
>
> (You could try to program applications for FPGA design and then move to HW
> design with FPGAs. Try Altera, Xilinx, Synopsis, etc)
>
> Good luck!
>
> "edgar" <pound_euro@altavista.com> wrote in message
> news:91f37648.0107311030.7c271698@posting.google.com...
> > heya,
> >
> >
> > This year, I got my Bachelor in computer science. i wanted to
> > undertake a PhD in the fielld of FPGA, but i have been refused even
> > that i have my degree with a mark of 65%.
> >
> > when i asked the boss there, he told me this is a computer engineering
> > department and not computer science, i can't accepet you even if you
> > got 90%!!!!
> >
> > i have decided to join a software company, but still wondering on what
> > he means,
> > what is the differences between computer science and computer
> > engineering ?
> >
> >
> > Edgar S

--
-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



Article: 33645
Subject: Re: Err with this AHDL code
From: John_H <johnhandwork@mail.com>
Date: Wed, 01 Aug 2001 14:51:57 GMT
Links: << >>  << T >>  << A >>
You've defined ma[] as DFFE elements (D type flip flop with enable).
Where's the enable?


Abhimanyu Rastogi wrote:

> Hi all,
> I haveing some trouble with this code I wrote...
> the pronblem i'm getting is with the values of ma[], wat i'm trying to do is
> copy the values od upad[] to ma[] and where ma[] is clocked with up_ale and
> it doesn't gimme the write vales after copying it to ma[]...
>
> Wat could be the problem?
>
> Many thx for the help...
>
> Abhimanyu.....
>
> Code:--
>
> SUBDESIGN hib_card
> (
>  clk, reset            :INPUT;
>
>  --micro inputs ( they already exist )
>  upad[7..0], /up_cs5, /up_rd, /up_wr, up_ale   :INPUT;
>
>  data_out, band_config[2..0]    :OUTPUT;
> )
>
> VARIABLE
>  moore_state : MACHINE OF BITS (q1, q2, q3) WITH STATES (
>  S0 = B"101", --hib_data2
>  S1 = B"100", --hib_data1
>  S2 = B"011", --hib_data0
>  S3 = B"010", --hib_status
>  S4 = B"001", --pr_data
>  S5 = B"000"); --pr_status  (ignoring the last 2 states for the moment)
>
>  data_word[21..0] :DFFE;  --for storing all 22 bits of address and data
>  ma[7..0]   :DFFE;  --for storing the data into the reg at every !up_ale
>  in_clk    :DFFE;
>  hib     :NODE;
>  status    :NODE;
>  pll_sel    :NODE;
>  p186_read   :NODE;
>  p186_write   :NODE;
>  hib_read_data2  :NODE;
>  hib_write_data2  :NODE;
>  hib_read_data1  :NODE;
>  hib_write_data1  :NODE;
>  hib_read_data0  :NODE;
>  hib_write_data0  :NODE;
>  hib_write_status :NODE;
>
> BEGIN
>  (ma[], data_word[]).clk = !up_ale;  --clocks ma, data_word with up_ale, so
> that they change data at the same clock
>  ma[] = upad[];  -- saves data from the micro to altera
>  in_clk.clk = clk;
>  in_clk = !in_clk;
>  p186_read = !/up_cs5 & !/up_rd;  --sets the flag to read from altera
>  p186_write = !/up_cs5 & !/up_wr; --sets the flag to write to altera
>  moore_state.clk = clk;
>  moore_state.reset = reset;
>  CASE moore_state IS
>   WHEN S0 =>
>      hib = VCC;
>      status = GND;
>      data_out = VCC;
>      hib_read_data2 = p186_read & hib & !status;
>      hib_write_data2 = p186_write & hib & !status;
>      data_word[21..16] = ma[5..0];
>      IF up_ale THEN
>       moore_state = S1;
>      ELSE
>       moore_state = S0;
>      END IF;
>   WHEN S1 =>
>      hib = VCC;
>      status = GND;
>      data_out = VCC;
>      hib_read_data1 = p186_read & hib & !status;
>      hib_write_data1 = p186_write & hib & !status;
>      data_word[15..8] = ma[7..0];
>      IF up_ale THEN
>       moore_state = S2;
>      ELSE
>       moore_state = S1;
>      END IF;
>   WHEN S2 =>
>      hib = VCC;
>      status = GND;
>      data_out = VCC;
>      hib_read_data0 = p186_read & hib & !status;
>      hib_write_data0 = p186_write & hib & !status;
>      data_word[7..0] = ma[7..0];
>      IF up_ale THEN
>       moore_state = S3;
>      ELSE
>       moore_state = S2;
>      END IF;
>   WHEN S3 =>
>      hib = VCC;
>      status = VCC;
>      data_out = GND;
>      IF ma[4] THEN
>       band_config[2..0] = ma[2..0];
>       pll_sel = VCC;
>      ELSE
>       pll_sel = GND;
>      END IF;
>      hib_write_status = p186_write & hib & status;
>      IF up_ale THEN
>       moore_state = S4;
>      ELSE
>       moore_state = S3;
>      END IF;
>   WHEN OTHERS =>
>      moore_state = S0;
>   END CASE;
> END;


Article: 33646
Subject: Re: Vitex-II prototyping board
From: John_H <johnhandwork@mail.com>
Date: Wed, 01 Aug 2001 14:55:17 GMT
Links: << >>  << T >>  << A >>
Since the XC2V6000 devices are about $8000 US each through distribution, maybe
contracting someone to make a board for you to your own specifications is a
cost effective way to achieve your goal.


Rotem Gazit wrote:

> I'm looking for a prototyping board containing 3 (or more) XC2V6000 FPGAs.
>
> Thanks,
>
> Rotem.


Article: 33647
Subject: Re: Err with this AHDL code
From: "Abhimanyu Rastogi" <abhi_rastogi@hotmail.com>
Date: Wed, 01 Aug 2001 15:09:18 GMT
Links: << >>  << T >>  << A >>
I'm new at this...   i thought DFFE or DFF would not make a moajor
difference....   but even after i change dffe to dff it still gives me the
same old values for ma[].....  if u want i can also attach the
correspondaing *.scf file..
Abhimanyu
John_H <johnhandwork@mail.com> wrote in message
news:3B681795.ECEA1DDB@mail.com...
> You've defined ma[] as DFFE elements (D type flip flop with enable).
> Where's the enable?
>
>
> Abhimanyu Rastogi wrote:
>
> > Hi all,
> > I haveing some trouble with this code I wrote...
> > the pronblem i'm getting is with the values of ma[], wat i'm trying to
do is
> > copy the values od upad[] to ma[] and where ma[] is clocked with up_ale
and
> > it doesn't gimme the write vales after copying it to ma[]...
> >
> > Wat could be the problem?
> >
> > Many thx for the help...
> >
> > Abhimanyu.....
> >
> > Code:--
> >
> > SUBDESIGN hib_card
> > (
> >  clk, reset            :INPUT;
> >
> >  --micro inputs ( they already exist )
> >  upad[7..0], /up_cs5, /up_rd, /up_wr, up_ale   :INPUT;
> >
> >  data_out, band_config[2..0]    :OUTPUT;
> > )
> >
> > VARIABLE
> >  moore_state : MACHINE OF BITS (q1, q2, q3) WITH STATES (
> >  S0 = B"101", --hib_data2
> >  S1 = B"100", --hib_data1
> >  S2 = B"011", --hib_data0
> >  S3 = B"010", --hib_status
> >  S4 = B"001", --pr_data
> >  S5 = B"000"); --pr_status  (ignoring the last 2 states for the moment)
> >
> >  data_word[21..0] :DFFE;  --for storing all 22 bits of address and data
> >  ma[7..0]   :DFFE;  --for storing the data into the reg at every !up_ale
> >  in_clk    :DFFE;
> >  hib     :NODE;
> >  status    :NODE;
> >  pll_sel    :NODE;
> >  p186_read   :NODE;
> >  p186_write   :NODE;
> >  hib_read_data2  :NODE;
> >  hib_write_data2  :NODE;
> >  hib_read_data1  :NODE;
> >  hib_write_data1  :NODE;
> >  hib_read_data0  :NODE;
> >  hib_write_data0  :NODE;
> >  hib_write_status :NODE;
> >
> > BEGIN
> >  (ma[], data_word[]).clk = !up_ale;  --clocks ma, data_word with up_ale,
so
> > that they change data at the same clock
> >  ma[] = upad[];  -- saves data from the micro to altera
> >  in_clk.clk = clk;
> >  in_clk = !in_clk;
> >  p186_read = !/up_cs5 & !/up_rd;  --sets the flag to read from altera
> >  p186_write = !/up_cs5 & !/up_wr; --sets the flag to write to altera
> >  moore_state.clk = clk;
> >  moore_state.reset = reset;
> >  CASE moore_state IS
> >   WHEN S0 =>
> >      hib = VCC;
> >      status = GND;
> >      data_out = VCC;
> >      hib_read_data2 = p186_read & hib & !status;
> >      hib_write_data2 = p186_write & hib & !status;
> >      data_word[21..16] = ma[5..0];
> >      IF up_ale THEN
> >       moore_state = S1;
> >      ELSE
> >       moore_state = S0;
> >      END IF;
> >   WHEN S1 =>
> >      hib = VCC;
> >      status = GND;
> >      data_out = VCC;
> >      hib_read_data1 = p186_read & hib & !status;
> >      hib_write_data1 = p186_write & hib & !status;
> >      data_word[15..8] = ma[7..0];
> >      IF up_ale THEN
> >       moore_state = S2;
> >      ELSE
> >       moore_state = S1;
> >      END IF;
> >   WHEN S2 =>
> >      hib = VCC;
> >      status = GND;
> >      data_out = VCC;
> >      hib_read_data0 = p186_read & hib & !status;
> >      hib_write_data0 = p186_write & hib & !status;
> >      data_word[7..0] = ma[7..0];
> >      IF up_ale THEN
> >       moore_state = S3;
> >      ELSE
> >       moore_state = S2;
> >      END IF;
> >   WHEN S3 =>
> >      hib = VCC;
> >      status = VCC;
> >      data_out = GND;
> >      IF ma[4] THEN
> >       band_config[2..0] = ma[2..0];
> >       pll_sel = VCC;
> >      ELSE
> >       pll_sel = GND;
> >      END IF;
> >      hib_write_status = p186_write & hib & status;
> >      IF up_ale THEN
> >       moore_state = S4;
> >      ELSE
> >       moore_state = S3;
> >      END IF;
> >   WHEN OTHERS =>
> >      moore_state = S0;
> >   END CASE;
> > END;
>



Article: 33648
Subject: Re: May I connect two pins to the same net?
From: Peter Alfke <peter.alfke@xilinx.com>
Date: Wed, 01 Aug 2001 09:14:56 -0700
Links: << >>  << T >>  << A >>
Olaf,
there is no problem, as long as you don't configure both pins as outputs and
drive them to opposite levels.  :-(
The extra input pin just represents a max 10 pF load and thus slows down the
signal by at most a few hundred picoseconds.
If you have a very tight signal-integrity situation, you may want so simulate
this with HyperLynx.

Peter Alfke, Xilinx Applications
=====================
Olaf Reichenbaecher wrote:

> Hello all,
>
> just a simple question: I am concerned what might happen when
> I put a Xilinx Virtex part on a board where two package pins
> are connected to the same net.
> In the FPGA definetely only one of the pins (inputs) is connected to
> some logic / clock network. The other is left open / unused.
> This is because we a using the same board for different versions
> (with different pinouts) of this FPGA.
>
> Has anybody some experience with this? Does the connection to
> the unused pin have some impact on the net? What kind of problems
> do I have to expect? And most of all, what can I do to avoid them
> (while keeping the board connections)?
> Any help is appreciated.
>
> cheers
>
>    olaf


Article: 33649
Subject: LUT as Buffer?
From: Pascal Merkel <pascal.merkel@stud.uni-karlsruhe.de>
Date: Wed, 01 Aug 2001 18:16:12 +0200
Links: << >>  << T >>  << A >>
HI all,

I have a design which consists of a data-path and a controller. Some
controller signals drive two components of the data-path. During
synthesis (Synopsys Design Comp.) such signals are divided in two
seperate signals whereby always one of the both gets two inverters.
During Mapping with XactM3.1 one of these inverters is removed because
of being redundant. The other is mapped into a LUT, but this LUT don't
invert, that's clear. But why all this is done? Does such a LUT act as a
buffer or is it unnecessary?

Pascal



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
2017JanFebMarApr2017

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