fun*_*eah 4 verilog fpga register-transfer-level
是否可以参数化verilog中的位字段?基本上我想使用参数或替代来定义位范围.我能想到这样做的唯一方法是使用如下所示的`define,但似乎应该有更好的方法.
`define BITFIELD_SELECT 31:28
foo = bar[BITFIELD_SELECT]
Run Code Online (Sandbox Code Playgroud)
参数比定义更好(更安全),因为命名空间不是项目的全局.您应该可以使用两个参数执行此操作.
parameter BITFIELD_HIGH = 31;
parameter BITFIELD_LOW = 28;
assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];
Run Code Online (Sandbox Code Playgroud)
另外
parameter BITFIELD_HIGH = 31;
localparam BITFIELD_LOW = BITFIELD_HIGH-3;
assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];
Run Code Online (Sandbox Code Playgroud)