[spi_device] Add `upload` `busy` fields into cmd_info
This commit adds two fields, `upload` and `busy`, into the command
information data structure. Those two fields will be used in the upload
submodule.
Also, the cmdparse module extends its lookup of the command info slot
from up-to ReadCmdEnd to the entire command information slot
`NumCmdInfo`. The extension is to check opcode and check if the logic
uploads the on-going transaction.
To support the upload function, the number of the command information
entries is increased by 8, from 16 to 24.
Signed-off-by: Eunchan Kim <eunchan@opentitan.org>
diff --git a/hw/ip/spi_device/data/spi_device.hjson b/hw/ip/spi_device/data/spi_device.hjson
index 65cd841..5cedd93 100644
--- a/hw/ip/spi_device/data/spi_device.hjson
+++ b/hw/ip/spi_device/data/spi_device.hjson
@@ -50,7 +50,7 @@
{ name: "NumCmdInfo"
desc: "Define the number of Command Info slots."
type: "int unsigned"
- default: "16"
+ default: "24"
local: "true"
}
],
@@ -581,6 +581,27 @@
name: "payload_dir"
desc: "Set to 1 if the command returns data. If 0, the payload sends to the downstream Flash device."
}
+ { bits: "24"
+ name: "upload"
+ desc: '''Set to 1 to upload the command.
+
+ If upload field in the command info entry is set, the cmdparse
+ activates the upload submodule when the opcode is received.
+ `addr_en`, `addr_4B_affected`, and `addr_4b_forced` (TBD) affect
+ the upload functionality. The three address related configs
+ defines the command address field size.
+
+ The logic assumes the following SPI input stream as payload,
+ which max size is 256B. If the command exceeds the maximum payload size 256B, the logic wraps the payload and overwrites.
+ '''
+ } // f: upload
+ { bits: "25"
+ name: "busy"
+ desc: '''Set to 1 to set the BUSY bit in the FLASH_STATUS when the
+ command is received. This bit is active only when `upload` bit is
+ set.
+ '''
+ } // f: busy
]
}
}
diff --git a/hw/ip/spi_device/rtl/spi_cmdparse.sv b/hw/ip/spi_device/rtl/spi_cmdparse.sv
index d9a94f2..aec46a0 100644
--- a/hw/ip/spi_device/rtl/spi_cmdparse.sv
+++ b/hw/ip/spi_device/rtl/spi_cmdparse.sv
@@ -22,16 +22,6 @@
// Configurations
input spi_mode_e spi_mode_i,
- // 256b indicator determines which commands to be uploaded
- // If 1 and the command does not fall into other modules
- // (SFDP/JEDEC/Read/etc), Command Processor triggers upload module.
- // Other upload related configurations (Address/ Payload) are used
- // in upload module.
- //
- // If Command Config (from DPSRAM) is implemented, this signal shall be
- // changed to 8bit width.
- input logic [255:0] upload_mask_i,
-
// Command info slot
//
// cmdparse uses the command info slot to activate sub-datapath. It uses
@@ -64,16 +54,11 @@
assign cmd_config_req_o = 1'b 0;
assign cmd_config_idx_o = data_i[4:0];
- // among the command slots, Passthrough related slots are not used. So tie them down here.
- logic unused_cmdinfo;
- assign unused_cmdinfo = ^{
- cmd_info_i[CmdInfoPassthroughEnd:CmdInfoPassthroughStart]};
-
// Only opcode in the cmd_info is used. Tie the rest of the members.
logic unused_cmdinfo_members;
always_comb begin
unused_cmdinfo_members = 1'b 0;
- for (int unsigned i = 0 ; i <= CmdInfoPassthroughEnd ; i++) begin
+ for (int unsigned i = 0 ; i < NumCmdInfo ; i++) begin
unused_cmdinfo_members ^= ^{ cmd_info_i[i].addr_4b_affected,
cmd_info_i[i].addr_en,
cmd_info_i[i].addr_swap_en,
@@ -84,16 +69,6 @@
end
end
- // Unnecessary but for ascentlint error only
- logic unused_cmdinfo_opcode;
- always_comb begin
- unused_cmdinfo_opcode = 1'b 0;
- for (int unsigned i = CmdInfoPassthroughStart ; i <= CmdInfoPassthroughEnd ; i++) begin
- unused_cmdinfo_opcode ^= ^cmd_info_i[i].opcode;
- end
- end
-
-
////////////////
// Definition //
////////////////
@@ -172,6 +147,14 @@
end
// cmd_info latch
+ // TODO: This can be furthur optimized. At 7th beat, check the opcode[7:1]
+ // with cmd_info[NumCmdInfo-1:0].opcode[7:1]. Unless SW configures more than
+ // one cmd_info slots with same opcode, at most two slots match with the
+ // opcode[7:1]. The two can be latched then at 8th beat, only the last bit
+ // of the opcode in the two cmd_info entries can be compared.
+ //
+ // It reduces the logic from 8bit compare with 24 logic depth into 1bit
+ // compare with 1 logic depth.
always_ff @(posedge clk_i or negedge rst_ni) begin
if (!rst_ni) begin
cmd_info_o <= '{default: '0};
@@ -186,7 +169,7 @@
cmd_info_d = '{default: '0};
cmd_info_idx_d = '0;
if ((st == StIdle) && module_active && data_valid_i) begin
- for (int unsigned i = 0 ; i <= CmdInfoReadCmdEnd ; i++ ) begin
+ for (int unsigned i = 0 ; i < NumCmdInfo ; i++ ) begin
if (data_i == cmd_info_i[i].opcode) begin
cmd_info_d = cmd_info_i[i];
cmd_info_idx_d = CmdInfoIdxW'(i);
@@ -195,6 +178,9 @@
end
end
+ // Check upload field in the cmd_info
+ logic upload;
+ assign upload = cmd_info_d.upload;
///////////////////
// State Machine //
///////////////////
@@ -258,31 +244,30 @@
st_d = StReadCmd;
end
+ upload: begin
+ st_d = StUpload;
+
+ // Reason to select dp here is for Opcode-only commands such as
+ // ChipErase. As no further SCK is given after 8th bit, need to
+ // write the command to FIFO at the same cycle.
+ //
+ // May sel_dp have glitch. As Opcode isn't yet fully stable, it
+ // has a chance to select datapath to Upload and back to None.
+ // If we can write opcode in negedge of SCK, then selecting DP
+ // at 8th posedge of SCK is also possible.
+ //
+ // If not, then we may end up latch `sel_dp` at negedge of SCK.
+ // Then when 8th bit is visible here (`data_valid_i`), the
+ // sel_dp may change. But the output of sel_dp affects only when
+ // 8th negedge of SCK.
+
+ sel_dp = DpUpload;
+ end
+
default: begin
- // If Command Config in DPSRAM, need to change as below
- // if (upload_mask_i[data_i[2:0]]) begin
- if (upload_mask_i[data_i]) begin
- st_d = StUpload;
+ st_d = StWait;
- // Reason to select dp here is for Opcode-only commands such as
- // ChipErase. As no further SCK is given after 8th bit, need to
- // write the command to FIFO at the same cycle.
- //
- // May sel_dp have glitch. As Opcode isn't yet fully stable, it
- // has a chance to select datapath to Upload and back to None.
- // If we can write opcode in negedge of SCK, then selecting DP
- // at 8th posedge of SCK is also possible.
- //
- // If not, then we may end up latch `sel_dp` at negedge of SCK.
- // Then when 8th bit is visible here (`data_valid_i`), the
- // sel_dp may change. But the output of sel_dp affects only when
- // 8th negedge of SCK.
- sel_dp = DpUpload;
- end else begin
- st_d = StWait;
-
- // DpNone
- end
+ // DpNone
end
endcase
end
diff --git a/hw/ip/spi_device/rtl/spi_device.sv b/hw/ip/spi_device/rtl/spi_device.sv
index 94d4169..fe7176a 100644
--- a/hw/ip/spi_device/rtl/spi_device.sv
+++ b/hw/ip/spi_device/rtl/spi_device.sv
@@ -131,7 +131,6 @@
//spi_addr_size_e addr_size; // Not used in fwmode
spi_mode_e spi_mode;
//spi_byte_t fw_dummy_byte;
- logic [255:0] cfg_upload_mask;
logic cfg_addr_4b_en;
logic intr_sram_rxf_full, intr_fwm_rxerr;
@@ -285,9 +284,6 @@
assign spi_mode = spi_mode_e'(reg2hw.control.mode.q);
- // TODO: Define and connect masks.
- assign cfg_upload_mask = '0;
-
// Async FIFO level
// rx rdepth, tx wdepth to be in main clock domain
assign hw2reg.async_fifo_level.txlvl.d = {{(8-AsFifoDepthW){1'b0}}, as_txfifo_depth};
@@ -421,7 +417,9 @@
dummy_en: reg2hw.cmd_info[i].dummy_en.q,
dummy_size: reg2hw.cmd_info[i].dummy_size.q,
payload_en: reg2hw.cmd_info[i].payload_en.q,
- payload_dir: payload_dir_e'(reg2hw.cmd_info[i].payload_dir.q)
+ payload_dir: payload_dir_e'(reg2hw.cmd_info[i].payload_dir.q),
+ upload: reg2hw.cmd_info[i].upload.q,
+ busy: reg2hw.cmd_info[i].busy.q
};
end
end
@@ -868,8 +866,6 @@
.spi_mode_i (spi_mode),
- .upload_mask_i(cfg_upload_mask),
-
.cmd_info_i (cmd_info),
.io_mode_o (sub_iomode[IoModeCmdParse]),
diff --git a/hw/ip/spi_device/rtl/spi_device_pkg.sv b/hw/ip/spi_device/rtl/spi_device_pkg.sv
index bcc8ff8..bb8c4f3 100644
--- a/hw/ip/spi_device/rtl/spi_device_pkg.sv
+++ b/hw/ip/spi_device/rtl/spi_device_pkg.sv
@@ -129,6 +129,21 @@
logic [3:0] payload_en;
payload_dir_e payload_dir;
+ // upload: If upload field in the command info entry is set, the cmdparse
+ // activates the upload submodule when the opcode is received. `addr_en`,
+ // `addr_4B_affected`, and `addr_4b_forced` (TBD) affect the upload
+ // functionality. The three address related configs defines the command
+ // address field size.
+
+ // The logic assumes the following SPI input stream as payload, which max
+ // size is 256B. If the command exceeds the maximum payload size 256B, the
+ // logic wraps the payload and overwrites.
+ logic upload;
+
+ // busy: Set to 1 to set the BUSY bit in the FLASH_STATUS when the command
+ // is received. This bit is active only when `upload` bit is set.
+ logic busy;
+
} cmd_info_t;
// CmdInfoInput parameter is the default value if no opcode in the cmd info
@@ -142,7 +157,9 @@
dummy_en: 1'b 0,
dummy_size: 3'h 0,
payload_en: 4'b 0001, // MOSI active
- payload_dir: PayloadIn
+ payload_dir: PayloadIn,
+ upload: 1'b 0,
+ busy: 1'b 0
};
// SPI_DEVICE HWIP has 16 command info slots. A few of them are pre-assigned.
@@ -171,13 +188,13 @@
CmdInfoReadCmdStart = 5,
CmdInfoReadCmdEnd = 10,
- // other 5 slots are used in the Passthrough mode only. These free slots may
- // be used for the commands that are not processed in the flash mode.
- // Examples are "Release Power-down / ID", "Manufacture/Device ID", etc.
- // They are not always Input mode. Some has a dummy cycle followed by the
- // output field.
- CmdInfoPassthroughStart = 11,
- CmdInfoPassthroughEnd = 15
+ // other slots are used in the Passthrough and/or upload submodules. These
+ // free slots may be used for the commands that are not processed in the
+ // flash mode. Examples are "Release Power-down / ID",
+ // "Manufacture/Device ID", etc. They are not always Input mode. Some has
+ // a dummy cycle followed by the output field.
+ CmdInfoReserveStart = 11,
+ CmdInfoReserveEnd = spi_device_reg_pkg::NumCmdInfo -1
} cmd_info_index_e;
parameter int unsigned NumReadCmdInfo = CmdInfoReadCmdEnd - CmdInfoReadCmdStart + 1;
diff --git a/hw/ip/spi_device/rtl/spi_device_reg_pkg.sv b/hw/ip/spi_device/rtl/spi_device_reg_pkg.sv
index abd5c27..8615070 100644
--- a/hw/ip/spi_device/rtl/spi_device_reg_pkg.sv
+++ b/hw/ip/spi_device/rtl/spi_device_reg_pkg.sv
@@ -8,7 +8,7 @@
// Param list
parameter int unsigned SramDepth = 1024;
- parameter int unsigned NumCmdInfo = 16;
+ parameter int unsigned NumCmdInfo = 24;
parameter int NumAlerts = 1;
// Address widths within the block
@@ -234,6 +234,12 @@
struct packed {
logic q;
} payload_dir;
+ struct packed {
+ logic q;
+ } upload;
+ struct packed {
+ logic q;
+ } busy;
} spi_device_reg2hw_cmd_info_mreg_t;
typedef struct packed {
@@ -322,24 +328,24 @@
// Register -> HW type
typedef struct packed {
- spi_device_reg2hw_intr_state_reg_t intr_state; // [888:883]
- spi_device_reg2hw_intr_enable_reg_t intr_enable; // [882:877]
- spi_device_reg2hw_intr_test_reg_t intr_test; // [876:865]
- spi_device_reg2hw_alert_test_reg_t alert_test; // [864:863]
- spi_device_reg2hw_control_reg_t control; // [862:857]
- spi_device_reg2hw_cfg_reg_t cfg; // [856:844]
- spi_device_reg2hw_fifo_level_reg_t fifo_level; // [843:812]
- spi_device_reg2hw_rxf_ptr_reg_t rxf_ptr; // [811:796]
- spi_device_reg2hw_txf_ptr_reg_t txf_ptr; // [795:780]
- spi_device_reg2hw_rxf_addr_reg_t rxf_addr; // [779:748]
- spi_device_reg2hw_txf_addr_reg_t txf_addr; // [747:716]
- spi_device_reg2hw_flash_status_reg_t flash_status; // [715:690]
- spi_device_reg2hw_jedec_id_reg_t jedec_id; // [689:666]
- spi_device_reg2hw_read_threshold_reg_t read_threshold; // [665:656]
- spi_device_reg2hw_cmd_filter_mreg_t [255:0] cmd_filter; // [655:400]
- spi_device_reg2hw_addr_swap_mask_reg_t addr_swap_mask; // [399:368]
- spi_device_reg2hw_addr_swap_data_reg_t addr_swap_data; // [367:336]
- spi_device_reg2hw_cmd_info_mreg_t [15:0] cmd_info; // [335:0]
+ spi_device_reg2hw_intr_state_reg_t intr_state; // [1104:1099]
+ spi_device_reg2hw_intr_enable_reg_t intr_enable; // [1098:1093]
+ spi_device_reg2hw_intr_test_reg_t intr_test; // [1092:1081]
+ spi_device_reg2hw_alert_test_reg_t alert_test; // [1080:1079]
+ spi_device_reg2hw_control_reg_t control; // [1078:1073]
+ spi_device_reg2hw_cfg_reg_t cfg; // [1072:1060]
+ spi_device_reg2hw_fifo_level_reg_t fifo_level; // [1059:1028]
+ spi_device_reg2hw_rxf_ptr_reg_t rxf_ptr; // [1027:1012]
+ spi_device_reg2hw_txf_ptr_reg_t txf_ptr; // [1011:996]
+ spi_device_reg2hw_rxf_addr_reg_t rxf_addr; // [995:964]
+ spi_device_reg2hw_txf_addr_reg_t txf_addr; // [963:932]
+ spi_device_reg2hw_flash_status_reg_t flash_status; // [931:906]
+ spi_device_reg2hw_jedec_id_reg_t jedec_id; // [905:882]
+ spi_device_reg2hw_read_threshold_reg_t read_threshold; // [881:872]
+ spi_device_reg2hw_cmd_filter_mreg_t [255:0] cmd_filter; // [871:616]
+ spi_device_reg2hw_addr_swap_mask_reg_t addr_swap_mask; // [615:584]
+ spi_device_reg2hw_addr_swap_data_reg_t addr_swap_data; // [583:552]
+ spi_device_reg2hw_cmd_info_mreg_t [23:0] cmd_info; // [551:0]
} spi_device_reg2hw_t;
// HW -> register type
@@ -397,6 +403,14 @@
parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_13_OFFSET = 13'h a0;
parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_14_OFFSET = 13'h a4;
parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_15_OFFSET = 13'h a8;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_16_OFFSET = 13'h ac;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_17_OFFSET = 13'h b0;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_18_OFFSET = 13'h b4;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_19_OFFSET = 13'h b8;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_20_OFFSET = 13'h bc;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_21_OFFSET = 13'h c0;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_22_OFFSET = 13'h c4;
+ parameter logic [BlockAw-1:0] SPI_DEVICE_CMD_INFO_23_OFFSET = 13'h c8;
// Reset values for hwext registers and their fields
parameter logic [5:0] SPI_DEVICE_INTR_TEST_RESVAL = 6'h 0;
@@ -465,11 +479,19 @@
SPI_DEVICE_CMD_INFO_12,
SPI_DEVICE_CMD_INFO_13,
SPI_DEVICE_CMD_INFO_14,
- SPI_DEVICE_CMD_INFO_15
+ SPI_DEVICE_CMD_INFO_15,
+ SPI_DEVICE_CMD_INFO_16,
+ SPI_DEVICE_CMD_INFO_17,
+ SPI_DEVICE_CMD_INFO_18,
+ SPI_DEVICE_CMD_INFO_19,
+ SPI_DEVICE_CMD_INFO_20,
+ SPI_DEVICE_CMD_INFO_21,
+ SPI_DEVICE_CMD_INFO_22,
+ SPI_DEVICE_CMD_INFO_23
} spi_device_id_e;
// Register width information to check illegal writes
- parameter logic [3:0] SPI_DEVICE_PERMIT [43] = '{
+ parameter logic [3:0] SPI_DEVICE_PERMIT [51] = '{
4'b 0001, // index[ 0] SPI_DEVICE_INTR_STATE
4'b 0001, // index[ 1] SPI_DEVICE_INTR_ENABLE
4'b 0001, // index[ 2] SPI_DEVICE_INTR_TEST
@@ -497,22 +519,30 @@
4'b 1111, // index[24] SPI_DEVICE_CMD_FILTER_7
4'b 1111, // index[25] SPI_DEVICE_ADDR_SWAP_MASK
4'b 1111, // index[26] SPI_DEVICE_ADDR_SWAP_DATA
- 4'b 0111, // index[27] SPI_DEVICE_CMD_INFO_0
- 4'b 0111, // index[28] SPI_DEVICE_CMD_INFO_1
- 4'b 0111, // index[29] SPI_DEVICE_CMD_INFO_2
- 4'b 0111, // index[30] SPI_DEVICE_CMD_INFO_3
- 4'b 0111, // index[31] SPI_DEVICE_CMD_INFO_4
- 4'b 0111, // index[32] SPI_DEVICE_CMD_INFO_5
- 4'b 0111, // index[33] SPI_DEVICE_CMD_INFO_6
- 4'b 0111, // index[34] SPI_DEVICE_CMD_INFO_7
- 4'b 0111, // index[35] SPI_DEVICE_CMD_INFO_8
- 4'b 0111, // index[36] SPI_DEVICE_CMD_INFO_9
- 4'b 0111, // index[37] SPI_DEVICE_CMD_INFO_10
- 4'b 0111, // index[38] SPI_DEVICE_CMD_INFO_11
- 4'b 0111, // index[39] SPI_DEVICE_CMD_INFO_12
- 4'b 0111, // index[40] SPI_DEVICE_CMD_INFO_13
- 4'b 0111, // index[41] SPI_DEVICE_CMD_INFO_14
- 4'b 0111 // index[42] SPI_DEVICE_CMD_INFO_15
+ 4'b 1111, // index[27] SPI_DEVICE_CMD_INFO_0
+ 4'b 1111, // index[28] SPI_DEVICE_CMD_INFO_1
+ 4'b 1111, // index[29] SPI_DEVICE_CMD_INFO_2
+ 4'b 1111, // index[30] SPI_DEVICE_CMD_INFO_3
+ 4'b 1111, // index[31] SPI_DEVICE_CMD_INFO_4
+ 4'b 1111, // index[32] SPI_DEVICE_CMD_INFO_5
+ 4'b 1111, // index[33] SPI_DEVICE_CMD_INFO_6
+ 4'b 1111, // index[34] SPI_DEVICE_CMD_INFO_7
+ 4'b 1111, // index[35] SPI_DEVICE_CMD_INFO_8
+ 4'b 1111, // index[36] SPI_DEVICE_CMD_INFO_9
+ 4'b 1111, // index[37] SPI_DEVICE_CMD_INFO_10
+ 4'b 1111, // index[38] SPI_DEVICE_CMD_INFO_11
+ 4'b 1111, // index[39] SPI_DEVICE_CMD_INFO_12
+ 4'b 1111, // index[40] SPI_DEVICE_CMD_INFO_13
+ 4'b 1111, // index[41] SPI_DEVICE_CMD_INFO_14
+ 4'b 1111, // index[42] SPI_DEVICE_CMD_INFO_15
+ 4'b 1111, // index[43] SPI_DEVICE_CMD_INFO_16
+ 4'b 1111, // index[44] SPI_DEVICE_CMD_INFO_17
+ 4'b 1111, // index[45] SPI_DEVICE_CMD_INFO_18
+ 4'b 1111, // index[46] SPI_DEVICE_CMD_INFO_19
+ 4'b 1111, // index[47] SPI_DEVICE_CMD_INFO_20
+ 4'b 1111, // index[48] SPI_DEVICE_CMD_INFO_21
+ 4'b 1111, // index[49] SPI_DEVICE_CMD_INFO_22
+ 4'b 1111 // index[50] SPI_DEVICE_CMD_INFO_23
};
endpackage
diff --git a/hw/ip/spi_device/rtl/spi_device_reg_top.sv b/hw/ip/spi_device/rtl/spi_device_reg_top.sv
index d9ff853..60f8505 100644
--- a/hw/ip/spi_device/rtl/spi_device_reg_top.sv
+++ b/hw/ip/spi_device/rtl/spi_device_reg_top.sv
@@ -810,6 +810,10 @@
logic [3:0] cmd_info_0_payload_en_0_wd;
logic cmd_info_0_payload_dir_0_qs;
logic cmd_info_0_payload_dir_0_wd;
+ logic cmd_info_0_upload_0_qs;
+ logic cmd_info_0_upload_0_wd;
+ logic cmd_info_0_busy_0_qs;
+ logic cmd_info_0_busy_0_wd;
logic cmd_info_1_we;
logic [7:0] cmd_info_1_opcode_1_qs;
logic [7:0] cmd_info_1_opcode_1_wd;
@@ -829,6 +833,10 @@
logic [3:0] cmd_info_1_payload_en_1_wd;
logic cmd_info_1_payload_dir_1_qs;
logic cmd_info_1_payload_dir_1_wd;
+ logic cmd_info_1_upload_1_qs;
+ logic cmd_info_1_upload_1_wd;
+ logic cmd_info_1_busy_1_qs;
+ logic cmd_info_1_busy_1_wd;
logic cmd_info_2_we;
logic [7:0] cmd_info_2_opcode_2_qs;
logic [7:0] cmd_info_2_opcode_2_wd;
@@ -848,6 +856,10 @@
logic [3:0] cmd_info_2_payload_en_2_wd;
logic cmd_info_2_payload_dir_2_qs;
logic cmd_info_2_payload_dir_2_wd;
+ logic cmd_info_2_upload_2_qs;
+ logic cmd_info_2_upload_2_wd;
+ logic cmd_info_2_busy_2_qs;
+ logic cmd_info_2_busy_2_wd;
logic cmd_info_3_we;
logic [7:0] cmd_info_3_opcode_3_qs;
logic [7:0] cmd_info_3_opcode_3_wd;
@@ -867,6 +879,10 @@
logic [3:0] cmd_info_3_payload_en_3_wd;
logic cmd_info_3_payload_dir_3_qs;
logic cmd_info_3_payload_dir_3_wd;
+ logic cmd_info_3_upload_3_qs;
+ logic cmd_info_3_upload_3_wd;
+ logic cmd_info_3_busy_3_qs;
+ logic cmd_info_3_busy_3_wd;
logic cmd_info_4_we;
logic [7:0] cmd_info_4_opcode_4_qs;
logic [7:0] cmd_info_4_opcode_4_wd;
@@ -886,6 +902,10 @@
logic [3:0] cmd_info_4_payload_en_4_wd;
logic cmd_info_4_payload_dir_4_qs;
logic cmd_info_4_payload_dir_4_wd;
+ logic cmd_info_4_upload_4_qs;
+ logic cmd_info_4_upload_4_wd;
+ logic cmd_info_4_busy_4_qs;
+ logic cmd_info_4_busy_4_wd;
logic cmd_info_5_we;
logic [7:0] cmd_info_5_opcode_5_qs;
logic [7:0] cmd_info_5_opcode_5_wd;
@@ -905,6 +925,10 @@
logic [3:0] cmd_info_5_payload_en_5_wd;
logic cmd_info_5_payload_dir_5_qs;
logic cmd_info_5_payload_dir_5_wd;
+ logic cmd_info_5_upload_5_qs;
+ logic cmd_info_5_upload_5_wd;
+ logic cmd_info_5_busy_5_qs;
+ logic cmd_info_5_busy_5_wd;
logic cmd_info_6_we;
logic [7:0] cmd_info_6_opcode_6_qs;
logic [7:0] cmd_info_6_opcode_6_wd;
@@ -924,6 +948,10 @@
logic [3:0] cmd_info_6_payload_en_6_wd;
logic cmd_info_6_payload_dir_6_qs;
logic cmd_info_6_payload_dir_6_wd;
+ logic cmd_info_6_upload_6_qs;
+ logic cmd_info_6_upload_6_wd;
+ logic cmd_info_6_busy_6_qs;
+ logic cmd_info_6_busy_6_wd;
logic cmd_info_7_we;
logic [7:0] cmd_info_7_opcode_7_qs;
logic [7:0] cmd_info_7_opcode_7_wd;
@@ -943,6 +971,10 @@
logic [3:0] cmd_info_7_payload_en_7_wd;
logic cmd_info_7_payload_dir_7_qs;
logic cmd_info_7_payload_dir_7_wd;
+ logic cmd_info_7_upload_7_qs;
+ logic cmd_info_7_upload_7_wd;
+ logic cmd_info_7_busy_7_qs;
+ logic cmd_info_7_busy_7_wd;
logic cmd_info_8_we;
logic [7:0] cmd_info_8_opcode_8_qs;
logic [7:0] cmd_info_8_opcode_8_wd;
@@ -962,6 +994,10 @@
logic [3:0] cmd_info_8_payload_en_8_wd;
logic cmd_info_8_payload_dir_8_qs;
logic cmd_info_8_payload_dir_8_wd;
+ logic cmd_info_8_upload_8_qs;
+ logic cmd_info_8_upload_8_wd;
+ logic cmd_info_8_busy_8_qs;
+ logic cmd_info_8_busy_8_wd;
logic cmd_info_9_we;
logic [7:0] cmd_info_9_opcode_9_qs;
logic [7:0] cmd_info_9_opcode_9_wd;
@@ -981,6 +1017,10 @@
logic [3:0] cmd_info_9_payload_en_9_wd;
logic cmd_info_9_payload_dir_9_qs;
logic cmd_info_9_payload_dir_9_wd;
+ logic cmd_info_9_upload_9_qs;
+ logic cmd_info_9_upload_9_wd;
+ logic cmd_info_9_busy_9_qs;
+ logic cmd_info_9_busy_9_wd;
logic cmd_info_10_we;
logic [7:0] cmd_info_10_opcode_10_qs;
logic [7:0] cmd_info_10_opcode_10_wd;
@@ -1000,6 +1040,10 @@
logic [3:0] cmd_info_10_payload_en_10_wd;
logic cmd_info_10_payload_dir_10_qs;
logic cmd_info_10_payload_dir_10_wd;
+ logic cmd_info_10_upload_10_qs;
+ logic cmd_info_10_upload_10_wd;
+ logic cmd_info_10_busy_10_qs;
+ logic cmd_info_10_busy_10_wd;
logic cmd_info_11_we;
logic [7:0] cmd_info_11_opcode_11_qs;
logic [7:0] cmd_info_11_opcode_11_wd;
@@ -1019,6 +1063,10 @@
logic [3:0] cmd_info_11_payload_en_11_wd;
logic cmd_info_11_payload_dir_11_qs;
logic cmd_info_11_payload_dir_11_wd;
+ logic cmd_info_11_upload_11_qs;
+ logic cmd_info_11_upload_11_wd;
+ logic cmd_info_11_busy_11_qs;
+ logic cmd_info_11_busy_11_wd;
logic cmd_info_12_we;
logic [7:0] cmd_info_12_opcode_12_qs;
logic [7:0] cmd_info_12_opcode_12_wd;
@@ -1038,6 +1086,10 @@
logic [3:0] cmd_info_12_payload_en_12_wd;
logic cmd_info_12_payload_dir_12_qs;
logic cmd_info_12_payload_dir_12_wd;
+ logic cmd_info_12_upload_12_qs;
+ logic cmd_info_12_upload_12_wd;
+ logic cmd_info_12_busy_12_qs;
+ logic cmd_info_12_busy_12_wd;
logic cmd_info_13_we;
logic [7:0] cmd_info_13_opcode_13_qs;
logic [7:0] cmd_info_13_opcode_13_wd;
@@ -1057,6 +1109,10 @@
logic [3:0] cmd_info_13_payload_en_13_wd;
logic cmd_info_13_payload_dir_13_qs;
logic cmd_info_13_payload_dir_13_wd;
+ logic cmd_info_13_upload_13_qs;
+ logic cmd_info_13_upload_13_wd;
+ logic cmd_info_13_busy_13_qs;
+ logic cmd_info_13_busy_13_wd;
logic cmd_info_14_we;
logic [7:0] cmd_info_14_opcode_14_qs;
logic [7:0] cmd_info_14_opcode_14_wd;
@@ -1076,6 +1132,10 @@
logic [3:0] cmd_info_14_payload_en_14_wd;
logic cmd_info_14_payload_dir_14_qs;
logic cmd_info_14_payload_dir_14_wd;
+ logic cmd_info_14_upload_14_qs;
+ logic cmd_info_14_upload_14_wd;
+ logic cmd_info_14_busy_14_qs;
+ logic cmd_info_14_busy_14_wd;
logic cmd_info_15_we;
logic [7:0] cmd_info_15_opcode_15_qs;
logic [7:0] cmd_info_15_opcode_15_wd;
@@ -1095,6 +1155,194 @@
logic [3:0] cmd_info_15_payload_en_15_wd;
logic cmd_info_15_payload_dir_15_qs;
logic cmd_info_15_payload_dir_15_wd;
+ logic cmd_info_15_upload_15_qs;
+ logic cmd_info_15_upload_15_wd;
+ logic cmd_info_15_busy_15_qs;
+ logic cmd_info_15_busy_15_wd;
+ logic cmd_info_16_we;
+ logic [7:0] cmd_info_16_opcode_16_qs;
+ logic [7:0] cmd_info_16_opcode_16_wd;
+ logic cmd_info_16_addr_en_16_qs;
+ logic cmd_info_16_addr_en_16_wd;
+ logic cmd_info_16_addr_swap_en_16_qs;
+ logic cmd_info_16_addr_swap_en_16_wd;
+ logic cmd_info_16_addr_4b_affected_16_qs;
+ logic cmd_info_16_addr_4b_affected_16_wd;
+ logic cmd_info_16_mbyte_en_16_qs;
+ logic cmd_info_16_mbyte_en_16_wd;
+ logic [2:0] cmd_info_16_dummy_size_16_qs;
+ logic [2:0] cmd_info_16_dummy_size_16_wd;
+ logic cmd_info_16_dummy_en_16_qs;
+ logic cmd_info_16_dummy_en_16_wd;
+ logic [3:0] cmd_info_16_payload_en_16_qs;
+ logic [3:0] cmd_info_16_payload_en_16_wd;
+ logic cmd_info_16_payload_dir_16_qs;
+ logic cmd_info_16_payload_dir_16_wd;
+ logic cmd_info_16_upload_16_qs;
+ logic cmd_info_16_upload_16_wd;
+ logic cmd_info_16_busy_16_qs;
+ logic cmd_info_16_busy_16_wd;
+ logic cmd_info_17_we;
+ logic [7:0] cmd_info_17_opcode_17_qs;
+ logic [7:0] cmd_info_17_opcode_17_wd;
+ logic cmd_info_17_addr_en_17_qs;
+ logic cmd_info_17_addr_en_17_wd;
+ logic cmd_info_17_addr_swap_en_17_qs;
+ logic cmd_info_17_addr_swap_en_17_wd;
+ logic cmd_info_17_addr_4b_affected_17_qs;
+ logic cmd_info_17_addr_4b_affected_17_wd;
+ logic cmd_info_17_mbyte_en_17_qs;
+ logic cmd_info_17_mbyte_en_17_wd;
+ logic [2:0] cmd_info_17_dummy_size_17_qs;
+ logic [2:0] cmd_info_17_dummy_size_17_wd;
+ logic cmd_info_17_dummy_en_17_qs;
+ logic cmd_info_17_dummy_en_17_wd;
+ logic [3:0] cmd_info_17_payload_en_17_qs;
+ logic [3:0] cmd_info_17_payload_en_17_wd;
+ logic cmd_info_17_payload_dir_17_qs;
+ logic cmd_info_17_payload_dir_17_wd;
+ logic cmd_info_17_upload_17_qs;
+ logic cmd_info_17_upload_17_wd;
+ logic cmd_info_17_busy_17_qs;
+ logic cmd_info_17_busy_17_wd;
+ logic cmd_info_18_we;
+ logic [7:0] cmd_info_18_opcode_18_qs;
+ logic [7:0] cmd_info_18_opcode_18_wd;
+ logic cmd_info_18_addr_en_18_qs;
+ logic cmd_info_18_addr_en_18_wd;
+ logic cmd_info_18_addr_swap_en_18_qs;
+ logic cmd_info_18_addr_swap_en_18_wd;
+ logic cmd_info_18_addr_4b_affected_18_qs;
+ logic cmd_info_18_addr_4b_affected_18_wd;
+ logic cmd_info_18_mbyte_en_18_qs;
+ logic cmd_info_18_mbyte_en_18_wd;
+ logic [2:0] cmd_info_18_dummy_size_18_qs;
+ logic [2:0] cmd_info_18_dummy_size_18_wd;
+ logic cmd_info_18_dummy_en_18_qs;
+ logic cmd_info_18_dummy_en_18_wd;
+ logic [3:0] cmd_info_18_payload_en_18_qs;
+ logic [3:0] cmd_info_18_payload_en_18_wd;
+ logic cmd_info_18_payload_dir_18_qs;
+ logic cmd_info_18_payload_dir_18_wd;
+ logic cmd_info_18_upload_18_qs;
+ logic cmd_info_18_upload_18_wd;
+ logic cmd_info_18_busy_18_qs;
+ logic cmd_info_18_busy_18_wd;
+ logic cmd_info_19_we;
+ logic [7:0] cmd_info_19_opcode_19_qs;
+ logic [7:0] cmd_info_19_opcode_19_wd;
+ logic cmd_info_19_addr_en_19_qs;
+ logic cmd_info_19_addr_en_19_wd;
+ logic cmd_info_19_addr_swap_en_19_qs;
+ logic cmd_info_19_addr_swap_en_19_wd;
+ logic cmd_info_19_addr_4b_affected_19_qs;
+ logic cmd_info_19_addr_4b_affected_19_wd;
+ logic cmd_info_19_mbyte_en_19_qs;
+ logic cmd_info_19_mbyte_en_19_wd;
+ logic [2:0] cmd_info_19_dummy_size_19_qs;
+ logic [2:0] cmd_info_19_dummy_size_19_wd;
+ logic cmd_info_19_dummy_en_19_qs;
+ logic cmd_info_19_dummy_en_19_wd;
+ logic [3:0] cmd_info_19_payload_en_19_qs;
+ logic [3:0] cmd_info_19_payload_en_19_wd;
+ logic cmd_info_19_payload_dir_19_qs;
+ logic cmd_info_19_payload_dir_19_wd;
+ logic cmd_info_19_upload_19_qs;
+ logic cmd_info_19_upload_19_wd;
+ logic cmd_info_19_busy_19_qs;
+ logic cmd_info_19_busy_19_wd;
+ logic cmd_info_20_we;
+ logic [7:0] cmd_info_20_opcode_20_qs;
+ logic [7:0] cmd_info_20_opcode_20_wd;
+ logic cmd_info_20_addr_en_20_qs;
+ logic cmd_info_20_addr_en_20_wd;
+ logic cmd_info_20_addr_swap_en_20_qs;
+ logic cmd_info_20_addr_swap_en_20_wd;
+ logic cmd_info_20_addr_4b_affected_20_qs;
+ logic cmd_info_20_addr_4b_affected_20_wd;
+ logic cmd_info_20_mbyte_en_20_qs;
+ logic cmd_info_20_mbyte_en_20_wd;
+ logic [2:0] cmd_info_20_dummy_size_20_qs;
+ logic [2:0] cmd_info_20_dummy_size_20_wd;
+ logic cmd_info_20_dummy_en_20_qs;
+ logic cmd_info_20_dummy_en_20_wd;
+ logic [3:0] cmd_info_20_payload_en_20_qs;
+ logic [3:0] cmd_info_20_payload_en_20_wd;
+ logic cmd_info_20_payload_dir_20_qs;
+ logic cmd_info_20_payload_dir_20_wd;
+ logic cmd_info_20_upload_20_qs;
+ logic cmd_info_20_upload_20_wd;
+ logic cmd_info_20_busy_20_qs;
+ logic cmd_info_20_busy_20_wd;
+ logic cmd_info_21_we;
+ logic [7:0] cmd_info_21_opcode_21_qs;
+ logic [7:0] cmd_info_21_opcode_21_wd;
+ logic cmd_info_21_addr_en_21_qs;
+ logic cmd_info_21_addr_en_21_wd;
+ logic cmd_info_21_addr_swap_en_21_qs;
+ logic cmd_info_21_addr_swap_en_21_wd;
+ logic cmd_info_21_addr_4b_affected_21_qs;
+ logic cmd_info_21_addr_4b_affected_21_wd;
+ logic cmd_info_21_mbyte_en_21_qs;
+ logic cmd_info_21_mbyte_en_21_wd;
+ logic [2:0] cmd_info_21_dummy_size_21_qs;
+ logic [2:0] cmd_info_21_dummy_size_21_wd;
+ logic cmd_info_21_dummy_en_21_qs;
+ logic cmd_info_21_dummy_en_21_wd;
+ logic [3:0] cmd_info_21_payload_en_21_qs;
+ logic [3:0] cmd_info_21_payload_en_21_wd;
+ logic cmd_info_21_payload_dir_21_qs;
+ logic cmd_info_21_payload_dir_21_wd;
+ logic cmd_info_21_upload_21_qs;
+ logic cmd_info_21_upload_21_wd;
+ logic cmd_info_21_busy_21_qs;
+ logic cmd_info_21_busy_21_wd;
+ logic cmd_info_22_we;
+ logic [7:0] cmd_info_22_opcode_22_qs;
+ logic [7:0] cmd_info_22_opcode_22_wd;
+ logic cmd_info_22_addr_en_22_qs;
+ logic cmd_info_22_addr_en_22_wd;
+ logic cmd_info_22_addr_swap_en_22_qs;
+ logic cmd_info_22_addr_swap_en_22_wd;
+ logic cmd_info_22_addr_4b_affected_22_qs;
+ logic cmd_info_22_addr_4b_affected_22_wd;
+ logic cmd_info_22_mbyte_en_22_qs;
+ logic cmd_info_22_mbyte_en_22_wd;
+ logic [2:0] cmd_info_22_dummy_size_22_qs;
+ logic [2:0] cmd_info_22_dummy_size_22_wd;
+ logic cmd_info_22_dummy_en_22_qs;
+ logic cmd_info_22_dummy_en_22_wd;
+ logic [3:0] cmd_info_22_payload_en_22_qs;
+ logic [3:0] cmd_info_22_payload_en_22_wd;
+ logic cmd_info_22_payload_dir_22_qs;
+ logic cmd_info_22_payload_dir_22_wd;
+ logic cmd_info_22_upload_22_qs;
+ logic cmd_info_22_upload_22_wd;
+ logic cmd_info_22_busy_22_qs;
+ logic cmd_info_22_busy_22_wd;
+ logic cmd_info_23_we;
+ logic [7:0] cmd_info_23_opcode_23_qs;
+ logic [7:0] cmd_info_23_opcode_23_wd;
+ logic cmd_info_23_addr_en_23_qs;
+ logic cmd_info_23_addr_en_23_wd;
+ logic cmd_info_23_addr_swap_en_23_qs;
+ logic cmd_info_23_addr_swap_en_23_wd;
+ logic cmd_info_23_addr_4b_affected_23_qs;
+ logic cmd_info_23_addr_4b_affected_23_wd;
+ logic cmd_info_23_mbyte_en_23_qs;
+ logic cmd_info_23_mbyte_en_23_wd;
+ logic [2:0] cmd_info_23_dummy_size_23_qs;
+ logic [2:0] cmd_info_23_dummy_size_23_wd;
+ logic cmd_info_23_dummy_en_23_qs;
+ logic cmd_info_23_dummy_en_23_wd;
+ logic [3:0] cmd_info_23_payload_en_23_qs;
+ logic [3:0] cmd_info_23_payload_en_23_wd;
+ logic cmd_info_23_payload_dir_23_qs;
+ logic cmd_info_23_payload_dir_23_wd;
+ logic cmd_info_23_upload_23_qs;
+ logic cmd_info_23_upload_23_wd;
+ logic cmd_info_23_busy_23_qs;
+ logic cmd_info_23_busy_23_wd;
// Register instances
// R[intr_state]: V(False)
@@ -9308,6 +9556,58 @@
);
+ // F[upload_0]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_0_upload_0 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_0_we),
+ .wd (cmd_info_0_upload_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[0].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_0_upload_0_qs)
+ );
+
+
+ // F[busy_0]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_0_busy_0 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_0_we),
+ .wd (cmd_info_0_busy_0_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[0].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_0_busy_0_qs)
+ );
+
+
// Subregister 1 of Multireg cmd_info
// R[cmd_info_1]: V(False)
@@ -9545,6 +9845,58 @@
);
+ // F[upload_1]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_1_upload_1 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_1_we),
+ .wd (cmd_info_1_upload_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[1].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_1_upload_1_qs)
+ );
+
+
+ // F[busy_1]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_1_busy_1 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_1_we),
+ .wd (cmd_info_1_busy_1_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[1].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_1_busy_1_qs)
+ );
+
+
// Subregister 2 of Multireg cmd_info
// R[cmd_info_2]: V(False)
@@ -9782,6 +10134,58 @@
);
+ // F[upload_2]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_2_upload_2 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_2_we),
+ .wd (cmd_info_2_upload_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[2].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_2_upload_2_qs)
+ );
+
+
+ // F[busy_2]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_2_busy_2 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_2_we),
+ .wd (cmd_info_2_busy_2_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[2].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_2_busy_2_qs)
+ );
+
+
// Subregister 3 of Multireg cmd_info
// R[cmd_info_3]: V(False)
@@ -10019,6 +10423,58 @@
);
+ // F[upload_3]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_3_upload_3 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_3_we),
+ .wd (cmd_info_3_upload_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[3].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_3_upload_3_qs)
+ );
+
+
+ // F[busy_3]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_3_busy_3 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_3_we),
+ .wd (cmd_info_3_busy_3_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[3].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_3_busy_3_qs)
+ );
+
+
// Subregister 4 of Multireg cmd_info
// R[cmd_info_4]: V(False)
@@ -10256,6 +10712,58 @@
);
+ // F[upload_4]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_4_upload_4 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_4_we),
+ .wd (cmd_info_4_upload_4_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[4].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_4_upload_4_qs)
+ );
+
+
+ // F[busy_4]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_4_busy_4 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_4_we),
+ .wd (cmd_info_4_busy_4_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[4].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_4_busy_4_qs)
+ );
+
+
// Subregister 5 of Multireg cmd_info
// R[cmd_info_5]: V(False)
@@ -10493,6 +11001,58 @@
);
+ // F[upload_5]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_5_upload_5 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_5_we),
+ .wd (cmd_info_5_upload_5_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[5].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_5_upload_5_qs)
+ );
+
+
+ // F[busy_5]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_5_busy_5 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_5_we),
+ .wd (cmd_info_5_busy_5_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[5].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_5_busy_5_qs)
+ );
+
+
// Subregister 6 of Multireg cmd_info
// R[cmd_info_6]: V(False)
@@ -10730,6 +11290,58 @@
);
+ // F[upload_6]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_6_upload_6 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_6_we),
+ .wd (cmd_info_6_upload_6_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[6].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_6_upload_6_qs)
+ );
+
+
+ // F[busy_6]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_6_busy_6 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_6_we),
+ .wd (cmd_info_6_busy_6_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[6].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_6_busy_6_qs)
+ );
+
+
// Subregister 7 of Multireg cmd_info
// R[cmd_info_7]: V(False)
@@ -10967,6 +11579,58 @@
);
+ // F[upload_7]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_7_upload_7 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_7_we),
+ .wd (cmd_info_7_upload_7_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[7].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_7_upload_7_qs)
+ );
+
+
+ // F[busy_7]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_7_busy_7 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_7_we),
+ .wd (cmd_info_7_busy_7_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[7].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_7_busy_7_qs)
+ );
+
+
// Subregister 8 of Multireg cmd_info
// R[cmd_info_8]: V(False)
@@ -11204,6 +11868,58 @@
);
+ // F[upload_8]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_8_upload_8 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_8_we),
+ .wd (cmd_info_8_upload_8_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[8].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_8_upload_8_qs)
+ );
+
+
+ // F[busy_8]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_8_busy_8 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_8_we),
+ .wd (cmd_info_8_busy_8_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[8].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_8_busy_8_qs)
+ );
+
+
// Subregister 9 of Multireg cmd_info
// R[cmd_info_9]: V(False)
@@ -11441,6 +12157,58 @@
);
+ // F[upload_9]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_9_upload_9 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_9_we),
+ .wd (cmd_info_9_upload_9_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[9].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_9_upload_9_qs)
+ );
+
+
+ // F[busy_9]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_9_busy_9 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_9_we),
+ .wd (cmd_info_9_busy_9_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[9].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_9_busy_9_qs)
+ );
+
+
// Subregister 10 of Multireg cmd_info
// R[cmd_info_10]: V(False)
@@ -11678,6 +12446,58 @@
);
+ // F[upload_10]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_10_upload_10 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_10_we),
+ .wd (cmd_info_10_upload_10_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[10].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_10_upload_10_qs)
+ );
+
+
+ // F[busy_10]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_10_busy_10 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_10_we),
+ .wd (cmd_info_10_busy_10_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[10].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_10_busy_10_qs)
+ );
+
+
// Subregister 11 of Multireg cmd_info
// R[cmd_info_11]: V(False)
@@ -11915,6 +12735,58 @@
);
+ // F[upload_11]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_11_upload_11 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_11_we),
+ .wd (cmd_info_11_upload_11_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[11].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_11_upload_11_qs)
+ );
+
+
+ // F[busy_11]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_11_busy_11 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_11_we),
+ .wd (cmd_info_11_busy_11_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[11].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_11_busy_11_qs)
+ );
+
+
// Subregister 12 of Multireg cmd_info
// R[cmd_info_12]: V(False)
@@ -12152,6 +13024,58 @@
);
+ // F[upload_12]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_12_upload_12 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_12_we),
+ .wd (cmd_info_12_upload_12_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[12].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_12_upload_12_qs)
+ );
+
+
+ // F[busy_12]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_12_busy_12 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_12_we),
+ .wd (cmd_info_12_busy_12_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[12].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_12_busy_12_qs)
+ );
+
+
// Subregister 13 of Multireg cmd_info
// R[cmd_info_13]: V(False)
@@ -12389,6 +13313,58 @@
);
+ // F[upload_13]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_13_upload_13 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_13_we),
+ .wd (cmd_info_13_upload_13_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[13].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_13_upload_13_qs)
+ );
+
+
+ // F[busy_13]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_13_busy_13 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_13_we),
+ .wd (cmd_info_13_busy_13_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[13].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_13_busy_13_qs)
+ );
+
+
// Subregister 14 of Multireg cmd_info
// R[cmd_info_14]: V(False)
@@ -12626,6 +13602,58 @@
);
+ // F[upload_14]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_14_upload_14 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_14_we),
+ .wd (cmd_info_14_upload_14_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[14].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_14_upload_14_qs)
+ );
+
+
+ // F[busy_14]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_14_busy_14 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_14_we),
+ .wd (cmd_info_14_busy_14_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[14].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_14_busy_14_qs)
+ );
+
+
// Subregister 15 of Multireg cmd_info
// R[cmd_info_15]: V(False)
@@ -12863,10 +13891,2374 @@
);
+ // F[upload_15]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_15_upload_15 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_15_we),
+ .wd (cmd_info_15_upload_15_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[15].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_15_upload_15_qs)
+ );
+
+
+ // F[busy_15]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_15_busy_15 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_15_we),
+ .wd (cmd_info_15_busy_15_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[15].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_15_busy_15_qs)
+ );
+
+
+ // Subregister 16 of Multireg cmd_info
+ // R[cmd_info_16]: V(False)
+
+ // F[opcode_16]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_16_opcode_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_opcode_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_opcode_16_qs)
+ );
+
+
+ // F[addr_en_16]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_addr_en_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_addr_en_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_addr_en_16_qs)
+ );
+
+
+ // F[addr_swap_en_16]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_addr_swap_en_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_addr_swap_en_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_addr_swap_en_16_qs)
+ );
+
+
+ // F[addr_4b_affected_16]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_addr_4b_affected_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_addr_4b_affected_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_addr_4b_affected_16_qs)
+ );
+
+
+ // F[mbyte_en_16]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_mbyte_en_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_mbyte_en_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_mbyte_en_16_qs)
+ );
+
+
+ // F[dummy_size_16]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_16_dummy_size_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_dummy_size_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_dummy_size_16_qs)
+ );
+
+
+ // F[dummy_en_16]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_dummy_en_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_dummy_en_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_dummy_en_16_qs)
+ );
+
+
+ // F[payload_en_16]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_16_payload_en_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_payload_en_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_payload_en_16_qs)
+ );
+
+
+ // F[payload_dir_16]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_payload_dir_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_payload_dir_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_payload_dir_16_qs)
+ );
+
+
+ // F[upload_16]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_upload_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_upload_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_upload_16_qs)
+ );
+
+
+ // F[busy_16]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_16_busy_16 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_16_we),
+ .wd (cmd_info_16_busy_16_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[16].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_16_busy_16_qs)
+ );
+
+
+ // Subregister 17 of Multireg cmd_info
+ // R[cmd_info_17]: V(False)
+
+ // F[opcode_17]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_17_opcode_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_opcode_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_opcode_17_qs)
+ );
+
+
+ // F[addr_en_17]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_addr_en_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_addr_en_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_addr_en_17_qs)
+ );
+
+
+ // F[addr_swap_en_17]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_addr_swap_en_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_addr_swap_en_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_addr_swap_en_17_qs)
+ );
+
+
+ // F[addr_4b_affected_17]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_addr_4b_affected_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_addr_4b_affected_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_addr_4b_affected_17_qs)
+ );
+
+
+ // F[mbyte_en_17]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_mbyte_en_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_mbyte_en_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_mbyte_en_17_qs)
+ );
+
+
+ // F[dummy_size_17]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_17_dummy_size_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_dummy_size_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_dummy_size_17_qs)
+ );
+
+
+ // F[dummy_en_17]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_dummy_en_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_dummy_en_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_dummy_en_17_qs)
+ );
+
+
+ // F[payload_en_17]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_17_payload_en_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_payload_en_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_payload_en_17_qs)
+ );
+
+
+ // F[payload_dir_17]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_payload_dir_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_payload_dir_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_payload_dir_17_qs)
+ );
+
+
+ // F[upload_17]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_upload_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_upload_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_upload_17_qs)
+ );
+
+
+ // F[busy_17]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_17_busy_17 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_17_we),
+ .wd (cmd_info_17_busy_17_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[17].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_17_busy_17_qs)
+ );
+
+
+ // Subregister 18 of Multireg cmd_info
+ // R[cmd_info_18]: V(False)
+
+ // F[opcode_18]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_18_opcode_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_opcode_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_opcode_18_qs)
+ );
+
+
+ // F[addr_en_18]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_addr_en_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_addr_en_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_addr_en_18_qs)
+ );
+
+
+ // F[addr_swap_en_18]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_addr_swap_en_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_addr_swap_en_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_addr_swap_en_18_qs)
+ );
+
+
+ // F[addr_4b_affected_18]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_addr_4b_affected_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_addr_4b_affected_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_addr_4b_affected_18_qs)
+ );
+
+
+ // F[mbyte_en_18]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_mbyte_en_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_mbyte_en_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_mbyte_en_18_qs)
+ );
+
+
+ // F[dummy_size_18]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_18_dummy_size_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_dummy_size_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_dummy_size_18_qs)
+ );
+
+
+ // F[dummy_en_18]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_dummy_en_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_dummy_en_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_dummy_en_18_qs)
+ );
+
+
+ // F[payload_en_18]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_18_payload_en_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_payload_en_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_payload_en_18_qs)
+ );
+
+
+ // F[payload_dir_18]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_payload_dir_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_payload_dir_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_payload_dir_18_qs)
+ );
+
+
+ // F[upload_18]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_upload_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_upload_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_upload_18_qs)
+ );
+
+
+ // F[busy_18]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_18_busy_18 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_18_we),
+ .wd (cmd_info_18_busy_18_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[18].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_18_busy_18_qs)
+ );
+
+
+ // Subregister 19 of Multireg cmd_info
+ // R[cmd_info_19]: V(False)
+
+ // F[opcode_19]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_19_opcode_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_opcode_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_opcode_19_qs)
+ );
+
+
+ // F[addr_en_19]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_addr_en_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_addr_en_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_addr_en_19_qs)
+ );
+
+
+ // F[addr_swap_en_19]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_addr_swap_en_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_addr_swap_en_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_addr_swap_en_19_qs)
+ );
+
+
+ // F[addr_4b_affected_19]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_addr_4b_affected_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_addr_4b_affected_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_addr_4b_affected_19_qs)
+ );
+
+
+ // F[mbyte_en_19]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_mbyte_en_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_mbyte_en_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_mbyte_en_19_qs)
+ );
+
+
+ // F[dummy_size_19]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_19_dummy_size_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_dummy_size_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_dummy_size_19_qs)
+ );
+
+
+ // F[dummy_en_19]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_dummy_en_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_dummy_en_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_dummy_en_19_qs)
+ );
+
+
+ // F[payload_en_19]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_19_payload_en_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_payload_en_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_payload_en_19_qs)
+ );
+
+
+ // F[payload_dir_19]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_payload_dir_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_payload_dir_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_payload_dir_19_qs)
+ );
+
+
+ // F[upload_19]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_upload_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_upload_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_upload_19_qs)
+ );
+
+
+ // F[busy_19]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_19_busy_19 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_19_we),
+ .wd (cmd_info_19_busy_19_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[19].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_19_busy_19_qs)
+ );
+
+
+ // Subregister 20 of Multireg cmd_info
+ // R[cmd_info_20]: V(False)
+
+ // F[opcode_20]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_20_opcode_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_opcode_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_opcode_20_qs)
+ );
+
+
+ // F[addr_en_20]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_addr_en_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_addr_en_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_addr_en_20_qs)
+ );
+
+
+ // F[addr_swap_en_20]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_addr_swap_en_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_addr_swap_en_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_addr_swap_en_20_qs)
+ );
+
+
+ // F[addr_4b_affected_20]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_addr_4b_affected_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_addr_4b_affected_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_addr_4b_affected_20_qs)
+ );
+
+
+ // F[mbyte_en_20]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_mbyte_en_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_mbyte_en_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_mbyte_en_20_qs)
+ );
+
+
+ // F[dummy_size_20]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_20_dummy_size_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_dummy_size_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_dummy_size_20_qs)
+ );
+
+
+ // F[dummy_en_20]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_dummy_en_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_dummy_en_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_dummy_en_20_qs)
+ );
+
+
+ // F[payload_en_20]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_20_payload_en_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_payload_en_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_payload_en_20_qs)
+ );
+
+
+ // F[payload_dir_20]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_payload_dir_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_payload_dir_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_payload_dir_20_qs)
+ );
+
+
+ // F[upload_20]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_upload_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_upload_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_upload_20_qs)
+ );
+
+
+ // F[busy_20]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_20_busy_20 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_20_we),
+ .wd (cmd_info_20_busy_20_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[20].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_20_busy_20_qs)
+ );
+
+
+ // Subregister 21 of Multireg cmd_info
+ // R[cmd_info_21]: V(False)
+
+ // F[opcode_21]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_21_opcode_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_opcode_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_opcode_21_qs)
+ );
+
+
+ // F[addr_en_21]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_addr_en_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_addr_en_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_addr_en_21_qs)
+ );
+
+
+ // F[addr_swap_en_21]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_addr_swap_en_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_addr_swap_en_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_addr_swap_en_21_qs)
+ );
+
+
+ // F[addr_4b_affected_21]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_addr_4b_affected_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_addr_4b_affected_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_addr_4b_affected_21_qs)
+ );
+
+
+ // F[mbyte_en_21]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_mbyte_en_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_mbyte_en_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_mbyte_en_21_qs)
+ );
+
+
+ // F[dummy_size_21]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_21_dummy_size_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_dummy_size_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_dummy_size_21_qs)
+ );
+
+
+ // F[dummy_en_21]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_dummy_en_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_dummy_en_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_dummy_en_21_qs)
+ );
+
+
+ // F[payload_en_21]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_21_payload_en_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_payload_en_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_payload_en_21_qs)
+ );
+
+
+ // F[payload_dir_21]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_payload_dir_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_payload_dir_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_payload_dir_21_qs)
+ );
+
+
+ // F[upload_21]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_upload_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_upload_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_upload_21_qs)
+ );
+
+
+ // F[busy_21]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_21_busy_21 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_21_we),
+ .wd (cmd_info_21_busy_21_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[21].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_21_busy_21_qs)
+ );
+
+
+ // Subregister 22 of Multireg cmd_info
+ // R[cmd_info_22]: V(False)
+
+ // F[opcode_22]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_22_opcode_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_opcode_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_opcode_22_qs)
+ );
+
+
+ // F[addr_en_22]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_addr_en_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_addr_en_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_addr_en_22_qs)
+ );
+
+
+ // F[addr_swap_en_22]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_addr_swap_en_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_addr_swap_en_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_addr_swap_en_22_qs)
+ );
+
+
+ // F[addr_4b_affected_22]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_addr_4b_affected_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_addr_4b_affected_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_addr_4b_affected_22_qs)
+ );
+
+
+ // F[mbyte_en_22]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_mbyte_en_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_mbyte_en_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_mbyte_en_22_qs)
+ );
+
+
+ // F[dummy_size_22]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_22_dummy_size_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_dummy_size_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_dummy_size_22_qs)
+ );
+
+
+ // F[dummy_en_22]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_dummy_en_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_dummy_en_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_dummy_en_22_qs)
+ );
+
+
+ // F[payload_en_22]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_22_payload_en_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_payload_en_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_payload_en_22_qs)
+ );
+
+
+ // F[payload_dir_22]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_payload_dir_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_payload_dir_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_payload_dir_22_qs)
+ );
+
+
+ // F[upload_22]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_upload_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_upload_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_upload_22_qs)
+ );
+
+
+ // F[busy_22]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_22_busy_22 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_22_we),
+ .wd (cmd_info_22_busy_22_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[22].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_22_busy_22_qs)
+ );
+
+
+ // Subregister 23 of Multireg cmd_info
+ // R[cmd_info_23]: V(False)
+
+ // F[opcode_23]: 7:0
+ prim_subreg #(
+ .DW (8),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (8'h0)
+ ) u_cmd_info_23_opcode_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_opcode_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].opcode.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_opcode_23_qs)
+ );
+
+
+ // F[addr_en_23]: 8:8
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_addr_en_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_addr_en_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].addr_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_addr_en_23_qs)
+ );
+
+
+ // F[addr_swap_en_23]: 9:9
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_addr_swap_en_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_addr_swap_en_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].addr_swap_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_addr_swap_en_23_qs)
+ );
+
+
+ // F[addr_4b_affected_23]: 10:10
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_addr_4b_affected_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_addr_4b_affected_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].addr_4b_affected.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_addr_4b_affected_23_qs)
+ );
+
+
+ // F[mbyte_en_23]: 11:11
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_mbyte_en_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_mbyte_en_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].mbyte_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_mbyte_en_23_qs)
+ );
+
+
+ // F[dummy_size_23]: 14:12
+ prim_subreg #(
+ .DW (3),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (3'h7)
+ ) u_cmd_info_23_dummy_size_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_dummy_size_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].dummy_size.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_dummy_size_23_qs)
+ );
+
+
+ // F[dummy_en_23]: 15:15
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_dummy_en_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_dummy_en_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].dummy_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_dummy_en_23_qs)
+ );
+
+
+ // F[payload_en_23]: 19:16
+ prim_subreg #(
+ .DW (4),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (4'h0)
+ ) u_cmd_info_23_payload_en_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_payload_en_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].payload_en.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_payload_en_23_qs)
+ );
+
+
+ // F[payload_dir_23]: 20:20
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_payload_dir_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_payload_dir_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].payload_dir.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_payload_dir_23_qs)
+ );
+
+
+ // F[upload_23]: 24:24
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_upload_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_upload_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].upload.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_upload_23_qs)
+ );
+
+
+ // F[busy_23]: 25:25
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_cmd_info_23_busy_23 (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (cmd_info_23_we),
+ .wd (cmd_info_23_busy_23_wd),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.cmd_info[23].busy.q),
+
+ // to register interface (read)
+ .qs (cmd_info_23_busy_23_qs)
+ );
- logic [42:0] addr_hit;
+
+
+ logic [50:0] addr_hit;
always_comb begin
addr_hit = '0;
addr_hit[ 0] = (reg_addr == SPI_DEVICE_INTR_STATE_OFFSET);
@@ -12912,6 +16304,14 @@
addr_hit[40] = (reg_addr == SPI_DEVICE_CMD_INFO_13_OFFSET);
addr_hit[41] = (reg_addr == SPI_DEVICE_CMD_INFO_14_OFFSET);
addr_hit[42] = (reg_addr == SPI_DEVICE_CMD_INFO_15_OFFSET);
+ addr_hit[43] = (reg_addr == SPI_DEVICE_CMD_INFO_16_OFFSET);
+ addr_hit[44] = (reg_addr == SPI_DEVICE_CMD_INFO_17_OFFSET);
+ addr_hit[45] = (reg_addr == SPI_DEVICE_CMD_INFO_18_OFFSET);
+ addr_hit[46] = (reg_addr == SPI_DEVICE_CMD_INFO_19_OFFSET);
+ addr_hit[47] = (reg_addr == SPI_DEVICE_CMD_INFO_20_OFFSET);
+ addr_hit[48] = (reg_addr == SPI_DEVICE_CMD_INFO_21_OFFSET);
+ addr_hit[49] = (reg_addr == SPI_DEVICE_CMD_INFO_22_OFFSET);
+ addr_hit[50] = (reg_addr == SPI_DEVICE_CMD_INFO_23_OFFSET);
end
assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -12961,7 +16361,15 @@
(addr_hit[39] & (|(SPI_DEVICE_PERMIT[39] & ~reg_be))) |
(addr_hit[40] & (|(SPI_DEVICE_PERMIT[40] & ~reg_be))) |
(addr_hit[41] & (|(SPI_DEVICE_PERMIT[41] & ~reg_be))) |
- (addr_hit[42] & (|(SPI_DEVICE_PERMIT[42] & ~reg_be)))));
+ (addr_hit[42] & (|(SPI_DEVICE_PERMIT[42] & ~reg_be))) |
+ (addr_hit[43] & (|(SPI_DEVICE_PERMIT[43] & ~reg_be))) |
+ (addr_hit[44] & (|(SPI_DEVICE_PERMIT[44] & ~reg_be))) |
+ (addr_hit[45] & (|(SPI_DEVICE_PERMIT[45] & ~reg_be))) |
+ (addr_hit[46] & (|(SPI_DEVICE_PERMIT[46] & ~reg_be))) |
+ (addr_hit[47] & (|(SPI_DEVICE_PERMIT[47] & ~reg_be))) |
+ (addr_hit[48] & (|(SPI_DEVICE_PERMIT[48] & ~reg_be))) |
+ (addr_hit[49] & (|(SPI_DEVICE_PERMIT[49] & ~reg_be))) |
+ (addr_hit[50] & (|(SPI_DEVICE_PERMIT[50] & ~reg_be)))));
end
assign intr_state_we = addr_hit[0] & reg_we & !reg_error;
@@ -13612,6 +17020,10 @@
assign cmd_info_0_payload_en_0_wd = reg_wdata[19:16];
assign cmd_info_0_payload_dir_0_wd = reg_wdata[20];
+
+ assign cmd_info_0_upload_0_wd = reg_wdata[24];
+
+ assign cmd_info_0_busy_0_wd = reg_wdata[25];
assign cmd_info_1_we = addr_hit[28] & reg_we & !reg_error;
assign cmd_info_1_opcode_1_wd = reg_wdata[7:0];
@@ -13631,6 +17043,10 @@
assign cmd_info_1_payload_en_1_wd = reg_wdata[19:16];
assign cmd_info_1_payload_dir_1_wd = reg_wdata[20];
+
+ assign cmd_info_1_upload_1_wd = reg_wdata[24];
+
+ assign cmd_info_1_busy_1_wd = reg_wdata[25];
assign cmd_info_2_we = addr_hit[29] & reg_we & !reg_error;
assign cmd_info_2_opcode_2_wd = reg_wdata[7:0];
@@ -13650,6 +17066,10 @@
assign cmd_info_2_payload_en_2_wd = reg_wdata[19:16];
assign cmd_info_2_payload_dir_2_wd = reg_wdata[20];
+
+ assign cmd_info_2_upload_2_wd = reg_wdata[24];
+
+ assign cmd_info_2_busy_2_wd = reg_wdata[25];
assign cmd_info_3_we = addr_hit[30] & reg_we & !reg_error;
assign cmd_info_3_opcode_3_wd = reg_wdata[7:0];
@@ -13669,6 +17089,10 @@
assign cmd_info_3_payload_en_3_wd = reg_wdata[19:16];
assign cmd_info_3_payload_dir_3_wd = reg_wdata[20];
+
+ assign cmd_info_3_upload_3_wd = reg_wdata[24];
+
+ assign cmd_info_3_busy_3_wd = reg_wdata[25];
assign cmd_info_4_we = addr_hit[31] & reg_we & !reg_error;
assign cmd_info_4_opcode_4_wd = reg_wdata[7:0];
@@ -13688,6 +17112,10 @@
assign cmd_info_4_payload_en_4_wd = reg_wdata[19:16];
assign cmd_info_4_payload_dir_4_wd = reg_wdata[20];
+
+ assign cmd_info_4_upload_4_wd = reg_wdata[24];
+
+ assign cmd_info_4_busy_4_wd = reg_wdata[25];
assign cmd_info_5_we = addr_hit[32] & reg_we & !reg_error;
assign cmd_info_5_opcode_5_wd = reg_wdata[7:0];
@@ -13707,6 +17135,10 @@
assign cmd_info_5_payload_en_5_wd = reg_wdata[19:16];
assign cmd_info_5_payload_dir_5_wd = reg_wdata[20];
+
+ assign cmd_info_5_upload_5_wd = reg_wdata[24];
+
+ assign cmd_info_5_busy_5_wd = reg_wdata[25];
assign cmd_info_6_we = addr_hit[33] & reg_we & !reg_error;
assign cmd_info_6_opcode_6_wd = reg_wdata[7:0];
@@ -13726,6 +17158,10 @@
assign cmd_info_6_payload_en_6_wd = reg_wdata[19:16];
assign cmd_info_6_payload_dir_6_wd = reg_wdata[20];
+
+ assign cmd_info_6_upload_6_wd = reg_wdata[24];
+
+ assign cmd_info_6_busy_6_wd = reg_wdata[25];
assign cmd_info_7_we = addr_hit[34] & reg_we & !reg_error;
assign cmd_info_7_opcode_7_wd = reg_wdata[7:0];
@@ -13745,6 +17181,10 @@
assign cmd_info_7_payload_en_7_wd = reg_wdata[19:16];
assign cmd_info_7_payload_dir_7_wd = reg_wdata[20];
+
+ assign cmd_info_7_upload_7_wd = reg_wdata[24];
+
+ assign cmd_info_7_busy_7_wd = reg_wdata[25];
assign cmd_info_8_we = addr_hit[35] & reg_we & !reg_error;
assign cmd_info_8_opcode_8_wd = reg_wdata[7:0];
@@ -13764,6 +17204,10 @@
assign cmd_info_8_payload_en_8_wd = reg_wdata[19:16];
assign cmd_info_8_payload_dir_8_wd = reg_wdata[20];
+
+ assign cmd_info_8_upload_8_wd = reg_wdata[24];
+
+ assign cmd_info_8_busy_8_wd = reg_wdata[25];
assign cmd_info_9_we = addr_hit[36] & reg_we & !reg_error;
assign cmd_info_9_opcode_9_wd = reg_wdata[7:0];
@@ -13783,6 +17227,10 @@
assign cmd_info_9_payload_en_9_wd = reg_wdata[19:16];
assign cmd_info_9_payload_dir_9_wd = reg_wdata[20];
+
+ assign cmd_info_9_upload_9_wd = reg_wdata[24];
+
+ assign cmd_info_9_busy_9_wd = reg_wdata[25];
assign cmd_info_10_we = addr_hit[37] & reg_we & !reg_error;
assign cmd_info_10_opcode_10_wd = reg_wdata[7:0];
@@ -13802,6 +17250,10 @@
assign cmd_info_10_payload_en_10_wd = reg_wdata[19:16];
assign cmd_info_10_payload_dir_10_wd = reg_wdata[20];
+
+ assign cmd_info_10_upload_10_wd = reg_wdata[24];
+
+ assign cmd_info_10_busy_10_wd = reg_wdata[25];
assign cmd_info_11_we = addr_hit[38] & reg_we & !reg_error;
assign cmd_info_11_opcode_11_wd = reg_wdata[7:0];
@@ -13821,6 +17273,10 @@
assign cmd_info_11_payload_en_11_wd = reg_wdata[19:16];
assign cmd_info_11_payload_dir_11_wd = reg_wdata[20];
+
+ assign cmd_info_11_upload_11_wd = reg_wdata[24];
+
+ assign cmd_info_11_busy_11_wd = reg_wdata[25];
assign cmd_info_12_we = addr_hit[39] & reg_we & !reg_error;
assign cmd_info_12_opcode_12_wd = reg_wdata[7:0];
@@ -13840,6 +17296,10 @@
assign cmd_info_12_payload_en_12_wd = reg_wdata[19:16];
assign cmd_info_12_payload_dir_12_wd = reg_wdata[20];
+
+ assign cmd_info_12_upload_12_wd = reg_wdata[24];
+
+ assign cmd_info_12_busy_12_wd = reg_wdata[25];
assign cmd_info_13_we = addr_hit[40] & reg_we & !reg_error;
assign cmd_info_13_opcode_13_wd = reg_wdata[7:0];
@@ -13859,6 +17319,10 @@
assign cmd_info_13_payload_en_13_wd = reg_wdata[19:16];
assign cmd_info_13_payload_dir_13_wd = reg_wdata[20];
+
+ assign cmd_info_13_upload_13_wd = reg_wdata[24];
+
+ assign cmd_info_13_busy_13_wd = reg_wdata[25];
assign cmd_info_14_we = addr_hit[41] & reg_we & !reg_error;
assign cmd_info_14_opcode_14_wd = reg_wdata[7:0];
@@ -13878,6 +17342,10 @@
assign cmd_info_14_payload_en_14_wd = reg_wdata[19:16];
assign cmd_info_14_payload_dir_14_wd = reg_wdata[20];
+
+ assign cmd_info_14_upload_14_wd = reg_wdata[24];
+
+ assign cmd_info_14_busy_14_wd = reg_wdata[25];
assign cmd_info_15_we = addr_hit[42] & reg_we & !reg_error;
assign cmd_info_15_opcode_15_wd = reg_wdata[7:0];
@@ -13898,6 +17366,194 @@
assign cmd_info_15_payload_dir_15_wd = reg_wdata[20];
+ assign cmd_info_15_upload_15_wd = reg_wdata[24];
+
+ assign cmd_info_15_busy_15_wd = reg_wdata[25];
+ assign cmd_info_16_we = addr_hit[43] & reg_we & !reg_error;
+
+ assign cmd_info_16_opcode_16_wd = reg_wdata[7:0];
+
+ assign cmd_info_16_addr_en_16_wd = reg_wdata[8];
+
+ assign cmd_info_16_addr_swap_en_16_wd = reg_wdata[9];
+
+ assign cmd_info_16_addr_4b_affected_16_wd = reg_wdata[10];
+
+ assign cmd_info_16_mbyte_en_16_wd = reg_wdata[11];
+
+ assign cmd_info_16_dummy_size_16_wd = reg_wdata[14:12];
+
+ assign cmd_info_16_dummy_en_16_wd = reg_wdata[15];
+
+ assign cmd_info_16_payload_en_16_wd = reg_wdata[19:16];
+
+ assign cmd_info_16_payload_dir_16_wd = reg_wdata[20];
+
+ assign cmd_info_16_upload_16_wd = reg_wdata[24];
+
+ assign cmd_info_16_busy_16_wd = reg_wdata[25];
+ assign cmd_info_17_we = addr_hit[44] & reg_we & !reg_error;
+
+ assign cmd_info_17_opcode_17_wd = reg_wdata[7:0];
+
+ assign cmd_info_17_addr_en_17_wd = reg_wdata[8];
+
+ assign cmd_info_17_addr_swap_en_17_wd = reg_wdata[9];
+
+ assign cmd_info_17_addr_4b_affected_17_wd = reg_wdata[10];
+
+ assign cmd_info_17_mbyte_en_17_wd = reg_wdata[11];
+
+ assign cmd_info_17_dummy_size_17_wd = reg_wdata[14:12];
+
+ assign cmd_info_17_dummy_en_17_wd = reg_wdata[15];
+
+ assign cmd_info_17_payload_en_17_wd = reg_wdata[19:16];
+
+ assign cmd_info_17_payload_dir_17_wd = reg_wdata[20];
+
+ assign cmd_info_17_upload_17_wd = reg_wdata[24];
+
+ assign cmd_info_17_busy_17_wd = reg_wdata[25];
+ assign cmd_info_18_we = addr_hit[45] & reg_we & !reg_error;
+
+ assign cmd_info_18_opcode_18_wd = reg_wdata[7:0];
+
+ assign cmd_info_18_addr_en_18_wd = reg_wdata[8];
+
+ assign cmd_info_18_addr_swap_en_18_wd = reg_wdata[9];
+
+ assign cmd_info_18_addr_4b_affected_18_wd = reg_wdata[10];
+
+ assign cmd_info_18_mbyte_en_18_wd = reg_wdata[11];
+
+ assign cmd_info_18_dummy_size_18_wd = reg_wdata[14:12];
+
+ assign cmd_info_18_dummy_en_18_wd = reg_wdata[15];
+
+ assign cmd_info_18_payload_en_18_wd = reg_wdata[19:16];
+
+ assign cmd_info_18_payload_dir_18_wd = reg_wdata[20];
+
+ assign cmd_info_18_upload_18_wd = reg_wdata[24];
+
+ assign cmd_info_18_busy_18_wd = reg_wdata[25];
+ assign cmd_info_19_we = addr_hit[46] & reg_we & !reg_error;
+
+ assign cmd_info_19_opcode_19_wd = reg_wdata[7:0];
+
+ assign cmd_info_19_addr_en_19_wd = reg_wdata[8];
+
+ assign cmd_info_19_addr_swap_en_19_wd = reg_wdata[9];
+
+ assign cmd_info_19_addr_4b_affected_19_wd = reg_wdata[10];
+
+ assign cmd_info_19_mbyte_en_19_wd = reg_wdata[11];
+
+ assign cmd_info_19_dummy_size_19_wd = reg_wdata[14:12];
+
+ assign cmd_info_19_dummy_en_19_wd = reg_wdata[15];
+
+ assign cmd_info_19_payload_en_19_wd = reg_wdata[19:16];
+
+ assign cmd_info_19_payload_dir_19_wd = reg_wdata[20];
+
+ assign cmd_info_19_upload_19_wd = reg_wdata[24];
+
+ assign cmd_info_19_busy_19_wd = reg_wdata[25];
+ assign cmd_info_20_we = addr_hit[47] & reg_we & !reg_error;
+
+ assign cmd_info_20_opcode_20_wd = reg_wdata[7:0];
+
+ assign cmd_info_20_addr_en_20_wd = reg_wdata[8];
+
+ assign cmd_info_20_addr_swap_en_20_wd = reg_wdata[9];
+
+ assign cmd_info_20_addr_4b_affected_20_wd = reg_wdata[10];
+
+ assign cmd_info_20_mbyte_en_20_wd = reg_wdata[11];
+
+ assign cmd_info_20_dummy_size_20_wd = reg_wdata[14:12];
+
+ assign cmd_info_20_dummy_en_20_wd = reg_wdata[15];
+
+ assign cmd_info_20_payload_en_20_wd = reg_wdata[19:16];
+
+ assign cmd_info_20_payload_dir_20_wd = reg_wdata[20];
+
+ assign cmd_info_20_upload_20_wd = reg_wdata[24];
+
+ assign cmd_info_20_busy_20_wd = reg_wdata[25];
+ assign cmd_info_21_we = addr_hit[48] & reg_we & !reg_error;
+
+ assign cmd_info_21_opcode_21_wd = reg_wdata[7:0];
+
+ assign cmd_info_21_addr_en_21_wd = reg_wdata[8];
+
+ assign cmd_info_21_addr_swap_en_21_wd = reg_wdata[9];
+
+ assign cmd_info_21_addr_4b_affected_21_wd = reg_wdata[10];
+
+ assign cmd_info_21_mbyte_en_21_wd = reg_wdata[11];
+
+ assign cmd_info_21_dummy_size_21_wd = reg_wdata[14:12];
+
+ assign cmd_info_21_dummy_en_21_wd = reg_wdata[15];
+
+ assign cmd_info_21_payload_en_21_wd = reg_wdata[19:16];
+
+ assign cmd_info_21_payload_dir_21_wd = reg_wdata[20];
+
+ assign cmd_info_21_upload_21_wd = reg_wdata[24];
+
+ assign cmd_info_21_busy_21_wd = reg_wdata[25];
+ assign cmd_info_22_we = addr_hit[49] & reg_we & !reg_error;
+
+ assign cmd_info_22_opcode_22_wd = reg_wdata[7:0];
+
+ assign cmd_info_22_addr_en_22_wd = reg_wdata[8];
+
+ assign cmd_info_22_addr_swap_en_22_wd = reg_wdata[9];
+
+ assign cmd_info_22_addr_4b_affected_22_wd = reg_wdata[10];
+
+ assign cmd_info_22_mbyte_en_22_wd = reg_wdata[11];
+
+ assign cmd_info_22_dummy_size_22_wd = reg_wdata[14:12];
+
+ assign cmd_info_22_dummy_en_22_wd = reg_wdata[15];
+
+ assign cmd_info_22_payload_en_22_wd = reg_wdata[19:16];
+
+ assign cmd_info_22_payload_dir_22_wd = reg_wdata[20];
+
+ assign cmd_info_22_upload_22_wd = reg_wdata[24];
+
+ assign cmd_info_22_busy_22_wd = reg_wdata[25];
+ assign cmd_info_23_we = addr_hit[50] & reg_we & !reg_error;
+
+ assign cmd_info_23_opcode_23_wd = reg_wdata[7:0];
+
+ assign cmd_info_23_addr_en_23_wd = reg_wdata[8];
+
+ assign cmd_info_23_addr_swap_en_23_wd = reg_wdata[9];
+
+ assign cmd_info_23_addr_4b_affected_23_wd = reg_wdata[10];
+
+ assign cmd_info_23_mbyte_en_23_wd = reg_wdata[11];
+
+ assign cmd_info_23_dummy_size_23_wd = reg_wdata[14:12];
+
+ assign cmd_info_23_dummy_en_23_wd = reg_wdata[15];
+
+ assign cmd_info_23_payload_en_23_wd = reg_wdata[19:16];
+
+ assign cmd_info_23_payload_dir_23_wd = reg_wdata[20];
+
+ assign cmd_info_23_upload_23_wd = reg_wdata[24];
+
+ assign cmd_info_23_busy_23_wd = reg_wdata[25];
+
// Read data return
always_comb begin
reg_rdata_next = '0;
@@ -14305,6 +17961,8 @@
reg_rdata_next[15] = cmd_info_0_dummy_en_0_qs;
reg_rdata_next[19:16] = cmd_info_0_payload_en_0_qs;
reg_rdata_next[20] = cmd_info_0_payload_dir_0_qs;
+ reg_rdata_next[24] = cmd_info_0_upload_0_qs;
+ reg_rdata_next[25] = cmd_info_0_busy_0_qs;
end
addr_hit[28]: begin
@@ -14317,6 +17975,8 @@
reg_rdata_next[15] = cmd_info_1_dummy_en_1_qs;
reg_rdata_next[19:16] = cmd_info_1_payload_en_1_qs;
reg_rdata_next[20] = cmd_info_1_payload_dir_1_qs;
+ reg_rdata_next[24] = cmd_info_1_upload_1_qs;
+ reg_rdata_next[25] = cmd_info_1_busy_1_qs;
end
addr_hit[29]: begin
@@ -14329,6 +17989,8 @@
reg_rdata_next[15] = cmd_info_2_dummy_en_2_qs;
reg_rdata_next[19:16] = cmd_info_2_payload_en_2_qs;
reg_rdata_next[20] = cmd_info_2_payload_dir_2_qs;
+ reg_rdata_next[24] = cmd_info_2_upload_2_qs;
+ reg_rdata_next[25] = cmd_info_2_busy_2_qs;
end
addr_hit[30]: begin
@@ -14341,6 +18003,8 @@
reg_rdata_next[15] = cmd_info_3_dummy_en_3_qs;
reg_rdata_next[19:16] = cmd_info_3_payload_en_3_qs;
reg_rdata_next[20] = cmd_info_3_payload_dir_3_qs;
+ reg_rdata_next[24] = cmd_info_3_upload_3_qs;
+ reg_rdata_next[25] = cmd_info_3_busy_3_qs;
end
addr_hit[31]: begin
@@ -14353,6 +18017,8 @@
reg_rdata_next[15] = cmd_info_4_dummy_en_4_qs;
reg_rdata_next[19:16] = cmd_info_4_payload_en_4_qs;
reg_rdata_next[20] = cmd_info_4_payload_dir_4_qs;
+ reg_rdata_next[24] = cmd_info_4_upload_4_qs;
+ reg_rdata_next[25] = cmd_info_4_busy_4_qs;
end
addr_hit[32]: begin
@@ -14365,6 +18031,8 @@
reg_rdata_next[15] = cmd_info_5_dummy_en_5_qs;
reg_rdata_next[19:16] = cmd_info_5_payload_en_5_qs;
reg_rdata_next[20] = cmd_info_5_payload_dir_5_qs;
+ reg_rdata_next[24] = cmd_info_5_upload_5_qs;
+ reg_rdata_next[25] = cmd_info_5_busy_5_qs;
end
addr_hit[33]: begin
@@ -14377,6 +18045,8 @@
reg_rdata_next[15] = cmd_info_6_dummy_en_6_qs;
reg_rdata_next[19:16] = cmd_info_6_payload_en_6_qs;
reg_rdata_next[20] = cmd_info_6_payload_dir_6_qs;
+ reg_rdata_next[24] = cmd_info_6_upload_6_qs;
+ reg_rdata_next[25] = cmd_info_6_busy_6_qs;
end
addr_hit[34]: begin
@@ -14389,6 +18059,8 @@
reg_rdata_next[15] = cmd_info_7_dummy_en_7_qs;
reg_rdata_next[19:16] = cmd_info_7_payload_en_7_qs;
reg_rdata_next[20] = cmd_info_7_payload_dir_7_qs;
+ reg_rdata_next[24] = cmd_info_7_upload_7_qs;
+ reg_rdata_next[25] = cmd_info_7_busy_7_qs;
end
addr_hit[35]: begin
@@ -14401,6 +18073,8 @@
reg_rdata_next[15] = cmd_info_8_dummy_en_8_qs;
reg_rdata_next[19:16] = cmd_info_8_payload_en_8_qs;
reg_rdata_next[20] = cmd_info_8_payload_dir_8_qs;
+ reg_rdata_next[24] = cmd_info_8_upload_8_qs;
+ reg_rdata_next[25] = cmd_info_8_busy_8_qs;
end
addr_hit[36]: begin
@@ -14413,6 +18087,8 @@
reg_rdata_next[15] = cmd_info_9_dummy_en_9_qs;
reg_rdata_next[19:16] = cmd_info_9_payload_en_9_qs;
reg_rdata_next[20] = cmd_info_9_payload_dir_9_qs;
+ reg_rdata_next[24] = cmd_info_9_upload_9_qs;
+ reg_rdata_next[25] = cmd_info_9_busy_9_qs;
end
addr_hit[37]: begin
@@ -14425,6 +18101,8 @@
reg_rdata_next[15] = cmd_info_10_dummy_en_10_qs;
reg_rdata_next[19:16] = cmd_info_10_payload_en_10_qs;
reg_rdata_next[20] = cmd_info_10_payload_dir_10_qs;
+ reg_rdata_next[24] = cmd_info_10_upload_10_qs;
+ reg_rdata_next[25] = cmd_info_10_busy_10_qs;
end
addr_hit[38]: begin
@@ -14437,6 +18115,8 @@
reg_rdata_next[15] = cmd_info_11_dummy_en_11_qs;
reg_rdata_next[19:16] = cmd_info_11_payload_en_11_qs;
reg_rdata_next[20] = cmd_info_11_payload_dir_11_qs;
+ reg_rdata_next[24] = cmd_info_11_upload_11_qs;
+ reg_rdata_next[25] = cmd_info_11_busy_11_qs;
end
addr_hit[39]: begin
@@ -14449,6 +18129,8 @@
reg_rdata_next[15] = cmd_info_12_dummy_en_12_qs;
reg_rdata_next[19:16] = cmd_info_12_payload_en_12_qs;
reg_rdata_next[20] = cmd_info_12_payload_dir_12_qs;
+ reg_rdata_next[24] = cmd_info_12_upload_12_qs;
+ reg_rdata_next[25] = cmd_info_12_busy_12_qs;
end
addr_hit[40]: begin
@@ -14461,6 +18143,8 @@
reg_rdata_next[15] = cmd_info_13_dummy_en_13_qs;
reg_rdata_next[19:16] = cmd_info_13_payload_en_13_qs;
reg_rdata_next[20] = cmd_info_13_payload_dir_13_qs;
+ reg_rdata_next[24] = cmd_info_13_upload_13_qs;
+ reg_rdata_next[25] = cmd_info_13_busy_13_qs;
end
addr_hit[41]: begin
@@ -14473,6 +18157,8 @@
reg_rdata_next[15] = cmd_info_14_dummy_en_14_qs;
reg_rdata_next[19:16] = cmd_info_14_payload_en_14_qs;
reg_rdata_next[20] = cmd_info_14_payload_dir_14_qs;
+ reg_rdata_next[24] = cmd_info_14_upload_14_qs;
+ reg_rdata_next[25] = cmd_info_14_busy_14_qs;
end
addr_hit[42]: begin
@@ -14485,6 +18171,120 @@
reg_rdata_next[15] = cmd_info_15_dummy_en_15_qs;
reg_rdata_next[19:16] = cmd_info_15_payload_en_15_qs;
reg_rdata_next[20] = cmd_info_15_payload_dir_15_qs;
+ reg_rdata_next[24] = cmd_info_15_upload_15_qs;
+ reg_rdata_next[25] = cmd_info_15_busy_15_qs;
+ end
+
+ addr_hit[43]: begin
+ reg_rdata_next[7:0] = cmd_info_16_opcode_16_qs;
+ reg_rdata_next[8] = cmd_info_16_addr_en_16_qs;
+ reg_rdata_next[9] = cmd_info_16_addr_swap_en_16_qs;
+ reg_rdata_next[10] = cmd_info_16_addr_4b_affected_16_qs;
+ reg_rdata_next[11] = cmd_info_16_mbyte_en_16_qs;
+ reg_rdata_next[14:12] = cmd_info_16_dummy_size_16_qs;
+ reg_rdata_next[15] = cmd_info_16_dummy_en_16_qs;
+ reg_rdata_next[19:16] = cmd_info_16_payload_en_16_qs;
+ reg_rdata_next[20] = cmd_info_16_payload_dir_16_qs;
+ reg_rdata_next[24] = cmd_info_16_upload_16_qs;
+ reg_rdata_next[25] = cmd_info_16_busy_16_qs;
+ end
+
+ addr_hit[44]: begin
+ reg_rdata_next[7:0] = cmd_info_17_opcode_17_qs;
+ reg_rdata_next[8] = cmd_info_17_addr_en_17_qs;
+ reg_rdata_next[9] = cmd_info_17_addr_swap_en_17_qs;
+ reg_rdata_next[10] = cmd_info_17_addr_4b_affected_17_qs;
+ reg_rdata_next[11] = cmd_info_17_mbyte_en_17_qs;
+ reg_rdata_next[14:12] = cmd_info_17_dummy_size_17_qs;
+ reg_rdata_next[15] = cmd_info_17_dummy_en_17_qs;
+ reg_rdata_next[19:16] = cmd_info_17_payload_en_17_qs;
+ reg_rdata_next[20] = cmd_info_17_payload_dir_17_qs;
+ reg_rdata_next[24] = cmd_info_17_upload_17_qs;
+ reg_rdata_next[25] = cmd_info_17_busy_17_qs;
+ end
+
+ addr_hit[45]: begin
+ reg_rdata_next[7:0] = cmd_info_18_opcode_18_qs;
+ reg_rdata_next[8] = cmd_info_18_addr_en_18_qs;
+ reg_rdata_next[9] = cmd_info_18_addr_swap_en_18_qs;
+ reg_rdata_next[10] = cmd_info_18_addr_4b_affected_18_qs;
+ reg_rdata_next[11] = cmd_info_18_mbyte_en_18_qs;
+ reg_rdata_next[14:12] = cmd_info_18_dummy_size_18_qs;
+ reg_rdata_next[15] = cmd_info_18_dummy_en_18_qs;
+ reg_rdata_next[19:16] = cmd_info_18_payload_en_18_qs;
+ reg_rdata_next[20] = cmd_info_18_payload_dir_18_qs;
+ reg_rdata_next[24] = cmd_info_18_upload_18_qs;
+ reg_rdata_next[25] = cmd_info_18_busy_18_qs;
+ end
+
+ addr_hit[46]: begin
+ reg_rdata_next[7:0] = cmd_info_19_opcode_19_qs;
+ reg_rdata_next[8] = cmd_info_19_addr_en_19_qs;
+ reg_rdata_next[9] = cmd_info_19_addr_swap_en_19_qs;
+ reg_rdata_next[10] = cmd_info_19_addr_4b_affected_19_qs;
+ reg_rdata_next[11] = cmd_info_19_mbyte_en_19_qs;
+ reg_rdata_next[14:12] = cmd_info_19_dummy_size_19_qs;
+ reg_rdata_next[15] = cmd_info_19_dummy_en_19_qs;
+ reg_rdata_next[19:16] = cmd_info_19_payload_en_19_qs;
+ reg_rdata_next[20] = cmd_info_19_payload_dir_19_qs;
+ reg_rdata_next[24] = cmd_info_19_upload_19_qs;
+ reg_rdata_next[25] = cmd_info_19_busy_19_qs;
+ end
+
+ addr_hit[47]: begin
+ reg_rdata_next[7:0] = cmd_info_20_opcode_20_qs;
+ reg_rdata_next[8] = cmd_info_20_addr_en_20_qs;
+ reg_rdata_next[9] = cmd_info_20_addr_swap_en_20_qs;
+ reg_rdata_next[10] = cmd_info_20_addr_4b_affected_20_qs;
+ reg_rdata_next[11] = cmd_info_20_mbyte_en_20_qs;
+ reg_rdata_next[14:12] = cmd_info_20_dummy_size_20_qs;
+ reg_rdata_next[15] = cmd_info_20_dummy_en_20_qs;
+ reg_rdata_next[19:16] = cmd_info_20_payload_en_20_qs;
+ reg_rdata_next[20] = cmd_info_20_payload_dir_20_qs;
+ reg_rdata_next[24] = cmd_info_20_upload_20_qs;
+ reg_rdata_next[25] = cmd_info_20_busy_20_qs;
+ end
+
+ addr_hit[48]: begin
+ reg_rdata_next[7:0] = cmd_info_21_opcode_21_qs;
+ reg_rdata_next[8] = cmd_info_21_addr_en_21_qs;
+ reg_rdata_next[9] = cmd_info_21_addr_swap_en_21_qs;
+ reg_rdata_next[10] = cmd_info_21_addr_4b_affected_21_qs;
+ reg_rdata_next[11] = cmd_info_21_mbyte_en_21_qs;
+ reg_rdata_next[14:12] = cmd_info_21_dummy_size_21_qs;
+ reg_rdata_next[15] = cmd_info_21_dummy_en_21_qs;
+ reg_rdata_next[19:16] = cmd_info_21_payload_en_21_qs;
+ reg_rdata_next[20] = cmd_info_21_payload_dir_21_qs;
+ reg_rdata_next[24] = cmd_info_21_upload_21_qs;
+ reg_rdata_next[25] = cmd_info_21_busy_21_qs;
+ end
+
+ addr_hit[49]: begin
+ reg_rdata_next[7:0] = cmd_info_22_opcode_22_qs;
+ reg_rdata_next[8] = cmd_info_22_addr_en_22_qs;
+ reg_rdata_next[9] = cmd_info_22_addr_swap_en_22_qs;
+ reg_rdata_next[10] = cmd_info_22_addr_4b_affected_22_qs;
+ reg_rdata_next[11] = cmd_info_22_mbyte_en_22_qs;
+ reg_rdata_next[14:12] = cmd_info_22_dummy_size_22_qs;
+ reg_rdata_next[15] = cmd_info_22_dummy_en_22_qs;
+ reg_rdata_next[19:16] = cmd_info_22_payload_en_22_qs;
+ reg_rdata_next[20] = cmd_info_22_payload_dir_22_qs;
+ reg_rdata_next[24] = cmd_info_22_upload_22_qs;
+ reg_rdata_next[25] = cmd_info_22_busy_22_qs;
+ end
+
+ addr_hit[50]: begin
+ reg_rdata_next[7:0] = cmd_info_23_opcode_23_qs;
+ reg_rdata_next[8] = cmd_info_23_addr_en_23_qs;
+ reg_rdata_next[9] = cmd_info_23_addr_swap_en_23_qs;
+ reg_rdata_next[10] = cmd_info_23_addr_4b_affected_23_qs;
+ reg_rdata_next[11] = cmd_info_23_mbyte_en_23_qs;
+ reg_rdata_next[14:12] = cmd_info_23_dummy_size_23_qs;
+ reg_rdata_next[15] = cmd_info_23_dummy_en_23_qs;
+ reg_rdata_next[19:16] = cmd_info_23_payload_en_23_qs;
+ reg_rdata_next[20] = cmd_info_23_payload_dir_23_qs;
+ reg_rdata_next[24] = cmd_info_23_upload_23_qs;
+ reg_rdata_next[25] = cmd_info_23_busy_23_qs;
end
default: begin
diff --git a/hw/ip/spi_device/rtl/spi_passthrough.sv b/hw/ip/spi_device/rtl/spi_passthrough.sv
index 2d369a9..f969867 100644
--- a/hw/ip/spi_device/rtl/spi_passthrough.sv
+++ b/hw/ip/spi_device/rtl/spi_passthrough.sv
@@ -572,7 +572,9 @@
cmd_info.addr_en,
cmd_info.addr_swap_en,
cmd_info.addr_4b_affected,
- cmd_info.opcode};
+ cmd_info.opcode,
+ cmd_info.upload,
+ cmd_info.busy};
always_comb begin
cmd_info_d = '0;
diff --git a/hw/ip/spi_device/rtl/spi_readcmd.sv b/hw/ip/spi_device/rtl/spi_readcmd.sv
index 2edf501..b29021b 100644
--- a/hw/ip/spi_device/rtl/spi_readcmd.sv
+++ b/hw/ip/spi_device/rtl/spi_readcmd.sv
@@ -194,7 +194,9 @@
cmd_info_i.addr_en, // Always assume Readcmd has addr_en set
cmd_info_i.addr_swap_en, // address swap feature is used in Passthrough
cmd_info_i.opcode, // Does not need to check opcode. (fixed slot)
- cmd_info_i.payload_dir // Always output mode
+ cmd_info_i.payload_dir, // Always output mode
+ cmd_info_i.upload,
+ cmd_info_i.busy
};
`ASSERT(ValidCmdConfig_A,