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 90175

Article: 90175
Subject: Re: .lib file for Xilinx FPGAs?
From: "Simon Peacock" <simon$actrix.co.nz>
Date: Thu, 6 Oct 2005 21:12:10 +1300
Links: << >>  << T >>  << A >>
yes and no.

Xilinx and Altera both have 'standard' libraries.  They are VHDL, Verilog,
schematic ..... you can guarantee them to be different as the underlying
structure is different.

Mostly they have their built-in's (pin definitions, LUTs  block rams etc)
but you can often find 74 series gates too.
Xilinx has a rather nice core gen to build more complex functions.. some are
free some cost.  Mostly it depends on what you want from your library

Simon

"Simon Heinzle" <sheinzle@student.ethz.ch> wrote in message
news:4344d45b@news1.ethz.ch...
> Hi everybody,
>
> With ASICs, there are standard cell libraries in .lib file format for the
> target process -- is there a comparable .lib file for the Xilinx FPGAs?
>
> Best regards,
> Simon
>
>



Article: 90176
Subject: Re: High Load
From: "Marco" <marcotoschi@nospam.it>
Date: Thu, 6 Oct 2005 10:32:28 +0200
Links: << >>  << T >>  << A >>
> The warning talked about  "3 NON-CLK pins" .. that's a dead giveaway for a
> gated clock somewhere or using a signal which isn't a clock.... or using a
> clock in a non-clock way.  I would look at the circuit hard.
>

The clock divider has 2 outputs: a 50% duty cycle and a pulse at the last 
count of counter.
I have connected 3 state machine to the pulse. Every machine and the other 
block are faliing
edge sensitive.
I have made the counter and the comparator with core generator.


> You might find a good option is to use a couple of SLR16's as counters for
> your SPI.  each can replace a number of 'loads' with a single one.

Seems a great idea, could you explain, please?



> One solution is to duplicate the clock generator, the other is to ONLY use
> the system clock.  use a gate to latch the incoming data which is 
> generated
> in parallel to the clock not from the clock.

I will try it as soon as possible.


Many and many thanks for your precious help.
Marco 



Article: 90177
Subject: Re: Avoiding meta stability? No where in this thread...
From: Philip Freidin <philip@fliptronics.com>
Date: Thu, 06 Oct 2005 09:04:44 GMT
Links: << >>  << T >>  << A >>
On Wed, 05 Oct 2005 21:31:02 -0700, austin <austin@xilinx.com> wrote:
>Oops,

Damn! I thought I had said enough, but apparently not.

>Looks like I read the 'english', and not the code.

Both are correct. Paul's circuit is a shift register (2 bits) and
it is logically indistinguishable from a shift register.

>Looks like it is registered once, and then sent to another FF.  Both 
>FF's are clocked on the rising edge, so it is not a metastability 
>"filter"

Excuse me, this is a two stage synchronizer. Exactly.

>(which would clock the second FF on the falling edge) to reduce the
>probability of a metastable event

Which is NOT a two stage synchronizer. The "clock it on the falling edge"
circuit saves 1/2 a cycle in synchronizer latency, and makes
a major sacrifice in resolving time. This is not a good synchronizer.

Go read    http://www.fpga-faq.org/FAQ_Pages/0017_Tell_me_about_metastables.htm

for more on this poor circuit.


>(they can not be prevented, but the statistics can be improved to where
>you just don't care).

Well I agree with this.

>That is a standard looking shift register. No issue with that.

Right. And assuming that it is clocked on the global clock net
(no reason not to assume this given Paul's posting) there are no
hold time issues that you seem to be worried about (probably because
it is written as a shift register (which can be problematic in ASICs)).

>The FPGA fabric is always slower than a global clock (except in some 
>rare cases where things are really poorly placed due to other issues 
>with poor or confusing or conflicting constraints), so there is no 
>problem (like there could be in an ASIC) that the data might get to some 
>FF's before the clock would (and an event is missed altogether).
>
>The tools should make a reasonably good placement to prevent problems.
>
>I have seen where folks used location constraints to be sure that the 
>clock arrived at the MSB or last stage first, and then went against the 
>flow of data towards the LSB or first stage to ensure that the clock 
>would always get to the FF BEFORE the data coming to the FF could 
>possibly change in ASIC standard cell flows.  Not really needed in an 
>FPGA:  the fabric and clocks are supposed to be "correct by 
>construction" so the engineer doesn't have to worry.

Agreed, but the issue being discussed in synchronizers.

>This whole thing also has nothing to do with metastability.

Oh yes it does! A two bit shift register is identical to a two
stage synchronizer.

>Austin


>> Paul Marciano wrote:
>>>
>>> Peter, rookie question: given the following synchronizer:
>>>
>>> module test(input clk, input in_sig, output reg out_sig);
>>>   reg [1:0] ss;
>>>
>>>   always @(posedge clk)
>>>   begin
>>>     out_sig <= ss[1];
>>>     ss <= { ss[0], in_sig };
>>>   end
>>> endmodule
>>>
>>>
>>> How, specifically, do I tell XST to locate ss[1] as close as possible
>>> to ss[0]?
>>>
>>>
>>> Regards,
>>> Paul.
>>>

Great! Now I've pissed of Peter and Austin. Did I mention I'm
not having a great week   :-)   :-)

Philip Freidin
Crusader for understanding metastability and how to minimize it.




===================
Philip Freidin
philip.freidin@fpga-faq.org
Host for WWW.FPGA-FAQ.ORG

Article: 90178
Subject: Re: High Load
From: "Marco" <marcotoschi@nospam.it>
Date: Thu, 6 Oct 2005 11:54:16 +0200
Links: << >>  << T >>  << A >>

"Marco" <marcotoschi@nospam.it> wrote in message 
news:di2neu$gk3$1@news.ngi.it...
>> The warning talked about  "3 NON-CLK pins" .. that's a dead giveaway for 
>> a
>> gated clock somewhere or using a signal which isn't a clock.... or using 
>> a
>> clock in a non-clock way.  I would look at the circuit hard.
>>
>
> The clock divider has 2 outputs: a 50% duty cycle and a pulse at the last 
> count of counter.
> I have connected 3 state machine to the pulse. Every machine and the other 
> block are faliing
> edge sensitive.
> I have made the counter and the comparator with core generator.
>
>
>> You might find a good option is to use a couple of SLR16's as counters 
>> for
>> your SPI.  each can replace a number of 'loads' with a single one.
>
> Seems a great idea, could you explain, please?
>
>
>
>> One solution is to duplicate the clock generator, the other is to ONLY 
>> use
>> the system clock.  use a gate to latch the incoming data which is 
>> generated
>> in parallel to the clock not from the clock.
>
> I will try it as soon as possible.
>
>
> Many and many thanks for your precious help.
> Marco
>


I have finally found the trouble. I create a new thread to discuss on it.

Many Thanks
Marco 



Article: 90179
Subject: FSM with High load on clock signal
From: "Marco" <marcotoschi@nospam.it>
Date: Thu, 6 Oct 2005 11:59:08 +0200
Links: << >>  << T >>  << A >>
Hallo,
I have made a clock divider (1 MHz) with a counter connected to system clock 
(50 MHz).
This counter has a threshold which goes high on the last count.
This pulse drives some blocks as a clock enable (the clock input of these 
blocks is connected to system clock).
Every block is falling edge sensitive.

The pulse drives also a FSM where every state send high/low 4 signals.

In this way there is no gating clock, but now pulse signal has high load.

I can't use DCM because of the too low out frequency.

What could I do to reduce load and skew?

The only way is to add a BUFG?

Many Thanks in advance and sorry for my terrible english
Marco Toschi 



Article: 90180
Subject: Re: Systolic array architectures
From: timotoole@gmail.com
Date: 6 Oct 2005 03:11:00 -0700
Links: << >>  << T >>  << A >>
Firstly thank you very much for your detailed answer.

> > Is there ever scenario's where the area and switching overhead of a
> > systolic array would warrant a less bandwidth efficient, more serial
> > approach - or is that just plain ridulous to consider?
> In fact only the serial solution has an area and switching overhead for
> each computation. The systolic implementation only computes without
> doing anything else. See below.

I'm not too sure what you mean by this? Surely there is an area
overhead for the systolic array versus a "serial"/single PE
implementation?


> > For example could you hope to trade less switching in the datapath for
> > increased switching in the memory accesses but still make an overall
> > reduction in switching?
>
> If your alogrithm dictates that you add two numbers, you can not save
> the switching of the adder. But you might be able to save the memory access.

Using your example of an adder, I have a algorithm where it is possible
to avoid the addition completely if a certain condition occurs. With a
systolic array the addition has to be completed, Thus my question, of
whether a non- systolic implementation has major drawbacks.

[snip]
> If you have to perform the operations anyway it is allways more
> efficient to perform them right away when the data is available compared
> to sending intermediate results a long distance across chip or even off
> chip. The later will slow down the process and consume a lot of power.

I would totally agree with this point.

>
> However, this is the overall area/delay efficiency (computations per
> time per area). If you have a fixed bandwidth goal perfect efficiency
> doesn't help you much if you only have enough data available to utilize
> the hardware only 1% of the time. In that case you go to a more serial
> solution to save hardware. But the area/time/energy per computation
> increases in that case.

Thats a very helpful comparison.

>
> More complicated are problems were the systolic algorithm requires more
> operations than the serial algorithm. In that case you need to tradeoff
> the gains per computation of the systolic implementation vs. the
> improved number of computations of the serial algorithm.

I think this is my situation, so I'm going to try model the problem
with C and evaluate the operations & cycles for both approaches.

> 
> Kolja Sulimma

Thank you again for your very enlightening response.


Article: 90181
Subject: ACTEL ProASIC plus mixed-voltage I/O macro's in Designer 6.2 ....?
From: "J buytaert" <jan.buytaert@cern.ch>
Date: Thu, 6 Oct 2005 12:43:04 +0200
Links: << >>  << T >>  << A >>
Hi,
    we do not succeed in compiling our design using mixed voltage I/O macros 
in ACTEL Designer 6.2 (SP2). To illustrate the problem, we have reduced it 
to a simple 2-input AND gate . (If someone wants to try we have attached the 
VHDL and the edif files below.)
The error message is :
Error: A mixed-voltage I/O macro is found in the design. This macro type is 
not supported. When Vddp = 2.5V, use XX25LPXX macro. When Vddp = 3.3V, use 
XX33XX I/O macro.

Please contact Actel Technical Support at 1-800-262-1060 or tech@actel.com 
for more information.

    According to the documentation, application notes and knowledge base on 
the ACTEL website, we were lead to believe that the device apa-150  powered 
with VDDp=3.3V is able to drive or receive both 2.5 and 3.3V compatible 
signals (except for the 25LP macros).
Has anyone encountered this problem or know how to solve it ?

regards, J . Buytaert
CERN, Geneva

VHDL:

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;
use work.apa_comps.all;

entity  test1  is
  port(    in1,in2 : in std_logic; out1 :out std_logic    );
end;

architecture arch of test1 is
  component ib25S    port(      Y   : out std_logic;      PAD : in 
std_logic      );
  end component;
  component ob33PH     port(      A   : in  std_logic;      PAD : out 
std_logic      );
  end component;
  signal in1b, in2b, out1b : std_logic;

  begin
  out1b <= in1b and in2b ;
  u1 : ib25s port map    (in1b,     in1 );
  u2 : ib25s port map    (in2b,     in2 );
  u3 : ob33ph port map    (out1b,     out1 );
end;

EDIF:
(edif test1
  (edifVersion 2 0 0)
  (edifLevel 0)
  (keywordMap (keywordLevel 0))
  (status
    (written
      (timeStamp 2005 10 6 11 51 34)
      (author "Synplicity, Inc.")
      (program "Synplify" (version "7.7.0, Build 054R"))
     )
   )
  (library APA
    (edifLevel 0)
    (technology (numberDefinition ))
    (cell GND (cellType GENERIC)
      (property area (integer 0))
       (view prim (viewType NETLIST)
         (interface
           (port Y (direction OUTPUT)
           (property function (string "0"))
           (property load (integer 0))
 )
         )
        (property area (integer 0))
       )
    )
    (cell PWR (cellType GENERIC)
      (property area (integer 0))
       (view prim (viewType NETLIST)
         (interface
           (port Y (direction OUTPUT)
           (property function (string "1"))
           (property load (integer 0))
 )
         )
        (property area (integer 0))
       )
    )
    (cell AND2 (cellType GENERIC)
      (property area (integer 1))
       (view prim (viewType NETLIST)
         (interface
           (port Y (direction OUTPUT)
           (property function (string "A B"))
           (property load (integer 0))
 )
           (port A (direction INPUT)
           (property capacitance (integer 1))
           (property load (integer 1))
 )
           (port B (direction INPUT)
           (property capacitance (integer 1))
           (property load (integer 1))
 )
         )
        (property write_in_amethyst_lib (integer 1))
        (property is_combinational (integer 1))
        (property area (integer 1))
       )
    )
  )
  (library work
    (edifLevel 0)
    (technology (numberDefinition ))
    (cell ib25S (cellType GENERIC)
       (view syn_black_box (viewType NETLIST)
         (interface
           (port Y (direction OUTPUT))
           (port PAD (direction INPUT))
         )
       )
    )
    (cell ob33PH (cellType GENERIC)
       (view syn_black_box (viewType NETLIST)
         (interface
           (port A (direction INPUT))
           (port PAD (direction OUTPUT))
         )
       )
    )
    (cell test1 (cellType GENERIC)
       (view arch (viewType NETLIST)
         (interface
           (port in1 (direction INPUT))
           (port in2 (direction INPUT))
           (port out1 (direction OUTPUT))
         )
         (contents
          (instance out1b (viewRef prim (cellRef AND2 (libraryRef 
       )
          (instance u3 (viewRef syn_black_box (cellRef ob33PH))
          )
          (instance u2 (viewRef syn_black_box (cellRef ib25S))
          )
          (instance u1 (viewRef syn_black_box (cellRef ib25S))
          )
          (instance PWR_i (viewRef prim (cellRef PWR (libraryRef 
       )
          (instance GND_i (viewRef prim (cellRef GND (libraryRef 
       )
          (net in1 (joined
           (portRef in1)
           (portRef PAD (instanceRef u1))
          ))
          (net in2 (joined
           (portRef in2)
           (portRef PAD (instanceRef u2))
          ))
          (net out1 (joined
           (portRef PAD (instanceRef u3))
           (portRef out1)
          ))
          (net (rename out1bZ0 "out1b") (joined
           (portRef Y (instanceRef out1b))
           (portRef A (instanceRef u3))
          ))
          (net in1b (joined
           (portRef Y (instanceRef u1))
           (portRef A (instanceRef out1b))
          ))
          (net in2b (joined
           (portRef Y (instanceRef u2))
           (portRef B (instanceRef out1b))
          ))
          (net VCC (joined
           (portRef Y (instanceRef PWR_i))
          ))
          (net GND (joined
           (portRef Y (instanceRef GND_i))
          ))
         )
       )
    )
  )
  (design test1 (cellRef test1 (libraryRef work)))
)





Article: 90182
Subject: Altera Gate Delay Simulation
From: kedarpapte@gmail.com
Date: 6 Oct 2005 03:56:55 -0700
Links: << >>  << T >>  << A >>
I am doing some work targeted to StratixGX family for me RTL or gate
delay simulation is a must.

Can i do a post synthesis simulation in Modelsim for stratix GX Family
using the synthesis output design.vho file from QuartusII.
But this simulation should include gate delays specifically.

as like in Xilinx I can do a pre Map simulation which gives gate
delays.

Please mail me on kedar.apte@patni.com

Regards
Kedar


Article: 90183
Subject: Re: .lib file for Xilinx FPGAs?
From: "Simon Heinzle" <sheinzle@student.ethz.ch>
Date: Thu, 6 Oct 2005 13:31:24 +0200
Links: << >>  << T >>  << A >>
First of all, thanks for the reply!

Could these 'standard' libraries be used for timing analysis, e.g. for a 
core gen normally used for ASICs (to get a rough but more meaningful timing 
analysis than without any information)?

Best regards,
Simon

"Simon Peacock" <simon$actrix.co.nz> wrote in message 
news:4344dc5b@news2.actrix.gen.nz...
> yes and no.
>
> Xilinx and Altera both have 'standard' libraries.  They are VHDL, Verilog,
> schematic ..... you can guarantee them to be different as the underlying
> structure is different.
>
> Mostly they have their built-in's (pin definitions, LUTs  block rams etc)
> but you can often find 74 series gates too.
> Xilinx has a rather nice core gen to build more complex functions.. some 
> are
> free some cost.  Mostly it depends on what you want from your library
>
> Simon
>
> "Simon Heinzle" <sheinzle@student.ethz.ch> wrote in message
> news:4344d45b@news1.ethz.ch...
>> Hi everybody,
>>
>> With ASICs, there are standard cell libraries in .lib file format for the
>> target process -- is there a comparable .lib file for the Xilinx FPGAs?
>>
>> Best regards,
>> Simon
>>
>>
>
> 



Article: 90184
Subject: Re: ACTEL ProASIC plus mixed-voltage I/O macro's in Designer 6.2 ....?
From: "Neill A" <neilla@ewst.co.uk>
Date: 6 Oct 2005 04:41:43 -0700
Links: << >>  << T >>  << A >>

The APA devices can't have mixed voltage I/O.  Table 1-3 on page 1-9 of
the datasheet (5.0) clearly shows that with VDDP of 3.3V, then the
input compatability & output drive are both 3.3V.  To get around the
problem you need to use external components to change the logic levels.

Regards,

Neill.


J buytaert wrote:
> Hi,
>     we do not succeed in compiling our design using mixed voltage I/O macros
> in ACTEL Designer 6.2 (SP2). To illustrate the problem, we have reduced it
> to a simple 2-input AND gate . (If someone wants to try we have attached the
> VHDL and the edif files below.)
> The error message is :
> Error: A mixed-voltage I/O macro is found in the design. This macro type is
> not supported. When Vddp = 2.5V, use XX25LPXX macro. When Vddp = 3.3V, use
> XX33XX I/O macro.
>
> Please contact Actel Technical Support at 1-800-262-1060 or tech@actel.com
> for more information.
>
>     According to the documentation, application notes and knowledge base on
> the ACTEL website, we were lead to believe that the device apa-150  powered
> with VDDp=3.3V is able to drive or receive both 2.5 and 3.3V compatible
> signals (except for the 25LP macros).
> Has anyone encountered this problem or know how to solve it ?
> 
> regards, J . Buytaert
> CERN, Geneva
>


Article: 90185
Subject: Re: ACTEL ProASIC plus mixed-voltage I/O macro's in Designer 6.2 ....?
From: "Antti Lukats" <antti@openchip.org>
Date: Thu, 6 Oct 2005 13:55:24 +0200
Links: << >>  << T >>  << A >>
"J buytaert" <jan.buytaert@cern.ch> schrieb im Newsbeitrag
news:di2v3o$7m2$1@sunnews.cern.ch...
> Hi,
>     we do not succeed in compiling our design using mixed voltage I/O
macros
> in ACTEL Designer 6.2 (SP2). To illustrate the problem, we have reduced it

datasheet reading skills:

PA+ DS, page 1-9 top righ corner table

at any given vddp there is only 1 standard supported either 2.5 or 3.3

this also understandable as we there are know (ASFAIK) FPGAs available that
would support 2.5 drive from 3.3V IO voltage.

think of AP+ as a device with single IO bank, all IOs are using same IO
voltage.

for your application you most likely can safely use 3.3V io macros even when
the other end is 2.5 drive

Antti



Article: 90186
Subject: Re: Avoiding meta stability?
From: "Bill" <billbill@telia.se>
Date: Thu, 6 Oct 2005 14:29:25 +0200
Links: << >>  << T >>  << A >>
Hello again.  I have read all your postings about this and it was
interesting. I read the XAPP094 document and found a new idea how to solve
the problem.



As I wrote before, the input signal is synchronous to a 1.8 MHz clock and I
want to synchronize it to a 24 MHz clock.



After reading the XAPP094 I found a new way to qualify the signal to be
synchronous to 24 MHz. (se VHDL listing below).



How it works: The input signal is first sampled at the rising clock edge
(sample a) then again on falling clock edge (sample b). If the two samples
(a and b) are the same then I change the output signal on the next rising
edge to the value of a.



What do you all think about this solution?



library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity qualify is
    Port ( clk_24M : in std_logic;
           d : in std_logic;
           q : out std_logic);
end qualify;

architecture beh of qualify is
  signal a, b : std_logic := '0';
begin
  process(clk_24M)
  begin
    if rising_edge(clk_24M) then
      a <= d;
    end if;
  end process;

  process(clk_24M)
  begin
    if falling_edge(clk_24M) then
      b <= d;
    end if;
  end process;

  process(clk_24M)
  begin
    if rising_edge(clk_24M) then
      if a = b then
        q <= a;
      end if;
    end if;
  end process;
end beh;






"Peter Alfke" <peter@xilinx.com> wrote in message
news:1128457315.762325.327300@o13g2000cwo.googlegroups.com...
> "Metastability" is a popular word to scare inexperienced designers.
>
> If you run a 1.8 MHz clock (even with a similar asynchronous data
> rate), your chance of having a 3 ns extra metastable delay is once per
> billion years (at 24 MHz it would be only 5 million years).
> For every additional ns of acceptable settling time, the
> mean-time-between-failure increases at least a million times. (see
> XAPP094 on the Xilinx website)
> The probability of your flip-flop failing during the life of this
> universe (even if you do nothing) with more than 10 ns of
> unaccounted-for delay is so minute it is practically zero.
> There are more important things to worry about, forget metastability...
> Peter Alfke, Xilinx Applications (who actually has created quantitative
> data about metastability)
>



Article: 90187
Subject: Re: Xilinx IMPACT Problem... detects 101 unknown devices
From: "Klaus Bickertt" <kfb@mpe.mpg.de>
Date: Thu, 6 Oct 2005 05:39:49 -0700
Links: << >>  << T >>  << A >>
My ISE7.1 says parallel cable drivers installed, but refuses to recognize my old cable III and tries using anon-existent multilink. Seems to be reading Prom & Virtex Id's, but can't start them after program. How do I get IMPACT to accept a Cable III ?

Article: 90188
Subject: Re: Actel Libero upgrade - problem with clk pin - Synplify
From: "Neill A" <neilla@ewst.co.uk>
Date: 6 Oct 2005 05:43:54 -0700
Links: << >>  << T >>  << A >>
I have noticed that Synplify 8.1A seems to name things differently to
7.51A, so it might just be that you need to change the name in the DCF
file.


Marie wrote:
> Good morning,
>
> I had a design wich was working fine in Libero 6.0 SP3 (Synplify
> 7.51A).  I made an upgrade to Libero 6.2 SP2 (Synplify 8.1A).
> When I open the project the conversion works fine.
> Without changing anything to the vhdl files or viewdraw schematic file
> I redo the synthesis with Synplify. It seems to work without problem.
> I then open Designer. I get the following error message:
> Error: ERROR in SECTION GLOBAL_CLOCKS near line 17 ::
>        DCF#023: Invalid pin Z_1I478:PAD. Pin is Ignored
> Warning: The constraint data (DCF) has unavailable net/pin references.
> The invalid constraints will be removed.
> I did not change anything to the clock pins!
> I prevent Synplify to use automatically all clock pins (HCLK, CLKA and
> CLKB) for all the clocks it finds in the design by adding two attribute
> lines (syn_noclockbuf...) in the vhd file created by viewdraw.
> And I use a CLKBUF in viewdraw to be allowed to set my clock signal on
> the CLKA pin.
> I am almost certain the problem comes from Synplify because if I do
> exactly the same steps but without redoing the synthesis, that is
> opening Designer directly after the conversion of the project then I
> get not error during the layout.
> Is there maybe an option in Synplify I have to change?
> 
> Thank you very much,
> 
> Marie


Article: 90189
Subject: Re: Xilinx ISE 7.1i file management
From: "Diego Lillo" <lillo@gcmcom.com>
Date: Thu, 6 Oct 2005 15:18:11 +0200
Links: << >>  << T >>  << A >>
Hi,

you only need the .ise file in order to reuse your project,since the rest of
files are automatically generated by the ISE environment,such as tcl 
scripts.
The Xilinx Cores case is a bit more complex. You can regenerate your
cores for the new project... you only have to check the paths contained
in the .xco file and change it to your new project path, and then regenerate
the core. Anyway, you can check all the files generated by Coregen in the 
[core_name]_readme.txt
file created by Coregen in your working directory.

"cyd" <cyd@spectrum.montana.edu> escribió en el mensaje 
news:1128539107.549495.182340@g43g2000cwa.googlegroups.com...
> Anyone,
>
> I am looking for information concerning the neccissary files required
> from a completed project to reuse in a new project. I write a top level
> driver file in VHDL and often insert core generated processes. I run
> into trouble when inserting the driver file into a new project when
> core gen files were used. Specifically it is looking for a
> wrapped_porcess (.xco ?). Question does ISE create a folder of
> neccissary files of current project to be used in subsequent projects.
>
> Sincerley
>
> Cy Drollinger
> 



Article: 90190
Subject: Re: ACTEL ProASIC plus mixed-voltage I/O macro's in Designer 6.2 ....?
From: "J buytaert" <jan.buytaert@cern.ch>
Date: Thu, 6 Oct 2005 15:58:17 +0200
Links: << >>  << T >>  << A >>
It seems to be a bit more suttle than that. In the data sheet mentioned is 
stated on page 1:
"2.5 V/3.3 V Support with Individually Selectable Voltage and Slew Rate"

You can see in the revision history of the of the application note of the 
I/O Features one can see that the 3.3/2.5 V I/O mixing was included in an 
earlier version of the application note. Moreover, the knowledge database 
describes how to implement it (which is what we tried and it doesn't work).
http://www.actel.com/kb/article.aspx?id=KI25851

And the macro library guide http://www.actel.com/documents/pa_libguide.pdf 
states on e.g. page 62 which combinations of 2.5 and 3.3 V operation that is 
supported.

Hence reading the documentation it is supported or at least has been 
supported. The question we have is if someone knows a workaround, if the 
feature has been supressed or knows why the Actel Designer compiler doen't 
accept something that is described in the library guide.






Article: 90191
Subject: Re: Avoiding meta stability? No where in this thread...
From: Phil Hays <Spampostmaster@comcast.net>
Date: Thu, 06 Oct 2005 07:31:47 -0700
Links: << >>  << T >>  << A >>
Philip Freidin wrote:

>Oh yes it does! A two bit shift register is identical to a two
>stage synchronizer.

For most purposes.

For physical floorplanning, it is not.  If the UCF constrains two FFs
to a clb, and the FFs are in a SRL16, then build will fail.

For metastability, it is not.  As I'm under the impression that SRL16s
FFs are slower, I suspect that they are not as metastable hard.  Peter
or Austin, care to comment?  If nothing else, there is not data on
SRL16s, so I can't be sure how good or bad the solution is.  This is
also true of the BlockRAMs.

I should have mentioned this above, but I unchecked the box (shift
register extraction) so ISE didn't convert the FFs into a SRL16.

Probably better do cover this in the code.  Add this line to the
Verilog:

  // synthesis attribute shreg_extract of ss is no;


-- 
Phil Hays to reply solve: phil_hays at not(coldmail) dot com  
 If not cold then hot


Article: 90192
Subject: Re: Avoiding meta stability?
From: Bob Perlman <bobsrefusebin@hotmail.com>
Date: Thu, 06 Oct 2005 14:49:33 GMT
Links: << >>  << T >>  << A >>
Bill - 

Typical approach: clock the signal into a flip-flop with a 24 MHz
clock, and give it most of a whole clock cycle to settle before
applying it to the main circuit.

Your approach: clock the signal into two flip-flops with the 24 MHz
rising and falling edges, then apply the AND of the two flip-flop
outputs to the main circuit.

The problem with your approach is that the second flip-flop, the one
clocked with the 24 MHz falling edge, has less than half as much time
to settle (thanks to the AND gate delay) before being applied to the
circuit.  If the first flip-flop says HIGH and the second flip-flop
says "I dunno," what happens to your circuit?

Majority voting has often been proposed as a work-around for
metastability.  I've yet to see such a scheme that works.

There's really only one way to reduce the probability that
metastibility will upset your system: wait.

Bob Perlman
Cambrian Design Works

On Thu, 6 Oct 2005 14:29:25 +0200, "Bill" <billbill@telia.se> wrote:

>Hello again.  I have read all your postings about this and it was
>interesting. I read the XAPP094 document and found a new idea how to solve
>the problem.
>
>
>
>As I wrote before, the input signal is synchronous to a 1.8 MHz clock and I
>want to synchronize it to a 24 MHz clock.
>
>
>
>After reading the XAPP094 I found a new way to qualify the signal to be
>synchronous to 24 MHz. (se VHDL listing below).
>
>
>
>How it works: The input signal is first sampled at the rising clock edge
>(sample a) then again on falling clock edge (sample b). If the two samples
>(a and b) are the same then I change the output signal on the next rising
>edge to the value of a.
>
>
>
>What do you all think about this solution?
>
>
>
>library IEEE;
>use IEEE.STD_LOGIC_1164.ALL;
>use IEEE.STD_LOGIC_ARITH.ALL;
>use IEEE.STD_LOGIC_UNSIGNED.ALL;
>
>entity qualify is
>    Port ( clk_24M : in std_logic;
>           d : in std_logic;
>           q : out std_logic);
>end qualify;
>
>architecture beh of qualify is
>  signal a, b : std_logic := '0';
>begin
>  process(clk_24M)
>  begin
>    if rising_edge(clk_24M) then
>      a <= d;
>    end if;
>  end process;
>
>  process(clk_24M)
>  begin
>    if falling_edge(clk_24M) then
>      b <= d;
>    end if;
>  end process;
>
>  process(clk_24M)
>  begin
>    if rising_edge(clk_24M) then
>      if a = b then
>        q <= a;
>      end if;
>    end if;
>  end process;
>end beh;
>
>
>
>
>
>
>"Peter Alfke" <peter@xilinx.com> wrote in message
>news:1128457315.762325.327300@o13g2000cwo.googlegroups.com...
>> "Metastability" is a popular word to scare inexperienced designers.
>>
>> If you run a 1.8 MHz clock (even with a similar asynchronous data
>> rate), your chance of having a 3 ns extra metastable delay is once per
>> billion years (at 24 MHz it would be only 5 million years).
>> For every additional ns of acceptable settling time, the
>> mean-time-between-failure increases at least a million times. (see
>> XAPP094 on the Xilinx website)
>> The probability of your flip-flop failing during the life of this
>> universe (even if you do nothing) with more than 10 ns of
>> unaccounted-for delay is so minute it is practically zero.
>> There are more important things to worry about, forget metastability...
>> Peter Alfke, Xilinx Applications (who actually has created quantitative
>> data about metastability)
>>
>


Article: 90193
Subject: Re: Avoiding meta stability? No where in this thread...
From: Austin Lesea <austin@xilinx.com>
Date: Thu, 06 Oct 2005 08:05:57 -0700
Links: << >>  << T >>  << A >>
Phil,

I stand corrected,

Thanks.

It was late last night ...

Austin

Philip Freidin wrote:

> On Wed, 05 Oct 2005 21:31:02 -0700, austin <austin@xilinx.com> wrote:
> 
>>Oops,
> 
> 
> Damn! I thought I had said enough, but apparently not.
> 
> 
>>Looks like I read the 'english', and not the code.
> 
> 
> Both are correct. Paul's circuit is a shift register (2 bits) and
> it is logically indistinguishable from a shift register.
> 
> 
>>Looks like it is registered once, and then sent to another FF.  Both 
>>FF's are clocked on the rising edge, so it is not a metastability 
>>"filter"
> 
> 
> Excuse me, this is a two stage synchronizer. Exactly.
> 
> 
>>(which would clock the second FF on the falling edge) to reduce the
>>probability of a metastable event
> 
> 
> Which is NOT a two stage synchronizer. The "clock it on the falling edge"
> circuit saves 1/2 a cycle in synchronizer latency, and makes
> a major sacrifice in resolving time. This is not a good synchronizer.
> 
> Go read    http://www.fpga-faq.org/FAQ_Pages/0017_Tell_me_about_metastables.htm
> 
> for more on this poor circuit.
> 
> 
> 
>>(they can not be prevented, but the statistics can be improved to where
>>you just don't care).
> 
> 
> Well I agree with this.
> 
> 
>>That is a standard looking shift register. No issue with that.
> 
> 
> Right. And assuming that it is clocked on the global clock net
> (no reason not to assume this given Paul's posting) there are no
> hold time issues that you seem to be worried about (probably because
> it is written as a shift register (which can be problematic in ASICs)).
> 
> 
>>The FPGA fabric is always slower than a global clock (except in some 
>>rare cases where things are really poorly placed due to other issues 
>>with poor or confusing or conflicting constraints), so there is no 
>>problem (like there could be in an ASIC) that the data might get to some 
>>FF's before the clock would (and an event is missed altogether).
>>
>>The tools should make a reasonably good placement to prevent problems.
>>
>>I have seen where folks used location constraints to be sure that the 
>>clock arrived at the MSB or last stage first, and then went against the 
>>flow of data towards the LSB or first stage to ensure that the clock 
>>would always get to the FF BEFORE the data coming to the FF could 
>>possibly change in ASIC standard cell flows.  Not really needed in an 
>>FPGA:  the fabric and clocks are supposed to be "correct by 
>>construction" so the engineer doesn't have to worry.
> 
> 
> Agreed, but the issue being discussed in synchronizers.
> 
> 
>>This whole thing also has nothing to do with metastability.
> 
> 
> Oh yes it does! A two bit shift register is identical to a two
> stage synchronizer.
> 
> 
>>Austin
> 
> 
> 
>>>Paul Marciano wrote:
>>>
>>>>Peter, rookie question: given the following synchronizer:
>>>>
>>>>module test(input clk, input in_sig, output reg out_sig);
>>>>  reg [1:0] ss;
>>>>
>>>>  always @(posedge clk)
>>>>  begin
>>>>    out_sig <= ss[1];
>>>>    ss <= { ss[0], in_sig };
>>>>  end
>>>>endmodule
>>>>
>>>>
>>>>How, specifically, do I tell XST to locate ss[1] as close as possible
>>>>to ss[0]?
>>>>
>>>>
>>>>Regards,
>>>>Paul.
>>>>
> 
> 
> Great! Now I've pissed of Peter and Austin. Did I mention I'm
> not having a great week   :-)   :-)
> 
> Philip Freidin
> Crusader for understanding metastability and how to minimize it.
> 
> 
> 
> 
> ===================
> Philip Freidin
> philip.freidin@fpga-faq.org
> Host for WWW.FPGA-FAQ.ORG

Article: 90194
Subject: Re: How to make XST understand to pack mux(A,B,A+B) in a single level
From: Kolja Sulimma <news@sulimma.de>
Date: Thu, 06 Oct 2005 17:08:26 +0200
Links: << >>  << T >>  << A >>
Sylvain Munaut wrote:

> I want to have a combinatorial block with 4 inputs :
>  - 2 vectors A and B
>  - 2 control signal 'passthru' & 'sel'
> 
> that produces either A+B (if passthru=0),
> A (if sel=0) or B (if sel=1). And all that in a
> signle layer of logic.

Jan Gray wrote about this a couple of times on www.fpgacpu.org.
Apparently the mapper tries many (or even all) factorizations of your
logic but it does not reorder the circuit. Therefore, if you have
an adder followed by a mux you get two levels of logic.
You need to write down a formulation were the adder follows the
remining logic:

result <= (A and (not sel or not passthrough)) + (B and (sel or not passtrough));

This is a function of four inputs plus carry-in that the mapping barely has a choice
but to fit into one LUT plus carry logic.

Acutally you are currently implementing three operations. You can squeeze in a fourth
like subtraction or a bitwise logical operation.

Kolja Sulimma

Article: 90195
Subject: Re: ACTEL ProASIC plus mixed-voltage I/O macro's in Designer 6.2 ....?
From: "Neill A" <neilla@ewst.co.uk>
Date: 6 Oct 2005 08:20:31 -0700
Links: << >>  << T >>  << A >>
OK, I see why you were confused now.  I've had a quick look, and I
actually have a copy of the app note which talks about mixed voltage
I/O, but it doesn't really say much more than you already seem to know.

Also after a quick check of the release notes for SP2, it seems this is
where the problem is:

Mixed mode I/O support has been removed from APA devices. As of SP2,
use of any of these mixed mode I/Os is prohibited: OB25XX, IOB25XX,
IOBL25XX, OTB25XX, OTBL25XX, or IB25XX. If any of these I/Os are
detected in an existing ADB, an error message appears, and alternative
non mixed-mode I/Os are suggested.

So I guess the solution would be to uninstall SP2.


Article: 90196
Subject: Re: Systolic array architectures
From: Kolja Sulimma <news@sulimma.de>
Date: Thu, 06 Oct 2005 17:23:01 +0200
Links: << >>  << T >>  << A >>
timotoole@gmail.com wrote:
> Firstly thank you very much for your detailed answer.
> 
>>>Is there ever scenario's where the area and switching overhead of a
>>>systolic array would warrant a less bandwidth efficient, more serial
>>>approach - or is that just plain ridulous to consider?
>>In fact only the serial solution has an area and switching overhead for
>>each computation. The systolic implementation only computes without
>>doing anything else. See below.
> 
> I'm not too sure what you mean by this? Surely there is an area
> overhead for the systolic array versus a "serial"/single PE
> implementation?

That's not efficiency, that's cost. Cost increases.

But for twice the area I get more than twice the speed for less
than twice the power. So the computations per area and the computations
per energy increase. That's what's called efficiency.

This is the great thing about systolic algorithms. There are many parallel
algorithms that are not systolic that get faster when adding more hardware
but at diminishing efficieny. For some problems only logarithmic speedup is
possible.

> Using your example of an adder, I have a algorithm where it is possible
> to avoid the addition completely if a certain condition occurs. With a
> systolic array the addition has to be completed, Thus my question, of
> whether a non- systolic implementation has major drawbacks.

Do not forget the cost of checking the condition. Even in serial CPUs a
branch is so expensive that doing a few extra operations can be more
desirable testing whether thy can be skipped.
[..]
>>More complicated are problems were the systolic algorithm requires more
>>operations than the serial algorithm. In that case you need to tradeoff
>>the gains per computation of the systolic implementation vs. the
>>improved number of computations of the serial algorithm.
> 
> I think this is my situation, so I'm going to try model the problem
> with C and evaluate the operations & cycles for both approaches.

Also check what your performance requirement is. Expect the gain of an systolic
algorithm compared to operating serially on externall memory to be huge.
So if you waste 90% of the operations you are probably still faster.
*Deliberatly oversimplifing here*
But if a serial implementation meets your throughput target there is not much
adding hardware for more speed and efficiency.

You can try to run your C-model on a microblaze. This will be VERY inefficient,
but maybe it is fast enough ;-)

Kolja Sulimma

















Article: 90197
Subject: Re: Actel Libero upgrade - problem with clk pin - Synplify
From: "Marie" <mvq@oip.be>
Date: 6 Oct 2005 08:28:30 -0700
Links: << >>  << T >>  << A >>
Thank you for your reply.
I do not find any .dcf file in my project directory.
The .sdc constraint file seems empty.
Could you tell me where I have to search?
And when I will found this file which name should I change?

Thank you very much,

Marie


Article: 90198
Subject: Re: .lib file for Xilinx FPGAs?
From: Kolja Sulimma <news@sulimma.de>
Date: Thu, 06 Oct 2005 17:35:06 +0200
Links: << >>  << T >>  << A >>
Simon Heinzle wrote:
> Hi everybody,
> 
> With ASICs, there are standard cell libraries in .lib file format for the 
> target process -- is there a comparable .lib file for the Xilinx FPGAs?

There are macro libraries but no standard cell libraries.
Subject tree based mappers do not work well for FPGAs and the timing models
used in ASIC flows don't either. Also, you do not need the geometrical
information contained in the library because you do not move cells around
or connect wires to them at specified locations. So there is no use for a
standard cell library with FPGAs.

FPGAs either use muxes as their basic elements (rare nowadays) in which case
BDD-based synthesis is the natural approach.
Or they use lookup tables that can implement any function with up to N inputs
(predominant architecture). In that case listing all possible functions in a
library isn't really helpful.


Kolja Sulimma

Article: 90199
Subject: Re: Avoiding meta stability? No where in this thread...
From: Philip Freidin <philip@fliptronics.com>
Date: Thu, 06 Oct 2005 15:40:17 GMT
Links: << >>  << T >>  << A >>
On Thu, 06 Oct 2005 08:05:57 -0700, Austin Lesea <austin@xilinx.com> wrote:
>Phil,
>I stand corrected,
>Thanks.
>It was late last night ...
>Austin

Well it turns out I needed to be corrected by Phil Hays.
He is correct that if the shift register is mapped to an SRL16
then you can be in deep doo doo for constraints that expected FFs.

While making corrections to late night typing, please note that
in my posting, the following:

>Both are correct. Paul's circuit is a shift register (2 bits) and
>it is logically indistinguishable from a shift register.

should be:

"Both are correct. Paul's circuit is a shift register (2 bits) and
it is logically indistinguishable from a two stage synchronizer."


Since Phil Hays points out the mapping problem of a shift register
being mapped to the

"not as wonderful as real flip flops for building synchronizers"

SRL16s, then the 2 stage synchronizer, which are indestinguishable
from a 2 bit shift registers will also face this problem.

In my code I avoid all this by directly instantiating the FFs,
and then it is easy to attach placement constraints and timing
constraints.

In another posting by Phil Hays, he gives examples of such
constraints

>INST "ss_1" LOC = "CLB_R1C1.S0" ;
>INST "ss_0" LOC = "CLB_R1C1.S0" ;
>    or
>INST "ss_1" RLOC = "R0C0.S0" ;
>INST "ss_0" RLOC = "R0C0.S0" ;
>
>INST "ss_1" TNM = "SYNC_FF";
>INST "ss_0" TNM = "SYNC_FF";
>TIMESPEC "TS_SYNCS" = FROM "SYNC_FF" TO "SYNC_FF" 2.5 ns;

Depending on the synthesizer, these can fail if it renames
the signals. Also these only work if they are at the top
of the hierarchy. Finding their correct name when the FFs
are inferred can be tricky, since changes elsewhere in your
code can cause the names to change. I believe that
instantiation is justified for the specific case of building
synchronizers.

Philip Freidin









===================
Philip Freidin
philip.freidin@fpga-faq.org
Host for WWW.FPGA-FAQ.ORG



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