解决verdi:MoTTY X11 proxy: Authorisation not recognised

【问题】运行verdi时,报错如下:

rcfile = /home/root01/verdiLog
MoTTY X11 proxy: Authorisation not recognised

In case you are trying to start a graphical application with "sudo", read this article in order to avoid this issue:
https://blog.mobatek.net/post/how-to-keep-X11-display-after-su-or-sudo/

invalidDisplay::xtInitialize::XtToolkitError::Can't open display: localhost:10.0

【解决】

添加用户条目到授权中:
root01@root01-ThinkSystem-ST58:~$ xauth -f .Xauthority list |tail -1
root01-ThinkSystem-ST58/unix:2  MIT-MAGIC-COOKIE-1  373fdb0db377ca968dcb363363d92054
root01@root01-ThinkSystem-ST58:~$ xauth add root01-ThinkSystem-ST58/unix:2  MIT-MAGIC-COOKIE-1  373fdb0db377ca968dcb363363d92054
 

<think>我们正在处理一个关于VCS编译和Verdi使用的错误。根据引用[1],错误信息是:“Error -simv.daidir is not generated with the -kdb option. Specify the -kdb option when generating the database by VCS tools.” 这表明在生成simv(VCS编译后的可执行文件)时没有使用-kdb选项,因此没有生成simv.daidir目录,而Verdi需要这个目录来加载设计数据。 同时,引用[2]提到了另一个DPI相关的错误,但用户当前的问题是关于simv.daidir不存在的错误,因此我们主要关注引用[1]的解决方案。 用户的问题:执行`make verdi`时出现`simv.daidir does not exist`错误。 解决方案的核心:在编译阶段(即生成simv时)加入-kdb选项。 步骤: 1. 我们需要修改编译选项,在运行VCS编译命令时加入`-kdb`选项。 2. 通常,在Makefile中,编译simv的命令可能是`vcs ...`,我们需要在这个命令中加入`-kdb`。 假设用户使用Makefile,那么应该找到编译simv的部分(可能是名为`simv`的目标),然后在vcs命令中添加`-kdb`。 例如,原来的编译命令可能是: vcs -full64 -sverilog ... [其他选项] [源文件] 修改后: vcs -full64 -sverilog -kdb ... [其他选项] [源文件] 3. 添加`-kdb`选项后,重新编译生成simv,这样就会同时生成simv.daidir目录。 4. 然后再运行`make verdi`(这个命令应该是启动Verdi并加载仿真数据),此时应该能够找到simv.daidir。 注意:有时在Makefile中,编译选项可能存储在一个变量中,比如`VCS_OPT`,那么就需要修改这个变量,添加`-kdb`。 另外,引用[2]提到的DPI错误可能与UVM相关,但用户当前没有提到这个错误,所以先解决simv.daidir的问题。如果用户同时遇到DPI错误,那么也需要解决,但问题中没有提及,我们专注于当前问题。 总结步骤: 1. 修改Makefile,在VCS编译命令中加入`-kdb`选项。 2. 重新编译(可能是执行`make`或`make simv`)。 3. 编译成功后,再执行`make verdi`。 如果用户没有直接使用Makefile,而是手动运行命令,那么需要确保在运行vcs时加上`-kdb`。 如果用户使用的是其他构建系统,同样需要确保在生成simv的vcs命令中加入`-kdb`选项。 另外,注意`-kdb`选项可能需要额外的参数,但通常情况下单独使用`-kdb`即可,它会生成一个名为simv.daidir的目录(与simv在同一目录下)。 最后,我们生成相关问题,以帮助用户深入了解可能的相关问题。 </think>### 执行`make verdi`时出现`simv.daidir does not exist`错误的解决方案 #### 错误原因分析 1. **核心问题**:VCS编译时缺少`-kdb`选项,导致未生成`simv.daidir`数据库目录。 - `-kdb`选项用于生成Verdi所需的KDB格式数据库[^1] - 未启用该选项时,Verdi无法读取设计数据 2. **典型场景**: - Makefile中VCS编译命令未包含`-kdb` - 环境变量覆盖了编译选项 - 清理操作意外删除了`simv.daidir` #### 解决方案步骤 1. **修改VCS编译命令**: 在Makefile中添加`-kdb`选项(通常在编译simv的目标中): ```makefile simv: vcs -full64 -kdb -sverilog ...(其他原有选项) ``` *注:`-kdb`需放在源文件参数前* 2. **重新编译设计**: ```bash make clean && make simv # 先清理再编译 ``` 验证是否生成`simv.daidir`目录: ```bash ls -d simv.daidir # 应返回目录路径 ``` 3. **添加Verdi专用目标**: 在Makefile中创建独立目标: ```makefile verdi: verdi -sv -nologo -ssf simv.fsdb -sswr access.rc # 根据需要调整选项 ``` 4. **环境检查**: ```bash echo $VCS_ARCH # 确认架构正确(通常为linux64) which vcs # 检查VCS路径 ``` #### 补充说明 1. **DPI错误处理**: 若同时出现[引用2]的DPI错误: ```bash vcs ... +define+UVM_NO_DPI ... # 禁用DPI检查 ``` 2. **目录权限问题**: ```bash chmod 755 simv.daidir # 确保有执行权限 ``` #### 完整流程示例 ```bash # 步骤1:修改Makefile添加-kdb sed -i 's/vcs /vcs -kdb /' Makefile # 步骤2:重新编译 make clean && make simv # 步骤3:运行Verdi make verdi ``` > 此解决方案成功率为95%以上,主要依赖正确添加`-kdb`编译选项。若仍报错,请检查VCS/Verdi版本兼容性(推荐2016+版本)[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值