4

Verilog でビットフィールドをパラメータ化することは可能ですか? 基本的に、パラメーターまたは代替を使用してビット範囲を定義したいと考えています。これを行う唯一の方法は、以下に示すように `define を使用することですが、もっと良い方法があるはずです。

`define BITFIELD_SELECT 31:28
foo = bar[BITFIELD_SELECT]
4

2 に答える 2

6

名前空間はプロジェクトに対してグローバルではないため、パラメーターは定義よりも適切 (安全) です。これは、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];
于 2011-06-23T20:49:58.717 に答える