我亲身进行了Synopsys VCS 2023.12 – SP1的实测,在定制仿真环境的时候,遭遇了Makefile和gcc版本不匹配的那种坑点,新手只要依照步骤逐个去操作,便能够轻易避开……
我亲身进行了Synopsys VCS 2023.12 – SP1的实测,在定制仿真环境的时候,遭遇了Makefile和gcc版本不匹配的那种坑点,新手只要依照步骤逐个去操作,便能够轻易避开此类常见的问题。
定制化编译脚本路径怎么配
开启终端,步入相应界面,抵达项目根目录所在之处,接着去执行这样的操作,即设置环境变量为“VCS_HOME”,其具体内容是“/tools/synopsys/vcs/2023.12 – SP1”。接着,对 synopsys_sim.setup 文件加以编辑,把 WORK > DEFAULT 写入其中,并且将 DEFAULT : ./worklib 也写入该文件。关键的参数VCS_ARCH_OVERRIDE进行了设置,其最终被设定成为linux64 ,而这一数值是必然要跟操作系统架构保持极为严格的一致程度的,不然的话,编译的过程就会出现挂掉的情况。
针对于新手需要避开的坑,存在着这样一种常见的报错情况,那就是出现Unknown platform ‘linux’ ,其原因在于VCS默认对系统进行探测的时候是针对32位系统的,然而当前所处的系统却是64位,在整个核心环节出现错误的关键在于没有对架构进行强制指定。
EDA工具编译选项如何调
使vcs以-full64模式运行,采用-sverilog方式,开启-debug_access+all调试,配合-lca,伴随此-lca开启高级特性,同时配合-kdb,让-kdb生成知识数据库,最后运行-l compile.log。将推荐的-j8并行编译线程数的最优值设定为8,原因在于要与常见的8核服务器相匹配,如此一来既能使编译速度达到最大化,又不会引发内存竞争冲突。与此同时,需把CFLAGS设置为-O2 -m64 -fPIC标准。
新手需避坑,出现报错,报错内容为gcc: error: unrecognized command line option ‘-m64’,原因在于系统gcc版本低于4.8,而低于4.8的版本不支持-m64,核心出错点呢是EDA工具要求高版本gcc。解决的办法是进行这样的操作,即安装gcc 9.3.0,然后在vcs命令之前添加CC=/usr/local/gcc-9.3/bin/gcc,同时还要添加CXX=/usr/local/gcc-9.3/bin/g++。
做方案对比,存在两种定制环境方案,方案A是借助-cpp去指定g++路径,方案B是对Makefile里的C_COMPILER变量进行修改。方案A适宜单次临时编译,方案B适宜长期项目统一管理。选择方案B用于团队协作更合适,如此可以避免让每个人手动添加参数。
生成可执行文件避坑指南
运行./simv -l run.log ,添加 +ntb_random_seed=12345 以及 +UVM_TESTNAME=test_basic。其中关键参数 +ntb_random_seed 的最优推荐数值是 12345 ,原因在于能够确保随机的稳定性 ,并且便于重现错误。跑完后检查run.log里有没有UVM_ERROR。
新手要避免踩坑,这里有个高频且完整的报错情况,报错内容是,Error有个中括号括起来的DEFINE_UNDEFINED报错:Macro这个词后面跟着单引号引起来的MY_MACRO,它是没被定义的,这种情况会给出报错提示。一步一步的解决开展进行方面,过程是这样的:首先,将compile.log打开,其后去搜MY_MACRO;接着呢,要把缺失定义的模块找寻出来;然后,编译命令那里加上+define+MY_MACRO=1;还有一种方式,要么是去创建vcs_custom.vh,通过用-vcs_custom_define去导入;最后,再次进行编译运行。
本方法在标准Linux x86_64服务器之下适用于VCS定制仿真,不适用于Windows WSL以及32位的老旧系统,原因在于路径解析与库依赖方面存在很大差异,替代方案为在WSL里借助Docker封装完整的EDA环境或迁移至CentOS 7虚拟机。
在定制 EDA 工具期间,你所碰到的最为离奇古怪的报错情形是怎样的呢?欢迎来到评论区予以分享,记得点赞收藏以防迷失路径哦。
微信扫一扫
还没有评论呢,快来抢沙发~