Looks like the hardware business is a little more risky than our college
  professors let on.  If you read this week's EE Times, Oki Semiconductor
  was held up at gunpoint on Halloween for $2 million worth of DRAMs.  The 
  article goes on to say there have been a string of such robberies recently
  in Silcon Valley.  (And my high school guidance counselor assured me that 
  electrical engineering wasn't a hazardous profession!)    - John


( ESNUG 162 Item 1 ) ---------------------------------------------- [11/9/93]

Subject: (ESNUG 158 #4 159 #2 160 #2) 'Licensing Wars'

> What is the resolution?  Synopsys wants me to buy enough HDL Compiler 
> licenses to match 1-to-1 with Design Compilers.  There has not been much 
> give on their part in pricing or terms.  They claim we are one of only a 
> few companies which do not have parity in licenses (is this true?  anyone 
> else out there have the same problem?).  We have suggested to Synopsys
> technical solutions such as "wait" for a license, turn off DesignWare,
> etc., but have been rebuffed so far.

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

From: [ Anon ]

John,  Please keep me anonymous for this one.

These are the licenses's we currently have.  Since day one the Synopsys
Salesman said we only needed a few HDL-Compiler licenses.

  FEATURE DC-Expert           4
  FEATURE DC-SDF-Interface    4
  FEATURE Design-Analyzer     5 
  FEATURE Design-Compiler     4
  FEATURE HDL-Compiler        2 
                              ^
                              |
                      Number of licenses

  - Anon

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

From: hill@pau.synnet.COM (Shannon Hill)

John:

  We, too, ran into this problem with the 3.0x-Design_Compiler-Needing-Its
-Own-VHDL-compiler license.  Since we had only two Design_Compilers, and one
VHDL-compiler license, the transition from 2.2x to 3.0x cut our bandwidth
significantly.

  We complained, and received an additional VHDL-compiler license, with the
assurance that the problem would be resolved in a future release.

  I'm surprised that Synopsys didn't understand that changing the license
consumption model (even at a major release) is unacceptable corporate behavior.

  - Shannon Hill
    Synernetics


( ESNUG 162 Item 2 ) ---------------------------------------------- [11/9/93]

From: [ Synopsys Quality Engineering Department ]
Subject: 3.0a & b FPGA Compiler May Produce Incorect Logic - STAR 13749

The problems and workarounds listed below are of interest to FPGA Compiler
customers who use the Xilinx 4000 technology and v3.0.

FPGA Compiler has a problem with CLB optimization in the compile command for
the Xilinx 4000 technology.  If a table-lookup output feeds to its own input
directly, then incorrect logic can result. 

Suppose you had the following code:

    module s13749 ( a, b, c, f0 );
    input a, b, c;
    output f0;

        assign f0 = (a ^ b ^ c ^ f0);

    endmodule

The block diagram would look like:


                   -----------------
           a ------|F1             |
           b ------|F2           X |------< f0
           c ------|F3  cell 'a'   |  |
                ---|F4             |  |
                |  |               |  |
                |  -----------------  |
                |                     |
                -----------------------
                        net 'f0'


    Fig. 1: FPGA Design With Feedback Loop before compile


Then suppose you executed the following commands:

    dc_shell> read -f verilog s13749.v
    {"s13749"}
    dc_shell> compile

For the Xilinx 4000 technology, the optimizer in the FPGA Compiler 
has trouble with a feedback loop that is directly on the single lookup 
table A. The optimizer might disconnect pin F4 in the resulting CLB, 
resulting in the design:


                -----------------
        a ------|F1             |
        b ------|F2           X |------< f0
        c ------|F3  cell 'a'   |        
             ---|F4             |
             |  |               |
             |  -----------------
            ___
             _
             .


    Fig. 2: FPGA Design With Feedback Loop after compile


WORKAROUND

To work around this problem in v3.0a and v3.0b, create a level of hierarchy
for the logic that is contained in the feedback loop.  It is important that
this level of hierarchy isolate the component(s) from the feedback loop; the
feedback connection should occur outside the new hierarchical block.  The
example below illustrates this concept.

    module s13749 ( a, b, c, f0 );
    input a, b, c;
    output f0;

         floop f ( .a_in(a), .b_in(b), .c_in(c), .d_in(f0), .f_out(f0) );

    endmodule


    module floop ( a_in, b_in, c_in, d_in, f_out);
    input a_in, b_in, c_in, d_in;
    output f_out;

        assign f_out = (a_in ^ b_in ^ c_in ^ d_in);

    endmodule


Or graphically, this would be:


                 instance 'f' of design 'floop'
                ---------------------------------
                |                               |
                |      -----------------        |
        a ------|------|a_in           |        |
        b ------|------|b_in      f_out|--------|------< f0
        c ------|------|c_in           |        |  |
             ---|------|d_in           |        |  |
             |  |      -----------------        |  |
             |  |                               |  |
             |  |                               |  |
             |  ---------------------------------  |
             |                                     |
             |                                     |
             |                                     |
             ---------------------------------------
                           net 'f0'


    Fig. 3: Workaround Illustrating Isolation of Feedback Loop


Note that the feedback net f0 is isolated from cell A by the instance f 
of the new hierarchical design floop.

Note: The "group" command in dc_shell does not work in this situation, 
      because the command includes the feedback net in the new level of 
      hierarchy.  You want the feedback net external to the new hierarchical 
      sub-design, so the new level of hierarchy must be introduced in the HDL.



PLANNING YOUR DESIGN

In your design process, you will often identify places where you intend to
use combinational feedback loops before you write design code.  Building an
SR latch from individual logic gates is one example.  However, if you do not
know the names of feedback loops, in an existing design, you can detect them
with the report_net command.   The example below identifies net f0 as having
a combinational feedback loop in the design s13749.

    dc_shell> read -f verilog s13749.v
    {"s13749"}
    dc_shell> report_net
    Information: Updating design information... (UID-85)
    Information: Timing loop detected. (OPT-150)
          U1/h U1/z4 
    Warning: Disabling timing arc between pins `h' and `z4' 
             on cell `U1' to break a timing loop (OPT-314)

    ... net report ...

    1
    dc_shell> all_connected U1/h
    {"f0"}


CAUTIONS

Feedback going through more than one component, such as feedback from net
f0 to cell B, which, in turn, drives cell A is acceptable and will not cause
the bad logic to occur (see Figure 4). 

        -----------------                -----------------
        |               |        a ------|F1             |
        |               |        b ------|F2           X |------< f0
        |    cell 'B'   |        c ------|F3  cell 'A'   |  |        
     ---|             X |----------------|F4             |  |
     |  |               |                |               |  |
     |  -----------------                -----------------  |  
     |                                                      |
     -------------------------------------------------------
                             net 'f0'


    Fig. 4: Feedback Loop Going Through Multiple Components

However, the logic in the feedback loop may be optimized down into a single
tlu (table look-up), so be careful.

  - Synopsys Quality Engineering



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)