Verilog参数化与连接操作符{}



`define ND 16

parameter N = 16

localparam NX = N-1;    //内部参数使用localparam 定义


对一个16位的寄存器,对其进行初始化,现在有以下三种表达方式,

1 IMAX <= {N{1'b0}};         //OK
2 IMAX <= N'd0;                //编译错误ERROR:unexpected token: 'N'
3 IMAX <= `ND'd0;            //OK

4 IMAX <= {`ND{1'b0}};     //OK


编译结果:

ERROR:HDLCompilers:26 - "xx.v" line 2  unexpected token: 'N',

即第二行代码表示是有错误的,语法错误,注意避免。

第3行,使用宏定义,是正确的,


第1、4行两种形式,使用位连接运算符{}才正确,但是,1、4两行的赋值,外面的大括号{}必须有,否则也是错误的,即IMAX <= `ND{1'b0} 这样的赋值也是错误的。


经常在复位初始化中可能用到。使用看看。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值