[top] Auto generate files
Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/ip/flash_ctrl/data/flash_ctrl.hjson b/hw/ip/flash_ctrl/data/flash_ctrl.hjson
index 4e47f4d..98ca7cc 100644
--- a/hw/ip/flash_ctrl/data/flash_ctrl.hjson
+++ b/hw/ip/flash_ctrl/data/flash_ctrl.hjson
@@ -74,11 +74,11 @@
package: "flash_ctrl_pkg"
},
- { struct: "edn_entropy",
- type: "uni",
+ { struct: "edn",
+ type: "req_rsp",
name: "edn",
- act: "rcv",
- package: "flash_ctrl_pkg"
+ act: "req",
+ package: "edn_pkg"
},
{ struct: "pwr_flash",
@@ -107,13 +107,26 @@
type: "flash_ctrl_pkg::flash_key_t"
randcount: "128",
randtype: "data", // randomize randcount databits
- }
+ },
{ name: "RndCnstDataKey",
desc: "Compile-time random bits for default data key",
type: "flash_ctrl_pkg::flash_key_t"
randcount: "128",
randtype: "data", // randomize randcount databits
- }
+ },
+ { name: "RndCnstLfsrSeed",
+ desc: "Compile-time random bits for initial LFSR seed",
+ type: "flash_ctrl_pkg::lfsr_seed_t"
+ randcount: "32",
+ randtype: "data",
+ },
+ { name: "RndCnstLfsrPerm",
+ desc: "Compile-time random permutation for LFSR output",
+ type: "flash_ctrl_pkg::lfsr_perm_t"
+ randcount: "32",
+ randtype: "perm",
+ },
+
{ name: "RegNumBanks",
desc: "Number of flash banks",
type: "int",
@@ -393,6 +406,26 @@
]
},
+ // erase suspend support
+ { name: "ERASE_SUSPEND",
+ desc: "Suspend erase",
+ swaccess: "rw",
+ hwaccess: "hrw",
+ fields: [
+ { bits: "0",
+ resval: "0",
+ name: "REQ",
+ desc: '''
+ When 1, request erase suspend.
+ If no erase ongoing, the request is immediately cleared by hardware
+ If erase ongoing, the request is fed to the flash_phy and cleared when the suspend is handled.
+ '''
+ },
+ ],
+ tags: [// Erase suspend must be directly tested
+ "excl:CsrAllTests:CsrExclWrite"],
+ },
+
// Data partition memory properties region setup
{ multireg: {
cname: "FLASH_CTRL",
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
index 2ccdca5..e5d3835 100644
--- a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
+++ b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
@@ -9,8 +9,10 @@
`include "prim_assert.sv"
module flash_ctrl import flash_ctrl_pkg::*; #(
- parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault,
- parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault
+ parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault,
+ parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault,
+ parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault,
+ parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault
) (
input clk_i,
input rst_ni,
@@ -40,7 +42,8 @@
output lc_flash_rsp_t lc_o,
input pwrmgr_pkg::pwr_flash_req_t pwrmgr_i,
output pwrmgr_pkg::pwr_flash_rsp_t pwrmgr_o,
- input edn_entropy_t edn_i,
+ output edn_pkg::edn_req_t edn_o,
+ input edn_pkg::edn_rsp_t edn_i,
output keymgr_flash_t keymgr_o,
// Interrupts
@@ -231,16 +234,19 @@
);
prim_lfsr #(
- .EntropyDw(4),
+ .EntropyDw(EdnWidth),
.LfsrDw(LfsrWidth),
- .StateOutDw(LfsrWidth)
+ .StateOutDw(LfsrWidth),
+ .DefaultSeed(RndCnstLfsrSeed),
+ .StatePermEn(1),
+ .StatePerm(RndCnstLfsrPerm)
) u_lfsr (
.clk_i,
.rst_ni,
- .seed_en_i('0),
- .seed_i('0),
+ .seed_en_i(edn_i.edn_ack),
+ .seed_i(edn_i.edn_bus),
.lfsr_en_i(lfsr_en),
- .entropy_i(edn_i.valid ? edn_i.entropy : '0),
+ .entropy_i('0),
.state_o(rand_val)
);
@@ -309,10 +315,7 @@
.phase_o(phase),
// indication that sw has been selected
- .sel_o(if_sel),
-
- // enable lfsr
- .lfsr_en_o(lfsr_en)
+ .sel_o(if_sel)
);
assign op_start = muxed_ctrl.start.q;
@@ -368,9 +371,6 @@
.rma_token_o(lc_o.rma_ack_token),
.rma_rsp_o(lc_o.rma_ack),
- // random value
- .rand_i(rand_val),
-
// outgoing seeds
.seeds_o(keymgr_o.seeds),
.seed_err_o(), // TBD hook-up to Err code register
@@ -387,10 +387,19 @@
.addr_key_o(addr_key),
.data_key_o(data_key),
+ // entropy interface
+ .edn_req_o(edn_o.edn_req),
+ .edn_ack_i(edn_i.edn_ack),
+ .lfsr_en_o(lfsr_en),
+ .rand_i(rand_val),
+
// init ongoing
.init_busy_o(ctrl_init_busy)
);
+ logic unused_edn_fips;
+ assign unused_edn_fips = edn_i.edn_fips;
+
// Program FIFO
// Since the program and read FIFOs are never used at the same time, it should really be one
// FIFO with muxed inputs and outputs. This should be addressed once the flash integration
@@ -636,6 +645,9 @@
assign flash_part_sel = op_part;
assign flash_info_sel = op_info_sel;
+ // tie off hardware clear path
+ assign hw2reg.erase_suspend.d = 1'b0;
+
// Flash memory Properties
// Memory property is page based and thus should use phy addressing
// This should move to flash_phy long term
@@ -664,6 +676,8 @@
.prog_i(prog_op),
.pg_erase_i(erase_op & (erase_flash_type == FlashErasePage)),
.bk_erase_i(erase_op & (erase_flash_type == FlashEraseBank)),
+ .erase_suspend_i(reg2hw.erase_suspend),
+ .erase_suspend_done_o(hw2reg.erase_suspend.de),
.rd_done_o(flash_rd_done),
.prog_done_o(flash_prog_done),
.erase_done_o(flash_erase_done),
@@ -679,6 +693,8 @@
.prog_o(flash_o.prog),
.pg_erase_o(flash_o.pg_erase),
.bk_erase_o(flash_o.bk_erase),
+ .erase_suspend_o(flash_o.erase_suspend),
+ .erase_suspend_done_i(flash_i.erase_suspend_done),
.rd_done_i(flash_i.rd_done),
.prog_done_i(flash_i.prog_done),
.erase_done_i(flash_i.erase_done)
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv
index f76d814..a6a31ac 100644
--- a/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv
+++ b/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv
@@ -76,10 +76,24 @@
// parameters for connected components
parameter int SeedWidth = 256;
parameter int KeyWidth = 128;
- parameter int LfsrWidth = 32;
-
+ parameter int EdnWidth = edn_pkg::ENDPOINT_BUS_WIDTH;
typedef logic [KeyWidth-1:0] flash_key_t;
+ // Default Lfsr configurations
+ // These LFSR parameters have been generated with
+ // $ hw/ip/prim/util/gen-lfsr-seed.py --width 32 --seed 1274809145 --prefix ""
+ parameter int LfsrWidth = 32;
+ typedef logic [LfsrWidth-1:0] lfsr_seed_t;
+ typedef logic [LfsrWidth-1:0][$clog2(LfsrWidth)-1:0] lfsr_perm_t;
+ parameter lfsr_seed_t RndCnstLfsrSeedDefault = 32'ha8cee782;
+ parameter lfsr_perm_t RndCnstLfsrPermDefault = {
+ 160'hd60bc7d86445da9347e0ccdd05b281df95238bb5
+ };
+
+ // These LFSR parameters have been generated with
+ // $ hw/ip/prim/util/gen-lfsr-seed.py --width 64 --seed 691876113 --prefix ""
+
+
// lcmgr phase enum
typedef enum logic [1:0] {
PhaseSeed,
@@ -265,6 +279,7 @@
logic prog;
logic pg_erase;
logic bk_erase;
+ logic erase_suspend;
flash_part_e part;
logic [InfoTypesWidth-1:0] info_sel;
logic [BusAddrW-1:0] addr;
@@ -279,24 +294,25 @@
// default value of flash_req_t (for dangling ports)
parameter flash_req_t FLASH_REQ_DEFAULT = '{
- req: '0,
- scramble_en: '0,
- ecc_en: '0,
- he_en: '0,
- rd: '0,
- prog: '0,
- pg_erase: '0,
- bk_erase: '0,
- part: FlashPartData,
- info_sel: '0,
- addr: '0,
- prog_data: '0,
- prog_last: '0,
- prog_type: FlashProgNormal,
- region_cfgs: '0,
- addr_key: RndCnstAddrKeyDefault,
- data_key: RndCnstDataKeyDefault,
- rd_buf_en: 1'b0
+ req: '0,
+ scramble_en: '0,
+ ecc_en: '0,
+ he_en: '0,
+ rd: '0,
+ prog: '0,
+ pg_erase: '0,
+ bk_erase: '0,
+ erase_suspend: '0,
+ part: FlashPartData,
+ info_sel: '0,
+ addr: '0,
+ prog_data: '0,
+ prog_last: '0,
+ prog_type: FlashProgNormal,
+ region_cfgs: '0,
+ addr_key: RndCnstAddrKeyDefault,
+ data_key: RndCnstDataKeyDefault,
+ rd_buf_en: 1'b0
};
// memory to flash controller
@@ -308,17 +324,19 @@
logic rd_err;
logic [BusWidth-1:0] rd_data;
logic init_busy;
+ logic erase_suspend_done;
} flash_rsp_t;
// default value of flash_rsp_t (for dangling ports)
parameter flash_rsp_t FLASH_RSP_DEFAULT = '{
- prog_type_avail: '{default: '1},
- rd_done: 1'b0,
- prog_done: 1'b0,
- erase_done: 1'b0,
- rd_err: '0,
- rd_data: '0,
- init_busy: 1'b0
+ prog_type_avail: '{default: '1},
+ rd_done: 1'b0,
+ prog_done: 1'b0,
+ erase_done: 1'b0,
+ rd_err: '0,
+ rd_data: '0,
+ init_busy: 1'b0,
+ erase_suspend_done: 1'b1
};
////////////////////////////
@@ -350,22 +368,11 @@
}
};
- // place holder for interface to EDN, replace with real one later
- typedef struct packed {
- logic valid;
- logic [3:0] entropy;
- } edn_entropy_t;
-
parameter lc_flash_req_t LC_FLASH_REQ_DEFAULT = '{
rma_req: 1'b0,
rma_req_token: '0
};
- parameter edn_entropy_t EDN_ENTROPY_DEFAULT = '{
- valid: 1'b1,
- entropy: '0
- };
-
// dft_en jtag selection
typedef enum logic [2:0] {
FlashLcTckSel,
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_pkg.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_pkg.sv
index b89a355..8636b46 100644
--- a/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_pkg.sv
+++ b/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_pkg.sv
@@ -128,6 +128,10 @@
} flash_ctrl_reg2hw_prog_type_en_reg_t;
typedef struct packed {
+ logic q;
+ } flash_ctrl_reg2hw_erase_suspend_reg_t;
+
+ typedef struct packed {
struct packed {
logic q;
} en;
@@ -335,6 +339,11 @@
} flash_ctrl_hw2reg_control_reg_t;
typedef struct packed {
+ logic d;
+ logic de;
+ } flash_ctrl_hw2reg_erase_suspend_reg_t;
+
+ typedef struct packed {
struct packed {
logic d;
logic de;
@@ -392,12 +401,13 @@
// Register to internal design logic //
///////////////////////////////////////
typedef struct packed {
- flash_ctrl_reg2hw_intr_state_reg_t intr_state; // [447:442]
- flash_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [441:436]
- flash_ctrl_reg2hw_intr_test_reg_t intr_test; // [435:424]
- flash_ctrl_reg2hw_control_reg_t control; // [423:405]
- flash_ctrl_reg2hw_addr_reg_t addr; // [404:373]
- flash_ctrl_reg2hw_prog_type_en_reg_t prog_type_en; // [372:371]
+ flash_ctrl_reg2hw_intr_state_reg_t intr_state; // [448:443]
+ flash_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [442:437]
+ flash_ctrl_reg2hw_intr_test_reg_t intr_test; // [436:425]
+ flash_ctrl_reg2hw_control_reg_t control; // [424:406]
+ flash_ctrl_reg2hw_addr_reg_t addr; // [405:374]
+ flash_ctrl_reg2hw_prog_type_en_reg_t prog_type_en; // [373:372]
+ flash_ctrl_reg2hw_erase_suspend_reg_t erase_suspend; // [371:371]
flash_ctrl_reg2hw_mp_region_cfg_mreg_t [7:0] mp_region_cfg; // [370:163]
flash_ctrl_reg2hw_default_region_reg_t default_region; // [162:157]
flash_ctrl_reg2hw_bank0_info0_page_cfg_mreg_t [3:0] bank0_info0_page_cfg; // [156:129]
@@ -414,9 +424,10 @@
// Internal design logic to register //
///////////////////////////////////////
typedef struct packed {
- flash_ctrl_hw2reg_intr_state_reg_t intr_state; // [44:33]
- flash_ctrl_hw2reg_ctrl_regwen_reg_t ctrl_regwen; // [32:32]
- flash_ctrl_hw2reg_control_reg_t control; // [31:30]
+ flash_ctrl_hw2reg_intr_state_reg_t intr_state; // [46:35]
+ flash_ctrl_hw2reg_ctrl_regwen_reg_t ctrl_regwen; // [34:34]
+ flash_ctrl_hw2reg_control_reg_t control; // [33:32]
+ flash_ctrl_hw2reg_erase_suspend_reg_t erase_suspend; // [31:30]
flash_ctrl_hw2reg_op_status_reg_t op_status; // [29:26]
flash_ctrl_hw2reg_status_reg_t status; // [25:6]
flash_ctrl_hw2reg_phy_status_reg_t phy_status; // [5:0]
@@ -430,68 +441,69 @@
parameter logic [8:0] FLASH_CTRL_CONTROL_OFFSET = 9'h 10;
parameter logic [8:0] FLASH_CTRL_ADDR_OFFSET = 9'h 14;
parameter logic [8:0] FLASH_CTRL_PROG_TYPE_EN_OFFSET = 9'h 18;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET = 9'h 1c;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET = 9'h 20;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET = 9'h 24;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET = 9'h 28;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET = 9'h 2c;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET = 9'h 30;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET = 9'h 34;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET = 9'h 38;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_0_OFFSET = 9'h 3c;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_1_OFFSET = 9'h 40;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_2_OFFSET = 9'h 44;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_3_OFFSET = 9'h 48;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_4_OFFSET = 9'h 4c;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_5_OFFSET = 9'h 50;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_6_OFFSET = 9'h 54;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_7_OFFSET = 9'h 58;
- parameter logic [8:0] FLASH_CTRL_DEFAULT_REGION_OFFSET = 9'h 5c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET = 9'h 60;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET = 9'h 64;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET = 9'h 68;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET = 9'h 6c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET = 9'h 70;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET = 9'h 74;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET = 9'h 78;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET = 9'h 7c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET = 9'h 80;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET = 9'h 84;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET = 9'h 88;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET = 9'h 8c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET = 9'h 90;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET = 9'h 94;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET = 9'h 98;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET = 9'h 9c;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET = 9'h a0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET = 9'h a4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET = 9'h a8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET = 9'h ac;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET = 9'h b0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET = 9'h b4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET = 9'h b8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET = 9'h bc;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET = 9'h c0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET = 9'h c4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET = 9'h c8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET = 9'h cc;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET = 9'h d0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET = 9'h d4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET = 9'h d8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET = 9'h dc;
- parameter logic [8:0] FLASH_CTRL_BANK_CFG_REGWEN_OFFSET = 9'h e0;
- parameter logic [8:0] FLASH_CTRL_MP_BANK_CFG_OFFSET = 9'h e4;
- parameter logic [8:0] FLASH_CTRL_OP_STATUS_OFFSET = 9'h e8;
- parameter logic [8:0] FLASH_CTRL_STATUS_OFFSET = 9'h ec;
- parameter logic [8:0] FLASH_CTRL_PHY_STATUS_OFFSET = 9'h f0;
- parameter logic [8:0] FLASH_CTRL_SCRATCH_OFFSET = 9'h f4;
- parameter logic [8:0] FLASH_CTRL_FIFO_LVL_OFFSET = 9'h f8;
- parameter logic [8:0] FLASH_CTRL_FIFO_RST_OFFSET = 9'h fc;
+ parameter logic [8:0] FLASH_CTRL_ERASE_SUSPEND_OFFSET = 9'h 1c;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET = 9'h 20;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET = 9'h 24;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET = 9'h 28;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET = 9'h 2c;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET = 9'h 30;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET = 9'h 34;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET = 9'h 38;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET = 9'h 3c;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_0_OFFSET = 9'h 40;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_1_OFFSET = 9'h 44;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_2_OFFSET = 9'h 48;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_3_OFFSET = 9'h 4c;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_4_OFFSET = 9'h 50;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_5_OFFSET = 9'h 54;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_6_OFFSET = 9'h 58;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_7_OFFSET = 9'h 5c;
+ parameter logic [8:0] FLASH_CTRL_DEFAULT_REGION_OFFSET = 9'h 60;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET = 9'h 64;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET = 9'h 68;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET = 9'h 6c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET = 9'h 70;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET = 9'h 74;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET = 9'h 78;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET = 9'h 7c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET = 9'h 80;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET = 9'h 84;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET = 9'h 88;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET = 9'h 8c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET = 9'h 90;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET = 9'h 94;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET = 9'h 98;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET = 9'h 9c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET = 9'h a0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET = 9'h a4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET = 9'h a8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET = 9'h ac;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET = 9'h b0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET = 9'h b4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET = 9'h b8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET = 9'h bc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET = 9'h c0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET = 9'h c4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET = 9'h c8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET = 9'h cc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET = 9'h d0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET = 9'h d4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET = 9'h d8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET = 9'h dc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET = 9'h e0;
+ parameter logic [8:0] FLASH_CTRL_BANK_CFG_REGWEN_OFFSET = 9'h e4;
+ parameter logic [8:0] FLASH_CTRL_MP_BANK_CFG_OFFSET = 9'h e8;
+ parameter logic [8:0] FLASH_CTRL_OP_STATUS_OFFSET = 9'h ec;
+ parameter logic [8:0] FLASH_CTRL_STATUS_OFFSET = 9'h f0;
+ parameter logic [8:0] FLASH_CTRL_PHY_STATUS_OFFSET = 9'h f4;
+ parameter logic [8:0] FLASH_CTRL_SCRATCH_OFFSET = 9'h f8;
+ parameter logic [8:0] FLASH_CTRL_FIFO_LVL_OFFSET = 9'h fc;
+ parameter logic [8:0] FLASH_CTRL_FIFO_RST_OFFSET = 9'h 100;
// Window parameter
- parameter logic [8:0] FLASH_CTRL_PROG_FIFO_OFFSET = 9'h 100;
+ parameter logic [8:0] FLASH_CTRL_PROG_FIFO_OFFSET = 9'h 104;
parameter logic [8:0] FLASH_CTRL_PROG_FIFO_SIZE = 9'h 4;
- parameter logic [8:0] FLASH_CTRL_RD_FIFO_OFFSET = 9'h 104;
+ parameter logic [8:0] FLASH_CTRL_RD_FIFO_OFFSET = 9'h 108;
parameter logic [8:0] FLASH_CTRL_RD_FIFO_SIZE = 9'h 4;
// Register Index
@@ -503,6 +515,7 @@
FLASH_CTRL_CONTROL,
FLASH_CTRL_ADDR,
FLASH_CTRL_PROG_TYPE_EN,
+ FLASH_CTRL_ERASE_SUSPEND,
FLASH_CTRL_REGION_CFG_REGWEN_0,
FLASH_CTRL_REGION_CFG_REGWEN_1,
FLASH_CTRL_REGION_CFG_REGWEN_2,
@@ -563,7 +576,7 @@
} flash_ctrl_id_e;
// Register width information to check illegal writes
- parameter logic [3:0] FLASH_CTRL_PERMIT [64] = '{
+ parameter logic [3:0] FLASH_CTRL_PERMIT [65] = '{
4'b 0001, // index[ 0] FLASH_CTRL_INTR_STATE
4'b 0001, // index[ 1] FLASH_CTRL_INTR_ENABLE
4'b 0001, // index[ 2] FLASH_CTRL_INTR_TEST
@@ -571,63 +584,64 @@
4'b 1111, // index[ 4] FLASH_CTRL_CONTROL
4'b 1111, // index[ 5] FLASH_CTRL_ADDR
4'b 0001, // index[ 6] FLASH_CTRL_PROG_TYPE_EN
- 4'b 0001, // index[ 7] FLASH_CTRL_REGION_CFG_REGWEN_0
- 4'b 0001, // index[ 8] FLASH_CTRL_REGION_CFG_REGWEN_1
- 4'b 0001, // index[ 9] FLASH_CTRL_REGION_CFG_REGWEN_2
- 4'b 0001, // index[10] FLASH_CTRL_REGION_CFG_REGWEN_3
- 4'b 0001, // index[11] FLASH_CTRL_REGION_CFG_REGWEN_4
- 4'b 0001, // index[12] FLASH_CTRL_REGION_CFG_REGWEN_5
- 4'b 0001, // index[13] FLASH_CTRL_REGION_CFG_REGWEN_6
- 4'b 0001, // index[14] FLASH_CTRL_REGION_CFG_REGWEN_7
- 4'b 1111, // index[15] FLASH_CTRL_MP_REGION_CFG_0
- 4'b 1111, // index[16] FLASH_CTRL_MP_REGION_CFG_1
- 4'b 1111, // index[17] FLASH_CTRL_MP_REGION_CFG_2
- 4'b 1111, // index[18] FLASH_CTRL_MP_REGION_CFG_3
- 4'b 1111, // index[19] FLASH_CTRL_MP_REGION_CFG_4
- 4'b 1111, // index[20] FLASH_CTRL_MP_REGION_CFG_5
- 4'b 1111, // index[21] FLASH_CTRL_MP_REGION_CFG_6
- 4'b 1111, // index[22] FLASH_CTRL_MP_REGION_CFG_7
- 4'b 0001, // index[23] FLASH_CTRL_DEFAULT_REGION
- 4'b 0001, // index[24] FLASH_CTRL_BANK0_INFO0_REGWEN_0
- 4'b 0001, // index[25] FLASH_CTRL_BANK0_INFO0_REGWEN_1
- 4'b 0001, // index[26] FLASH_CTRL_BANK0_INFO0_REGWEN_2
- 4'b 0001, // index[27] FLASH_CTRL_BANK0_INFO0_REGWEN_3
- 4'b 0001, // index[28] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0
- 4'b 0001, // index[29] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1
- 4'b 0001, // index[30] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2
- 4'b 0001, // index[31] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3
- 4'b 0001, // index[32] FLASH_CTRL_BANK0_INFO1_REGWEN_0
- 4'b 0001, // index[33] FLASH_CTRL_BANK0_INFO1_REGWEN_1
- 4'b 0001, // index[34] FLASH_CTRL_BANK0_INFO1_REGWEN_2
- 4'b 0001, // index[35] FLASH_CTRL_BANK0_INFO1_REGWEN_3
- 4'b 0001, // index[36] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0
- 4'b 0001, // index[37] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1
- 4'b 0001, // index[38] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2
- 4'b 0001, // index[39] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3
- 4'b 0001, // index[40] FLASH_CTRL_BANK1_INFO0_REGWEN_0
- 4'b 0001, // index[41] FLASH_CTRL_BANK1_INFO0_REGWEN_1
- 4'b 0001, // index[42] FLASH_CTRL_BANK1_INFO0_REGWEN_2
- 4'b 0001, // index[43] FLASH_CTRL_BANK1_INFO0_REGWEN_3
- 4'b 0001, // index[44] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0
- 4'b 0001, // index[45] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1
- 4'b 0001, // index[46] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2
- 4'b 0001, // index[47] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3
- 4'b 0001, // index[48] FLASH_CTRL_BANK1_INFO1_REGWEN_0
- 4'b 0001, // index[49] FLASH_CTRL_BANK1_INFO1_REGWEN_1
- 4'b 0001, // index[50] FLASH_CTRL_BANK1_INFO1_REGWEN_2
- 4'b 0001, // index[51] FLASH_CTRL_BANK1_INFO1_REGWEN_3
- 4'b 0001, // index[52] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0
- 4'b 0001, // index[53] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1
- 4'b 0001, // index[54] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2
- 4'b 0001, // index[55] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3
- 4'b 0001, // index[56] FLASH_CTRL_BANK_CFG_REGWEN
- 4'b 0001, // index[57] FLASH_CTRL_MP_BANK_CFG
- 4'b 0001, // index[58] FLASH_CTRL_OP_STATUS
- 4'b 0111, // index[59] FLASH_CTRL_STATUS
- 4'b 0001, // index[60] FLASH_CTRL_PHY_STATUS
- 4'b 1111, // index[61] FLASH_CTRL_SCRATCH
- 4'b 0011, // index[62] FLASH_CTRL_FIFO_LVL
- 4'b 0001 // index[63] FLASH_CTRL_FIFO_RST
+ 4'b 0001, // index[ 7] FLASH_CTRL_ERASE_SUSPEND
+ 4'b 0001, // index[ 8] FLASH_CTRL_REGION_CFG_REGWEN_0
+ 4'b 0001, // index[ 9] FLASH_CTRL_REGION_CFG_REGWEN_1
+ 4'b 0001, // index[10] FLASH_CTRL_REGION_CFG_REGWEN_2
+ 4'b 0001, // index[11] FLASH_CTRL_REGION_CFG_REGWEN_3
+ 4'b 0001, // index[12] FLASH_CTRL_REGION_CFG_REGWEN_4
+ 4'b 0001, // index[13] FLASH_CTRL_REGION_CFG_REGWEN_5
+ 4'b 0001, // index[14] FLASH_CTRL_REGION_CFG_REGWEN_6
+ 4'b 0001, // index[15] FLASH_CTRL_REGION_CFG_REGWEN_7
+ 4'b 1111, // index[16] FLASH_CTRL_MP_REGION_CFG_0
+ 4'b 1111, // index[17] FLASH_CTRL_MP_REGION_CFG_1
+ 4'b 1111, // index[18] FLASH_CTRL_MP_REGION_CFG_2
+ 4'b 1111, // index[19] FLASH_CTRL_MP_REGION_CFG_3
+ 4'b 1111, // index[20] FLASH_CTRL_MP_REGION_CFG_4
+ 4'b 1111, // index[21] FLASH_CTRL_MP_REGION_CFG_5
+ 4'b 1111, // index[22] FLASH_CTRL_MP_REGION_CFG_6
+ 4'b 1111, // index[23] FLASH_CTRL_MP_REGION_CFG_7
+ 4'b 0001, // index[24] FLASH_CTRL_DEFAULT_REGION
+ 4'b 0001, // index[25] FLASH_CTRL_BANK0_INFO0_REGWEN_0
+ 4'b 0001, // index[26] FLASH_CTRL_BANK0_INFO0_REGWEN_1
+ 4'b 0001, // index[27] FLASH_CTRL_BANK0_INFO0_REGWEN_2
+ 4'b 0001, // index[28] FLASH_CTRL_BANK0_INFO0_REGWEN_3
+ 4'b 0001, // index[29] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0
+ 4'b 0001, // index[30] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1
+ 4'b 0001, // index[31] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2
+ 4'b 0001, // index[32] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3
+ 4'b 0001, // index[33] FLASH_CTRL_BANK0_INFO1_REGWEN_0
+ 4'b 0001, // index[34] FLASH_CTRL_BANK0_INFO1_REGWEN_1
+ 4'b 0001, // index[35] FLASH_CTRL_BANK0_INFO1_REGWEN_2
+ 4'b 0001, // index[36] FLASH_CTRL_BANK0_INFO1_REGWEN_3
+ 4'b 0001, // index[37] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0
+ 4'b 0001, // index[38] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1
+ 4'b 0001, // index[39] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2
+ 4'b 0001, // index[40] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3
+ 4'b 0001, // index[41] FLASH_CTRL_BANK1_INFO0_REGWEN_0
+ 4'b 0001, // index[42] FLASH_CTRL_BANK1_INFO0_REGWEN_1
+ 4'b 0001, // index[43] FLASH_CTRL_BANK1_INFO0_REGWEN_2
+ 4'b 0001, // index[44] FLASH_CTRL_BANK1_INFO0_REGWEN_3
+ 4'b 0001, // index[45] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0
+ 4'b 0001, // index[46] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1
+ 4'b 0001, // index[47] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2
+ 4'b 0001, // index[48] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3
+ 4'b 0001, // index[49] FLASH_CTRL_BANK1_INFO1_REGWEN_0
+ 4'b 0001, // index[50] FLASH_CTRL_BANK1_INFO1_REGWEN_1
+ 4'b 0001, // index[51] FLASH_CTRL_BANK1_INFO1_REGWEN_2
+ 4'b 0001, // index[52] FLASH_CTRL_BANK1_INFO1_REGWEN_3
+ 4'b 0001, // index[53] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0
+ 4'b 0001, // index[54] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1
+ 4'b 0001, // index[55] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2
+ 4'b 0001, // index[56] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3
+ 4'b 0001, // index[57] FLASH_CTRL_BANK_CFG_REGWEN
+ 4'b 0001, // index[58] FLASH_CTRL_MP_BANK_CFG
+ 4'b 0001, // index[59] FLASH_CTRL_OP_STATUS
+ 4'b 0111, // index[60] FLASH_CTRL_STATUS
+ 4'b 0001, // index[61] FLASH_CTRL_PHY_STATUS
+ 4'b 1111, // index[62] FLASH_CTRL_SCRATCH
+ 4'b 0011, // index[63] FLASH_CTRL_FIFO_LVL
+ 4'b 0001 // index[64] FLASH_CTRL_FIFO_RST
};
endpackage
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_top.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_top.sv
index a45cd51..b9b23df 100644
--- a/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_top.sv
+++ b/hw/ip/flash_ctrl/rtl/flash_ctrl_reg_top.sv
@@ -88,10 +88,10 @@
reg_steer = 2; // Default set to register
// TODO: Can below codes be unique case () inside ?
- if (tl_i.a_address[AW-1:0] >= 256 && tl_i.a_address[AW-1:0] < 260) begin
+ if (tl_i.a_address[AW-1:0] >= 260 && tl_i.a_address[AW-1:0] < 264) begin
reg_steer = 0;
end
- if (tl_i.a_address[AW-1:0] >= 260 && tl_i.a_address[AW-1:0] < 264) begin
+ if (tl_i.a_address[AW-1:0] >= 264 && tl_i.a_address[AW-1:0] < 268) begin
reg_steer = 1;
end
end
@@ -201,6 +201,9 @@
logic prog_type_en_repair_qs;
logic prog_type_en_repair_wd;
logic prog_type_en_repair_we;
+ logic erase_suspend_qs;
+ logic erase_suspend_wd;
+ logic erase_suspend_we;
logic region_cfg_regwen_0_qs;
logic region_cfg_regwen_0_wd;
logic region_cfg_regwen_0_we;
@@ -1570,6 +1573,33 @@
);
+ // R[erase_suspend]: V(False)
+
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_erase_suspend (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (erase_suspend_we),
+ .wd (erase_suspend_wd),
+
+ // from internal hardware
+ .de (hw2reg.erase_suspend.de),
+ .d (hw2reg.erase_suspend.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.erase_suspend.q ),
+
+ // to register interface (read)
+ .qs (erase_suspend_qs)
+ );
+
+
// Subregister 0 of Multireg region_cfg_regwen
// R[region_cfg_regwen_0]: V(False)
@@ -7729,7 +7759,7 @@
- logic [63:0] addr_hit;
+ logic [64:0] addr_hit;
always_comb begin
addr_hit = '0;
addr_hit[ 0] = (reg_addr == FLASH_CTRL_INTR_STATE_OFFSET);
@@ -7739,63 +7769,64 @@
addr_hit[ 4] = (reg_addr == FLASH_CTRL_CONTROL_OFFSET);
addr_hit[ 5] = (reg_addr == FLASH_CTRL_ADDR_OFFSET);
addr_hit[ 6] = (reg_addr == FLASH_CTRL_PROG_TYPE_EN_OFFSET);
- addr_hit[ 7] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET);
- addr_hit[ 8] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET);
- addr_hit[ 9] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET);
- addr_hit[10] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET);
- addr_hit[11] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET);
- addr_hit[12] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET);
- addr_hit[13] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET);
- addr_hit[14] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET);
- addr_hit[15] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_0_OFFSET);
- addr_hit[16] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_1_OFFSET);
- addr_hit[17] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_2_OFFSET);
- addr_hit[18] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_3_OFFSET);
- addr_hit[19] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_4_OFFSET);
- addr_hit[20] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_5_OFFSET);
- addr_hit[21] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_6_OFFSET);
- addr_hit[22] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_7_OFFSET);
- addr_hit[23] = (reg_addr == FLASH_CTRL_DEFAULT_REGION_OFFSET);
- addr_hit[24] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET);
- addr_hit[25] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET);
- addr_hit[26] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET);
- addr_hit[27] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET);
- addr_hit[28] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET);
- addr_hit[29] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET);
- addr_hit[30] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET);
- addr_hit[31] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET);
- addr_hit[32] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET);
- addr_hit[33] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET);
- addr_hit[34] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET);
- addr_hit[35] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET);
- addr_hit[36] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET);
- addr_hit[37] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET);
- addr_hit[38] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET);
- addr_hit[39] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET);
- addr_hit[40] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET);
- addr_hit[41] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET);
- addr_hit[42] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET);
- addr_hit[43] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET);
- addr_hit[44] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET);
- addr_hit[45] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET);
- addr_hit[46] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET);
- addr_hit[47] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET);
- addr_hit[48] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET);
- addr_hit[49] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET);
- addr_hit[50] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET);
- addr_hit[51] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET);
- addr_hit[52] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET);
- addr_hit[53] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET);
- addr_hit[54] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET);
- addr_hit[55] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET);
- addr_hit[56] = (reg_addr == FLASH_CTRL_BANK_CFG_REGWEN_OFFSET);
- addr_hit[57] = (reg_addr == FLASH_CTRL_MP_BANK_CFG_OFFSET);
- addr_hit[58] = (reg_addr == FLASH_CTRL_OP_STATUS_OFFSET);
- addr_hit[59] = (reg_addr == FLASH_CTRL_STATUS_OFFSET);
- addr_hit[60] = (reg_addr == FLASH_CTRL_PHY_STATUS_OFFSET);
- addr_hit[61] = (reg_addr == FLASH_CTRL_SCRATCH_OFFSET);
- addr_hit[62] = (reg_addr == FLASH_CTRL_FIFO_LVL_OFFSET);
- addr_hit[63] = (reg_addr == FLASH_CTRL_FIFO_RST_OFFSET);
+ addr_hit[ 7] = (reg_addr == FLASH_CTRL_ERASE_SUSPEND_OFFSET);
+ addr_hit[ 8] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET);
+ addr_hit[ 9] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET);
+ addr_hit[10] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET);
+ addr_hit[11] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET);
+ addr_hit[12] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET);
+ addr_hit[13] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET);
+ addr_hit[14] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET);
+ addr_hit[15] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET);
+ addr_hit[16] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_0_OFFSET);
+ addr_hit[17] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_1_OFFSET);
+ addr_hit[18] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_2_OFFSET);
+ addr_hit[19] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_3_OFFSET);
+ addr_hit[20] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_4_OFFSET);
+ addr_hit[21] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_5_OFFSET);
+ addr_hit[22] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_6_OFFSET);
+ addr_hit[23] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_7_OFFSET);
+ addr_hit[24] = (reg_addr == FLASH_CTRL_DEFAULT_REGION_OFFSET);
+ addr_hit[25] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET);
+ addr_hit[26] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET);
+ addr_hit[27] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET);
+ addr_hit[28] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET);
+ addr_hit[29] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET);
+ addr_hit[30] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET);
+ addr_hit[31] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET);
+ addr_hit[32] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET);
+ addr_hit[33] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET);
+ addr_hit[34] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET);
+ addr_hit[35] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET);
+ addr_hit[36] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET);
+ addr_hit[37] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET);
+ addr_hit[38] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET);
+ addr_hit[39] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET);
+ addr_hit[40] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET);
+ addr_hit[41] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET);
+ addr_hit[42] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET);
+ addr_hit[43] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET);
+ addr_hit[44] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET);
+ addr_hit[45] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET);
+ addr_hit[46] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET);
+ addr_hit[47] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET);
+ addr_hit[48] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET);
+ addr_hit[49] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET);
+ addr_hit[50] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET);
+ addr_hit[51] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET);
+ addr_hit[52] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET);
+ addr_hit[53] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET);
+ addr_hit[54] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET);
+ addr_hit[55] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET);
+ addr_hit[56] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET);
+ addr_hit[57] = (reg_addr == FLASH_CTRL_BANK_CFG_REGWEN_OFFSET);
+ addr_hit[58] = (reg_addr == FLASH_CTRL_MP_BANK_CFG_OFFSET);
+ addr_hit[59] = (reg_addr == FLASH_CTRL_OP_STATUS_OFFSET);
+ addr_hit[60] = (reg_addr == FLASH_CTRL_STATUS_OFFSET);
+ addr_hit[61] = (reg_addr == FLASH_CTRL_PHY_STATUS_OFFSET);
+ addr_hit[62] = (reg_addr == FLASH_CTRL_SCRATCH_OFFSET);
+ addr_hit[63] = (reg_addr == FLASH_CTRL_FIFO_LVL_OFFSET);
+ addr_hit[64] = (reg_addr == FLASH_CTRL_FIFO_RST_OFFSET);
end
assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -7867,6 +7898,7 @@
if (addr_hit[61] && reg_we && (FLASH_CTRL_PERMIT[61] != (FLASH_CTRL_PERMIT[61] & reg_be))) wr_err = 1'b1 ;
if (addr_hit[62] && reg_we && (FLASH_CTRL_PERMIT[62] != (FLASH_CTRL_PERMIT[62] & reg_be))) wr_err = 1'b1 ;
if (addr_hit[63] && reg_we && (FLASH_CTRL_PERMIT[63] != (FLASH_CTRL_PERMIT[63] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[64] && reg_we && (FLASH_CTRL_PERMIT[64] != (FLASH_CTRL_PERMIT[64] & reg_be))) wr_err = 1'b1 ;
end
assign intr_state_prog_empty_we = addr_hit[0] & reg_we & ~wr_err;
@@ -7955,661 +7987,664 @@
assign prog_type_en_repair_we = addr_hit[6] & reg_we & ~wr_err;
assign prog_type_en_repair_wd = reg_wdata[1];
- assign region_cfg_regwen_0_we = addr_hit[7] & reg_we & ~wr_err;
+ assign erase_suspend_we = addr_hit[7] & reg_we & ~wr_err;
+ assign erase_suspend_wd = reg_wdata[0];
+
+ assign region_cfg_regwen_0_we = addr_hit[8] & reg_we & ~wr_err;
assign region_cfg_regwen_0_wd = reg_wdata[0];
- assign region_cfg_regwen_1_we = addr_hit[8] & reg_we & ~wr_err;
+ assign region_cfg_regwen_1_we = addr_hit[9] & reg_we & ~wr_err;
assign region_cfg_regwen_1_wd = reg_wdata[0];
- assign region_cfg_regwen_2_we = addr_hit[9] & reg_we & ~wr_err;
+ assign region_cfg_regwen_2_we = addr_hit[10] & reg_we & ~wr_err;
assign region_cfg_regwen_2_wd = reg_wdata[0];
- assign region_cfg_regwen_3_we = addr_hit[10] & reg_we & ~wr_err;
+ assign region_cfg_regwen_3_we = addr_hit[11] & reg_we & ~wr_err;
assign region_cfg_regwen_3_wd = reg_wdata[0];
- assign region_cfg_regwen_4_we = addr_hit[11] & reg_we & ~wr_err;
+ assign region_cfg_regwen_4_we = addr_hit[12] & reg_we & ~wr_err;
assign region_cfg_regwen_4_wd = reg_wdata[0];
- assign region_cfg_regwen_5_we = addr_hit[12] & reg_we & ~wr_err;
+ assign region_cfg_regwen_5_we = addr_hit[13] & reg_we & ~wr_err;
assign region_cfg_regwen_5_wd = reg_wdata[0];
- assign region_cfg_regwen_6_we = addr_hit[13] & reg_we & ~wr_err;
+ assign region_cfg_regwen_6_we = addr_hit[14] & reg_we & ~wr_err;
assign region_cfg_regwen_6_wd = reg_wdata[0];
- assign region_cfg_regwen_7_we = addr_hit[14] & reg_we & ~wr_err;
+ assign region_cfg_regwen_7_we = addr_hit[15] & reg_we & ~wr_err;
assign region_cfg_regwen_7_wd = reg_wdata[0];
- assign mp_region_cfg_0_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_en_0_wd = reg_wdata[0];
- assign mp_region_cfg_0_rd_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_rd_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign mp_region_cfg_0_prog_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_prog_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign mp_region_cfg_0_erase_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_erase_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign mp_region_cfg_0_scramble_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_scramble_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign mp_region_cfg_0_ecc_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_ecc_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign mp_region_cfg_0_he_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_he_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_he_en_0_wd = reg_wdata[6];
- assign mp_region_cfg_0_base_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_base_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_base_0_wd = reg_wdata[16:8];
- assign mp_region_cfg_0_size_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_size_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_size_0_wd = reg_wdata[29:20];
- assign mp_region_cfg_1_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_en_1_wd = reg_wdata[0];
- assign mp_region_cfg_1_rd_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_rd_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign mp_region_cfg_1_prog_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_prog_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign mp_region_cfg_1_erase_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_erase_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign mp_region_cfg_1_scramble_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_scramble_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign mp_region_cfg_1_ecc_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_ecc_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign mp_region_cfg_1_he_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_he_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_he_en_1_wd = reg_wdata[6];
- assign mp_region_cfg_1_base_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_base_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_base_1_wd = reg_wdata[16:8];
- assign mp_region_cfg_1_size_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_size_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_size_1_wd = reg_wdata[29:20];
- assign mp_region_cfg_2_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_en_2_wd = reg_wdata[0];
- assign mp_region_cfg_2_rd_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_rd_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign mp_region_cfg_2_prog_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_prog_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign mp_region_cfg_2_erase_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_erase_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign mp_region_cfg_2_scramble_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_scramble_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign mp_region_cfg_2_ecc_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_ecc_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign mp_region_cfg_2_he_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_he_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_he_en_2_wd = reg_wdata[6];
- assign mp_region_cfg_2_base_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_base_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_base_2_wd = reg_wdata[16:8];
- assign mp_region_cfg_2_size_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_size_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_size_2_wd = reg_wdata[29:20];
- assign mp_region_cfg_3_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_en_3_wd = reg_wdata[0];
- assign mp_region_cfg_3_rd_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_rd_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign mp_region_cfg_3_prog_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_prog_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign mp_region_cfg_3_erase_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_erase_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign mp_region_cfg_3_scramble_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_scramble_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign mp_region_cfg_3_ecc_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_ecc_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign mp_region_cfg_3_he_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_he_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_he_en_3_wd = reg_wdata[6];
- assign mp_region_cfg_3_base_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_base_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_base_3_wd = reg_wdata[16:8];
- assign mp_region_cfg_3_size_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_size_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_size_3_wd = reg_wdata[29:20];
- assign mp_region_cfg_4_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_en_4_wd = reg_wdata[0];
- assign mp_region_cfg_4_rd_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_rd_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_rd_en_4_wd = reg_wdata[1];
- assign mp_region_cfg_4_prog_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_prog_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_prog_en_4_wd = reg_wdata[2];
- assign mp_region_cfg_4_erase_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_erase_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_erase_en_4_wd = reg_wdata[3];
- assign mp_region_cfg_4_scramble_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_scramble_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_scramble_en_4_wd = reg_wdata[4];
- assign mp_region_cfg_4_ecc_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_ecc_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_ecc_en_4_wd = reg_wdata[5];
- assign mp_region_cfg_4_he_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_he_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_he_en_4_wd = reg_wdata[6];
- assign mp_region_cfg_4_base_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_base_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_base_4_wd = reg_wdata[16:8];
- assign mp_region_cfg_4_size_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_size_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_size_4_wd = reg_wdata[29:20];
- assign mp_region_cfg_5_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_en_5_wd = reg_wdata[0];
- assign mp_region_cfg_5_rd_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_rd_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_rd_en_5_wd = reg_wdata[1];
- assign mp_region_cfg_5_prog_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_prog_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_prog_en_5_wd = reg_wdata[2];
- assign mp_region_cfg_5_erase_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_erase_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_erase_en_5_wd = reg_wdata[3];
- assign mp_region_cfg_5_scramble_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_scramble_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_scramble_en_5_wd = reg_wdata[4];
- assign mp_region_cfg_5_ecc_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_ecc_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_ecc_en_5_wd = reg_wdata[5];
- assign mp_region_cfg_5_he_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_he_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_he_en_5_wd = reg_wdata[6];
- assign mp_region_cfg_5_base_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_base_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_base_5_wd = reg_wdata[16:8];
- assign mp_region_cfg_5_size_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_size_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_size_5_wd = reg_wdata[29:20];
- assign mp_region_cfg_6_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_en_6_wd = reg_wdata[0];
- assign mp_region_cfg_6_rd_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_rd_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_rd_en_6_wd = reg_wdata[1];
- assign mp_region_cfg_6_prog_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_prog_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_prog_en_6_wd = reg_wdata[2];
- assign mp_region_cfg_6_erase_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_erase_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_erase_en_6_wd = reg_wdata[3];
- assign mp_region_cfg_6_scramble_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_scramble_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_scramble_en_6_wd = reg_wdata[4];
- assign mp_region_cfg_6_ecc_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_ecc_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_ecc_en_6_wd = reg_wdata[5];
- assign mp_region_cfg_6_he_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_he_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_he_en_6_wd = reg_wdata[6];
- assign mp_region_cfg_6_base_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_base_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_base_6_wd = reg_wdata[16:8];
- assign mp_region_cfg_6_size_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_size_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_size_6_wd = reg_wdata[29:20];
- assign mp_region_cfg_7_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_en_7_wd = reg_wdata[0];
- assign mp_region_cfg_7_rd_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_rd_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_rd_en_7_wd = reg_wdata[1];
- assign mp_region_cfg_7_prog_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_prog_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_prog_en_7_wd = reg_wdata[2];
- assign mp_region_cfg_7_erase_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_erase_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_erase_en_7_wd = reg_wdata[3];
- assign mp_region_cfg_7_scramble_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_scramble_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_scramble_en_7_wd = reg_wdata[4];
- assign mp_region_cfg_7_ecc_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_ecc_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_ecc_en_7_wd = reg_wdata[5];
- assign mp_region_cfg_7_he_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_he_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_he_en_7_wd = reg_wdata[6];
- assign mp_region_cfg_7_base_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_base_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_base_7_wd = reg_wdata[16:8];
- assign mp_region_cfg_7_size_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_size_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_size_7_wd = reg_wdata[29:20];
- assign default_region_rd_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_rd_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_rd_en_wd = reg_wdata[0];
- assign default_region_prog_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_prog_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_prog_en_wd = reg_wdata[1];
- assign default_region_erase_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_erase_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_erase_en_wd = reg_wdata[2];
- assign default_region_scramble_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_scramble_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_scramble_en_wd = reg_wdata[3];
- assign default_region_ecc_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_ecc_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_ecc_en_wd = reg_wdata[4];
- assign default_region_he_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_he_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_he_en_wd = reg_wdata[5];
- assign bank0_info0_regwen_0_we = addr_hit[24] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_0_we = addr_hit[25] & reg_we & ~wr_err;
assign bank0_info0_regwen_0_wd = reg_wdata[0];
- assign bank0_info0_regwen_1_we = addr_hit[25] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_1_we = addr_hit[26] & reg_we & ~wr_err;
assign bank0_info0_regwen_1_wd = reg_wdata[0];
- assign bank0_info0_regwen_2_we = addr_hit[26] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_2_we = addr_hit[27] & reg_we & ~wr_err;
assign bank0_info0_regwen_2_wd = reg_wdata[0];
- assign bank0_info0_regwen_3_we = addr_hit[27] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_3_we = addr_hit[28] & reg_we & ~wr_err;
assign bank0_info0_regwen_3_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_0_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_0_rd_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_rd_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_0_prog_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_prog_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_0_erase_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_erase_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_0_scramble_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_scramble_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_0_ecc_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_ecc_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_0_he_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_he_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_1_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_1_rd_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_rd_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_1_prog_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_prog_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_1_erase_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_erase_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_1_scramble_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_scramble_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_1_ecc_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_ecc_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_1_he_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_he_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_2_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_2_rd_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_rd_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_2_prog_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_prog_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_2_erase_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_erase_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_2_scramble_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_scramble_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_2_ecc_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_ecc_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_2_he_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_he_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_3_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_3_rd_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_rd_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_3_prog_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_prog_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_3_erase_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_erase_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_3_scramble_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_scramble_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_3_ecc_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_ecc_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_3_he_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_he_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank0_info1_regwen_0_we = addr_hit[32] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_0_we = addr_hit[33] & reg_we & ~wr_err;
assign bank0_info1_regwen_0_wd = reg_wdata[0];
- assign bank0_info1_regwen_1_we = addr_hit[33] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_1_we = addr_hit[34] & reg_we & ~wr_err;
assign bank0_info1_regwen_1_wd = reg_wdata[0];
- assign bank0_info1_regwen_2_we = addr_hit[34] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_2_we = addr_hit[35] & reg_we & ~wr_err;
assign bank0_info1_regwen_2_wd = reg_wdata[0];
- assign bank0_info1_regwen_3_we = addr_hit[35] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_3_we = addr_hit[36] & reg_we & ~wr_err;
assign bank0_info1_regwen_3_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_0_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_0_rd_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_rd_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_0_prog_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_prog_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_0_erase_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_erase_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_0_scramble_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_scramble_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_0_ecc_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_ecc_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_0_he_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_he_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_1_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_1_rd_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_rd_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_1_prog_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_prog_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_1_erase_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_erase_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_1_scramble_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_scramble_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_1_ecc_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_ecc_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_1_he_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_he_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_2_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_2_rd_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_rd_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_2_prog_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_prog_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_2_erase_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_erase_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_2_scramble_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_scramble_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_2_ecc_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_ecc_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_2_he_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_he_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_3_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_3_rd_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_rd_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_3_prog_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_prog_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_3_erase_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_erase_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_3_scramble_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_scramble_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_3_ecc_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_ecc_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_3_he_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_he_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank1_info0_regwen_0_we = addr_hit[40] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_0_we = addr_hit[41] & reg_we & ~wr_err;
assign bank1_info0_regwen_0_wd = reg_wdata[0];
- assign bank1_info0_regwen_1_we = addr_hit[41] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_1_we = addr_hit[42] & reg_we & ~wr_err;
assign bank1_info0_regwen_1_wd = reg_wdata[0];
- assign bank1_info0_regwen_2_we = addr_hit[42] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_2_we = addr_hit[43] & reg_we & ~wr_err;
assign bank1_info0_regwen_2_wd = reg_wdata[0];
- assign bank1_info0_regwen_3_we = addr_hit[43] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_3_we = addr_hit[44] & reg_we & ~wr_err;
assign bank1_info0_regwen_3_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_0_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_0_rd_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_rd_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_0_prog_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_prog_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_0_erase_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_erase_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_0_scramble_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_scramble_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_0_ecc_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_ecc_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_0_he_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_he_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_1_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_1_rd_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_rd_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_1_prog_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_prog_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_1_erase_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_erase_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_1_scramble_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_scramble_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_1_ecc_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_ecc_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_1_he_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_he_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_2_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_2_rd_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_rd_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_2_prog_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_prog_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_2_erase_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_erase_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_2_scramble_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_scramble_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_2_ecc_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_ecc_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_2_he_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_he_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_3_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_3_rd_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_rd_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_3_prog_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_prog_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_3_erase_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_erase_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_3_scramble_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_scramble_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_3_ecc_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_ecc_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_3_he_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_he_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank1_info1_regwen_0_we = addr_hit[48] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_0_we = addr_hit[49] & reg_we & ~wr_err;
assign bank1_info1_regwen_0_wd = reg_wdata[0];
- assign bank1_info1_regwen_1_we = addr_hit[49] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_1_we = addr_hit[50] & reg_we & ~wr_err;
assign bank1_info1_regwen_1_wd = reg_wdata[0];
- assign bank1_info1_regwen_2_we = addr_hit[50] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_2_we = addr_hit[51] & reg_we & ~wr_err;
assign bank1_info1_regwen_2_wd = reg_wdata[0];
- assign bank1_info1_regwen_3_we = addr_hit[51] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_3_we = addr_hit[52] & reg_we & ~wr_err;
assign bank1_info1_regwen_3_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_0_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_0_rd_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_rd_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_0_prog_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_prog_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_0_erase_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_erase_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_0_scramble_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_scramble_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_0_ecc_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_ecc_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_0_he_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_he_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_1_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_1_rd_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_rd_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_1_prog_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_prog_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_1_erase_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_erase_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_1_scramble_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_scramble_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_1_ecc_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_ecc_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_1_he_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_he_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_2_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_2_rd_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_rd_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_2_prog_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_prog_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_2_erase_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_erase_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_2_scramble_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_scramble_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_2_ecc_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_ecc_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_2_he_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_he_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_3_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_3_rd_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_rd_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_3_prog_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_prog_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_3_erase_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_erase_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_3_scramble_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_scramble_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_3_ecc_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_ecc_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_3_he_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_he_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank_cfg_regwen_we = addr_hit[56] & reg_we & ~wr_err;
+ assign bank_cfg_regwen_we = addr_hit[57] & reg_we & ~wr_err;
assign bank_cfg_regwen_wd = reg_wdata[0];
- assign mp_bank_cfg_erase_en_0_we = addr_hit[57] & reg_we & ~wr_err;
+ assign mp_bank_cfg_erase_en_0_we = addr_hit[58] & reg_we & ~wr_err;
assign mp_bank_cfg_erase_en_0_wd = reg_wdata[0];
- assign mp_bank_cfg_erase_en_1_we = addr_hit[57] & reg_we & ~wr_err;
+ assign mp_bank_cfg_erase_en_1_we = addr_hit[58] & reg_we & ~wr_err;
assign mp_bank_cfg_erase_en_1_wd = reg_wdata[1];
- assign op_status_done_we = addr_hit[58] & reg_we & ~wr_err;
+ assign op_status_done_we = addr_hit[59] & reg_we & ~wr_err;
assign op_status_done_wd = reg_wdata[0];
- assign op_status_err_we = addr_hit[58] & reg_we & ~wr_err;
+ assign op_status_err_we = addr_hit[59] & reg_we & ~wr_err;
assign op_status_err_wd = reg_wdata[1];
@@ -8621,16 +8656,16 @@
- assign scratch_we = addr_hit[61] & reg_we & ~wr_err;
+ assign scratch_we = addr_hit[62] & reg_we & ~wr_err;
assign scratch_wd = reg_wdata[31:0];
- assign fifo_lvl_prog_we = addr_hit[62] & reg_we & ~wr_err;
+ assign fifo_lvl_prog_we = addr_hit[63] & reg_we & ~wr_err;
assign fifo_lvl_prog_wd = reg_wdata[4:0];
- assign fifo_lvl_rd_we = addr_hit[62] & reg_we & ~wr_err;
+ assign fifo_lvl_rd_we = addr_hit[63] & reg_we & ~wr_err;
assign fifo_lvl_rd_wd = reg_wdata[12:8];
- assign fifo_rst_we = addr_hit[63] & reg_we & ~wr_err;
+ assign fifo_rst_we = addr_hit[64] & reg_we & ~wr_err;
assign fifo_rst_wd = reg_wdata[0];
// Read data return
@@ -8688,38 +8723,42 @@
end
addr_hit[7]: begin
- reg_rdata_next[0] = region_cfg_regwen_0_qs;
+ reg_rdata_next[0] = erase_suspend_qs;
end
addr_hit[8]: begin
- reg_rdata_next[0] = region_cfg_regwen_1_qs;
+ reg_rdata_next[0] = region_cfg_regwen_0_qs;
end
addr_hit[9]: begin
- reg_rdata_next[0] = region_cfg_regwen_2_qs;
+ reg_rdata_next[0] = region_cfg_regwen_1_qs;
end
addr_hit[10]: begin
- reg_rdata_next[0] = region_cfg_regwen_3_qs;
+ reg_rdata_next[0] = region_cfg_regwen_2_qs;
end
addr_hit[11]: begin
- reg_rdata_next[0] = region_cfg_regwen_4_qs;
+ reg_rdata_next[0] = region_cfg_regwen_3_qs;
end
addr_hit[12]: begin
- reg_rdata_next[0] = region_cfg_regwen_5_qs;
+ reg_rdata_next[0] = region_cfg_regwen_4_qs;
end
addr_hit[13]: begin
- reg_rdata_next[0] = region_cfg_regwen_6_qs;
+ reg_rdata_next[0] = region_cfg_regwen_5_qs;
end
addr_hit[14]: begin
- reg_rdata_next[0] = region_cfg_regwen_7_qs;
+ reg_rdata_next[0] = region_cfg_regwen_6_qs;
end
addr_hit[15]: begin
+ reg_rdata_next[0] = region_cfg_regwen_7_qs;
+ end
+
+ addr_hit[16]: begin
reg_rdata_next[0] = mp_region_cfg_0_en_0_qs;
reg_rdata_next[1] = mp_region_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = mp_region_cfg_0_prog_en_0_qs;
@@ -8731,7 +8770,7 @@
reg_rdata_next[29:20] = mp_region_cfg_0_size_0_qs;
end
- addr_hit[16]: begin
+ addr_hit[17]: begin
reg_rdata_next[0] = mp_region_cfg_1_en_1_qs;
reg_rdata_next[1] = mp_region_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = mp_region_cfg_1_prog_en_1_qs;
@@ -8743,7 +8782,7 @@
reg_rdata_next[29:20] = mp_region_cfg_1_size_1_qs;
end
- addr_hit[17]: begin
+ addr_hit[18]: begin
reg_rdata_next[0] = mp_region_cfg_2_en_2_qs;
reg_rdata_next[1] = mp_region_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = mp_region_cfg_2_prog_en_2_qs;
@@ -8755,7 +8794,7 @@
reg_rdata_next[29:20] = mp_region_cfg_2_size_2_qs;
end
- addr_hit[18]: begin
+ addr_hit[19]: begin
reg_rdata_next[0] = mp_region_cfg_3_en_3_qs;
reg_rdata_next[1] = mp_region_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = mp_region_cfg_3_prog_en_3_qs;
@@ -8767,7 +8806,7 @@
reg_rdata_next[29:20] = mp_region_cfg_3_size_3_qs;
end
- addr_hit[19]: begin
+ addr_hit[20]: begin
reg_rdata_next[0] = mp_region_cfg_4_en_4_qs;
reg_rdata_next[1] = mp_region_cfg_4_rd_en_4_qs;
reg_rdata_next[2] = mp_region_cfg_4_prog_en_4_qs;
@@ -8779,7 +8818,7 @@
reg_rdata_next[29:20] = mp_region_cfg_4_size_4_qs;
end
- addr_hit[20]: begin
+ addr_hit[21]: begin
reg_rdata_next[0] = mp_region_cfg_5_en_5_qs;
reg_rdata_next[1] = mp_region_cfg_5_rd_en_5_qs;
reg_rdata_next[2] = mp_region_cfg_5_prog_en_5_qs;
@@ -8791,7 +8830,7 @@
reg_rdata_next[29:20] = mp_region_cfg_5_size_5_qs;
end
- addr_hit[21]: begin
+ addr_hit[22]: begin
reg_rdata_next[0] = mp_region_cfg_6_en_6_qs;
reg_rdata_next[1] = mp_region_cfg_6_rd_en_6_qs;
reg_rdata_next[2] = mp_region_cfg_6_prog_en_6_qs;
@@ -8803,7 +8842,7 @@
reg_rdata_next[29:20] = mp_region_cfg_6_size_6_qs;
end
- addr_hit[22]: begin
+ addr_hit[23]: begin
reg_rdata_next[0] = mp_region_cfg_7_en_7_qs;
reg_rdata_next[1] = mp_region_cfg_7_rd_en_7_qs;
reg_rdata_next[2] = mp_region_cfg_7_prog_en_7_qs;
@@ -8815,7 +8854,7 @@
reg_rdata_next[29:20] = mp_region_cfg_7_size_7_qs;
end
- addr_hit[23]: begin
+ addr_hit[24]: begin
reg_rdata_next[0] = default_region_rd_en_qs;
reg_rdata_next[1] = default_region_prog_en_qs;
reg_rdata_next[2] = default_region_erase_en_qs;
@@ -8824,23 +8863,23 @@
reg_rdata_next[5] = default_region_he_en_qs;
end
- addr_hit[24]: begin
+ addr_hit[25]: begin
reg_rdata_next[0] = bank0_info0_regwen_0_qs;
end
- addr_hit[25]: begin
+ addr_hit[26]: begin
reg_rdata_next[0] = bank0_info0_regwen_1_qs;
end
- addr_hit[26]: begin
+ addr_hit[27]: begin
reg_rdata_next[0] = bank0_info0_regwen_2_qs;
end
- addr_hit[27]: begin
+ addr_hit[28]: begin
reg_rdata_next[0] = bank0_info0_regwen_3_qs;
end
- addr_hit[28]: begin
+ addr_hit[29]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_0_prog_en_0_qs;
@@ -8850,7 +8889,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_0_he_en_0_qs;
end
- addr_hit[29]: begin
+ addr_hit[30]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_1_prog_en_1_qs;
@@ -8860,7 +8899,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_1_he_en_1_qs;
end
- addr_hit[30]: begin
+ addr_hit[31]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_2_prog_en_2_qs;
@@ -8870,7 +8909,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_2_he_en_2_qs;
end
- addr_hit[31]: begin
+ addr_hit[32]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_3_prog_en_3_qs;
@@ -8880,23 +8919,23 @@
reg_rdata_next[6] = bank0_info0_page_cfg_3_he_en_3_qs;
end
- addr_hit[32]: begin
+ addr_hit[33]: begin
reg_rdata_next[0] = bank0_info1_regwen_0_qs;
end
- addr_hit[33]: begin
+ addr_hit[34]: begin
reg_rdata_next[0] = bank0_info1_regwen_1_qs;
end
- addr_hit[34]: begin
+ addr_hit[35]: begin
reg_rdata_next[0] = bank0_info1_regwen_2_qs;
end
- addr_hit[35]: begin
+ addr_hit[36]: begin
reg_rdata_next[0] = bank0_info1_regwen_3_qs;
end
- addr_hit[36]: begin
+ addr_hit[37]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_0_prog_en_0_qs;
@@ -8906,7 +8945,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_0_he_en_0_qs;
end
- addr_hit[37]: begin
+ addr_hit[38]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_1_prog_en_1_qs;
@@ -8916,7 +8955,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_1_he_en_1_qs;
end
- addr_hit[38]: begin
+ addr_hit[39]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_2_prog_en_2_qs;
@@ -8926,7 +8965,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_2_he_en_2_qs;
end
- addr_hit[39]: begin
+ addr_hit[40]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_3_prog_en_3_qs;
@@ -8936,23 +8975,23 @@
reg_rdata_next[6] = bank0_info1_page_cfg_3_he_en_3_qs;
end
- addr_hit[40]: begin
+ addr_hit[41]: begin
reg_rdata_next[0] = bank1_info0_regwen_0_qs;
end
- addr_hit[41]: begin
+ addr_hit[42]: begin
reg_rdata_next[0] = bank1_info0_regwen_1_qs;
end
- addr_hit[42]: begin
+ addr_hit[43]: begin
reg_rdata_next[0] = bank1_info0_regwen_2_qs;
end
- addr_hit[43]: begin
+ addr_hit[44]: begin
reg_rdata_next[0] = bank1_info0_regwen_3_qs;
end
- addr_hit[44]: begin
+ addr_hit[45]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_0_prog_en_0_qs;
@@ -8962,7 +9001,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_0_he_en_0_qs;
end
- addr_hit[45]: begin
+ addr_hit[46]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_1_prog_en_1_qs;
@@ -8972,7 +9011,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_1_he_en_1_qs;
end
- addr_hit[46]: begin
+ addr_hit[47]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_2_prog_en_2_qs;
@@ -8982,7 +9021,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_2_he_en_2_qs;
end
- addr_hit[47]: begin
+ addr_hit[48]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_3_prog_en_3_qs;
@@ -8992,23 +9031,23 @@
reg_rdata_next[6] = bank1_info0_page_cfg_3_he_en_3_qs;
end
- addr_hit[48]: begin
+ addr_hit[49]: begin
reg_rdata_next[0] = bank1_info1_regwen_0_qs;
end
- addr_hit[49]: begin
+ addr_hit[50]: begin
reg_rdata_next[0] = bank1_info1_regwen_1_qs;
end
- addr_hit[50]: begin
+ addr_hit[51]: begin
reg_rdata_next[0] = bank1_info1_regwen_2_qs;
end
- addr_hit[51]: begin
+ addr_hit[52]: begin
reg_rdata_next[0] = bank1_info1_regwen_3_qs;
end
- addr_hit[52]: begin
+ addr_hit[53]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_0_prog_en_0_qs;
@@ -9018,7 +9057,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_0_he_en_0_qs;
end
- addr_hit[53]: begin
+ addr_hit[54]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_1_prog_en_1_qs;
@@ -9028,7 +9067,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_1_he_en_1_qs;
end
- addr_hit[54]: begin
+ addr_hit[55]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_2_prog_en_2_qs;
@@ -9038,7 +9077,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_2_he_en_2_qs;
end
- addr_hit[55]: begin
+ addr_hit[56]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_3_prog_en_3_qs;
@@ -9048,21 +9087,21 @@
reg_rdata_next[6] = bank1_info1_page_cfg_3_he_en_3_qs;
end
- addr_hit[56]: begin
+ addr_hit[57]: begin
reg_rdata_next[0] = bank_cfg_regwen_qs;
end
- addr_hit[57]: begin
+ addr_hit[58]: begin
reg_rdata_next[0] = mp_bank_cfg_erase_en_0_qs;
reg_rdata_next[1] = mp_bank_cfg_erase_en_1_qs;
end
- addr_hit[58]: begin
+ addr_hit[59]: begin
reg_rdata_next[0] = op_status_done_qs;
reg_rdata_next[1] = op_status_err_qs;
end
- addr_hit[59]: begin
+ addr_hit[60]: begin
reg_rdata_next[0] = status_rd_full_qs;
reg_rdata_next[1] = status_rd_empty_qs;
reg_rdata_next[2] = status_prog_full_qs;
@@ -9071,22 +9110,22 @@
reg_rdata_next[16:8] = status_error_addr_qs;
end
- addr_hit[60]: begin
+ addr_hit[61]: begin
reg_rdata_next[0] = phy_status_init_wip_qs;
reg_rdata_next[1] = phy_status_prog_normal_avail_qs;
reg_rdata_next[2] = phy_status_prog_repair_avail_qs;
end
- addr_hit[61]: begin
+ addr_hit[62]: begin
reg_rdata_next[31:0] = scratch_qs;
end
- addr_hit[62]: begin
+ addr_hit[63]: begin
reg_rdata_next[4:0] = fifo_lvl_prog_qs;
reg_rdata_next[12:8] = fifo_lvl_rd_qs;
end
- addr_hit[63]: begin
+ addr_hit[64]: begin
reg_rdata_next[0] = fifo_rst_qs;
end
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 5d52357..c8d795b 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -2775,6 +2775,30 @@
name_top: RndCnstFlashCtrlDataKey
randwidth: 128
}
+ {
+ name: RndCnstLfsrSeed
+ desc: Compile-time random bits for initial LFSR seed
+ type: flash_ctrl_pkg::lfsr_seed_t
+ randcount: "32"
+ randtype: data
+ local: "false"
+ default: 0xd89f9dfc
+ expose: "false"
+ name_top: RndCnstFlashCtrlLfsrSeed
+ randwidth: 32
+ }
+ {
+ name: RndCnstLfsrPerm
+ desc: Compile-time random permutation for LFSR output
+ type: flash_ctrl_pkg::lfsr_perm_t
+ randcount: "32"
+ randtype: perm
+ local: "false"
+ default: 0x26ff203d990d87c5e8a98bafec7506855aa99c54
+ expose: "false"
+ name_top: RndCnstFlashCtrlLfsrPerm
+ randwidth: 160
+ }
]
interrupt_list:
[
@@ -2952,11 +2976,11 @@
index: -1
}
{
- struct: edn_entropy
- type: uni
+ struct: edn
+ type: req_rsp
name: edn
- act: rcv
- package: flash_ctrl_pkg
+ act: req
+ package: edn_pkg
inst_name: flash_ctrl
index: -1
}
@@ -9004,11 +9028,11 @@
index: -1
}
{
- struct: edn_entropy
- type: uni
+ struct: edn
+ type: req_rsp
name: edn
- act: rcv
- package: flash_ctrl_pkg
+ act: req
+ package: edn_pkg
inst_name: flash_ctrl
index: -1
}
diff --git a/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson b/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson
index 11e5f61..4e78b11 100644
--- a/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson
+++ b/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson
@@ -80,11 +80,11 @@
package: "flash_ctrl_pkg"
},
- { struct: "edn_entropy",
- type: "uni",
+ { struct: "edn",
+ type: "req_rsp",
name: "edn",
- act: "rcv",
- package: "flash_ctrl_pkg"
+ act: "req",
+ package: "edn_pkg"
},
{ struct: "pwr_flash",
@@ -113,13 +113,26 @@
type: "flash_ctrl_pkg::flash_key_t"
randcount: "128",
randtype: "data", // randomize randcount databits
- }
+ },
{ name: "RndCnstDataKey",
desc: "Compile-time random bits for default data key",
type: "flash_ctrl_pkg::flash_key_t"
randcount: "128",
randtype: "data", // randomize randcount databits
- }
+ },
+ { name: "RndCnstLfsrSeed",
+ desc: "Compile-time random bits for initial LFSR seed",
+ type: "flash_ctrl_pkg::lfsr_seed_t"
+ randcount: "32",
+ randtype: "data",
+ },
+ { name: "RndCnstLfsrPerm",
+ desc: "Compile-time random permutation for LFSR output",
+ type: "flash_ctrl_pkg::lfsr_perm_t"
+ randcount: "32",
+ randtype: "perm",
+ },
+
{ name: "RegNumBanks",
desc: "Number of flash banks",
type: "int",
@@ -399,6 +412,26 @@
]
},
+ // erase suspend support
+ { name: "ERASE_SUSPEND",
+ desc: "Suspend erase",
+ swaccess: "rw",
+ hwaccess: "hrw",
+ fields: [
+ { bits: "0",
+ resval: "0",
+ name: "REQ",
+ desc: '''
+ When 1, request erase suspend.
+ If no erase ongoing, the request is immediately cleared by hardware
+ If erase ongoing, the request is fed to the flash_phy and cleared when the suspend is handled.
+ '''
+ },
+ ],
+ tags: [// Erase suspend must be directly tested
+ "excl:CsrAllTests:CsrExclWrite"],
+ },
+
// Data partition memory properties region setup
{ multireg: {
cname: "FLASH_CTRL",
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv
index 3817cfc..d63b801 100644
--- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv
+++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv
@@ -15,8 +15,10 @@
`include "prim_assert.sv"
module flash_ctrl import flash_ctrl_pkg::*; #(
- parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault,
- parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault
+ parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault,
+ parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault,
+ parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault,
+ parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault
) (
input clk_i,
input rst_ni,
@@ -46,7 +48,8 @@
output lc_flash_rsp_t lc_o,
input pwrmgr_pkg::pwr_flash_req_t pwrmgr_i,
output pwrmgr_pkg::pwr_flash_rsp_t pwrmgr_o,
- input edn_entropy_t edn_i,
+ output edn_pkg::edn_req_t edn_o,
+ input edn_pkg::edn_rsp_t edn_i,
output keymgr_flash_t keymgr_o,
// Interrupts
@@ -237,16 +240,19 @@
);
prim_lfsr #(
- .EntropyDw(4),
+ .EntropyDw(EdnWidth),
.LfsrDw(LfsrWidth),
- .StateOutDw(LfsrWidth)
+ .StateOutDw(LfsrWidth),
+ .DefaultSeed(RndCnstLfsrSeed),
+ .StatePermEn(1),
+ .StatePerm(RndCnstLfsrPerm)
) u_lfsr (
.clk_i,
.rst_ni,
- .seed_en_i('0),
- .seed_i('0),
+ .seed_en_i(edn_i.edn_ack),
+ .seed_i(edn_i.edn_bus),
.lfsr_en_i(lfsr_en),
- .entropy_i(edn_i.valid ? edn_i.entropy : '0),
+ .entropy_i('0),
.state_o(rand_val)
);
@@ -315,10 +321,7 @@
.phase_o(phase),
// indication that sw has been selected
- .sel_o(if_sel),
-
- // enable lfsr
- .lfsr_en_o(lfsr_en)
+ .sel_o(if_sel)
);
assign op_start = muxed_ctrl.start.q;
@@ -374,9 +377,6 @@
.rma_token_o(lc_o.rma_ack_token),
.rma_rsp_o(lc_o.rma_ack),
- // random value
- .rand_i(rand_val),
-
// outgoing seeds
.seeds_o(keymgr_o.seeds),
.seed_err_o(), // TBD hook-up to Err code register
@@ -393,10 +393,19 @@
.addr_key_o(addr_key),
.data_key_o(data_key),
+ // entropy interface
+ .edn_req_o(edn_o.edn_req),
+ .edn_ack_i(edn_i.edn_ack),
+ .lfsr_en_o(lfsr_en),
+ .rand_i(rand_val),
+
// init ongoing
.init_busy_o(ctrl_init_busy)
);
+ logic unused_edn_fips;
+ assign unused_edn_fips = edn_i.edn_fips;
+
// Program FIFO
// Since the program and read FIFOs are never used at the same time, it should really be one
// FIFO with muxed inputs and outputs. This should be addressed once the flash integration
@@ -642,6 +651,9 @@
assign flash_part_sel = op_part;
assign flash_info_sel = op_info_sel;
+ // tie off hardware clear path
+ assign hw2reg.erase_suspend.d = 1'b0;
+
// Flash memory Properties
// Memory property is page based and thus should use phy addressing
// This should move to flash_phy long term
@@ -670,6 +682,8 @@
.prog_i(prog_op),
.pg_erase_i(erase_op & (erase_flash_type == FlashErasePage)),
.bk_erase_i(erase_op & (erase_flash_type == FlashEraseBank)),
+ .erase_suspend_i(reg2hw.erase_suspend),
+ .erase_suspend_done_o(hw2reg.erase_suspend.de),
.rd_done_o(flash_rd_done),
.prog_done_o(flash_prog_done),
.erase_done_o(flash_erase_done),
@@ -685,6 +699,8 @@
.prog_o(flash_o.prog),
.pg_erase_o(flash_o.pg_erase),
.bk_erase_o(flash_o.bk_erase),
+ .erase_suspend_o(flash_o.erase_suspend),
+ .erase_suspend_done_i(flash_i.erase_suspend_done),
.rd_done_i(flash_i.rd_done),
.prog_done_i(flash_i.prog_done),
.erase_done_i(flash_i.erase_done)
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv
index ada0f0a..80e596d 100644
--- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv
+++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv
@@ -82,10 +82,24 @@
// parameters for connected components
parameter int SeedWidth = 256;
parameter int KeyWidth = 128;
- parameter int LfsrWidth = 32;
-
+ parameter int EdnWidth = edn_pkg::ENDPOINT_BUS_WIDTH;
typedef logic [KeyWidth-1:0] flash_key_t;
+ // Default Lfsr configurations
+ // These LFSR parameters have been generated with
+ // $ hw/ip/prim/util/gen-lfsr-seed.py --width 32 --seed 1274809145 --prefix ""
+ parameter int LfsrWidth = 32;
+ typedef logic [LfsrWidth-1:0] lfsr_seed_t;
+ typedef logic [LfsrWidth-1:0][$clog2(LfsrWidth)-1:0] lfsr_perm_t;
+ parameter lfsr_seed_t RndCnstLfsrSeedDefault = 32'ha8cee782;
+ parameter lfsr_perm_t RndCnstLfsrPermDefault = {
+ 160'hd60bc7d86445da9347e0ccdd05b281df95238bb5
+ };
+
+ // These LFSR parameters have been generated with
+ // $ hw/ip/prim/util/gen-lfsr-seed.py --width 64 --seed 691876113 --prefix ""
+
+
// lcmgr phase enum
typedef enum logic [1:0] {
PhaseSeed,
@@ -271,6 +285,7 @@
logic prog;
logic pg_erase;
logic bk_erase;
+ logic erase_suspend;
flash_part_e part;
logic [InfoTypesWidth-1:0] info_sel;
logic [BusAddrW-1:0] addr;
@@ -285,24 +300,25 @@
// default value of flash_req_t (for dangling ports)
parameter flash_req_t FLASH_REQ_DEFAULT = '{
- req: '0,
- scramble_en: '0,
- ecc_en: '0,
- he_en: '0,
- rd: '0,
- prog: '0,
- pg_erase: '0,
- bk_erase: '0,
- part: FlashPartData,
- info_sel: '0,
- addr: '0,
- prog_data: '0,
- prog_last: '0,
- prog_type: FlashProgNormal,
- region_cfgs: '0,
- addr_key: RndCnstAddrKeyDefault,
- data_key: RndCnstDataKeyDefault,
- rd_buf_en: 1'b0
+ req: '0,
+ scramble_en: '0,
+ ecc_en: '0,
+ he_en: '0,
+ rd: '0,
+ prog: '0,
+ pg_erase: '0,
+ bk_erase: '0,
+ erase_suspend: '0,
+ part: FlashPartData,
+ info_sel: '0,
+ addr: '0,
+ prog_data: '0,
+ prog_last: '0,
+ prog_type: FlashProgNormal,
+ region_cfgs: '0,
+ addr_key: RndCnstAddrKeyDefault,
+ data_key: RndCnstDataKeyDefault,
+ rd_buf_en: 1'b0
};
// memory to flash controller
@@ -314,17 +330,19 @@
logic rd_err;
logic [BusWidth-1:0] rd_data;
logic init_busy;
+ logic erase_suspend_done;
} flash_rsp_t;
// default value of flash_rsp_t (for dangling ports)
parameter flash_rsp_t FLASH_RSP_DEFAULT = '{
- prog_type_avail: '{default: '1},
- rd_done: 1'b0,
- prog_done: 1'b0,
- erase_done: 1'b0,
- rd_err: '0,
- rd_data: '0,
- init_busy: 1'b0
+ prog_type_avail: '{default: '1},
+ rd_done: 1'b0,
+ prog_done: 1'b0,
+ erase_done: 1'b0,
+ rd_err: '0,
+ rd_data: '0,
+ init_busy: 1'b0,
+ erase_suspend_done: 1'b1
};
////////////////////////////
@@ -356,22 +374,11 @@
}
};
- // place holder for interface to EDN, replace with real one later
- typedef struct packed {
- logic valid;
- logic [3:0] entropy;
- } edn_entropy_t;
-
parameter lc_flash_req_t LC_FLASH_REQ_DEFAULT = '{
rma_req: 1'b0,
rma_req_token: '0
};
- parameter edn_entropy_t EDN_ENTROPY_DEFAULT = '{
- valid: 1'b1,
- entropy: '0
- };
-
// dft_en jtag selection
typedef enum logic [2:0] {
FlashLcTckSel,
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_pkg.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_pkg.sv
index b89a355..8636b46 100644
--- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_pkg.sv
+++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_pkg.sv
@@ -128,6 +128,10 @@
} flash_ctrl_reg2hw_prog_type_en_reg_t;
typedef struct packed {
+ logic q;
+ } flash_ctrl_reg2hw_erase_suspend_reg_t;
+
+ typedef struct packed {
struct packed {
logic q;
} en;
@@ -335,6 +339,11 @@
} flash_ctrl_hw2reg_control_reg_t;
typedef struct packed {
+ logic d;
+ logic de;
+ } flash_ctrl_hw2reg_erase_suspend_reg_t;
+
+ typedef struct packed {
struct packed {
logic d;
logic de;
@@ -392,12 +401,13 @@
// Register to internal design logic //
///////////////////////////////////////
typedef struct packed {
- flash_ctrl_reg2hw_intr_state_reg_t intr_state; // [447:442]
- flash_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [441:436]
- flash_ctrl_reg2hw_intr_test_reg_t intr_test; // [435:424]
- flash_ctrl_reg2hw_control_reg_t control; // [423:405]
- flash_ctrl_reg2hw_addr_reg_t addr; // [404:373]
- flash_ctrl_reg2hw_prog_type_en_reg_t prog_type_en; // [372:371]
+ flash_ctrl_reg2hw_intr_state_reg_t intr_state; // [448:443]
+ flash_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [442:437]
+ flash_ctrl_reg2hw_intr_test_reg_t intr_test; // [436:425]
+ flash_ctrl_reg2hw_control_reg_t control; // [424:406]
+ flash_ctrl_reg2hw_addr_reg_t addr; // [405:374]
+ flash_ctrl_reg2hw_prog_type_en_reg_t prog_type_en; // [373:372]
+ flash_ctrl_reg2hw_erase_suspend_reg_t erase_suspend; // [371:371]
flash_ctrl_reg2hw_mp_region_cfg_mreg_t [7:0] mp_region_cfg; // [370:163]
flash_ctrl_reg2hw_default_region_reg_t default_region; // [162:157]
flash_ctrl_reg2hw_bank0_info0_page_cfg_mreg_t [3:0] bank0_info0_page_cfg; // [156:129]
@@ -414,9 +424,10 @@
// Internal design logic to register //
///////////////////////////////////////
typedef struct packed {
- flash_ctrl_hw2reg_intr_state_reg_t intr_state; // [44:33]
- flash_ctrl_hw2reg_ctrl_regwen_reg_t ctrl_regwen; // [32:32]
- flash_ctrl_hw2reg_control_reg_t control; // [31:30]
+ flash_ctrl_hw2reg_intr_state_reg_t intr_state; // [46:35]
+ flash_ctrl_hw2reg_ctrl_regwen_reg_t ctrl_regwen; // [34:34]
+ flash_ctrl_hw2reg_control_reg_t control; // [33:32]
+ flash_ctrl_hw2reg_erase_suspend_reg_t erase_suspend; // [31:30]
flash_ctrl_hw2reg_op_status_reg_t op_status; // [29:26]
flash_ctrl_hw2reg_status_reg_t status; // [25:6]
flash_ctrl_hw2reg_phy_status_reg_t phy_status; // [5:0]
@@ -430,68 +441,69 @@
parameter logic [8:0] FLASH_CTRL_CONTROL_OFFSET = 9'h 10;
parameter logic [8:0] FLASH_CTRL_ADDR_OFFSET = 9'h 14;
parameter logic [8:0] FLASH_CTRL_PROG_TYPE_EN_OFFSET = 9'h 18;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET = 9'h 1c;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET = 9'h 20;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET = 9'h 24;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET = 9'h 28;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET = 9'h 2c;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET = 9'h 30;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET = 9'h 34;
- parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET = 9'h 38;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_0_OFFSET = 9'h 3c;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_1_OFFSET = 9'h 40;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_2_OFFSET = 9'h 44;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_3_OFFSET = 9'h 48;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_4_OFFSET = 9'h 4c;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_5_OFFSET = 9'h 50;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_6_OFFSET = 9'h 54;
- parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_7_OFFSET = 9'h 58;
- parameter logic [8:0] FLASH_CTRL_DEFAULT_REGION_OFFSET = 9'h 5c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET = 9'h 60;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET = 9'h 64;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET = 9'h 68;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET = 9'h 6c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET = 9'h 70;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET = 9'h 74;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET = 9'h 78;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET = 9'h 7c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET = 9'h 80;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET = 9'h 84;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET = 9'h 88;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET = 9'h 8c;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET = 9'h 90;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET = 9'h 94;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET = 9'h 98;
- parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET = 9'h 9c;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET = 9'h a0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET = 9'h a4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET = 9'h a8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET = 9'h ac;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET = 9'h b0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET = 9'h b4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET = 9'h b8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET = 9'h bc;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET = 9'h c0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET = 9'h c4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET = 9'h c8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET = 9'h cc;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET = 9'h d0;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET = 9'h d4;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET = 9'h d8;
- parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET = 9'h dc;
- parameter logic [8:0] FLASH_CTRL_BANK_CFG_REGWEN_OFFSET = 9'h e0;
- parameter logic [8:0] FLASH_CTRL_MP_BANK_CFG_OFFSET = 9'h e4;
- parameter logic [8:0] FLASH_CTRL_OP_STATUS_OFFSET = 9'h e8;
- parameter logic [8:0] FLASH_CTRL_STATUS_OFFSET = 9'h ec;
- parameter logic [8:0] FLASH_CTRL_PHY_STATUS_OFFSET = 9'h f0;
- parameter logic [8:0] FLASH_CTRL_SCRATCH_OFFSET = 9'h f4;
- parameter logic [8:0] FLASH_CTRL_FIFO_LVL_OFFSET = 9'h f8;
- parameter logic [8:0] FLASH_CTRL_FIFO_RST_OFFSET = 9'h fc;
+ parameter logic [8:0] FLASH_CTRL_ERASE_SUSPEND_OFFSET = 9'h 1c;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET = 9'h 20;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET = 9'h 24;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET = 9'h 28;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET = 9'h 2c;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET = 9'h 30;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET = 9'h 34;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET = 9'h 38;
+ parameter logic [8:0] FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET = 9'h 3c;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_0_OFFSET = 9'h 40;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_1_OFFSET = 9'h 44;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_2_OFFSET = 9'h 48;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_3_OFFSET = 9'h 4c;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_4_OFFSET = 9'h 50;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_5_OFFSET = 9'h 54;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_6_OFFSET = 9'h 58;
+ parameter logic [8:0] FLASH_CTRL_MP_REGION_CFG_7_OFFSET = 9'h 5c;
+ parameter logic [8:0] FLASH_CTRL_DEFAULT_REGION_OFFSET = 9'h 60;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET = 9'h 64;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET = 9'h 68;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET = 9'h 6c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET = 9'h 70;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET = 9'h 74;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET = 9'h 78;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET = 9'h 7c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET = 9'h 80;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET = 9'h 84;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET = 9'h 88;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET = 9'h 8c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET = 9'h 90;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET = 9'h 94;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET = 9'h 98;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET = 9'h 9c;
+ parameter logic [8:0] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET = 9'h a0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET = 9'h a4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET = 9'h a8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET = 9'h ac;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET = 9'h b0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET = 9'h b4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET = 9'h b8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET = 9'h bc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET = 9'h c0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET = 9'h c4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET = 9'h c8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET = 9'h cc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET = 9'h d0;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET = 9'h d4;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET = 9'h d8;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET = 9'h dc;
+ parameter logic [8:0] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET = 9'h e0;
+ parameter logic [8:0] FLASH_CTRL_BANK_CFG_REGWEN_OFFSET = 9'h e4;
+ parameter logic [8:0] FLASH_CTRL_MP_BANK_CFG_OFFSET = 9'h e8;
+ parameter logic [8:0] FLASH_CTRL_OP_STATUS_OFFSET = 9'h ec;
+ parameter logic [8:0] FLASH_CTRL_STATUS_OFFSET = 9'h f0;
+ parameter logic [8:0] FLASH_CTRL_PHY_STATUS_OFFSET = 9'h f4;
+ parameter logic [8:0] FLASH_CTRL_SCRATCH_OFFSET = 9'h f8;
+ parameter logic [8:0] FLASH_CTRL_FIFO_LVL_OFFSET = 9'h fc;
+ parameter logic [8:0] FLASH_CTRL_FIFO_RST_OFFSET = 9'h 100;
// Window parameter
- parameter logic [8:0] FLASH_CTRL_PROG_FIFO_OFFSET = 9'h 100;
+ parameter logic [8:0] FLASH_CTRL_PROG_FIFO_OFFSET = 9'h 104;
parameter logic [8:0] FLASH_CTRL_PROG_FIFO_SIZE = 9'h 4;
- parameter logic [8:0] FLASH_CTRL_RD_FIFO_OFFSET = 9'h 104;
+ parameter logic [8:0] FLASH_CTRL_RD_FIFO_OFFSET = 9'h 108;
parameter logic [8:0] FLASH_CTRL_RD_FIFO_SIZE = 9'h 4;
// Register Index
@@ -503,6 +515,7 @@
FLASH_CTRL_CONTROL,
FLASH_CTRL_ADDR,
FLASH_CTRL_PROG_TYPE_EN,
+ FLASH_CTRL_ERASE_SUSPEND,
FLASH_CTRL_REGION_CFG_REGWEN_0,
FLASH_CTRL_REGION_CFG_REGWEN_1,
FLASH_CTRL_REGION_CFG_REGWEN_2,
@@ -563,7 +576,7 @@
} flash_ctrl_id_e;
// Register width information to check illegal writes
- parameter logic [3:0] FLASH_CTRL_PERMIT [64] = '{
+ parameter logic [3:0] FLASH_CTRL_PERMIT [65] = '{
4'b 0001, // index[ 0] FLASH_CTRL_INTR_STATE
4'b 0001, // index[ 1] FLASH_CTRL_INTR_ENABLE
4'b 0001, // index[ 2] FLASH_CTRL_INTR_TEST
@@ -571,63 +584,64 @@
4'b 1111, // index[ 4] FLASH_CTRL_CONTROL
4'b 1111, // index[ 5] FLASH_CTRL_ADDR
4'b 0001, // index[ 6] FLASH_CTRL_PROG_TYPE_EN
- 4'b 0001, // index[ 7] FLASH_CTRL_REGION_CFG_REGWEN_0
- 4'b 0001, // index[ 8] FLASH_CTRL_REGION_CFG_REGWEN_1
- 4'b 0001, // index[ 9] FLASH_CTRL_REGION_CFG_REGWEN_2
- 4'b 0001, // index[10] FLASH_CTRL_REGION_CFG_REGWEN_3
- 4'b 0001, // index[11] FLASH_CTRL_REGION_CFG_REGWEN_4
- 4'b 0001, // index[12] FLASH_CTRL_REGION_CFG_REGWEN_5
- 4'b 0001, // index[13] FLASH_CTRL_REGION_CFG_REGWEN_6
- 4'b 0001, // index[14] FLASH_CTRL_REGION_CFG_REGWEN_7
- 4'b 1111, // index[15] FLASH_CTRL_MP_REGION_CFG_0
- 4'b 1111, // index[16] FLASH_CTRL_MP_REGION_CFG_1
- 4'b 1111, // index[17] FLASH_CTRL_MP_REGION_CFG_2
- 4'b 1111, // index[18] FLASH_CTRL_MP_REGION_CFG_3
- 4'b 1111, // index[19] FLASH_CTRL_MP_REGION_CFG_4
- 4'b 1111, // index[20] FLASH_CTRL_MP_REGION_CFG_5
- 4'b 1111, // index[21] FLASH_CTRL_MP_REGION_CFG_6
- 4'b 1111, // index[22] FLASH_CTRL_MP_REGION_CFG_7
- 4'b 0001, // index[23] FLASH_CTRL_DEFAULT_REGION
- 4'b 0001, // index[24] FLASH_CTRL_BANK0_INFO0_REGWEN_0
- 4'b 0001, // index[25] FLASH_CTRL_BANK0_INFO0_REGWEN_1
- 4'b 0001, // index[26] FLASH_CTRL_BANK0_INFO0_REGWEN_2
- 4'b 0001, // index[27] FLASH_CTRL_BANK0_INFO0_REGWEN_3
- 4'b 0001, // index[28] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0
- 4'b 0001, // index[29] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1
- 4'b 0001, // index[30] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2
- 4'b 0001, // index[31] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3
- 4'b 0001, // index[32] FLASH_CTRL_BANK0_INFO1_REGWEN_0
- 4'b 0001, // index[33] FLASH_CTRL_BANK0_INFO1_REGWEN_1
- 4'b 0001, // index[34] FLASH_CTRL_BANK0_INFO1_REGWEN_2
- 4'b 0001, // index[35] FLASH_CTRL_BANK0_INFO1_REGWEN_3
- 4'b 0001, // index[36] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0
- 4'b 0001, // index[37] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1
- 4'b 0001, // index[38] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2
- 4'b 0001, // index[39] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3
- 4'b 0001, // index[40] FLASH_CTRL_BANK1_INFO0_REGWEN_0
- 4'b 0001, // index[41] FLASH_CTRL_BANK1_INFO0_REGWEN_1
- 4'b 0001, // index[42] FLASH_CTRL_BANK1_INFO0_REGWEN_2
- 4'b 0001, // index[43] FLASH_CTRL_BANK1_INFO0_REGWEN_3
- 4'b 0001, // index[44] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0
- 4'b 0001, // index[45] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1
- 4'b 0001, // index[46] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2
- 4'b 0001, // index[47] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3
- 4'b 0001, // index[48] FLASH_CTRL_BANK1_INFO1_REGWEN_0
- 4'b 0001, // index[49] FLASH_CTRL_BANK1_INFO1_REGWEN_1
- 4'b 0001, // index[50] FLASH_CTRL_BANK1_INFO1_REGWEN_2
- 4'b 0001, // index[51] FLASH_CTRL_BANK1_INFO1_REGWEN_3
- 4'b 0001, // index[52] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0
- 4'b 0001, // index[53] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1
- 4'b 0001, // index[54] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2
- 4'b 0001, // index[55] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3
- 4'b 0001, // index[56] FLASH_CTRL_BANK_CFG_REGWEN
- 4'b 0001, // index[57] FLASH_CTRL_MP_BANK_CFG
- 4'b 0001, // index[58] FLASH_CTRL_OP_STATUS
- 4'b 0111, // index[59] FLASH_CTRL_STATUS
- 4'b 0001, // index[60] FLASH_CTRL_PHY_STATUS
- 4'b 1111, // index[61] FLASH_CTRL_SCRATCH
- 4'b 0011, // index[62] FLASH_CTRL_FIFO_LVL
- 4'b 0001 // index[63] FLASH_CTRL_FIFO_RST
+ 4'b 0001, // index[ 7] FLASH_CTRL_ERASE_SUSPEND
+ 4'b 0001, // index[ 8] FLASH_CTRL_REGION_CFG_REGWEN_0
+ 4'b 0001, // index[ 9] FLASH_CTRL_REGION_CFG_REGWEN_1
+ 4'b 0001, // index[10] FLASH_CTRL_REGION_CFG_REGWEN_2
+ 4'b 0001, // index[11] FLASH_CTRL_REGION_CFG_REGWEN_3
+ 4'b 0001, // index[12] FLASH_CTRL_REGION_CFG_REGWEN_4
+ 4'b 0001, // index[13] FLASH_CTRL_REGION_CFG_REGWEN_5
+ 4'b 0001, // index[14] FLASH_CTRL_REGION_CFG_REGWEN_6
+ 4'b 0001, // index[15] FLASH_CTRL_REGION_CFG_REGWEN_7
+ 4'b 1111, // index[16] FLASH_CTRL_MP_REGION_CFG_0
+ 4'b 1111, // index[17] FLASH_CTRL_MP_REGION_CFG_1
+ 4'b 1111, // index[18] FLASH_CTRL_MP_REGION_CFG_2
+ 4'b 1111, // index[19] FLASH_CTRL_MP_REGION_CFG_3
+ 4'b 1111, // index[20] FLASH_CTRL_MP_REGION_CFG_4
+ 4'b 1111, // index[21] FLASH_CTRL_MP_REGION_CFG_5
+ 4'b 1111, // index[22] FLASH_CTRL_MP_REGION_CFG_6
+ 4'b 1111, // index[23] FLASH_CTRL_MP_REGION_CFG_7
+ 4'b 0001, // index[24] FLASH_CTRL_DEFAULT_REGION
+ 4'b 0001, // index[25] FLASH_CTRL_BANK0_INFO0_REGWEN_0
+ 4'b 0001, // index[26] FLASH_CTRL_BANK0_INFO0_REGWEN_1
+ 4'b 0001, // index[27] FLASH_CTRL_BANK0_INFO0_REGWEN_2
+ 4'b 0001, // index[28] FLASH_CTRL_BANK0_INFO0_REGWEN_3
+ 4'b 0001, // index[29] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0
+ 4'b 0001, // index[30] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1
+ 4'b 0001, // index[31] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2
+ 4'b 0001, // index[32] FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3
+ 4'b 0001, // index[33] FLASH_CTRL_BANK0_INFO1_REGWEN_0
+ 4'b 0001, // index[34] FLASH_CTRL_BANK0_INFO1_REGWEN_1
+ 4'b 0001, // index[35] FLASH_CTRL_BANK0_INFO1_REGWEN_2
+ 4'b 0001, // index[36] FLASH_CTRL_BANK0_INFO1_REGWEN_3
+ 4'b 0001, // index[37] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0
+ 4'b 0001, // index[38] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1
+ 4'b 0001, // index[39] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2
+ 4'b 0001, // index[40] FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3
+ 4'b 0001, // index[41] FLASH_CTRL_BANK1_INFO0_REGWEN_0
+ 4'b 0001, // index[42] FLASH_CTRL_BANK1_INFO0_REGWEN_1
+ 4'b 0001, // index[43] FLASH_CTRL_BANK1_INFO0_REGWEN_2
+ 4'b 0001, // index[44] FLASH_CTRL_BANK1_INFO0_REGWEN_3
+ 4'b 0001, // index[45] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0
+ 4'b 0001, // index[46] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1
+ 4'b 0001, // index[47] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2
+ 4'b 0001, // index[48] FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3
+ 4'b 0001, // index[49] FLASH_CTRL_BANK1_INFO1_REGWEN_0
+ 4'b 0001, // index[50] FLASH_CTRL_BANK1_INFO1_REGWEN_1
+ 4'b 0001, // index[51] FLASH_CTRL_BANK1_INFO1_REGWEN_2
+ 4'b 0001, // index[52] FLASH_CTRL_BANK1_INFO1_REGWEN_3
+ 4'b 0001, // index[53] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0
+ 4'b 0001, // index[54] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1
+ 4'b 0001, // index[55] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2
+ 4'b 0001, // index[56] FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3
+ 4'b 0001, // index[57] FLASH_CTRL_BANK_CFG_REGWEN
+ 4'b 0001, // index[58] FLASH_CTRL_MP_BANK_CFG
+ 4'b 0001, // index[59] FLASH_CTRL_OP_STATUS
+ 4'b 0111, // index[60] FLASH_CTRL_STATUS
+ 4'b 0001, // index[61] FLASH_CTRL_PHY_STATUS
+ 4'b 1111, // index[62] FLASH_CTRL_SCRATCH
+ 4'b 0011, // index[63] FLASH_CTRL_FIFO_LVL
+ 4'b 0001 // index[64] FLASH_CTRL_FIFO_RST
};
endpackage
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_top.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_top.sv
index a45cd51..b9b23df 100644
--- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_top.sv
+++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_reg_top.sv
@@ -88,10 +88,10 @@
reg_steer = 2; // Default set to register
// TODO: Can below codes be unique case () inside ?
- if (tl_i.a_address[AW-1:0] >= 256 && tl_i.a_address[AW-1:0] < 260) begin
+ if (tl_i.a_address[AW-1:0] >= 260 && tl_i.a_address[AW-1:0] < 264) begin
reg_steer = 0;
end
- if (tl_i.a_address[AW-1:0] >= 260 && tl_i.a_address[AW-1:0] < 264) begin
+ if (tl_i.a_address[AW-1:0] >= 264 && tl_i.a_address[AW-1:0] < 268) begin
reg_steer = 1;
end
end
@@ -201,6 +201,9 @@
logic prog_type_en_repair_qs;
logic prog_type_en_repair_wd;
logic prog_type_en_repair_we;
+ logic erase_suspend_qs;
+ logic erase_suspend_wd;
+ logic erase_suspend_we;
logic region_cfg_regwen_0_qs;
logic region_cfg_regwen_0_wd;
logic region_cfg_regwen_0_we;
@@ -1570,6 +1573,33 @@
);
+ // R[erase_suspend]: V(False)
+
+ prim_subreg #(
+ .DW (1),
+ .SWACCESS("RW"),
+ .RESVAL (1'h0)
+ ) u_erase_suspend (
+ .clk_i (clk_i ),
+ .rst_ni (rst_ni ),
+
+ // from register interface
+ .we (erase_suspend_we),
+ .wd (erase_suspend_wd),
+
+ // from internal hardware
+ .de (hw2reg.erase_suspend.de),
+ .d (hw2reg.erase_suspend.d ),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.erase_suspend.q ),
+
+ // to register interface (read)
+ .qs (erase_suspend_qs)
+ );
+
+
// Subregister 0 of Multireg region_cfg_regwen
// R[region_cfg_regwen_0]: V(False)
@@ -7729,7 +7759,7 @@
- logic [63:0] addr_hit;
+ logic [64:0] addr_hit;
always_comb begin
addr_hit = '0;
addr_hit[ 0] = (reg_addr == FLASH_CTRL_INTR_STATE_OFFSET);
@@ -7739,63 +7769,64 @@
addr_hit[ 4] = (reg_addr == FLASH_CTRL_CONTROL_OFFSET);
addr_hit[ 5] = (reg_addr == FLASH_CTRL_ADDR_OFFSET);
addr_hit[ 6] = (reg_addr == FLASH_CTRL_PROG_TYPE_EN_OFFSET);
- addr_hit[ 7] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET);
- addr_hit[ 8] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET);
- addr_hit[ 9] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET);
- addr_hit[10] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET);
- addr_hit[11] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET);
- addr_hit[12] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET);
- addr_hit[13] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET);
- addr_hit[14] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET);
- addr_hit[15] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_0_OFFSET);
- addr_hit[16] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_1_OFFSET);
- addr_hit[17] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_2_OFFSET);
- addr_hit[18] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_3_OFFSET);
- addr_hit[19] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_4_OFFSET);
- addr_hit[20] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_5_OFFSET);
- addr_hit[21] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_6_OFFSET);
- addr_hit[22] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_7_OFFSET);
- addr_hit[23] = (reg_addr == FLASH_CTRL_DEFAULT_REGION_OFFSET);
- addr_hit[24] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET);
- addr_hit[25] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET);
- addr_hit[26] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET);
- addr_hit[27] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET);
- addr_hit[28] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET);
- addr_hit[29] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET);
- addr_hit[30] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET);
- addr_hit[31] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET);
- addr_hit[32] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET);
- addr_hit[33] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET);
- addr_hit[34] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET);
- addr_hit[35] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET);
- addr_hit[36] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET);
- addr_hit[37] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET);
- addr_hit[38] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET);
- addr_hit[39] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET);
- addr_hit[40] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET);
- addr_hit[41] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET);
- addr_hit[42] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET);
- addr_hit[43] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET);
- addr_hit[44] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET);
- addr_hit[45] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET);
- addr_hit[46] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET);
- addr_hit[47] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET);
- addr_hit[48] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET);
- addr_hit[49] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET);
- addr_hit[50] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET);
- addr_hit[51] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET);
- addr_hit[52] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET);
- addr_hit[53] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET);
- addr_hit[54] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET);
- addr_hit[55] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET);
- addr_hit[56] = (reg_addr == FLASH_CTRL_BANK_CFG_REGWEN_OFFSET);
- addr_hit[57] = (reg_addr == FLASH_CTRL_MP_BANK_CFG_OFFSET);
- addr_hit[58] = (reg_addr == FLASH_CTRL_OP_STATUS_OFFSET);
- addr_hit[59] = (reg_addr == FLASH_CTRL_STATUS_OFFSET);
- addr_hit[60] = (reg_addr == FLASH_CTRL_PHY_STATUS_OFFSET);
- addr_hit[61] = (reg_addr == FLASH_CTRL_SCRATCH_OFFSET);
- addr_hit[62] = (reg_addr == FLASH_CTRL_FIFO_LVL_OFFSET);
- addr_hit[63] = (reg_addr == FLASH_CTRL_FIFO_RST_OFFSET);
+ addr_hit[ 7] = (reg_addr == FLASH_CTRL_ERASE_SUSPEND_OFFSET);
+ addr_hit[ 8] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_0_OFFSET);
+ addr_hit[ 9] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_1_OFFSET);
+ addr_hit[10] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_2_OFFSET);
+ addr_hit[11] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_3_OFFSET);
+ addr_hit[12] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_4_OFFSET);
+ addr_hit[13] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_5_OFFSET);
+ addr_hit[14] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_6_OFFSET);
+ addr_hit[15] = (reg_addr == FLASH_CTRL_REGION_CFG_REGWEN_7_OFFSET);
+ addr_hit[16] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_0_OFFSET);
+ addr_hit[17] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_1_OFFSET);
+ addr_hit[18] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_2_OFFSET);
+ addr_hit[19] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_3_OFFSET);
+ addr_hit[20] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_4_OFFSET);
+ addr_hit[21] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_5_OFFSET);
+ addr_hit[22] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_6_OFFSET);
+ addr_hit[23] = (reg_addr == FLASH_CTRL_MP_REGION_CFG_7_OFFSET);
+ addr_hit[24] = (reg_addr == FLASH_CTRL_DEFAULT_REGION_OFFSET);
+ addr_hit[25] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_0_OFFSET);
+ addr_hit[26] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_1_OFFSET);
+ addr_hit[27] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_2_OFFSET);
+ addr_hit[28] = (reg_addr == FLASH_CTRL_BANK0_INFO0_REGWEN_3_OFFSET);
+ addr_hit[29] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_OFFSET);
+ addr_hit[30] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_1_OFFSET);
+ addr_hit[31] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_2_OFFSET);
+ addr_hit[32] = (reg_addr == FLASH_CTRL_BANK0_INFO0_PAGE_CFG_3_OFFSET);
+ addr_hit[33] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_0_OFFSET);
+ addr_hit[34] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_1_OFFSET);
+ addr_hit[35] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_2_OFFSET);
+ addr_hit[36] = (reg_addr == FLASH_CTRL_BANK0_INFO1_REGWEN_3_OFFSET);
+ addr_hit[37] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_0_OFFSET);
+ addr_hit[38] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_1_OFFSET);
+ addr_hit[39] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_2_OFFSET);
+ addr_hit[40] = (reg_addr == FLASH_CTRL_BANK0_INFO1_PAGE_CFG_3_OFFSET);
+ addr_hit[41] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_0_OFFSET);
+ addr_hit[42] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_1_OFFSET);
+ addr_hit[43] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_2_OFFSET);
+ addr_hit[44] = (reg_addr == FLASH_CTRL_BANK1_INFO0_REGWEN_3_OFFSET);
+ addr_hit[45] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_0_OFFSET);
+ addr_hit[46] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_1_OFFSET);
+ addr_hit[47] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_2_OFFSET);
+ addr_hit[48] = (reg_addr == FLASH_CTRL_BANK1_INFO0_PAGE_CFG_3_OFFSET);
+ addr_hit[49] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_0_OFFSET);
+ addr_hit[50] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_1_OFFSET);
+ addr_hit[51] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_2_OFFSET);
+ addr_hit[52] = (reg_addr == FLASH_CTRL_BANK1_INFO1_REGWEN_3_OFFSET);
+ addr_hit[53] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_0_OFFSET);
+ addr_hit[54] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_1_OFFSET);
+ addr_hit[55] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_2_OFFSET);
+ addr_hit[56] = (reg_addr == FLASH_CTRL_BANK1_INFO1_PAGE_CFG_3_OFFSET);
+ addr_hit[57] = (reg_addr == FLASH_CTRL_BANK_CFG_REGWEN_OFFSET);
+ addr_hit[58] = (reg_addr == FLASH_CTRL_MP_BANK_CFG_OFFSET);
+ addr_hit[59] = (reg_addr == FLASH_CTRL_OP_STATUS_OFFSET);
+ addr_hit[60] = (reg_addr == FLASH_CTRL_STATUS_OFFSET);
+ addr_hit[61] = (reg_addr == FLASH_CTRL_PHY_STATUS_OFFSET);
+ addr_hit[62] = (reg_addr == FLASH_CTRL_SCRATCH_OFFSET);
+ addr_hit[63] = (reg_addr == FLASH_CTRL_FIFO_LVL_OFFSET);
+ addr_hit[64] = (reg_addr == FLASH_CTRL_FIFO_RST_OFFSET);
end
assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -7867,6 +7898,7 @@
if (addr_hit[61] && reg_we && (FLASH_CTRL_PERMIT[61] != (FLASH_CTRL_PERMIT[61] & reg_be))) wr_err = 1'b1 ;
if (addr_hit[62] && reg_we && (FLASH_CTRL_PERMIT[62] != (FLASH_CTRL_PERMIT[62] & reg_be))) wr_err = 1'b1 ;
if (addr_hit[63] && reg_we && (FLASH_CTRL_PERMIT[63] != (FLASH_CTRL_PERMIT[63] & reg_be))) wr_err = 1'b1 ;
+ if (addr_hit[64] && reg_we && (FLASH_CTRL_PERMIT[64] != (FLASH_CTRL_PERMIT[64] & reg_be))) wr_err = 1'b1 ;
end
assign intr_state_prog_empty_we = addr_hit[0] & reg_we & ~wr_err;
@@ -7955,661 +7987,664 @@
assign prog_type_en_repair_we = addr_hit[6] & reg_we & ~wr_err;
assign prog_type_en_repair_wd = reg_wdata[1];
- assign region_cfg_regwen_0_we = addr_hit[7] & reg_we & ~wr_err;
+ assign erase_suspend_we = addr_hit[7] & reg_we & ~wr_err;
+ assign erase_suspend_wd = reg_wdata[0];
+
+ assign region_cfg_regwen_0_we = addr_hit[8] & reg_we & ~wr_err;
assign region_cfg_regwen_0_wd = reg_wdata[0];
- assign region_cfg_regwen_1_we = addr_hit[8] & reg_we & ~wr_err;
+ assign region_cfg_regwen_1_we = addr_hit[9] & reg_we & ~wr_err;
assign region_cfg_regwen_1_wd = reg_wdata[0];
- assign region_cfg_regwen_2_we = addr_hit[9] & reg_we & ~wr_err;
+ assign region_cfg_regwen_2_we = addr_hit[10] & reg_we & ~wr_err;
assign region_cfg_regwen_2_wd = reg_wdata[0];
- assign region_cfg_regwen_3_we = addr_hit[10] & reg_we & ~wr_err;
+ assign region_cfg_regwen_3_we = addr_hit[11] & reg_we & ~wr_err;
assign region_cfg_regwen_3_wd = reg_wdata[0];
- assign region_cfg_regwen_4_we = addr_hit[11] & reg_we & ~wr_err;
+ assign region_cfg_regwen_4_we = addr_hit[12] & reg_we & ~wr_err;
assign region_cfg_regwen_4_wd = reg_wdata[0];
- assign region_cfg_regwen_5_we = addr_hit[12] & reg_we & ~wr_err;
+ assign region_cfg_regwen_5_we = addr_hit[13] & reg_we & ~wr_err;
assign region_cfg_regwen_5_wd = reg_wdata[0];
- assign region_cfg_regwen_6_we = addr_hit[13] & reg_we & ~wr_err;
+ assign region_cfg_regwen_6_we = addr_hit[14] & reg_we & ~wr_err;
assign region_cfg_regwen_6_wd = reg_wdata[0];
- assign region_cfg_regwen_7_we = addr_hit[14] & reg_we & ~wr_err;
+ assign region_cfg_regwen_7_we = addr_hit[15] & reg_we & ~wr_err;
assign region_cfg_regwen_7_wd = reg_wdata[0];
- assign mp_region_cfg_0_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_en_0_wd = reg_wdata[0];
- assign mp_region_cfg_0_rd_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_rd_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign mp_region_cfg_0_prog_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_prog_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign mp_region_cfg_0_erase_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_erase_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign mp_region_cfg_0_scramble_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_scramble_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign mp_region_cfg_0_ecc_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_ecc_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign mp_region_cfg_0_he_en_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_he_en_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_he_en_0_wd = reg_wdata[6];
- assign mp_region_cfg_0_base_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_base_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_base_0_wd = reg_wdata[16:8];
- assign mp_region_cfg_0_size_0_we = addr_hit[15] & reg_we & ~wr_err;
+ assign mp_region_cfg_0_size_0_we = addr_hit[16] & reg_we & ~wr_err;
assign mp_region_cfg_0_size_0_wd = reg_wdata[29:20];
- assign mp_region_cfg_1_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_en_1_wd = reg_wdata[0];
- assign mp_region_cfg_1_rd_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_rd_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign mp_region_cfg_1_prog_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_prog_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign mp_region_cfg_1_erase_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_erase_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign mp_region_cfg_1_scramble_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_scramble_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign mp_region_cfg_1_ecc_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_ecc_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign mp_region_cfg_1_he_en_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_he_en_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_he_en_1_wd = reg_wdata[6];
- assign mp_region_cfg_1_base_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_base_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_base_1_wd = reg_wdata[16:8];
- assign mp_region_cfg_1_size_1_we = addr_hit[16] & reg_we & ~wr_err;
+ assign mp_region_cfg_1_size_1_we = addr_hit[17] & reg_we & ~wr_err;
assign mp_region_cfg_1_size_1_wd = reg_wdata[29:20];
- assign mp_region_cfg_2_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_en_2_wd = reg_wdata[0];
- assign mp_region_cfg_2_rd_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_rd_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign mp_region_cfg_2_prog_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_prog_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign mp_region_cfg_2_erase_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_erase_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign mp_region_cfg_2_scramble_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_scramble_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign mp_region_cfg_2_ecc_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_ecc_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign mp_region_cfg_2_he_en_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_he_en_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_he_en_2_wd = reg_wdata[6];
- assign mp_region_cfg_2_base_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_base_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_base_2_wd = reg_wdata[16:8];
- assign mp_region_cfg_2_size_2_we = addr_hit[17] & reg_we & ~wr_err;
+ assign mp_region_cfg_2_size_2_we = addr_hit[18] & reg_we & ~wr_err;
assign mp_region_cfg_2_size_2_wd = reg_wdata[29:20];
- assign mp_region_cfg_3_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_en_3_wd = reg_wdata[0];
- assign mp_region_cfg_3_rd_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_rd_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign mp_region_cfg_3_prog_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_prog_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign mp_region_cfg_3_erase_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_erase_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign mp_region_cfg_3_scramble_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_scramble_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign mp_region_cfg_3_ecc_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_ecc_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign mp_region_cfg_3_he_en_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_he_en_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_he_en_3_wd = reg_wdata[6];
- assign mp_region_cfg_3_base_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_base_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_base_3_wd = reg_wdata[16:8];
- assign mp_region_cfg_3_size_3_we = addr_hit[18] & reg_we & ~wr_err;
+ assign mp_region_cfg_3_size_3_we = addr_hit[19] & reg_we & ~wr_err;
assign mp_region_cfg_3_size_3_wd = reg_wdata[29:20];
- assign mp_region_cfg_4_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_en_4_wd = reg_wdata[0];
- assign mp_region_cfg_4_rd_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_rd_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_rd_en_4_wd = reg_wdata[1];
- assign mp_region_cfg_4_prog_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_prog_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_prog_en_4_wd = reg_wdata[2];
- assign mp_region_cfg_4_erase_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_erase_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_erase_en_4_wd = reg_wdata[3];
- assign mp_region_cfg_4_scramble_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_scramble_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_scramble_en_4_wd = reg_wdata[4];
- assign mp_region_cfg_4_ecc_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_ecc_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_ecc_en_4_wd = reg_wdata[5];
- assign mp_region_cfg_4_he_en_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_he_en_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_he_en_4_wd = reg_wdata[6];
- assign mp_region_cfg_4_base_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_base_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_base_4_wd = reg_wdata[16:8];
- assign mp_region_cfg_4_size_4_we = addr_hit[19] & reg_we & ~wr_err;
+ assign mp_region_cfg_4_size_4_we = addr_hit[20] & reg_we & ~wr_err;
assign mp_region_cfg_4_size_4_wd = reg_wdata[29:20];
- assign mp_region_cfg_5_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_en_5_wd = reg_wdata[0];
- assign mp_region_cfg_5_rd_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_rd_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_rd_en_5_wd = reg_wdata[1];
- assign mp_region_cfg_5_prog_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_prog_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_prog_en_5_wd = reg_wdata[2];
- assign mp_region_cfg_5_erase_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_erase_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_erase_en_5_wd = reg_wdata[3];
- assign mp_region_cfg_5_scramble_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_scramble_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_scramble_en_5_wd = reg_wdata[4];
- assign mp_region_cfg_5_ecc_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_ecc_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_ecc_en_5_wd = reg_wdata[5];
- assign mp_region_cfg_5_he_en_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_he_en_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_he_en_5_wd = reg_wdata[6];
- assign mp_region_cfg_5_base_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_base_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_base_5_wd = reg_wdata[16:8];
- assign mp_region_cfg_5_size_5_we = addr_hit[20] & reg_we & ~wr_err;
+ assign mp_region_cfg_5_size_5_we = addr_hit[21] & reg_we & ~wr_err;
assign mp_region_cfg_5_size_5_wd = reg_wdata[29:20];
- assign mp_region_cfg_6_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_en_6_wd = reg_wdata[0];
- assign mp_region_cfg_6_rd_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_rd_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_rd_en_6_wd = reg_wdata[1];
- assign mp_region_cfg_6_prog_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_prog_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_prog_en_6_wd = reg_wdata[2];
- assign mp_region_cfg_6_erase_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_erase_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_erase_en_6_wd = reg_wdata[3];
- assign mp_region_cfg_6_scramble_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_scramble_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_scramble_en_6_wd = reg_wdata[4];
- assign mp_region_cfg_6_ecc_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_ecc_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_ecc_en_6_wd = reg_wdata[5];
- assign mp_region_cfg_6_he_en_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_he_en_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_he_en_6_wd = reg_wdata[6];
- assign mp_region_cfg_6_base_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_base_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_base_6_wd = reg_wdata[16:8];
- assign mp_region_cfg_6_size_6_we = addr_hit[21] & reg_we & ~wr_err;
+ assign mp_region_cfg_6_size_6_we = addr_hit[22] & reg_we & ~wr_err;
assign mp_region_cfg_6_size_6_wd = reg_wdata[29:20];
- assign mp_region_cfg_7_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_en_7_wd = reg_wdata[0];
- assign mp_region_cfg_7_rd_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_rd_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_rd_en_7_wd = reg_wdata[1];
- assign mp_region_cfg_7_prog_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_prog_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_prog_en_7_wd = reg_wdata[2];
- assign mp_region_cfg_7_erase_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_erase_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_erase_en_7_wd = reg_wdata[3];
- assign mp_region_cfg_7_scramble_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_scramble_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_scramble_en_7_wd = reg_wdata[4];
- assign mp_region_cfg_7_ecc_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_ecc_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_ecc_en_7_wd = reg_wdata[5];
- assign mp_region_cfg_7_he_en_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_he_en_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_he_en_7_wd = reg_wdata[6];
- assign mp_region_cfg_7_base_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_base_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_base_7_wd = reg_wdata[16:8];
- assign mp_region_cfg_7_size_7_we = addr_hit[22] & reg_we & ~wr_err;
+ assign mp_region_cfg_7_size_7_we = addr_hit[23] & reg_we & ~wr_err;
assign mp_region_cfg_7_size_7_wd = reg_wdata[29:20];
- assign default_region_rd_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_rd_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_rd_en_wd = reg_wdata[0];
- assign default_region_prog_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_prog_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_prog_en_wd = reg_wdata[1];
- assign default_region_erase_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_erase_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_erase_en_wd = reg_wdata[2];
- assign default_region_scramble_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_scramble_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_scramble_en_wd = reg_wdata[3];
- assign default_region_ecc_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_ecc_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_ecc_en_wd = reg_wdata[4];
- assign default_region_he_en_we = addr_hit[23] & reg_we & ~wr_err;
+ assign default_region_he_en_we = addr_hit[24] & reg_we & ~wr_err;
assign default_region_he_en_wd = reg_wdata[5];
- assign bank0_info0_regwen_0_we = addr_hit[24] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_0_we = addr_hit[25] & reg_we & ~wr_err;
assign bank0_info0_regwen_0_wd = reg_wdata[0];
- assign bank0_info0_regwen_1_we = addr_hit[25] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_1_we = addr_hit[26] & reg_we & ~wr_err;
assign bank0_info0_regwen_1_wd = reg_wdata[0];
- assign bank0_info0_regwen_2_we = addr_hit[26] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_2_we = addr_hit[27] & reg_we & ~wr_err;
assign bank0_info0_regwen_2_wd = reg_wdata[0];
- assign bank0_info0_regwen_3_we = addr_hit[27] & reg_we & ~wr_err;
+ assign bank0_info0_regwen_3_we = addr_hit[28] & reg_we & ~wr_err;
assign bank0_info0_regwen_3_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_0_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_0_rd_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_rd_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_0_prog_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_prog_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_0_erase_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_erase_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_0_scramble_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_scramble_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_0_ecc_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_ecc_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_0_he_en_0_we = addr_hit[28] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_0_he_en_0_we = addr_hit[29] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_1_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_1_rd_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_rd_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_1_prog_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_prog_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_1_erase_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_erase_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_1_scramble_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_scramble_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_1_ecc_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_ecc_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_1_he_en_1_we = addr_hit[29] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_1_he_en_1_we = addr_hit[30] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_2_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_2_rd_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_rd_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_2_prog_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_prog_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_2_erase_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_erase_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_2_scramble_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_scramble_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_2_ecc_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_ecc_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_2_he_en_2_we = addr_hit[30] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_2_he_en_2_we = addr_hit[31] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank0_info0_page_cfg_3_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank0_info0_page_cfg_3_rd_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_rd_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank0_info0_page_cfg_3_prog_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_prog_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank0_info0_page_cfg_3_erase_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_erase_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank0_info0_page_cfg_3_scramble_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_scramble_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank0_info0_page_cfg_3_ecc_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_ecc_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank0_info0_page_cfg_3_he_en_3_we = addr_hit[31] & reg_we & ~wr_err;
+ assign bank0_info0_page_cfg_3_he_en_3_we = addr_hit[32] & reg_we & ~wr_err;
assign bank0_info0_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank0_info1_regwen_0_we = addr_hit[32] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_0_we = addr_hit[33] & reg_we & ~wr_err;
assign bank0_info1_regwen_0_wd = reg_wdata[0];
- assign bank0_info1_regwen_1_we = addr_hit[33] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_1_we = addr_hit[34] & reg_we & ~wr_err;
assign bank0_info1_regwen_1_wd = reg_wdata[0];
- assign bank0_info1_regwen_2_we = addr_hit[34] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_2_we = addr_hit[35] & reg_we & ~wr_err;
assign bank0_info1_regwen_2_wd = reg_wdata[0];
- assign bank0_info1_regwen_3_we = addr_hit[35] & reg_we & ~wr_err;
+ assign bank0_info1_regwen_3_we = addr_hit[36] & reg_we & ~wr_err;
assign bank0_info1_regwen_3_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_0_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_0_rd_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_rd_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_0_prog_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_prog_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_0_erase_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_erase_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_0_scramble_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_scramble_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_0_ecc_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_ecc_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_0_he_en_0_we = addr_hit[36] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_0_he_en_0_we = addr_hit[37] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_1_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_1_rd_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_rd_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_1_prog_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_prog_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_1_erase_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_erase_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_1_scramble_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_scramble_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_1_ecc_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_ecc_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_1_he_en_1_we = addr_hit[37] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_1_he_en_1_we = addr_hit[38] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_2_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_2_rd_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_rd_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_2_prog_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_prog_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_2_erase_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_erase_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_2_scramble_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_scramble_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_2_ecc_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_ecc_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_2_he_en_2_we = addr_hit[38] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_2_he_en_2_we = addr_hit[39] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank0_info1_page_cfg_3_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank0_info1_page_cfg_3_rd_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_rd_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank0_info1_page_cfg_3_prog_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_prog_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank0_info1_page_cfg_3_erase_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_erase_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank0_info1_page_cfg_3_scramble_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_scramble_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank0_info1_page_cfg_3_ecc_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_ecc_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank0_info1_page_cfg_3_he_en_3_we = addr_hit[39] & reg_we & ~wr_err;
+ assign bank0_info1_page_cfg_3_he_en_3_we = addr_hit[40] & reg_we & ~wr_err;
assign bank0_info1_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank1_info0_regwen_0_we = addr_hit[40] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_0_we = addr_hit[41] & reg_we & ~wr_err;
assign bank1_info0_regwen_0_wd = reg_wdata[0];
- assign bank1_info0_regwen_1_we = addr_hit[41] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_1_we = addr_hit[42] & reg_we & ~wr_err;
assign bank1_info0_regwen_1_wd = reg_wdata[0];
- assign bank1_info0_regwen_2_we = addr_hit[42] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_2_we = addr_hit[43] & reg_we & ~wr_err;
assign bank1_info0_regwen_2_wd = reg_wdata[0];
- assign bank1_info0_regwen_3_we = addr_hit[43] & reg_we & ~wr_err;
+ assign bank1_info0_regwen_3_we = addr_hit[44] & reg_we & ~wr_err;
assign bank1_info0_regwen_3_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_0_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_0_rd_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_rd_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_0_prog_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_prog_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_0_erase_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_erase_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_0_scramble_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_scramble_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_0_ecc_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_ecc_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_0_he_en_0_we = addr_hit[44] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_0_he_en_0_we = addr_hit[45] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_1_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_1_rd_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_rd_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_1_prog_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_prog_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_1_erase_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_erase_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_1_scramble_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_scramble_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_1_ecc_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_ecc_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_1_he_en_1_we = addr_hit[45] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_1_he_en_1_we = addr_hit[46] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_2_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_2_rd_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_rd_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_2_prog_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_prog_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_2_erase_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_erase_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_2_scramble_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_scramble_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_2_ecc_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_ecc_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_2_he_en_2_we = addr_hit[46] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_2_he_en_2_we = addr_hit[47] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank1_info0_page_cfg_3_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank1_info0_page_cfg_3_rd_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_rd_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank1_info0_page_cfg_3_prog_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_prog_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank1_info0_page_cfg_3_erase_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_erase_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank1_info0_page_cfg_3_scramble_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_scramble_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank1_info0_page_cfg_3_ecc_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_ecc_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank1_info0_page_cfg_3_he_en_3_we = addr_hit[47] & reg_we & ~wr_err;
+ assign bank1_info0_page_cfg_3_he_en_3_we = addr_hit[48] & reg_we & ~wr_err;
assign bank1_info0_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank1_info1_regwen_0_we = addr_hit[48] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_0_we = addr_hit[49] & reg_we & ~wr_err;
assign bank1_info1_regwen_0_wd = reg_wdata[0];
- assign bank1_info1_regwen_1_we = addr_hit[49] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_1_we = addr_hit[50] & reg_we & ~wr_err;
assign bank1_info1_regwen_1_wd = reg_wdata[0];
- assign bank1_info1_regwen_2_we = addr_hit[50] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_2_we = addr_hit[51] & reg_we & ~wr_err;
assign bank1_info1_regwen_2_wd = reg_wdata[0];
- assign bank1_info1_regwen_3_we = addr_hit[51] & reg_we & ~wr_err;
+ assign bank1_info1_regwen_3_we = addr_hit[52] & reg_we & ~wr_err;
assign bank1_info1_regwen_3_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_0_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_en_0_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_0_rd_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_rd_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_rd_en_0_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_0_prog_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_prog_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_prog_en_0_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_0_erase_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_erase_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_erase_en_0_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_0_scramble_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_scramble_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_scramble_en_0_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_0_ecc_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_ecc_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_ecc_en_0_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_0_he_en_0_we = addr_hit[52] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_0_he_en_0_we = addr_hit[53] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_0_he_en_0_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_1_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_en_1_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_1_rd_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_rd_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_rd_en_1_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_1_prog_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_prog_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_prog_en_1_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_1_erase_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_erase_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_erase_en_1_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_1_scramble_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_scramble_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_scramble_en_1_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_1_ecc_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_ecc_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_ecc_en_1_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_1_he_en_1_we = addr_hit[53] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_1_he_en_1_we = addr_hit[54] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_1_he_en_1_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_2_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_en_2_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_2_rd_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_rd_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_rd_en_2_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_2_prog_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_prog_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_prog_en_2_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_2_erase_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_erase_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_erase_en_2_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_2_scramble_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_scramble_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_scramble_en_2_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_2_ecc_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_ecc_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_ecc_en_2_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_2_he_en_2_we = addr_hit[54] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_2_he_en_2_we = addr_hit[55] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_2_he_en_2_wd = reg_wdata[6];
- assign bank1_info1_page_cfg_3_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_en_3_wd = reg_wdata[0];
- assign bank1_info1_page_cfg_3_rd_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_rd_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_rd_en_3_wd = reg_wdata[1];
- assign bank1_info1_page_cfg_3_prog_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_prog_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_prog_en_3_wd = reg_wdata[2];
- assign bank1_info1_page_cfg_3_erase_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_erase_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_erase_en_3_wd = reg_wdata[3];
- assign bank1_info1_page_cfg_3_scramble_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_scramble_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_scramble_en_3_wd = reg_wdata[4];
- assign bank1_info1_page_cfg_3_ecc_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_ecc_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_ecc_en_3_wd = reg_wdata[5];
- assign bank1_info1_page_cfg_3_he_en_3_we = addr_hit[55] & reg_we & ~wr_err;
+ assign bank1_info1_page_cfg_3_he_en_3_we = addr_hit[56] & reg_we & ~wr_err;
assign bank1_info1_page_cfg_3_he_en_3_wd = reg_wdata[6];
- assign bank_cfg_regwen_we = addr_hit[56] & reg_we & ~wr_err;
+ assign bank_cfg_regwen_we = addr_hit[57] & reg_we & ~wr_err;
assign bank_cfg_regwen_wd = reg_wdata[0];
- assign mp_bank_cfg_erase_en_0_we = addr_hit[57] & reg_we & ~wr_err;
+ assign mp_bank_cfg_erase_en_0_we = addr_hit[58] & reg_we & ~wr_err;
assign mp_bank_cfg_erase_en_0_wd = reg_wdata[0];
- assign mp_bank_cfg_erase_en_1_we = addr_hit[57] & reg_we & ~wr_err;
+ assign mp_bank_cfg_erase_en_1_we = addr_hit[58] & reg_we & ~wr_err;
assign mp_bank_cfg_erase_en_1_wd = reg_wdata[1];
- assign op_status_done_we = addr_hit[58] & reg_we & ~wr_err;
+ assign op_status_done_we = addr_hit[59] & reg_we & ~wr_err;
assign op_status_done_wd = reg_wdata[0];
- assign op_status_err_we = addr_hit[58] & reg_we & ~wr_err;
+ assign op_status_err_we = addr_hit[59] & reg_we & ~wr_err;
assign op_status_err_wd = reg_wdata[1];
@@ -8621,16 +8656,16 @@
- assign scratch_we = addr_hit[61] & reg_we & ~wr_err;
+ assign scratch_we = addr_hit[62] & reg_we & ~wr_err;
assign scratch_wd = reg_wdata[31:0];
- assign fifo_lvl_prog_we = addr_hit[62] & reg_we & ~wr_err;
+ assign fifo_lvl_prog_we = addr_hit[63] & reg_we & ~wr_err;
assign fifo_lvl_prog_wd = reg_wdata[4:0];
- assign fifo_lvl_rd_we = addr_hit[62] & reg_we & ~wr_err;
+ assign fifo_lvl_rd_we = addr_hit[63] & reg_we & ~wr_err;
assign fifo_lvl_rd_wd = reg_wdata[12:8];
- assign fifo_rst_we = addr_hit[63] & reg_we & ~wr_err;
+ assign fifo_rst_we = addr_hit[64] & reg_we & ~wr_err;
assign fifo_rst_wd = reg_wdata[0];
// Read data return
@@ -8688,38 +8723,42 @@
end
addr_hit[7]: begin
- reg_rdata_next[0] = region_cfg_regwen_0_qs;
+ reg_rdata_next[0] = erase_suspend_qs;
end
addr_hit[8]: begin
- reg_rdata_next[0] = region_cfg_regwen_1_qs;
+ reg_rdata_next[0] = region_cfg_regwen_0_qs;
end
addr_hit[9]: begin
- reg_rdata_next[0] = region_cfg_regwen_2_qs;
+ reg_rdata_next[0] = region_cfg_regwen_1_qs;
end
addr_hit[10]: begin
- reg_rdata_next[0] = region_cfg_regwen_3_qs;
+ reg_rdata_next[0] = region_cfg_regwen_2_qs;
end
addr_hit[11]: begin
- reg_rdata_next[0] = region_cfg_regwen_4_qs;
+ reg_rdata_next[0] = region_cfg_regwen_3_qs;
end
addr_hit[12]: begin
- reg_rdata_next[0] = region_cfg_regwen_5_qs;
+ reg_rdata_next[0] = region_cfg_regwen_4_qs;
end
addr_hit[13]: begin
- reg_rdata_next[0] = region_cfg_regwen_6_qs;
+ reg_rdata_next[0] = region_cfg_regwen_5_qs;
end
addr_hit[14]: begin
- reg_rdata_next[0] = region_cfg_regwen_7_qs;
+ reg_rdata_next[0] = region_cfg_regwen_6_qs;
end
addr_hit[15]: begin
+ reg_rdata_next[0] = region_cfg_regwen_7_qs;
+ end
+
+ addr_hit[16]: begin
reg_rdata_next[0] = mp_region_cfg_0_en_0_qs;
reg_rdata_next[1] = mp_region_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = mp_region_cfg_0_prog_en_0_qs;
@@ -8731,7 +8770,7 @@
reg_rdata_next[29:20] = mp_region_cfg_0_size_0_qs;
end
- addr_hit[16]: begin
+ addr_hit[17]: begin
reg_rdata_next[0] = mp_region_cfg_1_en_1_qs;
reg_rdata_next[1] = mp_region_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = mp_region_cfg_1_prog_en_1_qs;
@@ -8743,7 +8782,7 @@
reg_rdata_next[29:20] = mp_region_cfg_1_size_1_qs;
end
- addr_hit[17]: begin
+ addr_hit[18]: begin
reg_rdata_next[0] = mp_region_cfg_2_en_2_qs;
reg_rdata_next[1] = mp_region_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = mp_region_cfg_2_prog_en_2_qs;
@@ -8755,7 +8794,7 @@
reg_rdata_next[29:20] = mp_region_cfg_2_size_2_qs;
end
- addr_hit[18]: begin
+ addr_hit[19]: begin
reg_rdata_next[0] = mp_region_cfg_3_en_3_qs;
reg_rdata_next[1] = mp_region_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = mp_region_cfg_3_prog_en_3_qs;
@@ -8767,7 +8806,7 @@
reg_rdata_next[29:20] = mp_region_cfg_3_size_3_qs;
end
- addr_hit[19]: begin
+ addr_hit[20]: begin
reg_rdata_next[0] = mp_region_cfg_4_en_4_qs;
reg_rdata_next[1] = mp_region_cfg_4_rd_en_4_qs;
reg_rdata_next[2] = mp_region_cfg_4_prog_en_4_qs;
@@ -8779,7 +8818,7 @@
reg_rdata_next[29:20] = mp_region_cfg_4_size_4_qs;
end
- addr_hit[20]: begin
+ addr_hit[21]: begin
reg_rdata_next[0] = mp_region_cfg_5_en_5_qs;
reg_rdata_next[1] = mp_region_cfg_5_rd_en_5_qs;
reg_rdata_next[2] = mp_region_cfg_5_prog_en_5_qs;
@@ -8791,7 +8830,7 @@
reg_rdata_next[29:20] = mp_region_cfg_5_size_5_qs;
end
- addr_hit[21]: begin
+ addr_hit[22]: begin
reg_rdata_next[0] = mp_region_cfg_6_en_6_qs;
reg_rdata_next[1] = mp_region_cfg_6_rd_en_6_qs;
reg_rdata_next[2] = mp_region_cfg_6_prog_en_6_qs;
@@ -8803,7 +8842,7 @@
reg_rdata_next[29:20] = mp_region_cfg_6_size_6_qs;
end
- addr_hit[22]: begin
+ addr_hit[23]: begin
reg_rdata_next[0] = mp_region_cfg_7_en_7_qs;
reg_rdata_next[1] = mp_region_cfg_7_rd_en_7_qs;
reg_rdata_next[2] = mp_region_cfg_7_prog_en_7_qs;
@@ -8815,7 +8854,7 @@
reg_rdata_next[29:20] = mp_region_cfg_7_size_7_qs;
end
- addr_hit[23]: begin
+ addr_hit[24]: begin
reg_rdata_next[0] = default_region_rd_en_qs;
reg_rdata_next[1] = default_region_prog_en_qs;
reg_rdata_next[2] = default_region_erase_en_qs;
@@ -8824,23 +8863,23 @@
reg_rdata_next[5] = default_region_he_en_qs;
end
- addr_hit[24]: begin
+ addr_hit[25]: begin
reg_rdata_next[0] = bank0_info0_regwen_0_qs;
end
- addr_hit[25]: begin
+ addr_hit[26]: begin
reg_rdata_next[0] = bank0_info0_regwen_1_qs;
end
- addr_hit[26]: begin
+ addr_hit[27]: begin
reg_rdata_next[0] = bank0_info0_regwen_2_qs;
end
- addr_hit[27]: begin
+ addr_hit[28]: begin
reg_rdata_next[0] = bank0_info0_regwen_3_qs;
end
- addr_hit[28]: begin
+ addr_hit[29]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_0_prog_en_0_qs;
@@ -8850,7 +8889,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_0_he_en_0_qs;
end
- addr_hit[29]: begin
+ addr_hit[30]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_1_prog_en_1_qs;
@@ -8860,7 +8899,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_1_he_en_1_qs;
end
- addr_hit[30]: begin
+ addr_hit[31]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_2_prog_en_2_qs;
@@ -8870,7 +8909,7 @@
reg_rdata_next[6] = bank0_info0_page_cfg_2_he_en_2_qs;
end
- addr_hit[31]: begin
+ addr_hit[32]: begin
reg_rdata_next[0] = bank0_info0_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank0_info0_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank0_info0_page_cfg_3_prog_en_3_qs;
@@ -8880,23 +8919,23 @@
reg_rdata_next[6] = bank0_info0_page_cfg_3_he_en_3_qs;
end
- addr_hit[32]: begin
+ addr_hit[33]: begin
reg_rdata_next[0] = bank0_info1_regwen_0_qs;
end
- addr_hit[33]: begin
+ addr_hit[34]: begin
reg_rdata_next[0] = bank0_info1_regwen_1_qs;
end
- addr_hit[34]: begin
+ addr_hit[35]: begin
reg_rdata_next[0] = bank0_info1_regwen_2_qs;
end
- addr_hit[35]: begin
+ addr_hit[36]: begin
reg_rdata_next[0] = bank0_info1_regwen_3_qs;
end
- addr_hit[36]: begin
+ addr_hit[37]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_0_prog_en_0_qs;
@@ -8906,7 +8945,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_0_he_en_0_qs;
end
- addr_hit[37]: begin
+ addr_hit[38]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_1_prog_en_1_qs;
@@ -8916,7 +8955,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_1_he_en_1_qs;
end
- addr_hit[38]: begin
+ addr_hit[39]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_2_prog_en_2_qs;
@@ -8926,7 +8965,7 @@
reg_rdata_next[6] = bank0_info1_page_cfg_2_he_en_2_qs;
end
- addr_hit[39]: begin
+ addr_hit[40]: begin
reg_rdata_next[0] = bank0_info1_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank0_info1_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank0_info1_page_cfg_3_prog_en_3_qs;
@@ -8936,23 +8975,23 @@
reg_rdata_next[6] = bank0_info1_page_cfg_3_he_en_3_qs;
end
- addr_hit[40]: begin
+ addr_hit[41]: begin
reg_rdata_next[0] = bank1_info0_regwen_0_qs;
end
- addr_hit[41]: begin
+ addr_hit[42]: begin
reg_rdata_next[0] = bank1_info0_regwen_1_qs;
end
- addr_hit[42]: begin
+ addr_hit[43]: begin
reg_rdata_next[0] = bank1_info0_regwen_2_qs;
end
- addr_hit[43]: begin
+ addr_hit[44]: begin
reg_rdata_next[0] = bank1_info0_regwen_3_qs;
end
- addr_hit[44]: begin
+ addr_hit[45]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_0_prog_en_0_qs;
@@ -8962,7 +9001,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_0_he_en_0_qs;
end
- addr_hit[45]: begin
+ addr_hit[46]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_1_prog_en_1_qs;
@@ -8972,7 +9011,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_1_he_en_1_qs;
end
- addr_hit[46]: begin
+ addr_hit[47]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_2_prog_en_2_qs;
@@ -8982,7 +9021,7 @@
reg_rdata_next[6] = bank1_info0_page_cfg_2_he_en_2_qs;
end
- addr_hit[47]: begin
+ addr_hit[48]: begin
reg_rdata_next[0] = bank1_info0_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank1_info0_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank1_info0_page_cfg_3_prog_en_3_qs;
@@ -8992,23 +9031,23 @@
reg_rdata_next[6] = bank1_info0_page_cfg_3_he_en_3_qs;
end
- addr_hit[48]: begin
+ addr_hit[49]: begin
reg_rdata_next[0] = bank1_info1_regwen_0_qs;
end
- addr_hit[49]: begin
+ addr_hit[50]: begin
reg_rdata_next[0] = bank1_info1_regwen_1_qs;
end
- addr_hit[50]: begin
+ addr_hit[51]: begin
reg_rdata_next[0] = bank1_info1_regwen_2_qs;
end
- addr_hit[51]: begin
+ addr_hit[52]: begin
reg_rdata_next[0] = bank1_info1_regwen_3_qs;
end
- addr_hit[52]: begin
+ addr_hit[53]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_0_en_0_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_0_rd_en_0_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_0_prog_en_0_qs;
@@ -9018,7 +9057,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_0_he_en_0_qs;
end
- addr_hit[53]: begin
+ addr_hit[54]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_1_en_1_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_1_rd_en_1_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_1_prog_en_1_qs;
@@ -9028,7 +9067,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_1_he_en_1_qs;
end
- addr_hit[54]: begin
+ addr_hit[55]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_2_en_2_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_2_rd_en_2_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_2_prog_en_2_qs;
@@ -9038,7 +9077,7 @@
reg_rdata_next[6] = bank1_info1_page_cfg_2_he_en_2_qs;
end
- addr_hit[55]: begin
+ addr_hit[56]: begin
reg_rdata_next[0] = bank1_info1_page_cfg_3_en_3_qs;
reg_rdata_next[1] = bank1_info1_page_cfg_3_rd_en_3_qs;
reg_rdata_next[2] = bank1_info1_page_cfg_3_prog_en_3_qs;
@@ -9048,21 +9087,21 @@
reg_rdata_next[6] = bank1_info1_page_cfg_3_he_en_3_qs;
end
- addr_hit[56]: begin
+ addr_hit[57]: begin
reg_rdata_next[0] = bank_cfg_regwen_qs;
end
- addr_hit[57]: begin
+ addr_hit[58]: begin
reg_rdata_next[0] = mp_bank_cfg_erase_en_0_qs;
reg_rdata_next[1] = mp_bank_cfg_erase_en_1_qs;
end
- addr_hit[58]: begin
+ addr_hit[59]: begin
reg_rdata_next[0] = op_status_done_qs;
reg_rdata_next[1] = op_status_err_qs;
end
- addr_hit[59]: begin
+ addr_hit[60]: begin
reg_rdata_next[0] = status_rd_full_qs;
reg_rdata_next[1] = status_rd_empty_qs;
reg_rdata_next[2] = status_prog_full_qs;
@@ -9071,22 +9110,22 @@
reg_rdata_next[16:8] = status_error_addr_qs;
end
- addr_hit[60]: begin
+ addr_hit[61]: begin
reg_rdata_next[0] = phy_status_init_wip_qs;
reg_rdata_next[1] = phy_status_prog_normal_avail_qs;
reg_rdata_next[2] = phy_status_prog_repair_avail_qs;
end
- addr_hit[61]: begin
+ addr_hit[62]: begin
reg_rdata_next[31:0] = scratch_qs;
end
- addr_hit[62]: begin
+ addr_hit[63]: begin
reg_rdata_next[4:0] = fifo_lvl_prog_qs;
reg_rdata_next[12:8] = fifo_lvl_rd_qs;
end
- addr_hit[63]: begin
+ addr_hit[64]: begin
reg_rdata_next[0] = fifo_rst_qs;
end
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index 2e53eaf..d4e1fa0 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -1090,7 +1090,9 @@
flash_ctrl #(
.RndCnstAddrKey(RndCnstFlashCtrlAddrKey),
- .RndCnstDataKey(RndCnstFlashCtrlDataKey)
+ .RndCnstDataKey(RndCnstFlashCtrlDataKey),
+ .RndCnstLfsrSeed(RndCnstFlashCtrlLfsrSeed),
+ .RndCnstLfsrPerm(RndCnstFlashCtrlLfsrPerm)
) u_flash_ctrl (
// Interrupt
@@ -1113,7 +1115,8 @@
.lc_seed_hw_rd_en_i(lc_ctrl_lc_seed_hw_rd_en),
.lc_i(flash_ctrl_pkg::LC_FLASH_REQ_DEFAULT),
.lc_o(),
- .edn_i(flash_ctrl_pkg::EDN_ENTROPY_DEFAULT),
+ .edn_o(),
+ .edn_i(edn_pkg::EDN_RSP_DEFAULT),
.pwrmgr_i(pwrmgr_pwr_flash_req),
.pwrmgr_o(pwrmgr_pwr_flash_rsp),
.keymgr_o(flash_ctrl_keymgr),
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv
index 5995e4a..cc1e23b 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv
@@ -83,6 +83,16 @@
128'hFABD19450B238D4C2D73930D4CAC3785
};
+ // Compile-time random bits for initial LFSR seed
+ parameter flash_ctrl_pkg::lfsr_seed_t RndCnstFlashCtrlLfsrSeed = {
+ 32'hD89F9DFC
+ };
+
+ // Compile-time random permutation for LFSR output
+ parameter flash_ctrl_pkg::lfsr_perm_t RndCnstFlashCtrlLfsrPerm = {
+ 160'h26FF203D990D87C5E8A98BAFEC7506855AA99C54
+ };
+
////////////////////////////////////////////
// keymgr
////////////////////////////////////////////