⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vpi_user.h

📁 本電子檔為 verilog cookbook,包含了通訊,影像,DSP等重要常用之verilog編碼,可作為工程師與初學者的參考手冊
💻 H
📖 第 1 页 / 共 3 页
字号:
      struct t_vpi_time        *time;      /* time value */      struct t_vpi_vecval      *vector;    /* vector value */      struct t_vpi_strengthval *strength;  /* strength value */      PLI_BYTE8                *misc;      /* ...other */    } value;} s_vpi_value, *p_vpi_value;/* value formats */#define vpiBinStrVal          1#define vpiOctStrVal          2#define vpiDecStrVal          3#define vpiHexStrVal          4#define vpiScalarVal          5#define vpiIntVal             6#define vpiRealVal            7#define vpiStringVal          8#define vpiVectorVal          9#define vpiStrengthVal       10#define vpiTimeVal           11#define vpiObjTypeVal        12#define vpiSuppressVal       13/* delay modes */#define vpiNoDelay            1#define vpiInertialDelay      2#define vpiTransportDelay     3#define vpiPureTransportDelay 4/* force and release flags */#define vpiForceFlag          5#define vpiReleaseFlag        6/* scheduled event cancel flag */#define vpiCancelEvent        7/* bit mask for the flags argument to vpi_put_value() */#define vpiReturnEvent        0x1000/* scalar values */#define vpi0                  0#define vpi1                  1#define vpiZ                  2#define vpiX                  3#define vpiH                  4#define vpiL                  5#define vpiDontCare           6/*#define vpiNoChange           7   Defined under vpiTchkType, but                                  can be used here.*//*********************** system task/function structure ***********************/typedef struct t_vpi_systf_data{  PLI_INT32 type;                       /* vpiSysTask, vpiSysFunc */  PLI_INT32 sysfunctype;                /* vpiSysTask, vpi[Int,Real,Time,Sized,                                                           SizedSigned]Func */  PLI_BYTE8 *tfname;                    /* first character must be '$' */  PLI_INT32 (*calltf)(PLI_BYTE8 *);  PLI_INT32 (*compiletf)(PLI_BYTE8 *);  PLI_INT32 (*sizetf)(PLI_BYTE8 *);     /* for sized function callbacks only */  PLI_BYTE8 *user_data;} s_vpi_systf_data, *p_vpi_systf_data;#define vpiSysTask            1#define vpiSysFunc            2/* the subtypes are defined under the vpiFuncType property *//****************** Verilog execution information structure *******************/typedef struct t_vpi_vlog_info{  PLI_INT32 argc;  PLI_BYTE8 **argv;  PLI_BYTE8 *product;  PLI_BYTE8 *version;} s_vpi_vlog_info, *p_vpi_vlog_info;/*********************** PLI error information structure **********************/typedef struct t_vpi_error_info{  PLI_INT32 state;           /* vpi[Compile,PLI,Run] */  PLI_INT32 level;           /* vpi[Notice,Warning,Error,System,Internal] */  PLI_BYTE8 *message;  PLI_BYTE8 *product;  PLI_BYTE8 *code;  PLI_BYTE8 *file;  PLI_INT32 line;} s_vpi_error_info, *p_vpi_error_info;/* state when error occurred */#define vpiCompile              1#define vpiPLI                  2#define vpiRun                  3/* error severity levels */#define vpiNotice               1#define vpiWarning              2#define vpiError                3#define vpiSystem               4#define vpiInternal             5/**************************** callback structures *****************************//* normal callback structure */typedef struct t_cb_data{  PLI_INT32    reason;                        /* callback reason */  PLI_INT32    (*cb_rtn)(struct t_cb_data *); /* call routine */  vpiHandle    obj;                           /* trigger object */  p_vpi_time   time;                          /* callback time */  p_vpi_value  value;                         /* trigger object value */  PLI_INT32    index;                         /* index of the memory word or                                                 var select that changed */  PLI_BYTE8   *user_data;} s_cb_data, *p_cb_data;/****************************** CALLBACK REASONS ******************************//***************************** Simulation related *****************************/#define cbValueChange             1#define cbStmt                    2#define cbForce                   3#define cbRelease                 4/******************************** Time related ********************************/#define cbAtStartOfSimTime        5#define cbReadWriteSynch          6#define cbReadOnlySynch           7#define cbNextSimTime             8#define cbAfterDelay              9/******************************* Action related *******************************/#define cbEndOfCompile           10#define cbStartOfSimulation      11#define cbEndOfSimulation        12#define cbError                  13#define cbTchkViolation          14#define cbStartOfSave            15#define cbEndOfSave              16#define cbStartOfRestart         17#define cbEndOfRestart           18#define cbStartOfReset           19#define cbEndOfReset             20#define cbEnterInteractive       21#define cbExitInteractive        22#define cbInteractiveScopeChange 23#define cbUnresolvedSystf        24/**************************** Added with 1364-2001 ****************************/#define cbAssign                 25#define cbDeassign               26#define cbDisable                27#define cbPLIError               28#define cbSignal                 29/**************************** FUNCTION DECLARATIONS ***************************//* callback related */XXTERN vpiHandle  vpi_register_cb     PROTO_PARAMS((p_cb_data cb_data_p));XXTERN PLI_INT32  vpi_remove_cb       PROTO_PARAMS((vpiHandle cb_obj));XXTERN void       vpi_get_cb_info     PROTO_PARAMS((vpiHandle object,                                                    p_cb_data cb_data_p));XXTERN vpiHandle  vpi_register_systf  PROTO_PARAMS((p_vpi_systf_data                                                      systf_data_p));XXTERN void       vpi_get_systf_info  PROTO_PARAMS((vpiHandle object,                                                    p_vpi_systf_data                                                      systf_data_p));/* for obtaining handles */XXTERN vpiHandle  vpi_handle_by_name  PROTO_PARAMS((PLI_BYTE8 *name,                                                    vpiHandle scope));XXTERN vpiHandle  vpi_handle_by_index PROTO_PARAMS((vpiHandle object,                                                    PLI_INT32 indx));/* for traversing relationships */XXTERN vpiHandle  vpi_handle          PROTO_PARAMS((PLI_INT32 type,                                                    vpiHandle refHandle));XXTERN vpiHandle  vpi_handle_multi    PROTO_PARAMS((PLI_INT32 type,                                                    vpiHandle refHandle1,                                                    vpiHandle refHandle2,                                                    ... ));XXTERN vpiHandle  vpi_iterate         PROTO_PARAMS((PLI_INT32 type,                                                    vpiHandle refHandle));XXTERN vpiHandle  vpi_scan            PROTO_PARAMS((vpiHandle iterator));/* for processing properties */XXTERN PLI_INT32  vpi_get             PROTO_PARAMS((PLI_INT32 property,                                                    vpiHandle object));XXTERN PLI_BYTE8 *vpi_get_str         PROTO_PARAMS((PLI_INT32 property,                                                    vpiHandle object));/* delay processing */XXTERN void       vpi_get_delays      PROTO_PARAMS((vpiHandle object,                                                    p_vpi_delay delay_p));XXTERN void       vpi_put_delays      PROTO_PARAMS((vpiHandle object,                                                    p_vpi_delay delay_p));/* value processing */XXTERN void       vpi_get_value       PROTO_PARAMS((vpiHandle expr,                                                    p_vpi_value value_p));XXTERN vpiHandle  vpi_put_value       PROTO_PARAMS((vpiHandle object,                                                    p_vpi_value value_p,                                                    p_vpi_time time_p,                                                    PLI_INT32 flags));/* time processing */XXTERN void       vpi_get_time        PROTO_PARAMS((vpiHandle object,                                                    p_vpi_time time_p));/* I/O routines */XXTERN PLI_UINT32 vpi_mcd_open        PROTO_PARAMS((PLI_BYTE8 *fileName));XXTERN PLI_UINT32 vpi_mcd_close       PROTO_PARAMS((PLI_UINT32 mcd));XXTERN PLI_BYTE8 *vpi_mcd_name        PROTO_PARAMS((PLI_UINT32 cd));XXTERN PLI_INT32  vpi_mcd_printf      PROTO_PARAMS((PLI_UINT32 mcd,                                                    PLI_BYTE8 *format,                                                    ...));XXTERN PLI_INT32  vpi_printf          PROTO_PARAMS((PLI_BYTE8 *format,                                                    ...));/* utility routines */XXTERN PLI_INT32  vpi_compare_objects PROTO_PARAMS((vpiHandle object1,                                                    vpiHandle object2));XXTERN PLI_INT32  vpi_chk_error       PROTO_PARAMS((p_vpi_error_info                                                      error_info_p));XXTERN PLI_INT32  vpi_free_object     PROTO_PARAMS((vpiHandle object));XXTERN PLI_INT32  vpi_get_vlog_info   PROTO_PARAMS((p_vpi_vlog_info                                                      vlog_info_p));/* routines added with 1364-2001 */XXTERN PLI_INT32  vpi_get_data        PROTO_PARAMS((PLI_INT32 id,                                                    PLI_BYTE8 *dataLoc,                                                    PLI_INT32 numOfBytes));XXTERN PLI_INT32  vpi_put_data        PROTO_PARAMS((PLI_INT32 id,                                                    PLI_BYTE8 *dataLoc,                                                    PLI_INT32 numOfBytes));XXTERN void      *vpi_get_userdata    PROTO_PARAMS((vpiHandle obj));XXTERN PLI_INT32  vpi_put_userdata    PROTO_PARAMS((vpiHandle obj,                                                    void *userdata));XXTERN PLI_INT32  vpi_vprintf         PROTO_PARAMS((PLI_BYTE8 *format,                                                    va_list ap));XXTERN PLI_INT32  vpi_mcd_vprintf     PROTO_PARAMS((PLI_UINT32 mcd,                                                    PLI_BYTE8 *format,                                                    va_list ap));XXTERN PLI_INT32  vpi_flush           PROTO_PARAMS((void));XXTERN PLI_INT32  vpi_mcd_flush       PROTO_PARAMS((PLI_UINT32 mcd));XXTERN PLI_INT32  vpi_control         PROTO_PARAMS((PLI_INT32 operation,                                                    ...));XXTERN vpiHandle  vpi_handle_by_multi_index PROTO_PARAMS((vpiHandle obj,                                                    PLI_INT32 num_index,                                                    PLI_INT32 *index_array));/****************************** GLOBAL VARIABLES ******************************/PLI_VEXTERN PLI_DLLESPEC void (*vlog_startup_routines[])();  /* array of function pointers, last pointer should be null */#undef PLI_EXTERN#undef PLI_VEXTERN#ifdef VPI_USER_DEFINED_DLLISPEC#undef VPI_USER_DEFINED_DLLISPEC#undef PLI_DLLISPEC#endif#ifdef VPI_USER_DEFINED_DLLESPEC#undef VPI_USER_DEFINED_DLLESPEC#undef PLI_DLLESPEC#endif#ifdef PLI_PROTOTYPES#undef PLI_PROTOTYPES#undef PROTO_PARAMS#undef XXTERN#undef EETERN#endif#ifdef  __cplusplus}#endif#endif /* VPI_USER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -