Verilog中parameter、`define、localparam的区别

1、首先讲讲语法方面的不同

(1)、parameter常量的定义和使用

parameter constant_name = constant_value;

本模块中使用:用constant_value去代替常量的值

实例模块使用:通过 #(  .变量名1(变量值1), .变量名2(变量值2),    ........)使用

           module_name   #(   .W(4)  ,  .N(10)    )    module_instance(

             端口连线;

               )

parameter DATA_WIDTH = 8;   // 定义数据位的宽度
parameter ADDR_WIDTH = 16;   // 定义地址位的宽度
parameter CNT_MAX = 25'd24_999_999;  //定义计数最大值

//下面三个都可以
#(
	parameter WIDTH = 3,N = 5
)
parameter WIDTH = 3,N = 5;

parameter WIDTH = 3;
parameter N = 5;


调用
用CNT_MAX取代模块中的常量25'd24_999_999的值


cnt
#( 
     .WIDTH(4),.N(10)   // 将模块的常量参数值改变了
)
cnt_ins
(
    .CLK(CLK)
    .RST_N(RST_N)
    .CLK_OUT(CLK_OUT)
)

(2)、`define常量的定义

`define    constant_name   constant_value   //后面不要分号

//定义

`define     IADDR_WRITE 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值