[解決済み] Verilogで1次元と2次元のバイト配列を宣言して使用するには?
2022-01-28 14:06:19
質問内容
Verilogで1次元と2次元のバイト配列を宣言して使用するにはどうしたらよいですか?
例えば、次のようなことをするにはどうしたらよいでしょうか。
byte a_2D[3][3];
byte a_1D[3];
// using 1D
for (int i=0; i< 3; i++)
{
a_1D[i] = (byte)i;
}
// using 2D
for (int i=0; i< 3; i++)
{
for (int j=0; j< 3; j++)
{
a_2D[i][j] = (byte)i*j;
}
}
解決方法は?
Verilogはビットで考えるので
reg [7:0] a[0:3]
とすると、4x8ビット配列(=4x1バイト配列)が得られます。この中から最初の1バイトを取り出すには
a[0]
. 2バイト目の3ビット目は
a[1][2]
.
バイトの2次元配列の場合、まずシミュレータ/コンパイラを確認してください。古いバージョン(確か'01以前)ではサポートされていません。 次に
reg [7:0] a [0:3] [0:3]
を実行すると、バイトの2次元配列が得られます。 1つのビットにアクセスするには
a[2][0][7]
例えば
reg [7:0] a [0:3];
reg [7:0] b [0:3] [0:3];
reg [7:0] c;
reg d;
initial begin
for (int i=0; i<=3; i++) begin
a[i] = i[7:0];
end
c = a[0];
d = a[1][2];
// using 2D
for (int i=0; i<=3; i++)
for (int j=0; j<=3; j++)
b[i][j] = i*j; // watch this if you're building hardware
end
関連
-
[解決済み】IndexError: Index 10 is out of bounds for axis 0 with size 10
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] jsonに複数の値を1つのキーで格納する
-
[解決済み] GCCです。配列型に不完全な要素型がある
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] 配列の結合/平坦化
-
[解決済み] JavaScriptで配列を比較する方法は?
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】アセンブリ言語での配列のバブルソート
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] MIPSで宣言された配列からの印刷
-
[解決済み] MIPSで配列を作る(アクセスする)方法
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] Rで3D行列をセットアップし、特定の要素にアクセスする
-
[解決済み] int (*p)[10]=s と int (*o)[5]=&s の違いは何ですか?
-
[解決済み] RubyのArrayクラスで配列の各要素を2乗する方法は?
-
[解決済み] MASMアセンブリの配列 (非常に混乱している初級者)
-
[解決済み] 配列をヒープ化するためのヒープにおけるsiftUp, siftDown操作