在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 981|回复: 6

[求助] UVM的绝对路径访问问题

[复制链接]
发表于 2025-2-27 15:11:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
假设我在monitor中使用了绝对路径检测TPTC0模块中的状态机的状态state_uvm=top_tb.EDMA.TPTC0.state,但是在经过代码混淆后,除了顶层,其他子模块及接口都会被混淆成随机的字符串(混淆后不会改变DUT的功能),如果此时将混淆后的代码放到UVM中跑,由于模块名和接口都被混淆了,所以绝对路径必须跟着改,如果绝对路径引用的多那就会很麻烦,请问有没有什么解决办法呢?

望大佬们指点!谢谢!
发表于 2025-2-27 16:17:00 | 显示全部楼层
如果混淆后的代码是工具生成的,确定不会改变代码功能,为什么不能只跑混淆前的代码?
如果确实有这样的需求,或许可以考虑用宏:
假如代码混淆后EDMA变成了aaaa,TPTC0变成了bbbb
`ifdef HUNXIAO //运行混淆后的代码,则定义这个宏
    `define TB_EDMA_NAME aaaa
    `define TB_TPTC0_NAME bbbb
`else
    `define TB_EDMA_NAME EDMA
    `define TB_TPTC0_NAME TPTC
`endif
然后在需要使用的地方:state_uvm=top_tb.`TB_EDMA_NAME.`TB_TPTC0_NAME...
发表于 2025-2-27 17:17:44 | 显示全部楼层
代码混淆是啥意思
发表于 2025-2-28 10:05:00 | 显示全部楼层


It is a technique that flatten the code and replace all identifier in code by the unmeaningful name. The encrypted code can be decrypted but the obfuscation code almost be unreversable
 楼主| 发表于 2025-3-4 16:23:06 | 显示全部楼层


tcz226 发表于 2025-2-27 16:17
如果混淆后的代码是工具生成的,确定不会改变代码功能,为什么不能只跑混淆前的代码?
如果确实有这样的需 ...


首先感谢您的回复,我现在希望在top_tb中定义宏(因为可能多个地方需要该宏),然后在monitor中使用该宏,仿真会直接报错。但是我直接将宏写在monitor的class中,那么就可以直接使用该宏。为什么在top中定义的宏,此处monitor不能直接使用该宏呢,难道也要用config_db机制传送到monitor中才能使用吗?如果是这样的话,宏的使用可能就没那么简便了。
 楼主| 发表于 2025-3-4 16:25:12 | 显示全部楼层


就是将代码中的所有信号都乱码,但整体功能不变,增强保密性。也就是别人只能看到我乱码的代码,但使用起来功能无误。
 楼主| 发表于 2025-3-4 17:27:49 | 显示全部楼层


tcz226 发表于 2025-2-27 16:17
如果混淆后的代码是工具生成的,确定不会改变代码功能,为什么不能只跑混淆前的代码?
如果确实有这样的需 ...


不用您帮忙啦,我已经找到解决方法了,直接定义一个define.svh文件,然后在top_tb中`include该宏文件,然后底层组件就可以直接引用宏了。

谢谢您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-7 02:10 , Processed in 0.029107 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表