文章目录

  • 前言

前言

记录做项目的时候编译问题,好记性不如烂笔头,下次碰到相同的问题也可以方便查阅


2023.2.10

问题1:编写makefile脚本后,执行make all,遇到如下问题

解决方法:
(1)按照下面这个办法,打开vcs文件,1200行没有这句话

(2)在编译选项添加-full64即可,问题解决


问题2:遇到过好几次

collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'product_timestamp' failed
make: *** [product_timestamp] Error 1

解决方法:确保gcc版本为4.8,然后添加选项

vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed -sverilog -debug_all -timescale=1ns/1ps -f file.list -l com.log

问题3

make[1]: g++4.8: Command not found
Makefile:104: recipe for target 'product_timestamp' failed
make[1]: *** [product_timestamp] Error 127
make[1]: Leaving directory '/home/xxx/test/csrc'
Make exited with status 2
CPU time: .107 seconds to compile + .016 seconds to elab + .077 seconds to link
makefile:4: recipe for target 'com' failed
make: *** [com] Error 2

又报错了!哭!破案了!!!!
–no-as-needed复制到makefile里面变成了-no-as-needed,总算解决了
(ps:好多时候都是这种低级错误,然后整好久)


问题4:前面都没问题,dve执行又报错了

ERROR - /home/xxx/synopsys/vcs-2016.06/gui/dve/linux/bin is not valid directory.
Check if DVE variable is valid.  If you want to run 64bit, please use -mode64 or -full64 option.

解决方法:暂时没找到解决方法,但是仔细发现,我最开始用的设计里面是没有添加波形的,可能就出错了。然后换了一个设计就跑成功了!!!看到最后面那句话也就是运行成功了。


2023.2.26

问题1:想用vcs去编译整个仿真环境,把文件添加到了ahb2apb/dv/etc/tb.f tc.f文件夹下,但是找不到这些文件

Error-[SFCOR] Source file cannot be openedSource file "$DV_ROOT/vip/ahbl_mst/ahbl_mst_pkg.sv" cannot be opened for reading due to 'No such file or directory'.Please fix above issue and compile again.

问题原因
本来是想设置绝对路径去做,在最上面声明项目的绝对路径,这样下次移植时只要修改变量名即可。
在f文件里面使用了makefile文件里面定义的变量,这个变量好像并没有传递到我要去编译的f文件,没有替换到变量名,于是系统无法识别该变量,所以找不到文件。

解决方法
为什么变量没有传进去,可能是该变量只在makefile文件里面有效?
法一:要用export!我只写了变量等于什么,并没有export进去!
法二:没有用绝对路径了,改用相对路径,把各个f文件里面的路径修改成相对于makefile文件的路径。在filelist文件中用相对路径的话,都是相对于makefile文件的相对路径。


问题2:语法错误


解决方法
-f选项只对rtl.f文件产生效果,后面的tb.f tc.f被当成设计文件去编译了
应该加三个-f选项


问题3

Error-[UST] Undefined System Task Call
/home/xxxx/ahb2apb/dv/tb/ahb2apb_tb.sv, 150Undefined System Task call to '$fsdbDumpfile'.

解决方法
配置verdi的库文件
编译选项加上-P


问题4:报错说run test函数没有例化对象
发现是+UVM_TESTNAME=${TC}写成了+UVM_TESTNAME = ${TC}。中间等号间隔开了就不行。


2023.3.16

问题1: 我想把每次随机后的种子记录下来写到log文件名称里面。但是生成的文件名称没有log文件后缀,不知道为啥()

解决方法:
在开头声明这个变量,然后后面再去使用,这样就没有报错了,但是原因未知

com_log_name = ${testname}_${SEED}
-l ./log/${com_log_name}.log \

2023.3.22

问题1:每次跑回归测试的时候,总是会出现错误,总共只有5个test,单独跑这个case的时候是没有问题的

An unexpected termination has occurred in ./SIMV/ahbl_mst_burst_apb_slv_slverr_051555011_simv due to a signal: Segmentation fault

问题分析: 发生了段错误,没有物理内存对应该地址,好像是访问了一些不存在的物理内存空间,在出现这个错误之前,还出现下面的warning信息。但是我在仿真脚本的编译选项里面是添加了这个+ntb_solver_array_size_warn=10000,可能是没起作用,导致数组长度太大。

Warning-[CNST-LASW] Constraint large array size warning
/home/xxx/ahb2apb/dv/seqlib/ahbl_mst_seqlib.sv, 30Variable haddr_q.size() has value > 100000, which may cause severe  performance degradation.Please try to reduce the array size.You can use +ntb_solver_array_size_warn=<num> to adjust the array size warning limit.
Warning-[UNK_COMP_ARG] Unknown compile time plus argument usedUnknown compile time plus argument 'ntb_solver_array_size_warn=100000' is ignored.

解决方法:
把它设置成了200000,还是有warning信息

Warning - [CNST-LASW] Constraint large array size warning/home/xxxx/ahb2apb/dv / seqlib/ahbl_mst_seqlib.sv,30
Variable haddr q.size( ) has value > 1410065408,which may cause severe performance degradation.Please try to reduce the array size.
You can use +ntb_solver_array_size_warn=<num> to adjust the array sizewarning limit.

问题2 :为了避免对case语句中default语句收集覆盖率,所以添加了编译选项-cm_nocasedef,出现如下warning

Warning-[VCM-OPTINWP] Option used in wrong phase.-cm_nocasedef is not a compile-time coverage option. It will have no effect at compile-time.This option should be used at report-time.Please contact VCS support forfurther information.

解决方法:区分compile-timerun-timereport-time这三个不同的时间,看上去像是选项加错了位置,而且总感觉出现这些问题都是我要一步执行-R引起的,但是又说一步执行的vcs选项的顺序又没有太大的要求,这点暂时还没理解清楚

改成了-cm_cond nocasedef,又出现了下面这个错误,-cm_cond没有nocasedef这个选项,有的选项在另外一篇博客有介绍

Error-[CM-ARGPL] Incorrect argument 'nocasedef' is not a valid argument to -cm_cond. The -cm_cond option requires a '+' separated list of flags. The legal flags are: basic std allops full event anywidth tf caseeq for path sop ports allvectors scalarbitwise flat obs noxfalse objects

最后在urg的时候加上去除收集default语句的行覆盖率:-line nocasedef

urg -full64 -line nocasedef -dir *.vdb -dbname merge -report urgReport

输出的urg log信息中有如下:

Note-[URG-NCDN] No case defaultSince the -line nocasedef option was given, URG will exclude all the "default" case items from the line coverage reports.

2023.4.30

问题1:写了一个agent,里面包含各个组件,想编译一下看这部分有没有什么问题,make com的时候出现如下问题,好像主要是这句话undefined reference to `sramc/dv/agent/ahbl_master/simv"’

objs/amcQw_d.o: In function `NSIM':
(.text+0x177): undefined reference to `sramc/dv/agent/ahbl_master/simv"'
collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'product_timestamp' failed
make[1]: *** [product_timestamp] Error 1
make[1]: Leaving directory '/home/xxxx/ahb sramc/dv/agent/ahbl_master/csrc'
Make exited with status 2
CPU time: 4.082 seconds to compile + .201 seconds to elab + .345 seconds to link
makefile:4: recipe for target 'com' failed
make: *** [com] Error 2

解决方法:未解决 不知道哪里有问题


问题2:整体编译时,出现如下错误

VCS Error-[NYI-NS] Not Yet Implemented The following feature is not yet supported: Replacing interface cell in logical library not yet supported.

解决方法:在interface文件开头添加了`ifndef声明,就没有报错了,但是之前跑ahb2apb的时候也没有声明。


2023.5.18

问题1: 编译文件报错,driver组件中如果抓到是空包,就发送一拍idle
之前只要reset的时候没有报错,新添加这部分就报错

Error-[XMRE] Cross-module reference resolution error
/home/xxxxx/ahb_sramc/dv/agent/ahbl_master/ahbl_mst_drv.sv, 71Error found while trying to resolve cross-module reference.token 'vif'.  Originating package 'ahbl_mst_pkg'.Source info: vif.drv_cb.hburst <= 3'b0;


解决: 因为我把函数声明为了extern,但是新添加的这个函数没有写ahbl_mst_drv::drive_1clc_idle,所以查找不到vif


2023.6.2

问题1: 语法错误,检查了好几遍12行的代码,没有拼写错误,也没有写中文标点符号(最近好几次都是这种莫名其妙的语法错误,没有拼写错误,就是不知道哪里错了)

Error-[SE] Syntax error
Following verilog source has syntax error :
token ‘vsequencer’ should be a valid type. Please declare it virtual
if it is an Interface.
“./…/dv/env/apbuart_environment.sv”, 12: token is ‘;’
vsequencer v_sqr;

解决: 原来是我在写文件路径的时候,把env的文件先编译了,而vsequencer的文件在env后面,所以就找不到vsequencer,发生语法错误了


2023.6.4

问题1: 在执行makefile中的脚本的时候报错,第一次出现这种,检查了每个命令之后都有分号,而且makefile指令如果换行写的话也添加了反斜杠。

run_all:@for i in $(TEST_NAMES); do@echo “SEED:${SEED}”;@echo “testname:$i”;${compile} -cm_name $$i_name_${SEED} -R \-o ./SIM/$$i_${SEED}simv-l ./log/$$i${SEED}.log+UVM_TIMEOUT=900000000+UVM_TESTNAME=$$i;
done

错误如下:

/bin/sh: -c: line 4: syntax error: unexpected end of file
Makefile:23: recipe for target ‘run_all’ failed
make: *** [run_all] Error 1

解决: 在网上看到说unexpected end of file错误可能是反斜杠后门有空格,编辑器认为该行是一条完整的命令,但是没有分号,所以就报错,果然在-R \的后面发现了一个空格。

好记性不如烂笔头——记录项目过程中的编译错误及解决方法(持续记录中)相关推荐

  1. word提示 由于宏安全设置,无法找到宏或宏被禁用 隐藏的模块中的编译错误Declaration32 解决方法

    出现这个问题是因为MATHTYPE跟你安装的word不兼容: 首先是打开mathtype之后word 闪退,我试了网上说的删除字体,往STARUP里面加mathtype文件等等:也卸载mathtype ...

  2. Office Word等双击空白处的“隐藏的模块中的编译错误:MTW5”解决

    Microsoft Visual Basic for Applications 隐藏的模块中的编译错误:MTW5. ... 解决方法: 情景1 Office 2016是64位的,有一个VBA模块,按住 ...

  3. WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭

    原文:WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭 在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而 ...

  4. hadoop过程中遇到的错误与解决方法

    hadoop过程中遇到的错误与解决方法 参考文章: (1)hadoop过程中遇到的错误与解决方法 (2)https://www.cnblogs.com/zhjh256/p/10669881.html ...

  5. directx11编程中遇到的错误及解决方法

    directx11编程中遇到的错误及解决方法 参考文章: (1)directx11编程中遇到的错误及解决方法 (2)https://www.cnblogs.com/zhangbaochong/p/55 ...

  6. SQL Server2000企业管理器在Win7中新建表错误的解决方法

    Sql Server2000建表错误与解决方法: 在Windwos7中SQL Server 2000企业管理器在新建表时会提示错误,尝试各种方法均告无效,包括升级SP3和SP4,最终发现如下规律可以暂 ...

  7. 安装常见的错误及解决方法(记录)

    博文出处:http://blog.csdn.net/tyxkzzf/article/details/47285401 adb的安装过程分为传输与安装两步. 在出错后,adb会报告错误信息,但是信息可能 ...

  8. setupsql安装程序初始化错误_ArcMap中常见的错误及解决方法

    原创 ArcGis摸索者 Gis技术分享 今天分享的绝对是干货哟,内容很长,请大家耐心观看!(这也是小编今天放假啦,耐心的给大家整理了这份资料,内容绝对好看也实用!) 小编在项目里面使用Arcgis处 ...

  9. Exchange 2007 OWA中出现“HTTP 错误404”解决方法

    在安装好Microsoft Exchange Server 2007后,在使用OWA方式第一次登录用户的邮箱时,在初始登录过程中配置本地化和时区选择之后(如图1),可能收到错误消息"HTTP ...

最新文章

  1. 揭晓你所不了解的第三代测序技术
  2. MFC之进度条CProgressCtrl
  3. PMCAFF产品经理第一课 | 「在行」价值1.5万元的强大课程体系,365天能力突围
  4. 最快解决在win下杀死端口号的方式
  5. 深度学习maxout单元
  6. oracle 带有变量的语句_【成都校区】Oracle SQL语句之常见优化方法总结
  7. linux——进程(创建、终止、等待、替换)
  8. sql express 无法启动服务_在Windows2012下安装SQL Server 2005无法启动服务的解决办法...
  9. 理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
  10. 20165218 《网络对抗技术》Exp0 Kali安装 Week1
  11. C++请不要问我string s=”a”+”b”分配了几次内存
  12. 输入1-53周,输出1-53周的开始时间和结束时间
  13. Linux meset
  14. 资源环境承载力和国土空间开发适宜性之水环境容量评价
  15. VMware虚拟机克隆
  16. 第一天 渗透的基本概念
  17. 程序员Linux命令常用大全
  18. Composing Programs 2.3 Sequence - 02
  19. python生成日期列表_PYTHON生成日期维度表
  20. 北欧的Michael Learns To Rock的一首清澈见底的【Take Me To Your Heart】

热门文章

  1. 几种免费的数据库建模工具
  2. 默认网关填了不能保存问题秒解
  3. ArcGIS在国土空间·城乡规划中的实战应用
  4. 微博粉丝服务---“公众号”开发
  5. oracle 分桶函数,Oracle 12c新特性 - Top frequency histogram 3
  6. SolidWorks_机甲大师——麦克纳姆轮设计
  7. php初级程序员,接单,挣外快的指导方法
  8. elementui 表单v-molde是动态的,校验表单字段为必填项
  9. (转)Windows Server 2008 默认"照片库查看器" 无法打开图片, 只能用画图程序打开...
  10. Java与JavaScript的区别