购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.11 module和interface中的变量声明必须放置在头部位置吗?

理论上,变量声明(reg、wire、var)可以放置在module、interface中的任意位置,但我们仍然建议将所有变量的声明放置于module、interface的头部,这是由于隐式变量声明(implicit variable declaration)的存在,即在端口声明、模块例化端口信号连接、连续赋值(assign)发生时,如果该变量未声明过,那么在编译时会隐式地为其指定一个变量(1位logic类型),并且覆盖其后用户可能声明过的同名变量。

关键词:

variable declaration 变量声明,implicit variable declaration 隐式变量声明

避坑指南:

请将变量声明尽可能放置于module、interface的头部位置(或至少记得声明这些变量),同时可使用linting工具辅助检查,或仿真器编译时添加linting选项(例如,使用VCS时可添加编译选项+lint=all)。

参考代码: sv_module_implicit_variable.sv

编译结果:

仿真结果:

阅读手记: MpBe62tu5bDox7JhpeIgflBKBRFxhSxs/T3Lq1om5JaVt48r30kt0wBjG0kKnxzv

点击中间区域
呼出菜单
上一章
目录
下一章
×