Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Đăng ký
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
semicon_lab.jpg

Verification Using SystemC

Email In PDF.

Introduction

ystemC provides very basic verification support. This support is same what Verilog 1995 provided. The SCV or SystemC Verification standard, provides APIs for transaction-based verification, 

constrained and weighted randomization, exception handling, and other verification tasks. We will seeing following topics in detail in next few pages.

  • Data Introspection
  • Randomization
  • Constraints
  • Transaction Recording
  • Dynamic Threads
  • Data Structures
    Manipulation of Arbitrary Data Types

    The SystemC Verification Standard uses data introspection to enable the manipulation of arbitrary data types. It allows a library routine to extract information from data objects of arbitrary types, regardless of whether it is a C/C++ built-in type, a SystemC data type, a user-specified composite type (struct), or a user-specified enumeration.

Using C++ template specialization, the Verification Standard maps these data types to an abstract interface called scv_extensions_if, through which the following operations can be performed on the data object.

  • Extraction of type information
  • Value access and value assignment
  • Randomization
  • Callback registration
    Using data introspection, a piece of code can manipulate a data object without explicit type information at compiletime. This facility can be considered as a C++ version of the Verilog PLI standard. It is a crucial building block for constrained randomization, variable recording, and transaction attribute recording.
    This facility includes the following classes and templates:
  • The scv_extensions_if abstract interface: This abstract interface enables the manipulation of arbitrary data types without compile-time type information.
  • The scv_extensions template: Data objects are extended to support the abstract interface through partial template specialization of this template
  • The scv_shared_ptr template: This template enables sharing of data objects among multiple threads, with reference counting to perform automatic memory management.
  • The scv_smart_ptr template: This template combines scv_extensions and scv_shared_ptr to implement dynamic extensions that require instance-specific auxiliary data, such as randomization and callback handling.

Data introspection of SystemC Verification library provided following API's

  • util : Basic utility methods
  • rw : Methods to read and write to data object, its fields, its array elements
  • type : Methods to extract type information
  • rand : Methods for randomization-related operations
  • callback : Methods for callback registration
    Manipulation of data objects without compile-time information is supported through the scv_extensions_if abstract interface. The postfix '_if' indicates that this is an abstract interface class with C++ abstract methods and without member variables.

 Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

Lần cập nhật cuối ( Thứ ba, 29 Tháng 3 2022 00:44 )  
Chat Zalo