[sv-cc] SV f2f Wed. Nov. 12: VPI overview minutes


Subject: [sv-cc] SV f2f Wed. Nov. 12: VPI overview minutes
From: Bassam Tabbara (bassam@novas.com)
Date: Wed Nov 12 2003 - 14:25:08 PST


Hi All,

Here is a transcript of the discussion during Joao's overview of VPI
donation: 9:30-11:30 portion.

SV-CC: Face to Face

VPI review, presented by Joao:

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

Continuing from last time .. starting page 8 (pdf).
A = Avinesh
M = Michael
D = Doug
F = Francoise
J = Joao
S = Swapnajit
B = Bassam

F: Iteration on var select (part select) ?
J: Yes for vpiArray you can.

F: From variable iterate on bits (for integer), how to do that ?

J: No iteration on bits of a variable unless it is an array. The type
makes variable a scalar, cannot part select a scalar.

F: ISSUE: Iterate on bits of Bitvar (variable of type bit, or variable
is an array of bits). Conflict with vpiBit Note 2 ?

- Integer var missing from figure: variable of type integer, or variable
of type array of integer.

B: Note 9 is in error

J: Both 9 and 2 notes are erroneous.

** V2K Reg diagram has a bit iterator and apparently got merged here by
mistake.

F: ISSUE: Iterating on bits and access on bit selects.

 

J: Class variables.

F: "var select" is twice in figure: already part of class so the
replication is not needed.

S: Local vs. "Driver"
J: Local stops at port, Driver gives other side

F: HiConn/LoConn, variable passed to a "ref" port
J: No difference if "ref" it is an object.

J: Document merges functionally from Reg and RegArray Sections 26.6.7
and 26.6.8

F: Packed arrays: do we need more iterator ?
J: No not really, some computation

J: One new callback type: cbSizeChange
B: What is the struct t_cb_size ??

F: Associate array

J: Triggers both

J: Type change callback.

M: Order of calls, what is the right order: (Size fires first seems the
intuition).

J: Drivers and Loads: used to be only to vbit, now add to var and part
select ("something is being loaded/driven").

F: Arrays ?

J: Just like part select

J: ISSUE: asking for "whole variable" load has been inconsistent (in
terms of support ?)

F: Note 2: add "array", sub-array and array element

J: "cont assign" is the behavioral (procedural) assign stmt
J/A: output flop driven by a wire would not work. Connectivity is what
this is intended for.

J: Readers and Writers in addition to Driver/Load.

M: For backward compatability needs to be something new.

J: Instance is named: one more subelement which is package (package
proposal passed).

J: Enclosures: dotted vs. not are wrong. Everything needs update.

J: Instance array similar 26.6.2 in V2K, only
F: Import clauses need to be added as well.

D: In BC: either command line or preprocessor directive `unit around
packages (i.e. scope) that are imported in various places.

J: "Begin" needs to "ForK" and a missing arrow.
J: unnamed begin and unnamed fork.

J: io_decl: "range" is a new addition, for multiple dimension arrays
that are passed.

J: "module" be an instance: module/interface/program/...

J: io_decl describes the formals: [...] var range_here

J: No VPI for "type", they do not exist as objects: Issue to access
types.

B: How to access "default" values of formals: This is missing, need to
check LRM to see where this is allowed (B:properties ?)

F: Clocking domain: vpiFullName is missing.

F: clocking io/decl: direction/name should be vpiDirection and vpiName
...

B: properties ?

J: concurrent assertions there. (instances not decl).

B: "expr" of the skews, what is that really ?

J: is it delay control ? Double check that... Skew can be sampling edge.

--- tabling for meeting with Francoise, overview continues---

J: variables "vpiWaitingProcess" goes to Frame (page 20) not method

J: Notes 1: "/" should not be there

J: Type of pointer and and type of object it points to

F: Examples!!!
D: Extern: DPI import and extern for methods

A: "Virtual" is there, need to look at what this is representation.

J: Iterator from instances to alias.

F: alias for nets only, why ?

J: will check that

J: Frames: now also exist for scopes: 1) can now have scopes containing
fork no joins, 2) scopes with automatic variables 3) convenient for
representing processes that are blocked.

F: Thread is a stack of frames.
J: Thread is for "forking" i.e. dynamic processes, frames can be used if
you have automatic variables ...

A: need pointer from frame back to thread.

D: extend frames to processes ?

J: pointer from "variables" back to properties: know where it is.

J: Property expr needs to be changed to an OP.

B: AC might extend things more operators on property level anyway for
3.1a (not official yet)
D: How is the alignment for "async" things...PSL/SVA
B: you can always "define" the clock in SVA (and declare a default in
PSL), but will check on this specific issue for the right answer.

J: "jump" needs to be changed to return + ...

----------

 

 

 

 



This archive was generated by hypermail 2b28 : Wed Nov 12 2003 - 14:28:10 PST