Verilog中parameter与define的区别

Verilog中parameter与define的区别  

1.语法定义

 parameter xx = yy; 

define xx yy  

2. 作用范围 

paremeter作用于声明的那个文件;

define从编译器读到这条指令开始到编译结束都有效,或者遇到undef命令使之失效  

3. 功能 

状态机的定义可以用parameter定义,但是不推荐使用define宏定义的方式,

因为define宏定义在编译时自动替换整个设计中所定义的宏,

而parameter仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机混淆。

例如一个工程里面有两个module各包含一个FSM,如果设计时都有IDLE这个名称的状态,

如果使用define宏定义就会混淆起来,如果使用parameter则不会造成任何不良影响。

parameter只在定义的文件是有效,在其它文件中无效。

For instance:

 `define plus 3’d0 

`define minus 3’d1

 `define band 3’d2

 `define bor 3’d3

 `define oppo 3’d4  

module test ( 

input [7:0] a,

 input [7:0] b, 

input [2:0] opcode, 

output [7:0] out);  

reg [7:0] rout; 

always @(a or b or opcode)  

case(opcode)  

 `plus:rout=a+b;  

 `minus:rout=(a>b)?b:a;  

 `band:rout=a&b;  

 `bor:rout=a|b;  

 `oppo:rou=~a;  

 default:rout=8’hxx;  

case 

assign out=rout; 

endmodule

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值