草庐IT

8.1 Verilog PLI 简介

进行数字设计时,经常会遇到特殊的情况,Verilog中的任务和函数已经不能满足仿真需求,需要自定义一些系统任务和函数。编程语言接口(PLI,ProgramLanguageInterface)提供了一套接口子程序,用于访问设计内部的数据结构,并可以提取仿真环境信息。用户可以调用这些子程序,自定义系统任务和系统函数,与设计内部数据以及Verilog仿真器环境进行交互。PLI功能通俗来讲,VerilogPLI提供了一套C语言函数,设计人员可以调用这些集成函数编写软件C程序。RTL编译时,将编写的软件程序也集成到仿真环境中。仿真运行时,通过系统任务调用的方式,就可以动态的去访问仿真中的数据结构。这种访

8.2 Verilog TF 子程序

功能特性TF(task/function)子程序主要用于Verilog与用户C程序边界的两个方向上的数据传输。TF子程序总是以tf_为前缀,定义在头文件veriuser.h中。所以用C语言写系统任务或函数时,都需要在C文件中添加#include"veriuser.h"。TF子程序用途可划分为:获取系统任务的信息获取参数列表信息获取参数值把参数值回传给系统任务监视参数值的改变获取仿真时间和调度事件的信息算数运算显示信息管理维护任务挂起、终止、保存、恢复等其他任务完整的TF子程序及其简单用法说明参考下一节《8.3TF子程序列表》。TF子程序举例PLI子程序库函数数量繁多,如果一一举例说明需要大量的

8.2 Verilog TF 子程序

功能特性TF(task/function)子程序主要用于Verilog与用户C程序边界的两个方向上的数据传输。TF子程序总是以tf_为前缀,定义在头文件veriuser.h中。所以用C语言写系统任务或函数时,都需要在C文件中添加#include"veriuser.h"。TF子程序用途可划分为:获取系统任务的信息获取参数列表信息获取参数值把参数值回传给系统任务监视参数值的改变获取仿真时间和调度事件的信息算数运算显示信息管理维护任务挂起、终止、保存、恢复等其他任务完整的TF子程序及其简单用法说明参考下一节《8.3TF子程序列表》。TF子程序举例PLI子程序库函数数量繁多,如果一一举例说明需要大量的

8.3 Verilog TF 子程序列表

为保证子程序的原汁原味,避免拉跨拙劣的翻译水平,所有子程序列表均保留英文说明。建议使用时再仔细研究对应类型的子程序。这里也没有对所有的子程序都进行验证,由于版本或抄写问题,可能会有所疏漏,欢迎指正。TF子程序常用于Verilog和用户C子程序之间的双向数据传输。当以tf_为前缀的子程序有一个以tf_i为前缀的子程序与之对应时,这个以tf_i为前缀的对应子程序中发生操作的实例指针必须被当做变量列表最后的附加变量加以传递。TF子程序在命名形式上没有明确的分类标志,简单做如下总结。取任务、函数信息返回类型调用格式及说明char*◆tf_getinstance() Getapointertothecu

8.3 Verilog TF 子程序列表

为保证子程序的原汁原味,避免拉跨拙劣的翻译水平,所有子程序列表均保留英文说明。建议使用时再仔细研究对应类型的子程序。这里也没有对所有的子程序都进行验证,由于版本或抄写问题,可能会有所疏漏,欢迎指正。TF子程序常用于Verilog和用户C子程序之间的双向数据传输。当以tf_为前缀的子程序有一个以tf_i为前缀的子程序与之对应时,这个以tf_i为前缀的对应子程序中发生操作的实例指针必须被当做变量列表最后的附加变量加以传递。TF子程序在命名形式上没有明确的分类标志,简单做如下总结。取任务、函数信息返回类型调用格式及说明char*◆tf_getinstance() Getapointertothecu

8.4 Verilog ACC 子程序

功能特性ACC子程序主要完成的功能有:从内部数据结构中读取特定对象的相关信息把特定对象的相关信息写入内部数据结构中ACC子程序可操作的对象类型有:模块实例、模块端口、模块的端到端的路径以及模块之间的路径顶层模块原语实例和原语端口wire、reg、parameter、integer、time、real等变量类型时序检查命名事件ACC子程序的主要特征有:均以acc_为前缀开头必须调用acc_initialize()以进行环境初始化退出时必须调用acc_close()使用ACC库中的函数时必须包含头文件acc_user.h使用句柄的概念访问对象。句柄是预定义的指向设计中特定对象的数据类型。获取到句柄

8.4 Verilog ACC 子程序

功能特性ACC子程序主要完成的功能有:从内部数据结构中读取特定对象的相关信息把特定对象的相关信息写入内部数据结构中ACC子程序可操作的对象类型有:模块实例、模块端口、模块的端到端的路径以及模块之间的路径顶层模块原语实例和原语端口wire、reg、parameter、integer、time、real等变量类型时序检查命名事件ACC子程序的主要特征有:均以acc_为前缀开头必须调用acc_initialize()以进行环境初始化退出时必须调用acc_close()使用ACC库中的函数时必须包含头文件acc_user.h使用句柄的概念访问对象。句柄是预定义的指向设计中特定对象的数据类型。获取到句柄