|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 yushuiyang1986 于 2012-12-7 20:21 编辑
例如如下代码:module
……
parameter WIDTH = 32;
reg [WIDTH-1 : 0] a;
reg [WIDTH-1 : 0] a;
always @(posedge clk or negedge rst_n)
if(!rst_n)
a <= WIDTH'd10;
else
a <= {a_next, (WIDTH-6)‘d4};
……
endmodule
这个里面的
a <= WIDTH'd10;a <= {a_next, (WIDTH-6)‘d4};
编译会报错,但是如果改成
a <= 32'd10;
a <= {a_next, 26‘d4};
就没有问题;
可是现在想通过顶层例化的时候通过parameter的设定来定义a的位宽,
如果写成固定位宽,就会出现位宽不匹配;
如果不写常数的位宽,拼接就会有问题,而且coding style看起来不好;
请问有没有办法可以解决这个问题的方法,或者推荐的做法是什么? |
|