( Post 73 Item 1 ) ----------------------------------------------------------

From: trevor@ncd.com (Trevor Pearman)

Bug Alert
---------
Tool:		Synthesis
Input:		VHDL
Output:		Produces wrong logic
Confirmed:	by Synopsys
Fix:		maybe in 3.0?

Description:

  I have found a bug in the synthesizer with regard to  VHDL records with more 
  than 2 levels and arrays.

  With records that are nested more than 2 levels and have arrays; the indexing 
  operation does not work correctly. There are no errors or warnings; only bad 
  logic.

Work around:

  Move the array to a temporary variable before attempting to index into it.

Example:

  type T_A_5_int is array(0 to 5) of integer;

  type T_5_PLUS_1_INT is record
    X: integer;
    Y: T_A_5_int;
  end record;

  type T_5_PLUS_1_PLUS_1_INT is record
    X: integer;
    Y: T_5_PLUS_1_INT;
  end record;

  type T_FOO is record
    X: integer;
    Y: T_5_PLUS_1_PLUS_1_INT;
  end record;

  ...
  signal RECORD_INTS:	T_FOO;
  signal BAD_VALUE:	integer;
  signal SELECT:	integer;
  ....
  BAD_VALUE <= RECORD_INTS.Y.Y.Y(SELECT);
  ....

-- Trevor Pearman			trevor@ncd.com
-- Network Computing Devices Inc


( Post 73 Networking Section ) -----------------------------------------------

From: fields@danube.acuson.com (Julian Fields)

Synopsys, Verilog, spice, LSI Logic, Mentor Graphics, Unix, Compass Tools, and
VLSI design engineer (for 12 yrs) looking for contract opening. (408) 773-8197
 


 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)