2011-04-01 29 views
1

我有简单的Verilog代码和测试工具,我必须使用Perl来通过测试用例。我必须编写一个测试用例的Perl脚本,它将接收随机输入。当我执行Perl脚本时,它会询问输入,无论我输入什么,它都会显示“测试用例已通过”。如何在Perl中编写Verilog测试用例?

我尝试使用Verilog-Perl,但它有很多.pm文件,并且使用它们有点困难。任何人都可以给我这个提示吗?

+1

这个基础设施已经存在多少,而你现在正在建设?你能描述一下你的设计在高层做什么或者解释一些关于你如何工作的结核病?你是否需要将perl直接粘贴到模拟器上,或者按照工具建议使用它来生成激励文件? – Andy 2011-04-01 19:01:35

+0

其实我需要直接粘贴perl,以便我可以传递任何测试用例。我想在perl script.eg中编写这种情况。如果我有8:1 mux.v和mux_tb.v文件,现在使用run.csh(脚本)文件我可以模拟.v文件并传递这些cases.Now同样的事情将使用run.pl和测试用例的输入将在perl文件中。 – 2011-04-05 11:41:50

回答

4

Verilog-Perl最常用于解析Verilog文件,而不是创建测试用例。

您可以使用Perl来生成填充随机数字数据的输入刺激文件。将文件读入测试台的一种简单方法是在模拟过程中使用$readmemh Verilog系统任务。一个好处是这样可以避免每次运行新测试时重新编译Verilog代码。

模拟完成后,您还可以使用Perl来解析模拟日志文件,以确定并报告测试的通过/失败状态。

+0

工具,感谢您的回复。可以给我举例说明如何在tb中使用$ readmemh来读取perl文件吗?我之前尝试过但是给出错误。谢谢 – 2011-04-05 09:23:02

+0

'$ readmemh'不读取Perl文件。它读取一个纯文本文件。您可以使用Perl脚本来创建纯文本文件。阅读Verilog LRM中的$ readmemh系统任务或模拟器文档。 – toolic 2011-04-05 14:35:59

+0

HI toolic.I阅读$ readmemh,我知道它只读取十六进制或二进制数据!实际上我需要直接粘贴perl以便我可以传递任何测试用例。并且我想用perl script.eg来编写这些用例。如果我有8:1 mux.v和mux_tb.v文件,现在使用run.csh(脚本)文件我可以模拟.v文件(如在csh文件中,我已经模拟.v,tb.v和testcase.log)并通过案例。现在我想使用run.pl和测试用例的输入将在perl文件中。 – 2011-04-06 03:04:46

-1

检出Test::More这是一个非常流行的Perl测试框架。

+0

只是为了澄清OP:'Test :: More'用于创建测试来检查Perl代码。它通常不用于创建测试来检查Verilog代码(通过模拟)。 – toolic 2011-04-01 16:00:43

相关问题