Enumでビット幅を保持するにはどうすればよいですか? システムのVerilogで列挙型のビット幅を保存する
は、次のコードでたとえば: - 10私も試した私は、 プリント2を印刷する最初の文に取得する方法
typedef enum bit[2:0] {
b1=2'b10,
b2=3'b100
}b;
{// regular stuff module, initial begin etc..
b a1,a2;
a1=b1;
a2=b2;
$display("b=%0d %b",$bits(a1),a1); **// prints 3, 010**
$display("b=%0d %b",$bits(a2),a2); **// prints 3, 100**
}
は以下: -
typedef enum {
w1=2,
w2=3
}w;
w wa1,wa2;
int len,len2;
bit [3:0] bb;
{
bb=a1;
len=w1;
$display("b=%0d %b",$bits(bb[len:0]),wa1);
enter code here
bb=a2; len=w2;
$display("b=%0d %b",$bits(bb[len:0]),wa2);
}
ましたコンパイルの問題があります。
変数/列挙型のビット幅を保持する他の方法も歓迎します。
--------------元の質問が投稿された後の編集-----------------
配置する簡単な方法この質問は..
私はbit [31:0] aを持っていると言います。
は、私は次のような機能を実現する必要があります -
function bit[] get(bit[31:0] a, int size)
return a[(size-1):0];
おかげで、
を私はそれがすべての列挙型の値に対して同じビット幅を与えるため 'enum'は、この目的で使用することはできないと思います。 –