RE: [sv-cc] Proposal for 526: vpiValid for dynamic variables

From: Francoise Martinolle <fm_at_.....>
Date: Fri Apr 08 2005 - 07:04:50 PDT
 
I have a different opinion about this. This is based on my experience with
VHPI modeling
of automatic recursice functions and procedures as well as access type
variables.
I can discuss alternatives during the meeting.

Francoise
    '
-----Original Message-----
From: owner-sv-cc@eda.org [mailto:owner-sv-cc@eda.org] On Behalf Of Warmke,
Doug
Sent: Friday, April 08, 2005 2:10 AM
To: Jim Vellenga; SV-CC
Cc: Rohit Rana
Subject: RE: [sv-cc] Proposal for 526: vpiValid for dynamic variables

Jim,

The vpiValid scheme seems good in principle.
I've been trying to think of wording for automatics, but I'm not sure about
some other more basic things.

First, implementations might reallocate dynamic objects such as dynamic
arrays and associative arrays.  This can happen due to resizing.

Other objects, such as queues, are suitable for linked list implementation
and shouldn't need to be reallocated by a simulator as they change in size.
Thus one can in theory safely keep a reference to an element of a queue and
use it as long as the element hasn't been explicitly deleted by user code.

Is a vpi handle to an element of a dynamic object like a SystemVerilog
reference to an element of a dynamic object?
If so, then it could be invalidated when the dynamic object is moved around
in memory.

Also, strings are dynamic objects.
They may be moved around in memory as the string changes in size.  And
strings may be completely deleted by user code.
Are there issues with handles to string variables?
If someone gets a handle to a valid string, then SV code destroys the string
such that it is a NULL variable, how would that be reflected in the handle
object the user has?

What about handles to basic dynamic and associative arrays?
(i.e. not just array elements).  Those can shift around from being
completely NULL to being objects with valid contents.

For automatics, remember that in SystemVerilog one can have automatic
variables in all kinds of scopes, not just tasks and functions.  They can
exist in named block scopes, straight in always/initial blocks, in
fork/joins, and probably elsewhere I'm not thinking about.

Talk to you guys tomorrow (early!)

Regards,
Doug 

> -----Original Message-----
> From: owner-sv-cc@eda.org [mailto:owner-sv-cc@eda.org
<mailto:owner-sv-cc@eda.org> ] On
> Behalf Of Jim Vellenga
> Sent: Thursday, April 07, 2005 1:44 PM
> To: SV-CC
> Cc: Rohit Rana
> Subject: [sv-cc] Proposal for 526: vpiValid for dynamic variables
>
> We have uploaded a proposal for adding the vpiValid property to 
> variables.  The note says that this property indicates whether or not 
> a non-static variable from within a class or within a dynamic array is 
> still valid, i.e., its memory has not yet been reclaimed.
>
> vpiValid also applies to automatic variables in tasks and functions.  
> Does anyone have some good wording to add to this note for that?
>
> Regards,
> Jim Vellenga
>
> ---------------------------------------------------------
> James H. Vellenga                            978-262-6381
> Engineering Director                   (FAX) 978-262-6636
> Cadence Design Systems, Inc.         vellenga@cadence.com
> 270 Billerica Rd
> Chelmsford, MA 01824-4179
> "We all work with partial information."
> ----------------------------------------------------------
>  
>
> 
Received on Fri Apr 8 07:04:55 2005

This archive was generated by hypermail 2.1.8 : Fri Apr 08 2005 - 07:05:00 PDT