知道位数的最佳方法是创建掩码?

Vic*_*sky 1 verilog

如果我知道字段的位数,那么为该字段创建掩码的最佳方法是什么.

例如,如果位数是4,我想要一个掩码 4'b1111

我目前正在做C风格的面具创作:

`define MY_BITS 4
...
mask = (1 << `MY_BITS) - 1;
Run Code Online (Sandbox Code Playgroud)

Vas*_*liy 5

尝试复制操作符:

mask = {`MY_BITS{1'b1}};
Run Code Online (Sandbox Code Playgroud)

替代方案(仅限System-Verilog):

logic [`MY_BITS-1:0] mask;
...
mask = '1;
Run Code Online (Sandbox Code Playgroud)