当前位置: 首页 > news >正文

VCS编译bug汇总

‘typedef’ is not expected to be used in this contex

注册前少了分号。

Scope resolution error

resolution : 声明指针时 不能与类名同名,即 不能声明为adapter.

cannot find member "type_id"

忘记注册了

拼接运算符使用

关键要加上1'b,不然拼出来只有1bit

Error casting p_sequencer, please verify that this sequence/sequence item is intended to execute

在搭建UVM环境的时候出现这个错误,发现seq0里面 调用了`uvm_declare_p_sequencer(my_vsqr) 和seq0.start(p_sequencer.p_sqr0);不一致导致的

将seq0.start(p_sequencer.p_sqr0)改成seq0.start(p_sequencer)

SystemVerilog中forever begin end導致的Hang死

forever beginif(expre == 1) beginrun();endend

1、如果run()這個task值耗時的,當if條件成立時,不會hang死。

2、如果if條件不成立,肯定會hang死。

3、防守的辦法是給if條件後面加上else分支,在else中做一個延時:@axi_if_cb;如果if條件不成立,走一T再進行下一次判斷:

forever beginif(expre == 1) beginrun();endelse begin@axi_if_cb;endend

寄存器模型同时访问

图中两个寄存器值都是32'h1d,注释中的方式访问得到的1d而非正确值0000001d0000001d。因为同时访问丢失了一个,得到的值是0.

找不到顶层tb

特别离谱,filelist,模块名和makefile都没问题。

$COMMON_ROOT/vip/tue-master/src/*
$COMMON_ROOT/vip/tue-master/src/tue_pkg.sv
$COMMON_ROOT/vip/tvip-axi-master/scr/tvip_axi_pkg.sv
$COMMON_ROOT/vip/yuu_pkg/yuu_common/include/yuu_common_pkg.sv
$COMMON_ROOT/vip/yuu_pkg/yuu_amba_bak/include/yuu_amba_pkg.sv
$COMMON_ROOT/vip/ahb_vip/ahb_include/yuu_ahb_pkg.sv
$COMMON_ROOT/vip/apb_vip/apb_include/yuu_apb_pkg.sv
$K1_SOC_ROOT/verf/bt/bt_k1/env/k1_env_pkg.sv
$K1_SOC_ROOT/verf/bt/bt_k1/th/harness.sv
$K1_SOC_ROOT/verf/bt/bt_k1/tc/tc_base.sv  

最后发现是通配符的问题,导致后面的文件都识别不了。

indentifer not in port list

原因是interface例化时最后没加()

Error-[UTOPN] Unknown type or port name

The type name 'SOC_TOP' is unknown, or the identifier 'dut' has not been

listed as a port, or the declaration might represent an instance missing

parentheses.

"../th/dut_inst.sv", 13

Source info: SOC_TOP dut;

原因模块例化时没加()

改成SOC_TOP dut();即可

variable input ports cannot be driven

原因是vip的接口时钟复位是以参数的形式传入的,不能用assign来连接

Error-[TCF-CETE] Cannot evaluate the expression

完整报错:

Error-[TCF-CETE] Cannot evaluate the expression
../env/k1_scb.sv, 251
"(this.cfg.axi_mst_cfg.size + (~1'sd0))"Cannot evaluate the expression in right dimension bound.The expression must be compile time constant.

完整报错:

Error-[TCF-CETE] Cannot evaluate the expression
../env/k1_scb.sv, 251
"(this.cfg.axi_mst_cfg.size + (~1'sd0))"Cannot evaluate the expression in right dimension bound.The expression must be compile time constant.

原因是运行阶段队列右边大小不能确定

按如下修改即可:

Error-[IAP] Illegal assignment pattern

二维数组赋值错误:

删除二维数组后的标号:

找不到config变量

传入的变量在0,1跳变

一开始忘记写int了,直接input i。默认是1bit,数据只剩一位也就是0和1.

当fork-join/none遇上for循环:fork_for

遇到这么一个问题:

因为在for循环中启动fork进程时,当前循环会立刻结束,进入到下一个循环,因此在所有循环体中的i变量都会等于最后一次循环i的值。

解决办法如下:

https://zhuanlan.zhihu.com/p/553466412

illegal range in part select


Q:无法使用for循环来分段取值, 但是下面这段这么赋值就没问题

A:Verilog取值区间不能两端都是变量,改成下面形式即可—— req.data[x +: 8];

http://www.lryc.cn/news/389388.html

相关文章:

  • 【2024LLM应用-数据预处理】之如何从PDF,PPT等非结构化数据提取有效信息(结构化数据JSON)?
  • 冯雷老师:618大退货事件分析
  • JAVA基础教程DAY0-基础知识
  • 鸿蒙开发Ability Kit(程序访问控制):【安全控件概述】
  • 【信息系统项目管理师】18年~23年案例概念型知识
  • 什么是字符串常量池?如何利用它来节省内存?
  • Selenium自动化测试20条常见异常+处理方案
  • verilog将信号和常数拼接起来
  • OpenSSH远程代码执行漏洞 (CVE-2024-6387)
  • 高薪程序员必修课-java并发编程的bug源头
  • c++:#include 某文件.h底层如何寻找其.cpp实现
  • uniapp中如何进行微信小程序的分包
  • win10下安装PLSQL14连接Oracle数据库
  • 高考失利咨询复读,银河补习班客服开挂回复
  • java 代码块
  • vue中避免多次请求字典接口
  • Snappy使用
  • 跨越重洋:在Heroku上配置Pip镜像源的终极指南
  • SpringBoot + 虚拟线程,性能炸裂!
  • Java Character类
  • Python中的爬虫实战:猫眼电影爬虫
  • WAIC2024 | 华院计算邀您共赴2024年世界人工智能大会,见证未来科技革新
  • 数据库原理之数据库基本概念
  • vue2项目的打包以及部署
  • Java的全局异常处理代码
  • Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁
  • 注意!年龄越大,社交圈子越窄?其实这是老人的理性选择!数学家告诉你:何时该跳槽,何时该坚守!你必须知道的三个智慧:让你的人生更加精彩!
  • [SwiftUI 开发] 嵌套的ObservedObject中的更改不会更新UI
  • 全面了解机器学习
  • 作为图形渲染API,OpenGL和Direct3D的全方位对比。