在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8317|回复: 5

questsim 6.3c 对sv 也不是全部都支持的?

[复制链接]
发表于 2009-11-10 20:03:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 dodoee 于 2009-11-10 20:05 编辑

vlog -work work -vopt -sv -nocovercells D:/Project/questasim/svtest/interface_Multibus.sv
QuestaSim vlog 6.3c Compiler 2007.09 Sep 11 2007
-- Compiling interface Multibus
** Error: D:/Project/questasim/svtest/interface_Multibus.sv(63): (vlog-60) Extern task/function declarations not yet supported.
** Error: D:/Project/questasim/svtest/interface_Multibus.sv(64): (vlog-60) Extern task/function declarations not yet supported.
** Error: D:/Project/questasim/svtest/interface_Multibus.sv(65): Illegal lifetime qualifier 'static' specified for task prototype 'ReadMem'.
** Error: D:/Project/questasim/svtest/interface_Multibus.sv(69): Illegal lifetime qualifier 'static' specified for task prototype 'WriteMem'.
-- Compiling module Clock
-- Compiling module Tester

仿了一个sv 的例子 ,结果questsim 6.3c 这样提示 ,然后看 questsim 的技术手册才知道原来questsim 对sv 也不是全支持,只比modelsim 多支持了一点
看questsim 安装目录QuestaSim_6.3c\docs\technotes 下的sysvlog.note 文件里面就有questsim支持sv 的那些项目。
和modelsim 相同目录下的sysvlog.note  文件已比较才发现,只比modelsim 多了支持一些功能,不是全都支持。
下面是questsim支持的sv 的功能
Mentor Graphics Technical Note
Copyright 1991-2007 Mentor Graphics Corporation
All Rights Reserved.
This document contains information that is proprietary to Mentor Graphics
Corporation. The original recipient of this document may duplicate this
document in whole or in part for internal business purposes only, provided
that this entire notice appears in all copies. In duplicating any part of
this document, the recipient agrees to make every reasonable effort to
prevent the unauthorized use and distribution of the proprietary information.
Trademarks that appear in Mentor Graphics product publications that are not
owned by Mentor Graphics are trademarks of their respective owners.

IEEE 1800-2005 SystemVerilog Features Supported in Questa 6.3b
==============================================================================
Section 1: Overview
Section 2: Normative references
Section 3: Literal values
------------------------------------------------------------------------------
3.1       Introduction
3.2       Literal syntax
3.3       Integer & logic literals
3.4       Real literals
3.5       Time literals
3.6       String literals
3.7       Array literals
3.8       Structure literals
Section 4: Data Types
------------------------------------------------------------------------------
4.1       Introduction
4.2       Data type syntax
4.3       Integer data type
4.3.1     Integral types
4.3.2     2-state (two-value) and 4-state (four-value) data types
4.3.3     Signed and unsigned data types
4.4       Real & shortreal data types
4.5       Void data type
4.6       chandle data type
4.7       String data type
4.7.1     Len()
4.7.2     Putc()
4.7.3     Getc()
4.7.4     Toupper()
4.7.5     Tolower()
4.7.6     Compare()
4.7.7     Icompare()
4.7.8     Substr()
4.7.9     Atoi(), atohex(), atooct(), atobin()
4.7.10    Atoreal()
4.7.11    Itoa()
4.7.12    Hextoa()
4.7.13    Octtoa()
4.7.14    Bintoa()
4.7.15    Realtoa()
4.8       Event data type
4.9       User-defined data type
4.10      Enumerations
4.10.1    Defining new data types as enumerated types
4.10.2    Enumerated type ranges
4.10.3    Type checking
4.10.4    Enumerated types in numerical expressions
4.10.4.1  First()
4.10.4.2  Last()
4.10.4.3  Next()
4.10.4.4  Prev()
4.10.4.5  Num()
4.10.4.6  Name()
4.10.4.7  Using enumerated type methods
4.11      Structures & Unions
4.12      Classes
              * No nesting of class declarations, see section 7
4.13      Singular and aggregate types
4.14      Casting
              * NOTE: As per a change in the 1800 LRM, a cast expression is
                no longer a self-determined expression.  For assignment
         compatible types, it behaves just like an assignment.
4.15      $cast dynamic casting
4.16      Bit-stream casting
4.17      Default attribute type
              * NOT SUPPORTED
Section 5: Arrays
------------------------------------------------------------------------------
5.1       Introduction
5.2       Pack & unpacked arrays
5.3       Multiple dimensions
5.4       Indexing & slicing of arrays
5.5       Array querying functions
5.6       Dynamic arrays
5.6.1     New[]
5.6.2     Size()
5.6.3     Delete()
5.7       Array assignment
5.8       Arrays as arguments
5.9       Associative arrays
5.9.1     Wildcard index type
5.9.2     String index
5.9.3     Class index
5.9.4     Integer (or int) index
5.9.5     Signed packed array
5.9.6     Unsigned packed array or packed struct
5.9.7     Other user-defined types
5.10      Associative array methods
5.10.1    Num()
5.10.2    Delete()
5.10.3    Exists()
5.10.4    First()
5.10.5    Last()
5.10.6    Next()
5.10.7    Prev()
5.11      Associative array assignment
5.12      Associative array arguments
5.13      Associative array literals
5.14      Queues
5.14.1    Queue operators
5.14.2    Queue methods
5.14.2.1  Size()
5.14.2.2  Insert()
5.14.2.3  Delete()
5.14.2.4  Pop_front()
5.14.2.5  Pop_back()
5.14.2.6  Push_front()
5.14.2.7  Push_back()
5.15      Array manipulation methods
5.15.1    Array locator methods
5.15.2    Array ordering methods
5.15.3    Array reduction methods
5.15.4    Iterator index querying
Section 6: Data Declarations
------------------------------------------------------------------------------
6.1       Introduction
6.2       Data declaration syntax
6.3       Constants
6.3.1     Parameter declaration syntax
6.3.2     Value parameters
6.3.2.1   $ as a parameter value
6.3.3     Type parameters
6.3.4     Parameter port lists
6.3.5     Const constants
6.4       Variables
6.5       Nets
6.6       Scope & lifetime
              * Variables must be declared in named blocks
              * Automatic variables not supported in initial/always blocks
              * Lifetime qualifier not supported in module, program, or
                interface declarations
6.7       Nets, regs, logic (continuous assignment to variables)
6.8       Signal aliasing
              * NOT SUPPORTED
6.9       Type compatibility
6.9.1     Matching types
6.9.2     Equivalent types
6.9.3     Assignment compatible
6.9.4     Cast compatible
6.9.5     Type incompatible
6.10      Type operator
Section 7: Classes
------------------------------------------------------------------------------
7.1       Introduction
7.2       Syntax
              * class timeunits not supported
7.3       Overview
7.4       Objects (class instance)
              * No nesting of class declarations
7.5       Object properties
7.6       Object methods
7.7       Constructors
7.8       Static class properties
7.9       Static methods
7.10      This
7.11      Class assignment, re-naming, & copying
7.12      Inheritance & subclasses
7.13      Overridden members
7.14      Super
7.15      Casting ($cast)
7.16      Chaining constructors
7.17      Data hiding & encapsulation
7.18      Constant class properties
7.19      Abstract classes and virtual methods
          NOTE:
              * syntax for an unimplemented virtual method has been changed
                to "pure virtual"
7.20      Polymorphism: dynamic method lookup
7.21      Class scope resolution operator ::
7.22      Out-of-block declarations
              * Lifetime of method cannot be changed with external definition
                from default lifetime of the class
              * External method definitions cannot return a type parameter
              * Direct specification of parameterized class handle return
                types in external method definition not supported
7.23      Parameterized classes
7.24      Typedef class
7.25      Classes & structures
7.26      Memory management
              * Circular references are not garbage collected
Section 8: Operators and Expressions
------------------------------------------------------------------------------
8.1       Introduction
8.2       Operator syntax
8.3       Assignment operators
8.4       Operations on logic and bit types
8.5       Wild equality & wild inequality
8.6       Real operators
8.7       Size
8.8       Sign
8.9       Operator precedence and associatively
8.10      Built-in methods
8.10.1    Built-in package
8.11      Static prefixes
8.12      Concatenation
8.13      Assignment patterns
8.13.1    Array assignment patterns
8.13.2    Structure assignment patterns
8.14      Tagged union expressions & member access
              * Void members not supported
8.15      Aggregate expressions
8.16      Operator overloading
              * NOT SUPPORTED
8.17      Streaming operators (pack/unpack)
8.17.1    Streaming dynamically sized data
8.18      Conditional operator
              * "matches" not yet supported
8.19      Set membership
              * Wild card semantic of inside operator in a constraint not
                supported
              * Error reported for X or Z value in a constraint not supported
Section 9: Scheduling semantics
------------------------------------------------------------------------------
9.1       Execution of a hardware model and its verification environment
9.2       Event simulation
9.3       The statified event scheduler
9.3.1     The SystemVerilog simulation reference algorithm
9.4       The PLI callback control points
              * NOT SUPPORTED
Section 10: Procedural statements and control flow
------------------------------------------------------------------------------
10.1      Introduction
10.2      Statements
10.3      Blocking & nonblocking assignments
10.4      Selection statements
              * Partial support of unique/priority. Uniqueness check is not
                done in if_else statements where expressions on both sides are
                variables, both sides are constants, the operator is other
                than the equality operator, or when if conditions use
                different variables:
               
                    unique if (a<b)  // Ignored due to "<"
                    else if (11==13) // Ignored due to constants on both sides
                    else if (c==d)   // Ignored due to variables on both sides
                    
                    unique if (a==5) // Ignored due to different variables
                    else if (b==6)   //   used in each condition
                    else if (c==7)   //
              * The case...inside statement NOT SUPPORTED      
10.4.1    Pattern matching
10.4.1.1  Pattern matching in case statements
              * NOT SUPPORTED
10.4.1.2  Pattern matching in if statements
10.4.1.3  Pattern matching in conditional expressions
10.5      Loop statements
10.5.1    The do...while loop
10.5.2    Enhanced for loop
10.5.3    The foreach loop
10.6      Jump statements
10.7      Final blocks
10.8      Named blocks and statement labels
10.9      Disable
10.10     Event control
10.10.1   Sequence events
              * Hierarchical references to sequences supported with the
                following restrictions
                    - Clock and disable iff expressions cannot have a formal
                    - Method 'matched' not supported on a hier-ref'd sequence
10.11     Level-sensitive sequence controls
              * Hierarchical references to sequences supported with the
                following restrictions
                    - Clock and disable iff expressions cannot have a formal
                    - Method 'matched' not supported on a hier-ref'd sequence
10.12     Procedural assign and deassign removal
              * NOT YET REMOVED
Section 11: Processes
------------------------------------------------------------------------------
11.1      Introduction
11.2      Combinational logic (always_comb)
11.2.1    Implicit always_comb sensitivities
11.3      Latched logic (always_latch)
11.4      Sequential logic (always_ff)
11.5      Continuous assignments
11.6      Fork ... join (all, any, none)
11.7      Process execution threads
11.8      Process control
11.8.1    Wait fork
11.8.2    Disable fork
11.9      Fine-grain process control
Section 12: Tasks and functions
------------------------------------------------------------------------------
12.1      Introduction (Multiple statements without begin/end)
12.2      Tasks
12.3      Functions
12.3.1    Return values and void functions
12.3.2    Discarding function return values
12.3.3    Constant function calls
12.4      Task and function argument passing
12.4.1    Pass by value
12.4.2    Pass by reference
12.4.3    Default argument values
12.4.4    Argument binding by name
12.4.5    Optional argument list
12.5      Import and export functions
Section 13: Random constraints
------------------------------------------------------------------------------
13.1      Introduction
13.2      Overview
13.3      Random variables
13.3.1    rand modifier
13.3.2    randc modifier
              * Elements of a random dynamic array, associative array, or
                queue are not supported
13.4      Constraint blocks
13.4.1    External constraint blocks
13.4.2    Inheritance
13.4.3    Set membership
13.4.4    Distribution
13.4.5    Implication
13.4.6    If...else constraints
13.4.7    Iterative constraints
13.4.8    Global constraints
13.4.9    Variable ordering
13.4.10   Static constraint blocks
13.4.11   Functions in constraints
13.4.12   Constraint guards
13.5      Randomization methods
13.5.1    Randomize()
13.5.2    Pre_randomize() and post_randomize()
13.5.3    Behavior of randomization methods
13.6      Inline constraints - randomize() with
              * Cannot specify in-line constraints when invoking hierarchical
                calls to class::randomize()
13.7      Disabling random variables with rand_mode()
              * The rand_mode() for the elements of a random dynamic array,
                associative array, or queue and paremeterized class cannot be
                changed (they will always be treated as if set to TRUE)
13.8      Controlling constraints with constraint_mode()
13.9      Dynamic constraint modification
13.10     Inline random variable control
              * Cannot specify in-line random variables when invoking
                hierarchical calls to class::randomize()
13.10.1   In-line constraint checker
13.11     Randomization with scope variables - standard::randomize()
13.11.1   Adding constraints to scope variables - std::randomize() with
13.12     Random number system functions and methods
13.12.1   $urandom
13.12.2   $urandom_range()
13.12.3   $srandom()
13.12.4   get_randstate()
13.12.5   set_randstate()
13.13     Random stability
13.13.1   Random stability properties
13.13.2   Thread stability
13.13.3   Object stability
13.14     Manually seeding randomize
13.15     Random weighted case - randcase
13.16     Random sequence generation - randsequence
              * Cannot reference automatic variables in an intermediate
                parent scope from within a randsequence production
              * Referencing the array form of production return values not
                supported
13.16.1   Random production weights
13.16.2   If...else production statements
13.16.3   Case production statements
13.16.4   Repeat production statements
13.16.5   Interleaving productions - rand join
13.16.6   Aborting productions - break and return
13.16.7   Value passing between productions
Section 14: Interprocess synchronization and communication
------------------------------------------------------------------------------
14.1      Introduction
14.2      Semaphores
14.2.1    New()
14.2.2    Put()
14.2.3    Get()
14.2.4    Try_get()
14.3      Mailboxes
              * Untyped (singular type) mailbox not supported
14.3.1    New()
14.3.2    Num()
14.3.3    Put()
14.3.4    Try_put()
14.3.5    Get()
14.3.6    Try_get()
14.3.7    Peek()
14.3.8    Try_peek()
14.4      Parameterized mailboxes
14.5      Event
14.5.1    Triggering an event
14.5.2    Nonblocking event trigger
14.5.3    Waiting for an event
14.5.4    Persistent trigger: triggered property
14.6      Event sequencing: wait_order()
              * NOT SUPPORTED
14.7      Event variables
14.7.1    Merging events
14.7.2    Reclaiming events
14.7.3    Events comparison

Section 15: Clocking blocks
------------------------------------------------------------------------------
15.1      Introduction
15.2      Clocking blocks declarations
15.3      Input and output skews
15.4      Hierarchical expressions
15.5      Signals in multiple clocking blocks
15.6      Clocking block scope and lifetime
15.7      Multiple clocking block example
15.8      Interfaces and clocking blocks
15.9      Clocking block events
15.10     Cycle delay: ##
15.11     Default clocking
15.12     Input sampling
15.13     Synchronous events
15.14     Synchronous drives
15.14.1   Drives and nonblocking assignments
15.14.2   Drive value resolution
              * NOT SUPPORTED
Section 16: Program block
------------------------------------------------------------------------------
16.1      Introduction
16.2      The program construct
              * Cannot nest program blocks
16.3      Eliminating testbench races
16.4      Blocking tasks in cycle/event mode
              * NOT SUPPORTED
16.5      Programwide space and anonymous programs
              * NOT SUPPORTED
16.6      Program control tasks
              * NOT SUPPORTED
16.6.1    $exit()
              * NOT SUPPORTED
Section 17: Assertions
------------------------------------------------------------------------------
17.1      Introduction
17.2      Immediate assertions
17.3      Concurrent assertion overview
17.4      Boolean expressions
              * No checking for side effects of function calls
17.4.1    Operand types
17.4.2    Variables
17.4.3    Operators
17.5      Sequences
17.6      Declaring sequences
              * Hierarchical references to sequences supported with the
                following restrictions
                    - Clock and disable iff expressions cannot have a formal
                    - Method 'matched' not supported on a hier-ref'd sequence
17.6.1    Typed formal arguments in sequence declarations
              * Only type information can be added before the parameter
17.7      Sequence operations
17.7.1    Operator precedence
17.7.2    Repetition in sequences
17.7.3    Sampled value functions ($sampled, $rose, $fell, $stable, $past)
17.7.4    AND operation
17.7.5    Intersection (AND with length restriction)
17.7.6    OR operation
17.7.7    First_match operation
17.7.8    Conditions over sequences
17.7.9    Sequences contained within another sequence
17.7.10   Detecting and using end point of a sequence
17.8      Manipulating data in a sequence
17.9      Calling subroutines on match of a sequence
17.10     System functions
17.11     Declaring properties
              * Hierarchical references to properties supported with the
                following restrictions
                    - Clock and disable iff expressions cannot have a formal
                    - Method 'matched' not supported on a hier-ref'd sequence
17.11.1   Typed formal arguments in property declarations
              * Only type information can be added before the parameter
17.11.2   Implication
17.11.3   Property examples
17.11.4   Recursive properties
17.11.5   Finite-length versus infinite-length behavior
              * Do not distinguish between 'holds strongly' vs. 'holds'
17.11.6   Nondegeneracy
              * NOT SUPPORTED
17.12     Multiclock support
17.12.1   Multiclocked sequences
17.12.2   Multiclocked properties
17.12.3   Clock flow
17.12.4   Examples
17.12.5   Detecting and using end point of a sequence in multiclock context
17.12.6   Sequence methods
17.13     Concurrent assertions
17.13.1   Assert statement
17.13.2   Assume statement
17.13.3   Cover statement
17.13.4   Using concurrent assertion statements outside of procedural code
17.13.5   Embedding concurrent assertions in procedural code
17.14     Clock resolution
17.14.1   Clock resolution in multiclocked properties
17.15     Binding properties to scopes or instances
              * Simple name references or literals as actuals with binding
                done at elaboration time
17.16     Expect statement
              * Boolean expressions used in expect statement cannot use
                automatic variables of tasks
              * Expect statement cannot be inside non-static class method
              * Boolean expressions used in the expect statement cannot use
                non-static class variables
17.17     Clocking blocks and concurrent assertions
              * Clocking block variables cannot be displayed in wave window
Section 18: Coverage
------------------------------------------------------------------------------
18.1      Introduction
18.2      Defining the coverage model: covergroup
              * No support for bins in the wave window.
              * No support for @@ sampling
18.3      Using covergroup in classes
18.4      Defining coverage points
              * No support for default bins with [] (un-sized array default
                bins)
18.4.1    Specifying bins for transitions
18.4.2    Automatic bin creation for coverage points
18.4.3    Wildcard specification of coverage point bins
18.4.4    Excluding coverage point values or transitions
18.4.5    Specifying Illegal coverage point values or transitions
18.5      Defining cross coverage
              * IMPORTANT NOTE: Our current implementation of cross auto-bins
                is inherently not fully sparse. Crosses creates automatic
                bins in localized chunks, when they are required. Hence they
                are partially sparse and would be good for locally dense
                cases but not sparse cases.
18.5.1    Example of user-defined cross coverage and select expressions
18.5.2    Excluding cross products
18.5.3    Specifying Illegal cross products
18.6      Specifying coverage options
              * Note: option.per_instance does not optimize space
18.6.1    Covergroup type options
18.7      Predefined coverage methods
18.8      Predefined coverage system tasks and functions
              * $load_coverage_db() not supported
18.9      Organization of option and type_option members
18.10     Coverage computation
18.10.1   Coverpoint coverage computation
18.10.2   Cross coverage computation
Section 19: Hierarchy
------------------------------------------------------------------------------
19.1      Introduction
19.2      Packages
19.2.1    Referencing data in packages
19.2.2    Search order rules
19.3      Compilation unit support - $unit
19.4      Top-level instance ($root)
19.5      Module declaration
19.6      Nested modules
              * NOT SUPPORTED
19.7      Extern modules
19.8      Port declarations
19.9      List of port expressions
              * Complex named Port declarations not supported, for example:
                    module m (input .in(w_in),output .out(r_out));
                        wire w_in;
                        reg r_out;
                    endmodule
                    module m (input .P1(input int a));
                        logic [7:0] r;
                    endmodule
                    module m (input .P1(r[5:3]),.P2(r[1]),output .c(r[2:0]));
                        logic [7:0] r = 8'b00000000;
                    endmodule
                    module m (input .P1(r),.P2(r[1]),output int a);
                        logic [7:0] r;
                    endmodule
19.10     Time unit and precision
19.11     Module instances
19.11.1   Instantiation using positional port connections
19.11.2   Instantiation using named port connections
19.11.3   Instantiation using implicit .name port connections
19.11.4   Instantiation using implicit .* port connections
19.12     Port connection rules
19.12.1   Port connection rules for variables
19.12.2   Port connection rules for nets
19.12.3   Port connection rules for interfaces
19.12.4   Compatible port types
19.12.5   Unpacked array ports and arrays of instances
19.13     Name spaces
19.14     Hierarchical names ($root)
Section 20: Interfaces
------------------------------------------------------------------------------
20.1      Introduction
20.2      Interface syntax
20.2.1    Example without using interfaces
20.2.2    Interface example using a named bundle
20.2.3    Interface example using a generic bundle
20.3      Ports in interfaces
20.4      Modports
20.4.1    Example of named port bundle
20.4.2    Example of connecting port bundle
20.4.3    Example of connecting port bundle to generic interface
20.4.4    Modport expressions
20.4.5    Clocking blocks and modports
20.5      Interfaces and specify blocks
20.6      Tasks and functions in interfaces
20.6.1    Example of using tasks in interface
20.6.2    Example of using tasks in modports
20.6.3    Example of exporting tasks and functions
20.6.4    Example of multiple task exports
20.7      Parameterized interfaces
20.8      Virtual interfaces
20.8.1    Virtual interfaces and clocking blocks
20.8.2    Virtual interfaces modports and clocking blocks
20.9      Access to interface objects
Section 21: Configuration libraries
------------------------------------------------------------------------------
21.1      Introduction
21.2      Libraries
              * Configurations do not support interfaces
Section 22: System tasks and system functions
------------------------------------------------------------------------------
22.1      Introduction
22.2      Type name function ($typename)
              * NOT SUPPORTED
22.3      Expression size system function ($bits)
22.4      Range system function ($isunbounded)
22.5      Shortreal conversions
22.6      Array querying system functions ($dimension, $unpacked_dimensions,
          $left, $right, $low, $high, $increment, $size)
22.7      Assertion severity system tasks ($fatal, $error, $warning, $info)
22.8      Assertion control system tasks ($assertion, $assertoff,
          $assertkill)
22.9      Assertion system functions ($onehot, $onehot0, $isunknown)
22.10     Random number system functions
22.11     Program control
              * NOT SUPPORTED
22.12     Coverage system functions
              * NOT SUPPORTED
22.13     Enhancements to Verilog system tasks
              * NOT SUPPORTED
22.14     $readmemb & $readmemh
22.14.1   Reading packed data
22.14.2   Reading 2-state types
22.15     $writememb & $writememh
22.15.1   Writing packed data
22.15.2   Writing 2-state types
22.15.3   Writing addresses to output file
22.16     File format considerations for multi-dimensional unpacked arrays
22.17     System task arguments for multi-dimensional unpacked arrays
Section 23: Compiler directives
------------------------------------------------------------------------------
23.1      Introduction
23.2      `define macros
23.3      `include
              * `include <filename> form of inclusion is not supported
23.4      `begin_keywords and `end_keywords
Section 24: Value change dump (VCD) data
------------------------------------------------------------------------------
24.1      Introduction
              * NOT SUPPORTED
24.2      VCD extensions
              * NOT SUPPORTED
Section 25: Deprecated constructs
------------------------------------------------------------------------------
25.1      Introduction
25.2      Defparam statements
              * NOT YET REMOVED - defparam statements are still supported but
                have undefined results for aggregate parameter types
25.3      Procedural assign and deassign removal
              * NOT YET REMOVED
Section 26: Direct programming interface (DPI)
------------------------------------------------------------------------------
26.1      Overview
26.1.1    Tasks and functions
26.1.2    Data types
26.1.2.1  Data representation
26.2      Two layers of the DPI
26.2.1    DPI SystemVerilog layer
26.2.2    DPI foreign language layer
26.3      Global name space of imported and exported functions
26.4      Imported tasks and functions
26.4.1    Required properties of imported tasks and functions - semantic
          constraints
26.4.1.1  Instant completion of imported functions
26.4.1.2  input, output, and inout arguments
26.4.1.3  Special properties pure and context
26.4.1.4  Memory management
26.4.1.5  Reentrancy of imported tasks
26.4.1.6  C++ exceptions
26.4.2    Pure functions
26.4.3    Context tasks and functions
26.4.4    Import declarations
26.4.5    Function result
26.4.6    Types of formal arguments
26.4.6.1  Open arrays
              * No unsized, packed dimensions
       * Only a single unsized, unpacked dimension is allowed
26.5      Calling imported functions
26.5.1    Argument passing
26.5.1.1  WYSIWYG principle
26.5.2    Value changes for output and inout arguments
26.6      Exported functions
26.7      Exported tasks
26.8      Disabling DPI tasks and functions
Section 27 - 30: API's
------------------------------------------------------------------------------
27        SystemVerilog VPI object model
              * Partially supported, see VPI technote
28        SystemVerilog assertion API
              * NOT SUPPORTED
29        SystemVerilog code coverage control and API
              * NOT SUPPORTED
30        SystemVerilog data read API
              * NOT SUPPORTED
Annex A - K
------------------------------------------------------------------------------
A         Formal syntax
B         Keywords
C         Std package
C.1       General
C.2       Semaphore
C.3       Mailbox
C.4       Randomize
C.5       Process
D         Linked lists
              * NOT SUPPORTED
E         Formal semantics of concurrent assertions
              * NOT APPLICIABLE
F         DPI C-layer
F.1       Overview
F.2       Naming conventions
F.3       Portability
F.4       svdpi.h include file
F.5       Semantic constraints
F.5.1     Types of formal arguments
F.5.2     Input arguments
F.5.3     Output arguments
F.5.4     Value changes for output and inout arguments
F.5.5     Context and noncontext tasks and functions
F.5.6     Pure functions
F.5.7     Memory management
F.6       Data types
F.6.1     Limitations
F.6.2     Duality of types: SystemVerilog types versus C types
F.6.3     Data representation
F.6.4     Basic types
F.6.5     Normalized and linearized ranges
F.6.6     Mapping between SystemVerilog ranges and C ranges
F.6.7     Canonical representation of packed arrays
F.6.8     Unpacked aggregate arguments
F.7       Argument passing modes
F.7.1     Overview
F.7.2     Calling SystemVerilog tasks and functions from C
F.7.3     Argument passing by value
F.7.4     Argument passing by reference
F.7.5     Allocating actual arguments for SystemVerilog-specific types
F.7.6     Argument passing by handle - open arrays
F.7.7     Input arguments
F.7.8     Inout and output arguments
F.7.9     Function result
F.7.10    String arguments
F.8       Context tasks and functions
F.8.1     Overview of DPI and VPI context
F.8.2     Context of imported and export tasks and functions
F.8.3     Working with DPI context tasks and functions in C code
F.8.4     Example 1 - Using DPI context functions
F.8.5     Relationship between DPI and either VPI or PLI
F.9       Include files
F.9.1     Include file svdpi.h
F.9.1.1   Scalars of type bit and logic
F.9.1.2   Canonical representation of packed arrays
F.9.1.3   Implementation-dependent representation
F.9.2     Example 2 - Simple packed array application
F.9.3     Example 3 - Application with complex mix of types
F.10      Arrays
F.10.1    Example 4 - Using packed 2-state arguments
F.10.2    Multidimensional arrays
F.10.3    Example 5 - Using packed struct and union arguments
F.10.4    Direct access to unpacked arrays
F.10.5    Utility functions for working with the canonical representation
F.11      Open arrays
       * No unsized, packed dimensions   
       * Only a single unsized, unpacked dimension is allowed
F.11.1    Actual ranges
F.11.2    Array querying functions
F.11.3    Access functions
F.11.4    Access to actual representation
F.11.5    Access to elements via canonical representation
F.11.6    Access to scalar elements (bit and logic)
F.11.7    Access to array elements of other types
F.11.8    Example 6 - Two-dimensional open array
              * NOT SUPPORTED
F.11.9    Example 7 - Open array
F.11.10   Example 8- Access to packed arrays
F.12      SV3.1a-compatible access to packed data (deprecated functionality)
              * NOT SUPPORTED
F.12.1    Determining the compatibility level of an implementation
              * NOT SUPPORTED
F.12.2    svdpi.h definitions for SV3.1a-style packed data processing
              * NOT SUPPORTED
F.12.3    Source-level compatibility include file svdpi_src.h
              * NOT SUPPORTED
F.12.4    Example 9 - Deprecated SV3.1a binary compatible application
              * NOT SUPPORTED
F.12.5    Example 10 - Deprecated SV3.1a source compatible application
              * NOT SUPPORTED
F.12.6    Example 11 - Deprecated SV3.1a binary compatible calls of export
          functions
              * NOT SUPPORTED
G         include file svdpi.h
H         Inclusion of Foreign Language Code
H.1       General
H.2       Location independence
H.3       Object code inclusion
H.3.1     Bootstrap file
H.3.2     Examples
I         sv_vpi_user.h
              * NOT SUPPORTED
J         Glossary
K         Bibliography
 楼主| 发表于 2009-11-10 20:06:36 | 显示全部楼层
战歌之鼓  ,现在用sv 做项目的 来谈谈 大家都用的什么工具啊
发表于 2009-11-11 08:52:03 | 显示全部楼层
语言再强大,也必须有编译器来支持,否则都是non-sense.
所以用system verilog需参考simulator的帮助文件,而不是标准的LRM.
发表于 2010-5-1 14:58:17 | 显示全部楼层
理想与现实还是有差距的
发表于 2013-6-9 18:14:26 | 显示全部楼层
eetop....
发表于 2014-9-4 00:32:59 | 显示全部楼层
理想与现实还是有差距的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-23 17:34 , Processed in 0.025982 second(s), 11 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表