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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5607|回复: 9

宏定义 重复了会如何?

[复制链接]
发表于 2009-8-7 17:10:13 | 显示全部楼层 |阅读模式

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

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

x
如果在一个文件,例如a.vh中
`define  KKK  128

而在另外一个文件,b.v中:
`include a.vh
`define KKK 34

那么最后编译的结果是不是:
在b.v中,KKK=34,
而其他的包含a.vh但并没有定义KKK的文件中,kkk=128

这么理解对吗?请指教
发表于 2009-8-7 18:58:27 | 显示全部楼层
同问,不知道和c是不是一样的
 楼主| 发表于 2009-8-8 10:26:32 | 显示全部楼层
自己顶起来
发表于 2009-8-13 11:42:07 | 显示全部楼层
不是的,Verilog里宏是全局的,具体取什么值,要看你加载的顺序,原则是使用最新的值。
即,a.v加载后在b.v加载前使用a.v的值,b.v加载后使用b.v中定义的值,不管你include哪个文件。
你可以简单试一下。
发表于 2009-8-13 15:02:26 | 显示全部楼层
进来学习一下………………
发表于 2009-8-13 18:49:45 | 显示全部楼层

111



原帖由 能饮一杯 于 2009-8-13 11:42 发表
不是的,Verilog里宏是全局的,具体取什么值,要看你加载的顺序,原则是使用最新的值。
即,a.v加载后在b.v加载前使用a.v的值,b.v加载后使用b.v中定义的值,不管你include哪个文件。
你可以简单试一下。



正解!是和编译的顺序有关系的
发表于 2009-8-13 21:00:44 | 显示全部楼层
学习,学习
发表于 2009-8-16 11:17:57 | 显示全部楼层
这种情况强烈建议把类似的参数集中起来统一调用,
发表于 2009-8-17 00:45:24 | 显示全部楼层
so in other words, it won't turn out to be this file `define is one thing and `define is another thing in the other file.
Instead, redefinition of macro means different guy is expecting different things, assuming there're more than 1 people on your project.  This should be solved once spotted.  VCS warns about it.  lint tools would warn about it too.
发表于 2009-8-19 23:43:18 | 显示全部楼层
换言之
何苦这样定义呢?
纯属了解可以
难道实际应用你会这样吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-11 01:38 , Processed in 0.037076 second(s), 8 queries , Gzip On, Redis On.

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