submission from [Herbert Lange <h-lange@ti.com>]

From: Logie Ramachandran <Logie.Ramachandran_at_.....>
Date: Wed Mar 14 2007 - 06:14:08 PDT
 
Hello,

survey is attached,

Regards, Herbert Lange

-- 
Herbert Lange				mailto:h-lange@ti.com    
EDA Solutions Mgr.			E-HPA, Germany           
Texas Instruments Deutschland GmbH	Phone: +49 8161-80 4608  
D-85350 Freising			Fax:   +49 8161-80 4477  


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


--------------080905080205060005010109
Content-Type: text/plain;
 name="surveyHL.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="surveyHL.txt"

Survey Questionnaire: SystemVerilog interoperability with other HDL
languages
========================================================================
=====
Purpose:

The purpose of this questionnaire is to understand the importance of 
various topics that deal with SystemVerilog interoperability as it 
pertains to other HDL languages.  We focus on three HDL languages
in this survey  (SystemC, VHDL and AMS). 

Your inputs will help the SV-XC committee focus on the important 
items that will have direct impact on your design methodology. 
We will do a comprehensive technical analysis, but your 
requirements and their priority to you will help us.  It will allow 
us make better tradeoffs on usability and phase the development 
of the standards effectively. You are encouraged to elaborate 
on your answer to any question or add additional feedback not 
specifically requested.

For each of the questions please replace the [] at the beginning
of the line with your importance rating.  Use the following
codes to make it consistent. 
 
[1] Extremely Important
[2] Important
[3] Not that important
[4] Not required

There are four sections in this questionnaire. Section 1 addresses
"General" questions on interoperability of SystemVerilog. Section
2 focuses on SystemC while Section 3 focusses on VHDL interaction
with SystemVerilog. Section 4 addresses AMS issues as it pertains
to SystemVerilog. The final Section provides a few open ended
questions that will help capture any other feedback. 

Please send your feedback to the committee at sv-xc@eda.org. You
can also send email directly to logie@synopsys.com or somdipta@ti.com

We would appreciate receiving your feedback within 2 weeks (Mar 15, 
2007). However if you need additional time, please let us know. 

Thanks in advance for your help. If you would like to join
the committee and participate
in the SV-XC committee deliberations  please review the
instructions at http://www.eda-twiki.org/sv-xc.




================================================================
Section 1: General
================================================================
   1.1     Do you see interoperability of languages as an issue that
           needs to be addressed. If so what kinds of interoperability
           issues?

[2] 1.1.1   SystemC <-> SystemVerilog interoperability
[2] 1.1.2   VHDL    <-> SystemVerilog interoperability
[1] 1.1.3   AMS     <-> SystemVerilog interoperability
[2] 1.1.4   The digital subset inter-operating seamlessly (SV, VHDL, 
           SystemC)
[2] 1.1.5   All four interoperating seamlessly (AMS, VHDL, SV, SystemC)

--------------------
   1.2     Which of the following needs  standardization?

[2] 1.2.1   SystemC <-> SystemVerilog interoperability
[3] 1.2.2   VHDL    <-> SystemVerilog interoperability
[1] 1.2.3   AMS     <-> SystemVerilog interoperability
[2] 1.2.4   The digital subset inter-operating seamlessly (SV, VHDL, 
           SystemC)
[2] 1.2.4   All four interoperating seamlessly (AMS, VHDL, SV, SystemC)

--------------------
  1.3      Some aspects of interoperability may be specified by 
           providing a definition of expected behavior while others may 
           require one or more of the base languages to 
           add new features, change simulation semantics,  or even 
           change in a manner that is not backward compatible.  
           As guidelines, please rank the following approaches:

[4] 1.3.1   strictly preserve the current definition and semantics of 
           all languages
[4] 1.3.2   only make changes to SV language as needed
[2] 1.3.3   propose interoperability features contingent upon changes 
           to non SV languages
[2] 1.3.4   where changes are desirable, always preserve backward 
           compatibility
[2] 1.3.5   guarantee that a model behaves the same in a mixed language 
           environment as  they do in a single language environment

--------------------
  1.4      In the context of interoperability, is it important to 
           have the capability to cosimulate multipe simulators
           (supporting different languages) from different vendors?
[2]        


================================================================
Section 2: SystemC/C++
================================================================
    2.1    At what levels of abstraction should a SystemC model 
           communicate with a SystemVerilog model?  Rate your
           interest for each of the following interoperability
           paradigms

[1]  2.1.1  Algorithmic or behavioral level
[2]  2.1.2  Communicating processes
[3]  2.1.3  RTL
[3]  2.1.4  Cycle-accurate level
[]  2.1.5  Other, please specify

--------------------
    2.2    What kinds of connections are important across
           the SystemC/SystemVerilog boundary?

[3]  2.2.1  Pin Level connection with simple built in types
[2]  2.2.2  Pin Level connection with complex data types (such
           as arrays, structs)    
[3]  2.2.3  High level synchronization connection with 
           interoperability of events, mailboxes, semaphores etc
[2]  2.2.4  Passing parameters across the language boundary
[1]  2.2.5  Hierarchically referencing external objects defined
           in one language from the other language. 

--------------------
    2.3    Would you like DPI extended in order to cover 
           interaction with SystemC.   Please provide the level
           of importance that you would attach to the following
           requirements. 

[3]  2.3.1  Extend DPI import to allow calling of non time-consuming 
           SystemC member functions as DPI import functions?
           (Note: SystemC member function implies a member function
            from a SystemC module class or abstract interface class)
[3]  2.3.2  Extend DPI import to allow calling of time consuming
           SystemC member functions as DPI import task?
[4]  2.3.3  Extend DPI export to allow calling of non time-consuming
           SV functions from SystemC?
[4]  2.3.4  Extend DPI to enable SV testbench to pass high level
           transactions to  a SystemC model 

--------------------
   2.4     Would you like DPI extended in order to cover interaction
           with pure C++ (not SystemC)

[3] 2.4.1   Extend DPI import/export functions  to enable calling
           C++ functions (including object methods)
[3] 2.4.2   Allow static methods of a SystemVerilog class 
           to be declared as  export functions in DPI, 
           so that they can be called  from any C++ domain

--------------------
[2] 2.5     Would you like to see clear definition of scheduling 
           semantics between SystemC  and SystemVerilog

[3] 2.5.1   Do you require interoperability of events between
           SystemVerilog and SytemC. If so which ones of the
           following are important. 
[3] 2.5.2   SystemC is notified instantly about 
           SystemVerilog events 
[2] 2.5.3   SystemVerilog is notified instantly about SystemC 
           events


--------------------
[3] 2.6     Do you require interoperability of classes between 
           SystemC/C++ and SystemVerilog

[3] 2.6.1   Do you require to instantiate and use C++ classes within
           SystemVerilog
[3] 2.6.2   Do you require to instantiate and use SystemC 
           (sc_modules) in  SystemVerilog
[4] 2.63    Do you require to instantiate and use SystemVerilog 
           classes  in SystemC

--------------------
    2.7    What is the importance of different use models for
           designs containing both SystemVerilog and SystemC ?

[2] 2.7.1   Abstract, transaction-level SystemC model serves as
           reference model. It is embedded into a SV testbench.
[3] 2.7.2   SV testbench driving RTL-level SystemC model
[4] 2.7.3   SystemC testbench driving DUT written in Verilog or VHDL
[3] 2.7.4   SystemC models are behavioral synthesis models, embedded
           into SV testbench
[4] 2.7.5   SystemC models are at RT level and used together with 
           other RTL models written in SV, Verilog or VHDL
[4] 2.7.6   SystemC model is a wrapper around a model written in 
           C. The SystemC model has an RTL interface. 
[3] 2.7.7   SystemC model is a wrapper around some model written in 
           C.  The SystemC model has an TL interface, is driven by 
           function calls and is cycle accurate

--------------------
   2.8     Please list any data type mappings between SystemVerilog
           and SystemC that are particularly important 

[2] 2.8.1   SystemC types such as int, sc_[big]int, [big]sc_uint,
           sc_lv, sc_bv to/from SystemVerilog

           real types

[] 2.8.2   Complex datatypes such as user-defined
           structures or arrays across the port boundary

           real and integer arrays

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




================================================================
Section 3: VHDL
================================================================
    3.1    What kinds of items would you like to be able to 
           instantiate across VHDL, SystemVerilog boundary

[2] 3.1.1   Modules and Architectures
[2] 3.1.2   SystemVerilog Interfaces
[3] 3.1.3   SystemVerilog Program Blocks
[3] 3.1.5   Packages

--------------------
[4] 3.2     Would you like to have an integrated mechanism for 
           configuring instantiations across the language boundary? 

--------------------
    3.3    What kinds of objects would you like to connect in an
           instantiation that crosses SystemVerilog-VHDL boundary
[2] 3.3.1   Parameters/generics
[2] 3.3.2   Ports that are nets/signals
[2] 3.3.3   Ports that variables
[3] 3.3.4   Shared/reference variables

--------------------
    3.4    What kinds of data types would you like to see supported
           on "parameters/generics" at the SystemVerilog-VHDL
           boundary
[2] 3.4.1   Bit
[3] 3.4.2   4-state logic 
[1] 3.4.3   Real, short real
[3] 3.4.4   Time
[1] 3.4.5   Dynamic data types. If so, which ones?
[3] 3.4.6   Enumerations
[2] 3.4.7   Arrays of bit/logic
[1] 3.4.8   Arrays of other data types. If so, what data types?
            integer real, even 2D and 3D arrays
[2] 3.4.9   Packed Structs/Records
[2] 3.4.10  Unpacked Structs/Records
[] 3.4.11  Other. Please explain.

    3.4b   Please list any data type mappings (e.g. VHDL std_ulogic
           to Verilog logic) that are particularly important

--------------------
    3.5    What kinds of data types would you like to see supported
           on "nets/signals" at a language boundary?
[2] 3.5.1   Bit
[3] 3.5.2   4-state logic with strength
[1] 3.5.3   Real, short real
[3] 3.5.4   Time
[1] 3.5.5   Dynamic data types
[3] 3.5.6   Enumerations
[2] 3.5.7   Arrays of bit/logic
[1] 3.5.8   Arrays of other data types. If so what data types?
            integer real, even 2D and 3D arrays
[2] 3.5.9   Packed Structs/Records
[2] 3.5.10  Unpacked Structs/Records
[3] 3.5.11  Signed Datatypes
[] 3.5.12  Other. Please explain

    3.5b   Please list any data type mappings (e.g. VHDL std_ulogic
           to Verilog logic) that are particularly important

    VHDL real or analog_t   to   new kind of real Verilog port type,
              with a driving strength attached to it for resolution

--------------------
    3.6    What kinds of data types would you like to see supported
           on "variables" at the SystemVerilog/VHDL language boundary?

[2] 3.6.1   Bit
[3] 3.6.2   4-state logic with strength
[1] 3.6.3   Real
[3] 3.6.4   Time
[1] 3.6.5   Dynamic data types
[3] 3.6.6   Enumerations
[2] 3.6.7   Arrays of bit/logic
[1] 3.6.8   Arrays of other data types. If so what data types?
[2] 3.6.9   Packed Structs/Records
[2] 3.6.10  Unpacked Structs/Records
[3] 3.6.11  Signed Datatypes
[] 3.6.12  Other. Please explain

   3.6b    Please list any data type mappings (e.g. VHDL std_ulogic
           to Verilog logic) that are particularly important

--------------------
    3.7    What network resolution semantics would you like to be
           preserved across the SystemVerilog-VHDL language boundary?
[3] 3.7.1   2-state
[2] 3.7.2   Multiple drivers
[2] 3.7.3   trireg
[2] 3.7.4   bidirectional transistor networks
[1] 3.7.5   Verilog strength
[] 3.7.6   Other. Please explain.

--------------------
    3.8    What kinds of behavioral code would you like to be 
           able to call across a language boundary?
[3] 3.8.1   Functions
[3] 3.8.2   Tasks
[2] 3.8.3   Procedures 

--------------------
   3.9     What kind of integrated interprocess synchronization 
           would you like to see in a mixed-language simulation 
           (events, semaphores, etc.)?
[2] 3.9.1   Events
[3] 3.9.2   Semaphores
[3] 3.9.3   Mailboxes
[3] 3.9.4   Queues

--------------------
[3] 3.10    How important is an integrated I/0 mechanism between 
      VHDL   and SystemVerilog? 

--------------------
[3] 3.11    Would you like to have integrated access to timing
           backannotation (Verilog SDF and VHDL VITAL)? Clocking 
           blocks?

--------------------
   3.12    Would you like to see VPI extended for the following
           reasons.
[4] 3.12.1  Extend VPI to access objects from VHDL
[4] 3.12.2  Extend VPI to incorporate access to VHPI

--------------------
[1] 3.13    Would you like to be able to directly reference 
           objects that are declared in a different language 
	      (through a hierarchical reference)? 

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

[4] 3.14    Would you like DPI extended to cover the following
           scenarios

[4] 3.14.1  Extend DPI export to enable them to be called from 
           VHDL-VHPI or Verilog-VPI callback functions

--------------------
[2] 3.15    Would you like to see clear definition of scheduling
           semantics  between VHDL  and SystemVerilog

--------------------
3.16       Both VHDL and SV support strong typing and type 
           safety for  user-defined data types such as enumerations, 
           structures,records, unions, and classes.  This guarantees 
           that erroneous operations and illegal values for the type 
           do not occur in objects unless specifically intended, e.g., 
           by casting. How important is it to provide mechanisms to 
           preserve type safety:

[3] 3.16.1  For enumerations and structure/record types
[3] 3.16.2  For all user-defined types, where both languages 
           require it
[3] 3.16.3  For all data types that do not have a one-to-one compatible 
           type between the languages

--------------------
3.17       There are various mechanisms that could support type safety, 
	      where required.  Please indicate which you would like to
see:

[2] 3.17.1  Sharing of types declared from an inter-operable packages
           written in SV
[3] 3.17.2  Sharing of types declared from an inter-operable package 
           written in VHDL
[3] 3.17.3  Sharing of types declared via a hierarchical reference
[2] 3.17.4  Explicitly declaring(somehow) that 2 distinct types are 
           equivalent,  subject to  appropriate rules

--------------------
[3] 3.18    There are some kinds of objects that could have no
           equivalent in the other language, e.g, a multidimensional 
           array in VHDL  or a SV class. Is there a need for a 
           mechanism to transparently pass an object of such a kind 
           as a parameter or a port?    For example, is there a 
	      need to pass a class from SV through a VHDL instance to 
           another SV child instance?

--------------------
   3.19    Would you like to extend SystemVerilog bind to work across
           the SystemVerilog - VHDL language boundary

[3] 3.19.1  Bind SystemVerilog modules/interfaces/programs to VHDL
[4] 3.19.2  Bind VHDL entities/architecture to SystemVerilog modules/



================================================================
Section 4: AMS
================================================================

   4.1    What kind of Analog design unit would you like to instantiate 
          in SystemVerilog
[3] 4.1.1  SPICE
[1] 4.1.2  VERILOG-AMS
[2] 4.1.3  Others. please specify : VERILOG-A

--------------------   
   4.2    What kinds of data types would you like to see supported
          on nets  at the SystemVerilog/Analog boundary?
[1] 4.2.1   Bit
[1] 4.2.2   4-state logic with strength
[1] 4.2.3   Real, short real
[2] 4.2.4   Time
[1] 4.2.5   Dynamic data types
[2] 4.2.6   Enumerations
[2] 4.2.7   Arrays of bit/logic
[1] 4.2.8   Arrays of other data types. If so what data types?
           Arrays {of Arrays} of real or integer 
[2] 4.2.9   Packed Structs/Records
[2] 4.2.10  Unpacked Structs/Records
[3] 4.2.11  Signed Datatypes
[] 4.2.11  Other. Please explain

--------------------
[3]  4.3    How important is the use of interface/modports at the
           SV-SPICE boundary?

--------------------
[3]  4.4    Will you need parameter passing across the SystemVerilog
           - SPICE boundary?
[3] 4.4.1   from SystemVerilog to SPICE? 
[3] 4.4.2   SPICE to SystemVerilog? 

--------------------
[4]  4.5    Would you like to instantiate SystemVerilog models in 
           Spice and what SV port types to be allowed?

[4] 4.5.1   Bit
[4] 4.5.2   4-state logic with strength
[4] 4.5.3   Real, short real
[4] 4.5.4   Time
[4] 4.5.5   Dynamic data types
[4] 4.5.6   Enumerations
[4] 4.5.7   Arrays of bit/logic
[4] 4.5.8   Arrays of other data types. If so what data types?
[4] 4.5.9   Packed Structs/Records
[4] 4.5.10  Unpacked Structs/Records
[4] 4.5.11  Signed Datatypes
[4] 4.5.11  Other. Please explain

--------------------
[4]  4.6    Would you like to be able to instantiate 
           Program blocks and SystemVerilog interfaces in Spice models

--------------------
[1]  4.7    How important is extending Verilog AMS to allow usage
           of SV data types inside VERILOG-AMS  (analog blocks)

--------------------
    4.8    Would you like to see the keyword conflict resolved for 
           the following  keywords
[1] 4.8.1   type
[1] 4.8.2   logic

--------------------
[2]  4.9    How important is it to allow SV scalar data type in the 
           connect module? 

--------------------
[3] 4.10    Is it important to define rules for discipline 
           propagation (basic and detailed)  through SV objects 
           (net/variable/reg). 

--------------------
[3] 4.11    How important are rules for driver-receiver segregation 
           for mixed  signal net with SV data type. 

-------------------- 
[1] 4.12    Would you like to see clear definition of scheduling 
           semantics between SPICE or (Verilog-AMS) and SystemVerilog

--------------------
[1] 4.13    Is it important to clarify the behavior of 
           force/release/deposit/vpi  on a mixed signal net 

--------------------
[4] 4.14    Is it important to extend VPI to enable traversing the 
           spice hierarchy?

--------------------
[1] 4.15    Would you like to see the interaction between 
           bi-directional devices  such as tran/rtran when
           connected to  analog net/node clarified

--------------------
[1] 4.16    Will you use SDF annotation on a mixed signal net. 
           Is it important to extend and define the behavior of 
           such SDF annotation

--------------------
[4] 4.17    Would you like to see Configurations expanded to cover 
           both the analog (SPICE) and digitial (SystemVerilog) 
           domains 

--------------------
[4] 4.18    Would you like to see SV bind be extended to enable 
           binding of instances within SPICE sub-circuit?

--------------------
[1] 4.19    How important is it to define the behavior of  
           SystemVerilog  testbench  with analog net? Should 
           SystemVerilog program  be enable to read/write 
           analog net? 

--------------------
[1] 4.20    Do you foresee using SystemVerilog assertions to check
           analog nets? Should SVA be extended to read values from
           analog nets?

--------------------
[1] 4.21    Is it important to extend hierarchical references in
           System Verilog to span SPICE nets?
 

================================================================
Section 5: Misc
================================================================
           The previous questions are feature oriented. They may 
           not express all your requirements and they may not allow 
           you to explain what use models you envision for developing
           design and verification models that lead to your need for 
           mixed language interoperability.  The following questions 
           suggest ways to complete your feedback.  Provide answers 
           if appropriate to express your needs.


[1] 5.1     What levels of abstraction and role do your existing models 
           have for each HDL language that you use? How do they need to 
           work together today?  How do you anticipate this use model 
           changing over time?

 Levels of abstraction when using Verilog-AMS and (System)Verilog
 in ascending order :
   analog  : functional, signalflow, lumped, natural, netlist
   digital : tlm, behavioral, rtl, netlist
 The set of abstraction levels is application specific and also depends
 on the current project state (exploration -> implementation ->
verification).

 Actually we are using mainly Verilog-AMS/VHDL and
 Verilog-AMS/spectre/spice netlists.
 These are configured within AMS-Designer and many simulations are
 controlled interactively by a smart Verilog-AMS testbench.

 In the foreseeable future we see, that many project groups are moving
 in this direction, we expect the HDVL-supported top\down-bottom/up
 methodology to establish within the next ten years; an substantial
 precondition for this is a comprehensive interface between
 SystemVerilog & Verilog-AMS.

--------------------
[1] 5.2     At a high level, what do you expect to be able to do with 
           more mixed language interoperability that you are currently 
           not able to do today?   How will it change your design 
           methodology over time?

 We will gain the ability to accomplish HDVL-based mixed-signal
verification.
 If there is a common SystemVerilog-AMS standard there will be a great
momentum
 behind this powerful HDVL and it will be worthwhile to spend more time
on
 generic (reuse!!!) HDVL models and hence a top\down-bottom/up
methodology will
 perform efficiently. Besides more sophisticated/guided HDVL
testbenching
 will be a great asset for AMS design and validation/verification.

-------------------
[2] 5.3     While one can idealize how completely and seamlessly they 
           would like everything to inter-operate, not everything is 
           practical.  At some level, the alternative is enhancing one 
           particular language to meet a need, or changing to a 
           different language.  Are there some aspects of 
           interoperability  that you believe are not appropriate for
           standardization?  Why?

 I think that doing a best-of kind of extension for SystemVerilog,
Verilog-AMS
 and VHDL is the key to specifying a real-world
interface/inter-operability.

-------------------
[] 5.4     Is there anything else on this topic that you would like to 
           say?

 The endeavours of your comittee will have a great impact on design
methodology.
 They can ensure that the future HDVL implementations will be more
complete and
 hence are fully satisfying the users needs.
 I wish you every success :) 

-------------------
[] 5.5     Can we contact you for additional information. If so please
           supply email address below. 

 h-lange@ti.com


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

Thank you for your time!

--------------080905080205060005010109--

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Mar 14 06:18:50 2007

This archive was generated by hypermail 2.1.8 : Wed Mar 14 2007 - 06:18:52 PDT