1. ► There is significant overhead of moving data between simulation and C domains.
2. ► Depth-first walk is more useful than a breadth-first walk.
3. ► CompileTf routines are called only once for any given function.
4. ► Verilog compiler can detect argument mismatch between Verilog and ‘C’ land when a routine is called as a function.
5. ► The time used in Event Driven Simulation may not be same as the clock used in the design.
6. ► In s_cb_data, the obj field is used to point to the handle on which the callback is registered.
7. ► Verilog compiler can detect output mistmatch between Verilog and ‘C’ land when routine is exported as a function.
8. ► Depth-first walk is only defined for a Tree.
9. ► Stimulus for simulation must always be in the form of binary data i.e. 0’s and 1’s.
10. ► Providing tf.type as vpiSysTask in the s_vpi_systf_data will export the corresponding ‘C’ routine as a task.
11. ► VPI programs written on one simulator cannot be ported directly to another simulator.
12. ► A cbValueChangeCallback is a one-time callback and must be re-registered.
13. ► A cbValueChange callback can be directly registered from vlog_startup_routines called registration function.
14. ► It is a good practice to have checkers which directly connect to RTL signals in various RTL components.
15. ► vpi_scan extracts only one element from iterator as obtained using vpi_iterate.