1. ► CompileTf routines are called only once for any given function.
2. ► Verilog compiler can detect output mistmatch between Verilog and āCā land when routine is exported as a function.
3. ► A cbValueChangeCallback is a one-time callback and must be re-registered.
4. ► vpi_scan extracts only one element from iterator as obtained using vpi_iterate.
5. ► Iterators obtained using vpi_iterate can be rewinded using VPI routines.
6. ► A Verilog design is internally represented in the form of a graph where edges represent the connectivity.
7. ► vlog_startup_routines is a function which is called by simulator to register routines.
8. ► In s_cb_data, the cb_rtn field is used to provide the function pointer which will be called when the callback event happens.
9. ► Simulation times in VPI are represented two 32bit numbers put together to form a 64bit number.
10. ► In s_cb_data, the user_data field cannot be NULL.
11. ► A cbValueChange callback can be directly registered from vlog_startup_routines called registration function.
12. ► It is a good practice to have checkers which directly connect to RTL signals in various RTL components.
13. ► The time used in Event Driven Simulation may not be same as the clock used in the design.
14. ► In s_cb_data, the obj field is used to point to the handle on which the callback is registered.
15. ► Verilog compiler can detect argument mismatch between Verilog and āCā land when a routine is called as a function.