|HOME |ABOUT |ARTICLES |ACK |FEEDBACK |TOC |LINKS |BLOG |JOBS |


Tutorials



IMPORT

Import Methods

Methods implemented in C and given import declarations in SystemVerilog can be called from SystemVerilog, such methods are referred to as imported methods.Imported tasks or functions are similar to SystemVerilog tasks or functions. Imported tasks or functions can have zero or more formal input, output, and inout arguments.
Imported tasks always return an int result as part of the DPI-C disable protocol and, thus, are declared in foreign code as int functions. We will discusses about the DPI-C disable protocol in following sections.
Imported functions can return a result or be defined as void functions.

The syntax import method:

import {"DPI" | "DPI-C"} [context | pure] [c_identifier =] [function|task] [function_identifier|task_identifier] ([tf_port_list]);

Steps To Write Import Metyhods

In SV Code
Step1 : Import the C function

   import "DPI-C" string_sv2c=task string_sv2c();

Step2 :  Invoke the Importted C function

   initial
   begin
       string_sv2c();
   end

In C code:
Step3: Define the Imported function

   void string_sv2c(){
        printf(" C: Hellow from C ");
   }


Full Example:

CODE: SV_file
   program main;
       string str;
      
       import "DPI-C" string_sv2c=task string_sv2c();
      
       initial
       begin
            string_sv2c();
       end
      
   endprogram


CODE: C_file
     #include "svdpi.h"
    
     void string_sv2c(){
          printf(" C: Hellow from C ");
     }

RESULTS

C: Hellow from C


EXAMPLE: optional default arguments



Standard C Functions

Users can also call the standared C functions.

EXAMPLE:
    import "DPI" function chandle malloc(int size); 
    import "DPI" function void free(chandle ptr); 

Index
Introductions
Layers
Import
Naming
Export
Pure And Context
Data Types
Arrays
Passing Structs And Unions
Arguments Type
Disablie

Report a Bug or Comment on This section - Your input is what keeps Testbench.in improving with time!





<< PREVIOUS PAGE

TOP

NEXT PAGE >>

copyright © 2007-2017 :: all rights reserved www.testbench.in::Disclaimer