收藏 分享(赏)

perl生成遍历文件和modelsim覆盖率检测方法.doc

上传人:w89153 文档编号:7761128 上传时间:2019-05-25 格式:DOC 页数:9 大小:468.50KB
下载 相关 举报
perl生成遍历文件和modelsim覆盖率检测方法.doc_第1页
第1页 / 共9页
perl生成遍历文件和modelsim覆盖率检测方法.doc_第2页
第2页 / 共9页
perl生成遍历文件和modelsim覆盖率检测方法.doc_第3页
第3页 / 共9页
perl生成遍历文件和modelsim覆盖率检测方法.doc_第4页
第4页 / 共9页
perl生成遍历文件和modelsim覆盖率检测方法.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、1 用 Perl 语言编程生成不同工作模式的测试文件Perl 是一种通用且应用广泛的脚本语言,可以不需要编译而直接解释运行,可移植能力强,兼有多种语言的精华和特性,效率也比较高,基于这些方面的优越性,其在实际的IC 设计和验证中得到了广泛的应用。Perl 的安装 在 Linux 系统下和大部分的 UNIX 系统下,perl 都是随系统安装的,Windows 需要下载安装 perl,推荐使用 ActivePerl,下载安装后可已在命令行输入 perl v 来查看是否正确安装和 perl 的版本(见图 1.1) ,通过 perl xxx.pl 来解释运行 perl 程序。图 1.1 perl 版本

2、查看test_enc.vhd 文件中 69-75 行的作用是通过设置 4 个变量pat_code、pat_disturb、pat_mix 和 pat_frame 的值来指定一种工作模式,根据它们的取值范围可以得出总共会有8*4*4*16=2048 种组合,对应 2048 种工作模式。Perl 语言有别于其他语言的特性中,最重要的就是对正则表达式的支持,可以方便快捷的处理字符串相关的问题,因此可以利用这种特性,通过查找变量字符串和替换指令(s/)进行对测试文件变量值的更改,产生不同工作模式的激励。s/:替换运算符。 s/searchattern/replacement/ 表示查找 searcha

3、ttrn 并用 replacement 代替。利用 4 层 for 循环编写 perl 程序,每次循环查找一个变量并改变变量的值,然后输出一个文件名与变量值相关的 vhd 文件(例如 4 个变量值分别为“011” 、 “11”、 “01”、“1111”时文件名可以设为 test_3_3_1_15.vhd。需要注意的是,变量的值是一定位的二进制数,循环变量则默认为十进制数,所以要进行十进制与二进制数的转换,并在高位为 0时也要显示出来。新建一个 txt 文件,并输入程序,保存文件名为 test_gen 并修改后缀为.pl,生成test_gen.pl 文件,打开命令行,跳转到文件所在目录,输入:p

4、erl test_gen.pl,按回车键解释运行便会得到 2048 个 vhd 文件,对应不同的工作模式,而且参数的选值与各个文件的名字相关,方便进行选取和测试。下图为得到的 test_3_3_1_15.vhd 中 4 个变量的值,可以看出与预期的结果一致。图 1.2 程序运行结果2 modolsim 的覆盖率检测步骤和说明Modelsim 仿真工具是 Model 公司开发的,它支持 Verilog、VHDL 以及他们的混合仿真比 quartus 和 ISE 自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至用代码覆盖率来考核测试任务完成情

5、况,比如,代码覆盖率必须达到 80或 90。在用 ModelSim 做硬件设计验证的时候,可以用 ModelSim 自带的 Code Coverage 功能,该功能能报告出 statement(语句) 、branch(分支) 、condition(条件) 、 expression(表达式) 、toggle (信号反转) 、fsm (有限状态机)等多种覆盖率情况,进一步提高了测试的完整性。本面简要介绍 ModelSim CodeCoverage 的使用方法。1.下载安装 modelsim推荐下载 SE 版本的 modelsim,安装完成后运行 License Wizard,通过指定 licens

6、e 文件和设定环境变量。2.新建工程,添加文件点击 File-new-project,在弹出的对话框中输入工程名,并选择工程目录。点击“OK”后弹出添加文件的窗口选择“Add Existing Flie”把 vhd_0601 中的所有 vhd 文件添加到工程。3.设定覆盖率选项选中所有文件,右击选择 properties 选项出现 Project compiler settings 的窗口点击 Coverage 选项卡,选择项使能语句、分支、条件、表达式覆盖率的选项,如图示。4.编译,仿真点击 compile all 的按钮编译,无错误后切换到 library 选项,选择 work 库,右击要

7、测试文件,选择 Simulate with Coverage,在右侧会出现Statement,Branch ,Condition,Expression 等选项卡,会把各个 vhd 文件的语句按照功能进行分类。选中左侧的 sim 选项卡,右击实体 test_enc-add-to wave-all items in region 完成添加波形后运行 1ms。可以得到 1ms 以内的仿真波形图5.查看和保存覆盖率信息最大化左侧 sim 选项卡,可以查看该文件的覆盖率信息右键-Code Coverage-Code Coverage Report 可以用 TXT 形式导出此次覆盖率测试的报告。说明:St

8、mts 是语句覆盖,表示测试程序运行后,程序中运行可执行语句的比率;Branches 是分支覆盖,表示测试程序运行后,程序中所有判断语句的取真分支和取假分支被执行的比率;Conditions 是条件覆盖,表示测试程序运行后,所有判断语句中的每个条件的可能取值出现过的比率;Expressions 是表达式覆盖,表示程序运行后,所有表达式被执行的比率;Fec 是 focused expression/condition 的缩写,Fec Conditions 表示条件表达式中条件分支被执行的比率,Fec Expressions 表示条件表达式中表达式被执行的比率。Modelsim 除了支持图形界面操

9、作以外,还支持脚本操作,常见的图形界面操作相对直观,但是由于重复性操作几率高、处理效率低、工程的非保存性,对于大规模的代码仿真不推荐使用;而脚本操作可以把常见的命令,比如库文件和 RTL 加载、仿真、波形显示等命令通过命令行来运行,也可以把命令行编辑成.do 脚本文件,只需要让 Modelsim 运行.do 文件即可以完成仿真,智能化程度高。用命令行的方式进行覆盖率检测的方法如下quit sim # 退出当前仿真vdel -all -lib work # 从工程中移除 work 库及库内文件vlib work # 新建一个 work 库vmap work work # 进行库映射vcom -c

10、over bces F:/vhd_0601/test_test.vhd #添加 vhd 文件vcom -cover bces F:/vhd_0601/T1/*.vhd #添加 T1 文件夹下的所有 vhd 文件vcom -cover bces F:/vhd_0601/T2/*.vhd #添加 T2 文件夹下的所有 vhd 文件vcom -cover bces F:/vhd_0601/T3/*.vhd #添加 T3 文件夹下的所有 vhd 文件vcom -cover bces F:/vhd_0601/top/*.vhd #添加 top 文件夹下的所有 vhd 文件vcom -cover bces

11、 F:/vhd_0601/mem/*.vhd #添加 mem 文件夹下的所有 vhd 文件vsim +ALL_TESTCASE -coverage -novopt work.test_enc #进行带覆盖率检测的仿真add wave sim:/test_enc/* #添加波形信号run 1ms #运行 1mscoverage report -recursive -select bces -file Coverage.txt #以 txt 形式导出覆盖率检测报告可以把以上代码拷贝进 modelsim 的命令行输入窗口,按 enter 键运行,结果和前文所介绍的图形化操作方法是一样的。使用命令 c

12、overage report -lines -byinstance -select bces -file CoverageDetail.txt 可以导出更加详细的报告。另一种方法是把代码写进 do 文件,直接在命令行窗口输入 do name.do 即可。注意要将 do 文件放在 modelsim 的工作目录。也可以用 ucdb 文件来保存覆盖率信息,在命令行输入 fcover save name.ucdb 即可生成一个 ucdb 文件,可以通过 add testbrowser name.ucdb 来查看覆盖率信息。通过 vcover merge add out.ucdb name.ucdb name1.ucdb 命令把不同激励产生的覆盖率进行合并(out.undb为合并后的文件,name.ucdb 和 name1.ucdb 为要进行合并的覆盖率文件 )。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报