- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]perl生成遍历文件和modelsim覆盖率检测方法
1 用Perl语言编程生成不同工作模式的测试文件
Perl是一种通用且应用广泛的脚本语言,可以不需要编译而直接解释运行,可移植能力强,兼有多种语言的精华和特性,效率也比较高,基于这些方面的优越性,其在实际的IC设计和验证中得到了广泛的应用。
Perl的安装 在Linux系统下和大部分的UNIX系统下,perl都是随系统安装的,Windows需要下载安装perl,推荐使用ActivePerl,下载安装后可已在命令行输入 perl –v 来查看是否正确安装和perl的版本(见图1.1),通过perl xxx.pl 来解释运行perl程序。
图 1.1 perl版本查看
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/ 表示查找searchattrn并用replacement代替。
利用4层for循环编写perl程序,每次循环查找一个变量并改变变量的值,然后输出一个文件名与变量值相关的vhd文件(例如4个变量值分别为“011”、“11”、“01”、“1111”时文件名可以设为test_3_3_1_15.vhd。需要注意的是,变量的值是一定位的二进制数,循环变量则默认为十进制数,所以要进行十进制与二进制数的转换,并在高位为0时也要显示出来。
新建一个txt文件,并输入程序,保存文件名为test_gen并修改后缀为.pl,生成test_gen.pl文件,打开命令行,跳转到文件所在目录,输入:perl test_gen.pl,按回车键解释运行便会得到2048个vhd文件,对应不同的工作模式,而且参数的选值与各个文件的名字相关,方便进行选取和测试。下图为得到的test_3_3_1_15.vhd中4个变量的值,可以看出与预期的结果一致。
图1.2 程序运行结果
2 modolsim的覆盖率检测步骤和说明
Modelsim仿真工具是Model公司开发的,它支持Verilog、VHDL以及他们的混合仿真比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。
在用ModelSim做硬件设计验证的时候,用ModelSim自带的Code Coverage功能,功能能报告出statement(语句)、branch(分支)、condition(条件)、?expression(表达式)、toggle(信号反转)、fsm(有限状态机)等多种覆盖率情况,进一步提高了测试的完整性。本简要介绍ModelSim?CodeCoverage的使用方法icense文件和设定环境变量。
2.新建工程,添加文件
点击File-new-project,在弹出的对话框中输入工程名,并选择工程目录。
点击“OK”后弹出添加文件的窗口
选择“Add Existing Flie”把vhd_0601中的所有vhd文件添加到工程。
3.设定覆盖率选项
选中所有文件,右击选择properties选项出现Project compiler settings的窗口
点击Coverage选项卡,选择项使能语句、分支、条件、表达式覆盖率的选项,如图示。
4.编译,仿真
点击compile all的按钮编译,无错误后切换到library选项,选择work库,右击要测试文件,选择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形式导出此次覆盖率测试的报告。
说明:
Stmts是语句覆盖,表示测试程序运行后,程序中运行可执行语句的比率;
Branches是分支覆盖,表示测试程序运行后,程序中所有判断语句的取真分支和取假分支被执行的比率;
Conditions是条件覆盖,表示测试程序运行后,所有判断语句中的每个条件的可能取
您可能关注的文档
- [2018年最新整理]OpenGL之坐标变换.docx
- [2018年最新整理]OPENGL基础教程.doc
- [2018年最新整理]OpenGL游戏编程.ppt
- [2018年最新整理]OPENKM系统培训手册.ppt
- [2018年最新整理]OpenMP程序的编译与运行-实验报告二.doc
- [2018年最新整理]OPGW基础培训资料.doc
- [2018年最新整理]OpenShortestPathFirstOSPF协议(链路状态.ppt
- [2018年最新整理]OPL(单点教育训练).ppt
- [2018年最新整理]OPL培训教材.ppt
- [2018年最新整理]oppo建大社团节闭幕式.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)