RE:[sv-cc] Example header file for discussion today

From: Moorhouse, Abigail <abigailm_at_.....>
Date: Mon Oct 30 2006 - 15:11:08 PST
Hi all,
I confess I do not fully understand how the 'blue' function tray option
works, however it rather looks like a switching out of all functions as
a run-time option, which I don't think is quite what we want, since the
run-time tool can't easily do this on a per-library basis. I prefer the
symbol-replacement at compile time within the user application, which I
think is the 'green' option.

I have some more comments:
1. Let's get practical and declare 1995 not explicitly supported as
different from 2001. No tool supplier is interested in writing this!

2. There's a long list of VPI routines, but quite a few of them should
have *no* differences between versions except passively, if they are
passed an inappropriate handle. I think that it might make sense to only
switch those routines that have an *active* difference between versions.


In fact, I don't think there is a reason to have the list of
differentiated routines the same for every different version (it just
proliferates symbols). I think there is an advantage to not
differentiating wherever possible, which is that it is more likely to
keep the tools consistent, because it reduces the number of different
cases. Once the list is finalized, all tool developers can then not
worry about differentiating within non-differentiated routines.

My list for the routines that absolutely have to be differentiated would
be:
First, any routine that returns a handle WOULD NEVER return a handle to
an object not understood in its compatbility:
 vpi_scan
 vpi_iterate
 vpi_handle
 vpi_handle_by_name
 vpi_handle_by_index
 vpi_handle_by_multi_index

Also I think the property routines have to be differentiated, because of
the "sometimes it's one type, sometimes it's another" problem.
 vpi_get
 vpi_get_str

The registration routines might need to be differentiated, though when a
callback completes I don't know if there is anything about it that
requires knowledge of the compatibility (getting value is not currently
differentiated as far as I can tell, and when the user routine is
entered, it may call other VPI routines, but they themselves carry the
differentiation).
 vpi_register_systf
 vpi_register_cb

Routines that don't look to me that they need differentiating.
I don't see why we have to differentiate the printing routines:
 vpi_mcd_*
Or the user data routines
 vpi_get_userdata
 vpi_put_userdata

Delays haven't changed, have they?
 vpi_get_delays
 vpi_put_delays

Values have added the 2-state stuff, *but*, if you can't get a handle to
an SV variable in the first place, you would never be able to send it to
vpi_get_value, would you?
 vpi_get_value
 vpi_put_value

The rest of the list might be negotiable, I haven't thought through
every single one. First we have to decide if we are OK with
mix-and-match differentiation, or we think the blanket 'hit them all'
approach is safer. There's a fair amount of work getting the
differentiation list correct, but I see a lot of advantages to having a
short, common list. Apart from anything else, the implementers are going
to develop these lists independently anyway, for all the common cases,
so we might as well standardize them. On the other hand, there may be
implementation issues that are different for each tool, I'm not sure.

3. Michael has used the #define constant VPI_USER_VERSION. Is this a
good name? The concept we are trying to convey is that we will switch
the tool behavior to be compatible with a particular VPI Object Model
version. I'd probably go for something longer and more explanatory such
as VPI_VERSION_COMPATIBILITY_REQUESTED (yes, it's horrible, but less
chance of name collisions, plus more precisely targeted googling or
other search tools!). I don't feel particularly strongly about this, the
concept needs an essay to fully describe it anyway.

Abi

-----Original Message-----
From: owner-sv-cc@server.eda.org [mailto:owner-sv-cc@server.eda.org] On
Behalf Of Michael Rohleder
Sent: Wednesday, October 25, 2006 5:43 AM
To: sv-cc@server.eda-stds.org
Cc: Michael.Rohleder@freescale.com
Subject: [POSSIBLE VIRUS:###] [sv-cc] Example header file for discussion
today
Importance: High

Hi all,

here is the example vip_user.h file as discussed last week. It includes
two possible implementations, one in green and one in blue. Never
compiled, never checked for syntax errors, etc. This was the best I
could do in this short time.

Best regards,
-Michael
Received on Mon Oct 30 15:11:14 2006

This archive was generated by hypermail 2.1.8 : Mon Oct 30 2006 - 15:11:38 PST