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