VCS和Verdi是IC设计中常用的两款开发工具。VCS是Synopsys公司的产品,和大家所熟知的ModeSim一样的都是EDA仿真工具。Verdi是Nocas公司(已经被Synopsys公司收购)的产品,早前的版本叫Debussy,是一款十分优秀的Debug工具。虽然VCS中的DVE也能查看波形和Debug,但是Verdi则显得更专业一些。唯一让很多初学者感到不舒服的就是他们都需要在Linux环境中才能使用,这对于习惯了Windows环境下操作的人来说非常不友好,但在公司开发项目时常常都是Linux环境,方便大型项目开发时的管理和团队协作,即便是FPGA的开发也是如此,学会了这两款工具后我们也同样可以用于FPGA开发。
值得庆幸的是网上已经有很多朋友做好了一套IC学习的开源镜像,如图1所示为我使用的其中一个开源镜像介绍,我们下载镜像包后只需要用虚拟机(我所安装的虚拟机版本为VMware14)打开“.vmxf”文件即可使用已经安装好的全套IC开发工具(如需资料请加群:450843130)。即便是这样免去了众多软件安装繁琐易出错的过程,而在使用中依然还会遇到很多麻烦,下面我就要给大家讲一下我最近遇到的关于VCS2014和Verdi2015联合仿真遇到的困难,也在此感谢帮助我解决该问题的所有朋友。
因为VCS和Verdi这两个工具的开发者最初并不是一家公司,所以他们之间的联合使用并不友好,VCS所产生的“.vpd”文件Verdi并不能直接使用,而是需要转化为Verdi可识别的“.fsdb”文件才行,所以我们要先生成“.fsdb”文件,就是这个过程折腾了我很久。
我是用一个简单状态机的例子来进行的验证,先写好四个所需的文件,名为“simple_fsm.v”的RTL代码,名为“tb_simple_fsm.v”的Testbench,一个包含各种命令的“Makefile”文件和一个“file_list.f”文件。在此之前已经在VCS上的DVE进行了Debug,也可以单独打开Verdi,现在需要将他们通过“.fsdb”文件联合起来Debug。经查阅资料知道,要生成“.fsdb”文件需要在Testbench中加入图2所示的几行用于产生“.fsdb”文件代码。
然后运行如图3所示的Makefile文件中的“com”编译命令。
在“Terminal”中输入“make com”后出现如图4所示的错误,阅读错误信息可以知道大概的意思,大概意思是系统没有找到在Testbench文件中新添加的系统函数。
如图5所示,经查阅资料在Makefile中添加了“-fsdb”。
然后继续在Terminal中输入“make com”命令,如图6所示又报出来新的错误,意思大概是没有在环境变量中“NOVAS_HOME”。
我们用GVIM打开环境变量设置文件进行设置,如图7所示在Terminal中输入“gvim ~/.bashrc”命令打开环境变量设置文件指定“NOVAS_HOME”的路径。
如图8所示,我们找到Verdi2015的安装路径,然后在图9中相应的位置进行更改。
继续在Terminal中输入“make com”命令,发现还是报出和图6一样的错误,说明我们设置的环境变量没有起作用,一直怀疑了很久自己是不是在环境变量的设置上出了问题,终于在朋友的帮助下经过多次尝试发现每次设置完环境变量后需要重新启动虚拟机,否则环境变量的设置将无效,一定要记住。
重启虚拟机后,如图10所示再次输入“make com”命令发现果然有变化了,但又是一个新的错误,大概意思是说版本不支持相关的问题,还提到了库路径,真让人头大。
然后赶紧查阅网上的资料,其中有说到,只需要添加如图11所示的两个文件就可以了。
但是令人失望的是报出了如图12所示的错误,意思大概是我装的VCS是32位的,和64位的Verdi不兼容,天呢,这错误太离谱了,我又到处开始找答案,最终证实我使用的VCS是64位的,没问题。
经过朋友的指点,删除了网上查找的内容(可能也是对的但是不能解决我遇到的这种情况),然后改成如图13所示的内容,即在原来“-fsdb”命令的基础上再添加一个“-full64”,表示在64-bit模式下编译,生成64-bit模式仿真的可执行文件,然后继续输入“make com”命令。
这次真的是出现了奇迹,没有任何报错,我赶紧输入“ls”命令如图14所示有编译后的文件生成,OK,编译正确,然后继续输入“make sim”命令生成“.fsdb”文件,这才是最关键的一步。
依然没有报错,如图15所示还出现了我在Testbench中写的打印信息,然后我满怀期待的输入“ls”,果然这次没有让我失望,生成了“.fsdb”文件,非常激动,我赶紧输入“make run_verdi”启动Verdi软件。
图16为在Makefile中用Verdi软件打开“.fsdb”文件的命令。
如图17所示,惊喜的一幕出现了,Verid软件打开了,折腾了几天终于实现了VCS和Verdi的联合。(有朋友说Verdi2016开始可以直接使用kdb,就像在VCS中直接使用DVE一样方便,大家可以尝试一下)。
这虽然是一个很小的问题,但是如果对于没有经验的新手来说可能会困扰很久,而对于经历过的人来说可能就是一分钟的事儿。遇到问题一定不能轻易放弃,要耐心、虚心请教,感谢帮我解决这个问题的很多热心朋友,我也会用同样的热情帮助更多的人!
欢迎加入FPGA技术学习交流群,本群致力于为广大FPGAer提供良好的学习交流环境,不定期提供各种本行业相关资料!QQ交流群号:450843130