Verilog中parameter和define的区别
答案:1 悬赏:50 手机版
解决时间 2021-11-13 11:06
- 提问者网友:自食苦果
- 2021-11-12 12:45
Verilog中parameter和define的区别
最佳答案
- 五星知识达人网友:大漠
- 2021-11-12 13:03
`define 是宏定义,全局作用的,而且不受语意限制。你甚至可以定义半截的字符串出来。但是使用的时候才会做展开。
举例而言,如果你定义一个宽度信息为:
`define RANGE 2:3
然后在使用的时候`include这个文件,RANGE就可以解析了。
wire [`RANGE] bus;
parameter是模块内常量定义,仅限于常量。一般的工具对于parameter的支持力度更好,毕竟是语意可以识别的。而`define的支持仅仅限于parse阶段,不会流入到elaboration阶段。但是如果把``define的使用场景都改为parameter会造成不必要的变量的引入。
目前一般使用`define的地方一般是全局化的configuration阶段。比如说对整个IP的配置信息,一个IP应该满足不同的SOC的需求提供不同的配置。
举例而言,如果你定义一个宽度信息为:
`define RANGE 2:3
然后在使用的时候`include这个文件,RANGE就可以解析了。
wire [`RANGE] bus;
parameter是模块内常量定义,仅限于常量。一般的工具对于parameter的支持力度更好,毕竟是语意可以识别的。而`define的支持仅仅限于parse阶段,不会流入到elaboration阶段。但是如果把``define的使用场景都改为parameter会造成不必要的变量的引入。
目前一般使用`define的地方一般是全局化的configuration阶段。比如说对整个IP的配置信息,一个IP应该满足不同的SOC的需求提供不同的配置。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯