| /*! |
| * Copyright (c) 2017 by Contributors |
| * \file tvm_vpi.h |
| * \brief Messages passed around VPI used for simulation. |
| */ |
| #ifndef VERILOG_TVM_VPI_H_ |
| #define VERILOG_TVM_VPI_H_ |
| |
| namespace tvm { |
| namespace vpi { |
| |
| enum VPICallCode : int { |
| kGetHandleByName, |
| kGetHandleByIndex, |
| kGetStrProp, |
| kGetIntProp, |
| kGetInt32, |
| kPutInt32, |
| kGetVec, |
| kPutVec, |
| kYield, |
| kShutDown |
| }; |
| |
| enum VPIReturnCode : int { |
| kPosEdgeTrigger = 0, |
| kSuccess = 1, |
| kFail = 2 |
| }; |
| |
| // VPI type code as in IEEE standard. |
| enum VPITypeCode { |
| kVPIModule = 32 |
| }; |
| |
| // VPI property code as in IEEE standard. |
| enum VPIPropCode { |
| kVPIType = 1, |
| kVPIFullName = 3, |
| kVPISize = 4, |
| kVPIDefName = 9 |
| }; |
| |
| /*! \brief The vector value used in trasmission */ |
| struct VPIVecVal { |
| int aval; |
| int bval; |
| }; |
| |
| /*! \brief User facing vpi handle. */ |
| typedef void* VPIRawHandle; |
| |
| } // namespace vpi |
| } // namespace tvm |
| #endif // VERILOG_TVM_VPI_H_ |