verilog宏定义对一个.v文件还是整个project有效?
发布网友
发布时间:2022-05-02 05:43
我来回答
共1个回答
热心网友
时间:2022-06-28 18:09
你说的verilog宏定义应该是叫编译指令(compiler directives)就是`timescale、`define这些
其作用范围会持续到指令执行结束(比如`if及`endif)、指令取消(比如`resetall、`define及`undef)、或者覆盖(比如多次`define同一个变量)
不是从top向下传递的 而是和文件编译顺序有关 前面的文件中的预编译指令会影响后面的文件
因此 比较好的代码风格应该是
在每个文件的开始先执行`resetall 从而使各文件保持独立 不受编译顺序影响
在`resetall后`include一个全局文件 里面完成全局编译指令(可以没有)
最后是每个文件本地的编译指令(可以没有)
想从顶层向下传递的话只能用parameter