| PLI步步为营 -- 二、PLI中的helloworld程序 在学习几乎所有的编程语言时,基本上学习的第一个程序就是helloworld程序,在PLI学习中,也从helloworld开始!^_^ 我们知道要完成一个PLI程序,需要有3个文件:veriuser.c, hello.c, hello.v。 veriuser.c链接C语言函数和verilog系统函数之间的对应关系。 hello.c 中写着C语言函数hello() hello.v 里调用系统函数以执行hello.c里的hello()函数。 1. veriuser.c的编写 2. hello.c 编写 在PLI的C程序中,不需要main函数,因为这里的C语言文件不需要单独编译执行。只需要提供单独的函数就可以。 以下是hello.c的代码: hello() { io_printf(" Hello World ! "); } 3. hello.v 的编写 在hello.v中调用系统任务来调用hello()函数,以下是hello.v 代码: module hello(); initial $hello(); endmodule 现在3个函数都编写完毕了。其中的C语言需要编译执行成C库文件。 用以下命令执行: gcc -c -o hello.o -I $(CDS_INSTALL_DIR)/include hello.c gcc -c -o veriuser.o -I $(CDS_INSTALL_DIR)/include veriuser.c gcc -shared -o hello.so veriuser.c hello.c 在编译完库文件以后,只需要在跑simulation的时候,加上调用PLI选项,调用方式如下: ncverilog +access+wrc +loadpli1=hello.so:hellostrap 结果如下: 今天就讲到这里, 下一节讲述另一个PLI重要程序:从verilog获取值,传递到C程序中。 |
责任编辑:5life
本文共有0条评论,现在显示最新的5条。