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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6028|回复: 12

[求助] UVM中的`ifdef求助

[复制链接]
发表于 2017-8-17 22:08:46 | 显示全部楼层 |阅读模式

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

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

x
求助各路大神。。在张强那本书里,基本上所有的UVM组件或class都是定义在`ifdef和`endif之间。
有两个不明白的地方:
1、定义这个有什么用?是类似于单片机C语言吗?但很少是*.svh,更多的是.sv。
2、为什么要将class定义在这里面呢?
没有找到明确的答案,特此求助!
发表于 2017-8-18 09:50:51 | 显示全部楼层
因為 class 有可能在很多的 file 被 include, 避免 compiler 因重覆讀此 class 而會認為 class (module) 被重覆定義而報錯.
 楼主| 发表于 2017-8-18 11:01:09 | 显示全部楼层
回复 2# kuolifeng


謝謝您的回答。大致明白了,就是還有些似懂非懂,得靠自己實踐了
发表于 2017-8-18 13:40:35 | 显示全部楼层
回复 2# kuolifeng


   Thank you for replying, just learning
发表于 2017-8-21 10:15:09 | 显示全部楼层
所以尽量少用include,用的多了可读性差
发表于 2017-8-21 14:11:44 | 显示全部楼层
2楼正解
发表于 2017-8-21 18:23:59 | 显示全部楼层
你是不是把'ifndef写成‘ifdef了?
1. 'ifdef可以在在makefile里通过vcs指令来决定是否运行'ifdef到`endif之间的代码
2. ‘ifndef可以防止你漏掉或者重复compile某个class。例如结合`ifndef可以将验证环境按照env,agent,sequence, sequencer等分成不同子文件夹,每个文件夹下建一个package文件,将当前文件下所有的sv都include到这个package文件里,然后所有的package文件互相import。这样在写其他class时就基本不需要用到include
发表于 2017-8-22 16:25:34 | 显示全部楼层
我不喜欢楼上的这种写法,我更倾向于把所有环境文件统一放到一个文件列表里进行编译与维护
发表于 2017-8-24 16:41:49 | 显示全部楼层
防止重复编译class使用
发表于 2017-9-18 09:48:23 | 显示全部楼层
回复 7# jimbo1006


   mark一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 13:31 , Processed in 0.024769 second(s), 7 queries , Gzip On, Redis On.

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