作者:5life
工作状态: PLI仿真
PLI是编程语言接口(Programming Language Interface)的简称,它极大地增强verilog仿真能力。简单地来说,它在verilog硬件描述语言和C高级语言之间建立了一个接口,使仿真能既有硬件底层的信息,又可以包含高级语言所强大的系统建模功能。
PLI 使verilog可以通过调用系统函数的方式来调用相应的C函数进行仿真,并且PLI还提供在C中对硬件内部对象进行交换数据。
一个完整的PLI仿真环境,包括三个文件:mon.v , veriuser.c, fun.c。其中,
mon.v ----- verilog文件, 在这文件中调用系统函数 $veri_task;
fun.c ----- C 文件,在该文件中编写C功能函数 c_func();
veriuser.c ----- 连接文件,该文件是整个PLI的核心,C语言通过该文件把$veri_task 与c_func() 进行对应,使仿真时,在调用$veri_task时,相当于调用c_func()进行操作。
当然,只需要一个veriuser.c就可以定义多个verilog的system task与多个C function进行一一对应。
产生这三个文件后,如何进行工作呢? 那就需要把veriuser.c 与fun.c 文件进行编译生成库文件,linux下为.so 文件,windows下为.lib文件。在verilog的仿真时加上+loadpli= .. 参数即可。
该步骤如何编译请看下一节。下一节我们将编写一个简单的程序进行讲解如何使用PLI接口。
本文共有0条评论,现在显示最新的5条。