Verilog でビットフィールドをパラメータ化することは可能ですか? 基本的に、パラメーターまたは代替を使用してビット範囲を定義したいと考えています。これを行う唯一の方法は、以下に示すように `define を使用することですが、もっと良い方法があるはずです。
`define BITFIELD_SELECT 31:28
foo = bar[BITFIELD_SELECT]
Verilog でビットフィールドをパラメータ化することは可能ですか? 基本的に、パラメーターまたは代替を使用してビット範囲を定義したいと考えています。これを行う唯一の方法は、以下に示すように `define を使用することですが、もっと良い方法があるはずです。
`define BITFIELD_SELECT 31:28
foo = bar[BITFIELD_SELECT]
名前空間はプロジェクトに対してグローバルではないため、パラメーターは定義よりも適切 (安全) です。これは、2 つのパラメーターで実行できるはずです。
parameter BITFIELD_HIGH = 31;
parameter BITFIELD_LOW = 28;
assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];
あるいは
parameter BITFIELD_HIGH = 31;
localparam BITFIELD_LOW = BITFIELD_HIGH-3;
assign foo = bar[BITFIELD_HIGH:BITFIELD_LOW];