在 Verilog 中分割位数组

Seb*_*cia 0 algorithm verilog

我正在 verilog 上设计一种基本的 AES 算法,我需要将 128 位数组分成 16 个部分,每个部分 8 位。

例如(基本 8 位示例),如果我收到 10111011,我需要生成 4 个输出 10 11 10 11

Mor*_*gan 5

从数组中检索字节非常简单:

module huge_array (
  input [128-1:0] data
);
  wire [7:0] first_byte,
  assign first_byte = data[7:0];

  wire [7:0] second_byte,
  assign second_byte = data[8*2-1:8*1];
endmodule
Run Code Online (Sandbox Code Playgroud)

如果将数据格式化到内存中,那就容易多了。

module huge_array2 (
  input [7:0] data [0:16]
);
  wire [7:0] first_byte,
  assign first_byte = data[0];

  wire [7:0] second_byte,
  assign second_byte = data[1];
endmodule
Run Code Online (Sandbox Code Playgroud)