UVM初级开发指南
本文完成于13年10月,是自己在做验证过程中的第一个文档。文档中以张强的《UVM1.1应用指南及源代码分析》中的第一章的示例作为模型,简单讲述了UVM1.1d在QuestaSim中的应用,并添加了C语言和SV语言的联合仿真,对初学UVM验证的同学提供实际操作方面的帮助。
因为自己的毕业设计需要用到文档中的部分内容,所以直到现在才将其分享出来,希望更多的人能够受益。
写在前面
时光荏苒、岁月如梭,转眼已到自己毕业的时间。回首自己将近三年的研究生学习生活,一路坎坎坷坷,幸而得到身边许多良师益友的关怀和指导、帮助和激励,使自己得以勤奋自勉,顺利完成学业。
以前自己主要是做单片机、MSP430、STM32,写过LDPC的译码Verilog 代码,偶尔做做安卓客户端,玩过新浪的SAE,总体来说做得比较杂,对于验证方面的知识从来没有接触过。之后自己分到的任务是用SystemVerilog做一个CPU模型,用于测试我们的RTL代码。于是自己开始学习SV,在学习SV的过程中钟文枫的《SystemVerilog与功能验证》这本书给自己提供了很大的帮助,自己基本上将里面的代码都敲了一遍,就这样摸索了大约两周吧,摸索到了UVM (Universal Verification Methodology)这个陌生
的东西,到这里,自己才算是摸到了验证的门沿。同时期间由于北大的需求(要实现两个软件自动执行然后文件夹比较的功能,也是用于验证),自己学习了批处理语言,给下一步工作打下了基础。
批处理文件怎么做然后到张强的《UVM1.1应用指南及源代码分析》(去年8月张强出了一本《UVM实战-1》的书,可喜可贺,建议阅读该书)开始看啊看,主要看了其中的前两章,总共能看三遍吧,因为后面基本上都是源码的分析,我又用不到理论的东西(其实有空了还是要看一看的,这样出现问题了好排查),因此没有往后看,算是对UVM有个初步的了解,期间各种百度和google,UVM的中文资料还是比较少,最后在EETOP的IC验证板块中到一些信息,后面自己有什么问题都在上面问。期间,将UVM1.1开发指南中的第一章的工程全部敲下来了并且进行了运行,其中收获颇丰,不仅对Questasim的软件进行了学习并且对UVM 的编译和其框架以及其组件之间的关系都有了清晰的了解。同时对DPI接口进行了学习,通过DPI接口能够调用外部的C或者C++函数。这一段时间也差不多是两周吧,可以说这两周是我成长最快的两周,其中得益于张强的UVM1.1源码指南这本书,自己成长很快,同时少走了很多弯路。
在做项目期间,自己深深感受到文档和注释的重要性,很多人都不喜欢写注释,不喜欢写文档。心里想着先将代码写完,到时候再补注释和文档,但是最终
代码写完,调试通过之后,就不想写了,代码已经通过还要注释干什么?对于另外一个接手工作的人,
注释和文档太重要了。期间自己为了排查RTL里面的错误,因此要读待测代码,结果待测代码里面注释很少,另外文档和代码不同步,导致读代码效率很低,读了两遍还是没有理清思路(这里也有可能是自己能力的问题,呵呵)。因为深受其害,自己对这方面格外重视,我对自己的要求是:一个testbench必须有说明文档,一个case必须有测试功能描述说明,一个工程必须有修改说明,另外代码的注释应不低于70%,关键代码必须有更详细的注释。
另外就是要重视计划,按照计划一步一步来,一个工作并不是说越快越好,而是按照进度保证完成质量。尤其是自己在做×××的验证的时候,基本上是现学现卖,很多东西乱成一团糟,最终出来的结果不如人意。究其原因,就是自己太过于追求速度,忽略了前期对基础知识的学习。
最后,通过来自各方面的消息以及综合自己实习的情况,感觉国内的IC 验证还是不受重视,还是没有发展起来,只有外资企业在验证在招数字验证方面的实习,国内本土的企业基本上都还没有动作,这对于这几年学验证的也是一个机遇吧,我相信随着国内IC行业的发展,对验证人员的需求会越来越多。
郭乐2015-3-18于西安电子科技大学
目录
第一讲开发环境搭建 (1)
第二讲UVM的helloworld (3)
第三讲编译UVM DPI接口 (6)
第四讲一个完整的UVM DEMO (10)
第五讲hello_DEMO中的文件关系 (13)
第六讲hello demo中模块的连接关系 (16)
第七讲如何在UVM Demo中调用C代码 (19)
第一讲开发环境搭建
在win7上开发UVM,需要用到modelsim或者QuestaSim或者其他的软件(Ncverilog、VCS等)…不过对于初学者modelsim 和QuestaSim足够了…鉴于QuestaSim对SystemVerilog语言有更好的支持,我推荐使用Questa Sim。
这里涉及QuestaSim的版本问题。目前支持UVM的最低版本貌似是10.0a(其支持UVM1.1),因此推荐用10.0a以上版本的软件…我使用的是10.0c(14年6月更新:最新用的是10.1d-win64位,破解完全没有问题)。
安装QuestaSim。QuestaSim安装不是很复杂…按照提示一步一步操作就可以…安装完成后需要做两件事情:1.破解软件,网上教程很多这里不再赘述;2.添加环境变量,需要在计算机-属性-高级系统设置-环境变量中选择PATH变量,然后将安装路径中的win32文件夹目录(我的目录是C:\questa_sim_10.0c\win32)添加进去,保存。另外win7 32位系统的用户可以将添加一个QUESTA_HOME 的环境变量,然后内容写成安装的路径(我的路径是:C:\questa_sim_10.0c)。上面的添加环境变量,最好在用户变量和系统变量都做添加。
至此QuestaSim环境安装好了…
然后我们需要用到编译uvm库的gcc编译器,名称为:modelsim-gcc-4.2.1-mingw32vc9.zip(如果用win64位软件,请使用

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。