从specman执行perl

从specman执行perl,c,perl,specman,C,Perl,Specman,我需要从我编写的E测试中调用一个Perl脚本。我需要创建一个ini文件调用C脚本,该脚本将创建我正在编写的测试所需的配置文件。我希望测试调用将处理ini->C->config过程的Perl,然后继续测试。有什么想法吗?您可以使用系统或输出的函数执行系统调用或shell命令。这可以用来执行任意命令,包括调用Perl。system函数返回shell调用的返回值,而output\u from返回标准输出(可能还有标准错误…检查文档…) 示例: var ret := system("echo hello

我需要从我编写的E测试中调用一个Perl脚本。我需要创建一个ini文件调用C脚本,该脚本将创建我正在编写的测试所需的配置文件。我希望测试调用将处理ini->C->config过程的Perl,然后继续测试。有什么想法吗?

您可以使用系统或输出的函数执行系统调用或shell命令。这可以用来执行任意命令,包括调用Perl。
system
函数返回shell调用的返回值,而
output\u from
返回标准输出(可能还有标准错误…检查文档…)

示例:

var ret := system("echo hello world");
打印到Specman屏幕/日志文件

hello world
而来自的
输出\u的使用方式如下:

var std_out := output_from("echo hello world");
print std_out;
和打印:

std_out = "hello world"
函数采用字符串,因此可以使用
append()
appendf()
函数构建参数

旁白:您可以使用
simulator\u命令(cmd\u str)
直接与模拟器命令行界面对话。我以前用过这个和Synopsys的风投聊天

simulator_command("quit");

什么是
E
?您真的需要E调用Perl,Perl调用C(什么是C脚本?)来创建配置文件吗?Simplify是我的建议。“e”是一种硬件验证语言。它最常见的实现(可能只有…)是Cadence的Specman。请参考,Specman没有Perl API。在Specman.is中,只有一个C和C++ API编译代码,有任何方法同时得到输出和返回值吗?<代码> OutPuthOfFig检查()/代码> -它的执行方式与<代码> OutPuthOf()/<代码>相同,除非命令返回非零,否则它将引发错误。如果需要能够处理错误条件,则需要使用
try{}else{}
异常处理程序对其进行包装。这不允许您获得确切的返回值,但允许您检测和处理失败的系统调用。