首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QuestaSim时未定义的全局变量

使用QuestaSim时未定义的全局变量
EN

Stack Overflow用户
提问于 2014-07-22 16:27:51
回答 1查看 624关注 0票数 0

我在foo_const.v中定义了一个变量,该变量在foo_const.v中定义如下:

代码语言:javascript
复制
localparam NUM_BITS = 32;

然后,我有另一个文件foo_const_slice.v,它执行以下操作:

代码语言:javascript
复制
localparam SLICE_ADDR_BITS = NUM_BITS;

这在vcs命令中编译得很好:

vcs -sverilog foo_const.v foo_const_slice.v

但是当我尝试使用QuestaSim时:

vlog -work work -sv foo_const.v foo_const_slice.v

我收到以下错误消息:

** Error: foo_const_slice.v(46): (vlog-2730) Undefined variable: 'NUM_BITS'.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 03:30:31

问题是,在默认情况下,vlog编译的每个文件都进入一个单独的编译单元,就像C/C++和许多其他语言一样。默认情况下,vcs将所有文件连接到一个编译单元中。

尽管有一种方法可以更改默认值(您可以在用户手册中查找它),但编写代码的正确方法是将参数放在包中,并在需要时导入包。

戴夫

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24892840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档