ICCM Flop done
This commit is contained in:
parent
f9c9633f61
commit
a885b0e1a7
|
@ -1,20 +1,30 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"class":"firrtl.transforms.CombinationalPath",
|
"class":"firrtl.transforms.CombinationalPath",
|
||||||
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_rd_data",
|
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_bank_wr_data_1",
|
||||||
"sources":[
|
"sources":[
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_rw_addr",
|
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_data"
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wren",
|
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_size"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"class":"firrtl.transforms.CombinationalPath",
|
"class":"firrtl.transforms.CombinationalPath",
|
||||||
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_rd_data_ecc",
|
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_bank_wr_data_0",
|
||||||
"sources":[
|
"sources":[
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_rw_addr",
|
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_data"
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wren",
|
]
|
||||||
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_size"
|
},
|
||||||
|
{
|
||||||
|
"class":"firrtl.transforms.CombinationalPath",
|
||||||
|
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_bank_wr_data_2",
|
||||||
|
"sources":[
|
||||||
|
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_data"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class":"firrtl.transforms.CombinationalPath",
|
||||||
|
"sink":"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_bank_wr_data_3",
|
||||||
|
"sources":[
|
||||||
|
"~el2_ifu_iccm_mem|el2_ifu_iccm_mem>io_iccm_wr_data"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,7 +11,11 @@ module el2_ifu_iccm_mem(
|
||||||
input [77:0] io_iccm_wr_data,
|
input [77:0] io_iccm_wr_data,
|
||||||
output [63:0] io_iccm_rd_data,
|
output [63:0] io_iccm_rd_data,
|
||||||
output [77:0] io_iccm_rd_data_ecc,
|
output [77:0] io_iccm_rd_data_ecc,
|
||||||
input io_scan_mode
|
input io_scan_mode,
|
||||||
|
output [38:0] io_iccm_bank_wr_data_0,
|
||||||
|
output [38:0] io_iccm_bank_wr_data_1,
|
||||||
|
output [38:0] io_iccm_bank_wr_data_2,
|
||||||
|
output [38:0] io_iccm_bank_wr_data_3
|
||||||
);
|
);
|
||||||
`ifdef RANDOMIZE_MEM_INIT
|
`ifdef RANDOMIZE_MEM_INIT
|
||||||
reg [63:0] _RAND_0;
|
reg [63:0] _RAND_0;
|
||||||
|
@ -20,94 +24,98 @@ module el2_ifu_iccm_mem(
|
||||||
reg [63:0] _RAND_3;
|
reg [63:0] _RAND_3;
|
||||||
`endif // RANDOMIZE_MEM_INIT
|
`endif // RANDOMIZE_MEM_INIT
|
||||||
`ifdef RANDOMIZE_REG_INIT
|
`ifdef RANDOMIZE_REG_INIT
|
||||||
reg [31:0] _RAND_4;
|
reg [63:0] _RAND_4;
|
||||||
reg [31:0] _RAND_5;
|
reg [63:0] _RAND_5;
|
||||||
reg [31:0] _RAND_6;
|
reg [63:0] _RAND_6;
|
||||||
reg [31:0] _RAND_7;
|
reg [63:0] _RAND_7;
|
||||||
reg [31:0] _RAND_8;
|
reg [31:0] _RAND_8;
|
||||||
reg [31:0] _RAND_9;
|
reg [31:0] _RAND_9;
|
||||||
reg [63:0] _RAND_10;
|
reg [31:0] _RAND_10;
|
||||||
reg [63:0] _RAND_11;
|
reg [31:0] _RAND_11;
|
||||||
reg [31:0] _RAND_12;
|
reg [31:0] _RAND_12;
|
||||||
reg [31:0] _RAND_13;
|
reg [31:0] _RAND_13;
|
||||||
reg [31:0] _RAND_14;
|
reg [63:0] _RAND_14;
|
||||||
|
reg [63:0] _RAND_15;
|
||||||
|
reg [31:0] _RAND_16;
|
||||||
|
reg [31:0] _RAND_17;
|
||||||
|
reg [31:0] _RAND_18;
|
||||||
`endif // RANDOMIZE_REG_INIT
|
`endif // RANDOMIZE_REG_INIT
|
||||||
reg [38:0] iccm_mem_0 [0:4095]; // @[el2_ifu_iccm_mem.scala 40:21]
|
reg [38:0] iccm_mem_0 [0:4095]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_0__T_97_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_0__T_97_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_0__T_97_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_0__T_97_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_0__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_0__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_0__T_93_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_0__T_93_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_93_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_93_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_93_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_93_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_0__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_0__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_0__T_94_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_0__T_94_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_94_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_94_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_94_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_94_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_0__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_0__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_0__T_95_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_0__T_95_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_95_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_95_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_95_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_95_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_0__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_0__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_0__T_96_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_0__T_96_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_96_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_96_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_0__T_96_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_0__T_96_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
reg [38:0] iccm_mem_1 [0:4095]; // @[el2_ifu_iccm_mem.scala 40:21]
|
reg [38:0] iccm_mem_1 [0:4095]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_1__T_97_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_1__T_97_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_1__T_97_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_1__T_97_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_1__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_1__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_1__T_93_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_1__T_93_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_93_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_93_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_93_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_93_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_1__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_1__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_1__T_94_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_1__T_94_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_94_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_94_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_94_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_94_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_1__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_1__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_1__T_95_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_1__T_95_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_95_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_95_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_95_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_95_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_1__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_1__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_1__T_96_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_1__T_96_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_96_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_96_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_1__T_96_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_1__T_96_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
reg [38:0] iccm_mem_2 [0:4095]; // @[el2_ifu_iccm_mem.scala 40:21]
|
reg [38:0] iccm_mem_2 [0:4095]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_2__T_97_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_2__T_97_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_2__T_97_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_2__T_97_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_2__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_2__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_2__T_93_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_2__T_93_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_93_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_93_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_93_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_93_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_2__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_2__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_2__T_94_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_2__T_94_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_94_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_94_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_94_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_94_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_2__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_2__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_2__T_95_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_2__T_95_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_95_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_95_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_95_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_95_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_2__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_2__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_2__T_96_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_2__T_96_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_96_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_96_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_2__T_96_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_2__T_96_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
reg [38:0] iccm_mem_3 [0:4095]; // @[el2_ifu_iccm_mem.scala 40:21]
|
reg [38:0] iccm_mem_3 [0:4095]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_3__T_97_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_3__T_97_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_3__T_97_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_3__T_97_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_3__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_3__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_3__T_93_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_3__T_93_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_93_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_93_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_93_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_93_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_3__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_3__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_3__T_94_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_3__T_94_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_94_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_94_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_94_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_94_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_3__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_3__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_3__T_95_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_3__T_95_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_95_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_95_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_95_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_95_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [38:0] iccm_mem_3__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [38:0] iccm_mem_3__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire [11:0] iccm_mem_3__T_96_addr; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire [11:0] iccm_mem_3__T_96_addr; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_96_mask; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_96_mask; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire iccm_mem_3__T_96_en; // @[el2_ifu_iccm_mem.scala 40:21]
|
wire iccm_mem_3__T_96_en; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
wire _T_1 = io_iccm_wr_size[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 24:43]
|
wire _T_1 = io_iccm_wr_size[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 24:43]
|
||||||
wire [1:0] addr_inc = _T_1 ? 2'h2 : 2'h1; // @[el2_ifu_iccm_mem.scala 24:21]
|
wire [1:0] addr_inc = _T_1 ? 2'h2 : 2'h1; // @[el2_ifu_iccm_mem.scala 24:21]
|
||||||
wire [14:0] _GEN_15 = {{13'd0}, addr_inc}; // @[el2_ifu_iccm_mem.scala 25:54]
|
wire [14:0] _GEN_15 = {{13'd0}, addr_inc}; // @[el2_ifu_iccm_mem.scala 25:54]
|
||||||
|
@ -130,181 +138,181 @@ module el2_ifu_iccm_mem(
|
||||||
wire _T_26 = io_iccm_wren & _T_25; // @[el2_ifu_iccm_mem.scala 33:64]
|
wire _T_26 = io_iccm_wren & _T_25; // @[el2_ifu_iccm_mem.scala 33:64]
|
||||||
wire _T_28 = addr_bank_inc[2:1] == 2'h3; // @[el2_ifu_iccm_mem.scala 33:139]
|
wire _T_28 = addr_bank_inc[2:1] == 2'h3; // @[el2_ifu_iccm_mem.scala 33:139]
|
||||||
wire wren_bank_3 = _T_26 | _T_28; // @[el2_ifu_iccm_mem.scala 33:106]
|
wire wren_bank_3 = _T_26 | _T_28; // @[el2_ifu_iccm_mem.scala 33:106]
|
||||||
wire _T_31 = io_iccm_rden & _T_10; // @[el2_ifu_iccm_mem.scala 35:64]
|
wire _T_31 = io_iccm_rden & _T_10; // @[el2_ifu_iccm_mem.scala 36:64]
|
||||||
wire rden_bank_0 = _T_31 | _T_13; // @[el2_ifu_iccm_mem.scala 35:106]
|
wire rden_bank_0 = _T_31 | _T_13; // @[el2_ifu_iccm_mem.scala 36:106]
|
||||||
wire _T_36 = io_iccm_rden & _T_15; // @[el2_ifu_iccm_mem.scala 35:64]
|
wire _T_36 = io_iccm_rden & _T_15; // @[el2_ifu_iccm_mem.scala 36:64]
|
||||||
wire rden_bank_1 = _T_36 | _T_18; // @[el2_ifu_iccm_mem.scala 35:106]
|
wire rden_bank_1 = _T_36 | _T_18; // @[el2_ifu_iccm_mem.scala 36:106]
|
||||||
wire _T_41 = io_iccm_rden & _T_20; // @[el2_ifu_iccm_mem.scala 35:64]
|
wire _T_41 = io_iccm_rden & _T_20; // @[el2_ifu_iccm_mem.scala 36:64]
|
||||||
wire rden_bank_2 = _T_41 | _T_23; // @[el2_ifu_iccm_mem.scala 35:106]
|
wire rden_bank_2 = _T_41 | _T_23; // @[el2_ifu_iccm_mem.scala 36:106]
|
||||||
wire _T_46 = io_iccm_rden & _T_25; // @[el2_ifu_iccm_mem.scala 35:64]
|
wire _T_46 = io_iccm_rden & _T_25; // @[el2_ifu_iccm_mem.scala 36:64]
|
||||||
wire rden_bank_3 = _T_46 | _T_28; // @[el2_ifu_iccm_mem.scala 35:106]
|
wire rden_bank_3 = _T_46 | _T_28; // @[el2_ifu_iccm_mem.scala 36:106]
|
||||||
wire _T_49 = wren_bank_0 | rden_bank_0; // @[el2_ifu_iccm_mem.scala 36:72]
|
wire _T_49 = wren_bank_0 | rden_bank_0; // @[el2_ifu_iccm_mem.scala 37:72]
|
||||||
wire iccm_clken_0 = _T_49 | io_clk_override; // @[el2_ifu_iccm_mem.scala 36:87]
|
wire iccm_clken_0 = _T_49 | io_clk_override; // @[el2_ifu_iccm_mem.scala 37:87]
|
||||||
wire _T_50 = wren_bank_1 | rden_bank_1; // @[el2_ifu_iccm_mem.scala 36:72]
|
wire _T_50 = wren_bank_1 | rden_bank_1; // @[el2_ifu_iccm_mem.scala 37:72]
|
||||||
wire iccm_clken_1 = _T_50 | io_clk_override; // @[el2_ifu_iccm_mem.scala 36:87]
|
wire iccm_clken_1 = _T_50 | io_clk_override; // @[el2_ifu_iccm_mem.scala 37:87]
|
||||||
wire _T_51 = wren_bank_2 | rden_bank_2; // @[el2_ifu_iccm_mem.scala 36:72]
|
wire _T_51 = wren_bank_2 | rden_bank_2; // @[el2_ifu_iccm_mem.scala 37:72]
|
||||||
wire iccm_clken_2 = _T_51 | io_clk_override; // @[el2_ifu_iccm_mem.scala 36:87]
|
wire iccm_clken_2 = _T_51 | io_clk_override; // @[el2_ifu_iccm_mem.scala 37:87]
|
||||||
wire _T_52 = wren_bank_3 | rden_bank_3; // @[el2_ifu_iccm_mem.scala 36:72]
|
wire _T_52 = wren_bank_3 | rden_bank_3; // @[el2_ifu_iccm_mem.scala 37:72]
|
||||||
wire iccm_clken_3 = _T_52 | io_clk_override; // @[el2_ifu_iccm_mem.scala 36:87]
|
wire iccm_clken_3 = _T_52 | io_clk_override; // @[el2_ifu_iccm_mem.scala 37:87]
|
||||||
wire [11:0] _T_59 = _T_13 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 38:8]
|
wire [11:0] _T_59 = _T_13 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 39:8]
|
||||||
wire [11:0] _T_66 = _T_18 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 38:8]
|
wire [11:0] _T_66 = _T_18 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 39:8]
|
||||||
wire [11:0] _T_73 = _T_23 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 38:8]
|
wire [11:0] _T_73 = _T_23 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 39:8]
|
||||||
wire [11:0] _T_80 = _T_28 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 38:8]
|
wire [11:0] _T_80 = _T_28 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 39:8]
|
||||||
reg _T_298; // @[Reg.scala 27:20]
|
reg [38:0] iccm_bank_dout_0; // @[el2_ifu_iccm_mem.scala 50:62]
|
||||||
reg _T_299; // @[Reg.scala 27:20]
|
reg [38:0] iccm_bank_dout_1; // @[el2_ifu_iccm_mem.scala 50:62]
|
||||||
wire [1:0] redundant_valid = {_T_298,_T_299}; // @[Cat.scala 29:58]
|
reg [38:0] iccm_bank_dout_2; // @[el2_ifu_iccm_mem.scala 50:62]
|
||||||
|
reg [38:0] iccm_bank_dout_3; // @[el2_ifu_iccm_mem.scala 50:62]
|
||||||
|
reg _T_302; // @[Reg.scala 27:20]
|
||||||
|
reg _T_303; // @[Reg.scala 27:20]
|
||||||
|
wire [1:0] redundant_valid = {_T_302,_T_303}; // @[Cat.scala 29:58]
|
||||||
reg [13:0] redundant_address_1; // @[Reg.scala 27:20]
|
reg [13:0] redundant_address_1; // @[Reg.scala 27:20]
|
||||||
wire _T_101 = io_iccm_rw_addr[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 53:105]
|
wire _T_105 = io_iccm_rw_addr[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 56:105]
|
||||||
wire _T_104 = _T_101 & _T_10; // @[el2_ifu_iccm_mem.scala 53:145]
|
wire _T_108 = _T_105 & _T_10; // @[el2_ifu_iccm_mem.scala 56:145]
|
||||||
wire _T_105 = redundant_valid[1] & _T_104; // @[el2_ifu_iccm_mem.scala 53:71]
|
wire _T_109 = redundant_valid[1] & _T_108; // @[el2_ifu_iccm_mem.scala 56:71]
|
||||||
wire _T_108 = addr_bank_inc[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 54:37]
|
wire _T_112 = addr_bank_inc[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 57:37]
|
||||||
wire _T_111 = _T_108 & _T_13; // @[el2_ifu_iccm_mem.scala 54:77]
|
wire _T_115 = _T_112 & _T_13; // @[el2_ifu_iccm_mem.scala 57:77]
|
||||||
wire _T_112 = _T_105 | _T_111; // @[el2_ifu_iccm_mem.scala 53:179]
|
wire _T_116 = _T_109 | _T_115; // @[el2_ifu_iccm_mem.scala 56:179]
|
||||||
wire _T_119 = _T_101 & _T_15; // @[el2_ifu_iccm_mem.scala 53:145]
|
wire _T_123 = _T_105 & _T_15; // @[el2_ifu_iccm_mem.scala 56:145]
|
||||||
wire _T_120 = redundant_valid[1] & _T_119; // @[el2_ifu_iccm_mem.scala 53:71]
|
wire _T_124 = redundant_valid[1] & _T_123; // @[el2_ifu_iccm_mem.scala 56:71]
|
||||||
wire _T_126 = _T_108 & _T_18; // @[el2_ifu_iccm_mem.scala 54:77]
|
wire _T_130 = _T_112 & _T_18; // @[el2_ifu_iccm_mem.scala 57:77]
|
||||||
wire _T_127 = _T_120 | _T_126; // @[el2_ifu_iccm_mem.scala 53:179]
|
wire _T_131 = _T_124 | _T_130; // @[el2_ifu_iccm_mem.scala 56:179]
|
||||||
wire _T_134 = _T_101 & _T_20; // @[el2_ifu_iccm_mem.scala 53:145]
|
wire _T_138 = _T_105 & _T_20; // @[el2_ifu_iccm_mem.scala 56:145]
|
||||||
wire _T_135 = redundant_valid[1] & _T_134; // @[el2_ifu_iccm_mem.scala 53:71]
|
wire _T_139 = redundant_valid[1] & _T_138; // @[el2_ifu_iccm_mem.scala 56:71]
|
||||||
wire _T_141 = _T_108 & _T_23; // @[el2_ifu_iccm_mem.scala 54:77]
|
wire _T_145 = _T_112 & _T_23; // @[el2_ifu_iccm_mem.scala 57:77]
|
||||||
wire _T_142 = _T_135 | _T_141; // @[el2_ifu_iccm_mem.scala 53:179]
|
wire _T_146 = _T_139 | _T_145; // @[el2_ifu_iccm_mem.scala 56:179]
|
||||||
wire _T_149 = _T_101 & _T_25; // @[el2_ifu_iccm_mem.scala 53:145]
|
wire _T_153 = _T_105 & _T_25; // @[el2_ifu_iccm_mem.scala 56:145]
|
||||||
wire _T_150 = redundant_valid[1] & _T_149; // @[el2_ifu_iccm_mem.scala 53:71]
|
wire _T_154 = redundant_valid[1] & _T_153; // @[el2_ifu_iccm_mem.scala 56:71]
|
||||||
wire _T_156 = _T_108 & _T_28; // @[el2_ifu_iccm_mem.scala 54:77]
|
wire _T_160 = _T_112 & _T_28; // @[el2_ifu_iccm_mem.scala 57:77]
|
||||||
wire _T_157 = _T_150 | _T_156; // @[el2_ifu_iccm_mem.scala 53:179]
|
wire _T_161 = _T_154 | _T_160; // @[el2_ifu_iccm_mem.scala 56:179]
|
||||||
wire [3:0] sel_red1 = {_T_157,_T_142,_T_127,_T_112}; // @[Cat.scala 29:58]
|
wire [3:0] sel_red1 = {_T_161,_T_146,_T_131,_T_116}; // @[Cat.scala 29:58]
|
||||||
reg [13:0] redundant_address_0; // @[Reg.scala 27:20]
|
reg [13:0] redundant_address_0; // @[Reg.scala 27:20]
|
||||||
wire _T_163 = io_iccm_rw_addr[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 55:105]
|
wire _T_167 = io_iccm_rw_addr[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 58:105]
|
||||||
wire _T_166 = _T_163 & _T_10; // @[el2_ifu_iccm_mem.scala 55:145]
|
wire _T_170 = _T_167 & _T_10; // @[el2_ifu_iccm_mem.scala 58:145]
|
||||||
wire _T_167 = redundant_valid[0] & _T_166; // @[el2_ifu_iccm_mem.scala 55:71]
|
wire _T_171 = redundant_valid[0] & _T_170; // @[el2_ifu_iccm_mem.scala 58:71]
|
||||||
wire _T_170 = addr_bank_inc[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 56:37]
|
wire _T_174 = addr_bank_inc[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 59:37]
|
||||||
wire _T_173 = _T_170 & _T_13; // @[el2_ifu_iccm_mem.scala 56:77]
|
wire _T_177 = _T_174 & _T_13; // @[el2_ifu_iccm_mem.scala 59:77]
|
||||||
wire _T_174 = _T_167 | _T_173; // @[el2_ifu_iccm_mem.scala 55:179]
|
wire _T_178 = _T_171 | _T_177; // @[el2_ifu_iccm_mem.scala 58:179]
|
||||||
wire _T_181 = _T_163 & _T_15; // @[el2_ifu_iccm_mem.scala 55:145]
|
wire _T_185 = _T_167 & _T_15; // @[el2_ifu_iccm_mem.scala 58:145]
|
||||||
wire _T_182 = redundant_valid[0] & _T_181; // @[el2_ifu_iccm_mem.scala 55:71]
|
wire _T_186 = redundant_valid[0] & _T_185; // @[el2_ifu_iccm_mem.scala 58:71]
|
||||||
wire _T_188 = _T_170 & _T_18; // @[el2_ifu_iccm_mem.scala 56:77]
|
wire _T_192 = _T_174 & _T_18; // @[el2_ifu_iccm_mem.scala 59:77]
|
||||||
wire _T_189 = _T_182 | _T_188; // @[el2_ifu_iccm_mem.scala 55:179]
|
wire _T_193 = _T_186 | _T_192; // @[el2_ifu_iccm_mem.scala 58:179]
|
||||||
wire _T_196 = _T_163 & _T_20; // @[el2_ifu_iccm_mem.scala 55:145]
|
wire _T_200 = _T_167 & _T_20; // @[el2_ifu_iccm_mem.scala 58:145]
|
||||||
wire _T_197 = redundant_valid[0] & _T_196; // @[el2_ifu_iccm_mem.scala 55:71]
|
wire _T_201 = redundant_valid[0] & _T_200; // @[el2_ifu_iccm_mem.scala 58:71]
|
||||||
wire _T_203 = _T_170 & _T_23; // @[el2_ifu_iccm_mem.scala 56:77]
|
wire _T_207 = _T_174 & _T_23; // @[el2_ifu_iccm_mem.scala 59:77]
|
||||||
wire _T_204 = _T_197 | _T_203; // @[el2_ifu_iccm_mem.scala 55:179]
|
wire _T_208 = _T_201 | _T_207; // @[el2_ifu_iccm_mem.scala 58:179]
|
||||||
wire _T_211 = _T_163 & _T_25; // @[el2_ifu_iccm_mem.scala 55:145]
|
wire _T_215 = _T_167 & _T_25; // @[el2_ifu_iccm_mem.scala 58:145]
|
||||||
wire _T_212 = redundant_valid[0] & _T_211; // @[el2_ifu_iccm_mem.scala 55:71]
|
wire _T_216 = redundant_valid[0] & _T_215; // @[el2_ifu_iccm_mem.scala 58:71]
|
||||||
wire _T_218 = _T_170 & _T_28; // @[el2_ifu_iccm_mem.scala 56:77]
|
wire _T_222 = _T_174 & _T_28; // @[el2_ifu_iccm_mem.scala 59:77]
|
||||||
wire _T_219 = _T_212 | _T_218; // @[el2_ifu_iccm_mem.scala 55:179]
|
wire _T_223 = _T_216 | _T_222; // @[el2_ifu_iccm_mem.scala 58:179]
|
||||||
wire [3:0] sel_red0 = {_T_219,_T_204,_T_189,_T_174}; // @[Cat.scala 29:58]
|
wire [3:0] sel_red0 = {_T_223,_T_208,_T_193,_T_178}; // @[Cat.scala 29:58]
|
||||||
reg [3:0] sel_red0_q; // @[el2_ifu_iccm_mem.scala 58:27]
|
reg [3:0] sel_red0_q; // @[el2_ifu_iccm_mem.scala 61:27]
|
||||||
reg [3:0] sel_red1_q; // @[el2_ifu_iccm_mem.scala 59:27]
|
reg [3:0] sel_red1_q; // @[el2_ifu_iccm_mem.scala 62:27]
|
||||||
wire _T_227 = ~sel_red0_q[0]; // @[el2_ifu_iccm_mem.scala 65:36]
|
wire _T_231 = ~sel_red0_q[0]; // @[el2_ifu_iccm_mem.scala 68:36]
|
||||||
wire _T_229 = ~sel_red1_q[0]; // @[el2_ifu_iccm_mem.scala 65:53]
|
wire _T_233 = ~sel_red1_q[0]; // @[el2_ifu_iccm_mem.scala 68:53]
|
||||||
wire _T_230 = _T_227 & _T_229; // @[el2_ifu_iccm_mem.scala 65:51]
|
wire _T_234 = _T_231 & _T_233; // @[el2_ifu_iccm_mem.scala 68:51]
|
||||||
reg [38:0] redundant_data_1; // @[Reg.scala 27:20]
|
reg [38:0] redundant_data_1; // @[Reg.scala 27:20]
|
||||||
wire [38:0] _T_232 = sel_red1_q[0] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_236 = sel_red1_q[0] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
reg [38:0] redundant_data_0; // @[Reg.scala 27:20]
|
reg [38:0] redundant_data_0; // @[Reg.scala 27:20]
|
||||||
wire [38:0] _T_233 = sel_red0_q[0] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_237 = sel_red0_q[0] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] iccm_bank_dout_0 = iccm_mem_0__T_97_data; // @[el2_ifu_iccm_mem.scala 45:28 el2_ifu_iccm_mem.scala 47:18]
|
wire [38:0] _T_238 = _T_234 ? iccm_bank_dout_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_234 = _T_230 ? iccm_bank_dout_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_239 = _T_236 | _T_237; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_235 = _T_232 | _T_233; // @[Mux.scala 27:72]
|
wire [38:0] iccm_bank_dout_fn_0 = _T_239 | _T_238; // @[Mux.scala 27:72]
|
||||||
wire [38:0] iccm_bank_dout_fn_0 = _T_235 | _T_234; // @[Mux.scala 27:72]
|
wire _T_246 = ~sel_red0_q[1]; // @[el2_ifu_iccm_mem.scala 68:36]
|
||||||
wire _T_242 = ~sel_red0_q[1]; // @[el2_ifu_iccm_mem.scala 65:36]
|
wire _T_248 = ~sel_red1_q[1]; // @[el2_ifu_iccm_mem.scala 68:53]
|
||||||
wire _T_244 = ~sel_red1_q[1]; // @[el2_ifu_iccm_mem.scala 65:53]
|
wire _T_249 = _T_246 & _T_248; // @[el2_ifu_iccm_mem.scala 68:51]
|
||||||
wire _T_245 = _T_242 & _T_244; // @[el2_ifu_iccm_mem.scala 65:51]
|
wire [38:0] _T_251 = sel_red1_q[1] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_247 = sel_red1_q[1] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_252 = sel_red0_q[1] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_248 = sel_red0_q[1] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_253 = _T_249 ? iccm_bank_dout_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] iccm_bank_dout_1 = iccm_mem_1__T_97_data; // @[el2_ifu_iccm_mem.scala 45:28 el2_ifu_iccm_mem.scala 47:18]
|
wire [38:0] _T_254 = _T_251 | _T_252; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_249 = _T_245 ? iccm_bank_dout_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] iccm_bank_dout_fn_1 = _T_254 | _T_253; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_250 = _T_247 | _T_248; // @[Mux.scala 27:72]
|
wire _T_261 = ~sel_red0_q[2]; // @[el2_ifu_iccm_mem.scala 68:36]
|
||||||
wire [38:0] iccm_bank_dout_fn_1 = _T_250 | _T_249; // @[Mux.scala 27:72]
|
wire _T_263 = ~sel_red1_q[2]; // @[el2_ifu_iccm_mem.scala 68:53]
|
||||||
wire _T_257 = ~sel_red0_q[2]; // @[el2_ifu_iccm_mem.scala 65:36]
|
wire _T_264 = _T_261 & _T_263; // @[el2_ifu_iccm_mem.scala 68:51]
|
||||||
wire _T_259 = ~sel_red1_q[2]; // @[el2_ifu_iccm_mem.scala 65:53]
|
wire [38:0] _T_266 = sel_red1_q[2] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire _T_260 = _T_257 & _T_259; // @[el2_ifu_iccm_mem.scala 65:51]
|
wire [38:0] _T_267 = sel_red0_q[2] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_262 = sel_red1_q[2] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_268 = _T_264 ? iccm_bank_dout_2 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_263 = sel_red0_q[2] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_269 = _T_266 | _T_267; // @[Mux.scala 27:72]
|
||||||
wire [38:0] iccm_bank_dout_2 = iccm_mem_2__T_97_data; // @[el2_ifu_iccm_mem.scala 45:28 el2_ifu_iccm_mem.scala 47:18]
|
wire [38:0] iccm_bank_dout_fn_2 = _T_269 | _T_268; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_264 = _T_260 ? iccm_bank_dout_2 : 39'h0; // @[Mux.scala 27:72]
|
wire _T_276 = ~sel_red0_q[3]; // @[el2_ifu_iccm_mem.scala 68:36]
|
||||||
wire [38:0] _T_265 = _T_262 | _T_263; // @[Mux.scala 27:72]
|
wire _T_278 = ~sel_red1_q[3]; // @[el2_ifu_iccm_mem.scala 68:53]
|
||||||
wire [38:0] iccm_bank_dout_fn_2 = _T_265 | _T_264; // @[Mux.scala 27:72]
|
wire _T_279 = _T_276 & _T_278; // @[el2_ifu_iccm_mem.scala 68:51]
|
||||||
wire _T_272 = ~sel_red0_q[3]; // @[el2_ifu_iccm_mem.scala 65:36]
|
wire [38:0] _T_281 = sel_red1_q[3] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire _T_274 = ~sel_red1_q[3]; // @[el2_ifu_iccm_mem.scala 65:53]
|
wire [38:0] _T_282 = sel_red0_q[3] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire _T_275 = _T_272 & _T_274; // @[el2_ifu_iccm_mem.scala 65:51]
|
wire [38:0] _T_283 = _T_279 ? iccm_bank_dout_3 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_277 = sel_red1_q[3] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_284 = _T_281 | _T_282; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_278 = sel_red0_q[3] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] iccm_bank_dout_fn_3 = _T_284 | _T_283; // @[Mux.scala 27:72]
|
||||||
wire [38:0] iccm_bank_dout_3 = iccm_mem_3__T_97_data; // @[el2_ifu_iccm_mem.scala 45:28 el2_ifu_iccm_mem.scala 47:18]
|
|
||||||
wire [38:0] _T_279 = _T_275 ? iccm_bank_dout_3 : 39'h0; // @[Mux.scala 27:72]
|
|
||||||
wire [38:0] _T_280 = _T_277 | _T_278; // @[Mux.scala 27:72]
|
|
||||||
wire [38:0] iccm_bank_dout_fn_3 = _T_280 | _T_279; // @[Mux.scala 27:72]
|
|
||||||
reg redundant_lru; // @[Reg.scala 27:20]
|
reg redundant_lru; // @[Reg.scala 27:20]
|
||||||
wire _T_282 = ~redundant_lru; // @[el2_ifu_iccm_mem.scala 67:20]
|
wire _T_286 = ~redundant_lru; // @[el2_ifu_iccm_mem.scala 70:20]
|
||||||
wire r0_addr_en = _T_282 & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 67:35]
|
wire r0_addr_en = _T_286 & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 70:35]
|
||||||
wire r1_addr_en = redundant_lru & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 68:35]
|
wire r1_addr_en = redundant_lru & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 71:35]
|
||||||
wire _T_283 = |sel_red0; // @[el2_ifu_iccm_mem.scala 69:63]
|
wire _T_287 = |sel_red0; // @[el2_ifu_iccm_mem.scala 72:63]
|
||||||
wire _T_284 = |sel_red1; // @[el2_ifu_iccm_mem.scala 69:78]
|
wire _T_288 = |sel_red1; // @[el2_ifu_iccm_mem.scala 72:78]
|
||||||
wire _T_285 = _T_283 | _T_284; // @[el2_ifu_iccm_mem.scala 69:67]
|
wire _T_289 = _T_287 | _T_288; // @[el2_ifu_iccm_mem.scala 72:67]
|
||||||
wire _T_286 = _T_285 & io_iccm_rden; // @[el2_ifu_iccm_mem.scala 69:83]
|
wire _T_290 = _T_289 & io_iccm_rden; // @[el2_ifu_iccm_mem.scala 72:83]
|
||||||
wire _T_287 = _T_286 & io_iccm_correction_state; // @[el2_ifu_iccm_mem.scala 69:98]
|
wire _T_291 = _T_290 & io_iccm_correction_state; // @[el2_ifu_iccm_mem.scala 72:98]
|
||||||
wire redundant_lru_en = io_iccm_buf_correct_ecc | _T_287; // @[el2_ifu_iccm_mem.scala 69:50]
|
wire redundant_lru_en = io_iccm_buf_correct_ecc | _T_291; // @[el2_ifu_iccm_mem.scala 72:50]
|
||||||
wire _GEN_11 = r1_addr_en | _T_298; // @[Reg.scala 28:19]
|
wire _GEN_11 = r1_addr_en | _T_302; // @[Reg.scala 28:19]
|
||||||
wire _GEN_12 = r0_addr_en | _T_299; // @[Reg.scala 28:19]
|
wire _GEN_12 = r0_addr_en | _T_303; // @[Reg.scala 28:19]
|
||||||
wire _T_303 = io_iccm_rw_addr[14:2] == redundant_address_0[13:1]; // @[el2_ifu_iccm_mem.scala 76:61]
|
wire _T_307 = io_iccm_rw_addr[14:2] == redundant_address_0[13:1]; // @[el2_ifu_iccm_mem.scala 79:61]
|
||||||
wire _T_306 = io_iccm_rw_addr[1] & redundant_address_0[0]; // @[el2_ifu_iccm_mem.scala 77:26]
|
wire _T_310 = io_iccm_rw_addr[1] & redundant_address_0[0]; // @[el2_ifu_iccm_mem.scala 80:26]
|
||||||
wire _T_309 = _T_306 | _T_1; // @[el2_ifu_iccm_mem.scala 77:52]
|
wire _T_313 = _T_310 | _T_1; // @[el2_ifu_iccm_mem.scala 80:52]
|
||||||
wire _T_310 = _T_303 & _T_309; // @[el2_ifu_iccm_mem.scala 76:102]
|
wire _T_314 = _T_307 & _T_313; // @[el2_ifu_iccm_mem.scala 79:102]
|
||||||
wire _T_312 = _T_310 & redundant_valid[0]; // @[el2_ifu_iccm_mem.scala 77:84]
|
wire _T_316 = _T_314 & redundant_valid[0]; // @[el2_ifu_iccm_mem.scala 80:84]
|
||||||
wire _T_313 = _T_312 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 77:105]
|
wire _T_317 = _T_316 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 80:105]
|
||||||
wire redundant_data0_en = _T_313 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 77:121]
|
wire redundant_data0_en = _T_317 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 80:121]
|
||||||
wire _T_322 = redundant_address_0[0] & _T_1; // @[el2_ifu_iccm_mem.scala 79:104]
|
wire _T_326 = redundant_address_0[0] & _T_1; // @[el2_ifu_iccm_mem.scala 82:104]
|
||||||
wire _T_323 = _T_306 | _T_322; // @[el2_ifu_iccm_mem.scala 79:78]
|
wire _T_327 = _T_310 | _T_326; // @[el2_ifu_iccm_mem.scala 82:78]
|
||||||
wire _T_331 = io_iccm_rw_addr[14:2] == redundant_address_1[13:1]; // @[el2_ifu_iccm_mem.scala 83:61]
|
wire _T_335 = io_iccm_rw_addr[14:2] == redundant_address_1[13:1]; // @[el2_ifu_iccm_mem.scala 86:61]
|
||||||
wire _T_334 = io_iccm_rw_addr[1] & redundant_address_1[0]; // @[el2_ifu_iccm_mem.scala 84:26]
|
wire _T_338 = io_iccm_rw_addr[1] & redundant_address_1[0]; // @[el2_ifu_iccm_mem.scala 87:26]
|
||||||
wire _T_337 = _T_334 | _T_1; // @[el2_ifu_iccm_mem.scala 84:52]
|
wire _T_341 = _T_338 | _T_1; // @[el2_ifu_iccm_mem.scala 87:52]
|
||||||
wire _T_338 = _T_331 & _T_337; // @[el2_ifu_iccm_mem.scala 83:102]
|
wire _T_342 = _T_335 & _T_341; // @[el2_ifu_iccm_mem.scala 86:102]
|
||||||
wire _T_340 = _T_338 & redundant_valid[1]; // @[el2_ifu_iccm_mem.scala 84:84]
|
wire _T_344 = _T_342 & redundant_valid[1]; // @[el2_ifu_iccm_mem.scala 87:84]
|
||||||
wire _T_341 = _T_340 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 84:105]
|
wire _T_345 = _T_344 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 87:105]
|
||||||
wire redundant_data1_en = _T_341 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 84:121]
|
wire redundant_data1_en = _T_345 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 87:121]
|
||||||
wire _T_350 = redundant_address_1[0] & _T_1; // @[el2_ifu_iccm_mem.scala 86:104]
|
wire _T_354 = redundant_address_1[0] & _T_1; // @[el2_ifu_iccm_mem.scala 89:104]
|
||||||
wire _T_351 = _T_334 | _T_350; // @[el2_ifu_iccm_mem.scala 86:78]
|
wire _T_355 = _T_338 | _T_354; // @[el2_ifu_iccm_mem.scala 89:78]
|
||||||
reg [2:0] iccm_rd_addr_lo_q; // @[el2_ifu_iccm_mem.scala 90:34]
|
reg [2:0] iccm_rd_addr_lo_q; // @[el2_ifu_iccm_mem.scala 93:34]
|
||||||
reg [1:0] iccm_rd_addr_hi_q; // @[el2_ifu_iccm_mem.scala 91:34]
|
reg [1:0] iccm_rd_addr_hi_q; // @[el2_ifu_iccm_mem.scala 94:34]
|
||||||
wire _T_359 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 93:86]
|
wire _T_363 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 96:86]
|
||||||
wire _T_361 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 93:86]
|
wire _T_365 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 96:86]
|
||||||
wire _T_363 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 93:86]
|
wire _T_367 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 96:86]
|
||||||
wire _T_365 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 93:86]
|
wire _T_369 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 96:86]
|
||||||
wire [31:0] _T_367 = _T_359 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_371 = _T_363 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_368 = _T_361 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_372 = _T_365 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_369 = _T_363 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_373 = _T_367 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_370 = _T_365 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_374 = _T_369 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_371 = _T_367 | _T_368; // @[Mux.scala 27:72]
|
wire [31:0] _T_375 = _T_371 | _T_372; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_372 = _T_371 | _T_369; // @[Mux.scala 27:72]
|
wire [31:0] _T_376 = _T_375 | _T_373; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_373 = _T_372 | _T_370; // @[Mux.scala 27:72]
|
wire [31:0] _T_377 = _T_376 | _T_374; // @[Mux.scala 27:72]
|
||||||
wire _T_376 = iccm_rd_addr_lo_q[1:0] == 2'h0; // @[el2_ifu_iccm_mem.scala 94:77]
|
wire _T_380 = iccm_rd_addr_lo_q[1:0] == 2'h0; // @[el2_ifu_iccm_mem.scala 97:77]
|
||||||
wire _T_379 = iccm_rd_addr_lo_q[1:0] == 2'h1; // @[el2_ifu_iccm_mem.scala 94:77]
|
wire _T_383 = iccm_rd_addr_lo_q[1:0] == 2'h1; // @[el2_ifu_iccm_mem.scala 97:77]
|
||||||
wire _T_382 = iccm_rd_addr_lo_q[1:0] == 2'h2; // @[el2_ifu_iccm_mem.scala 94:77]
|
wire _T_386 = iccm_rd_addr_lo_q[1:0] == 2'h2; // @[el2_ifu_iccm_mem.scala 97:77]
|
||||||
wire _T_385 = iccm_rd_addr_lo_q[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 94:77]
|
wire _T_389 = iccm_rd_addr_lo_q[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 97:77]
|
||||||
wire [31:0] _T_387 = _T_376 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_391 = _T_380 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_388 = _T_379 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_392 = _T_383 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_389 = _T_382 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_393 = _T_386 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_390 = _T_385 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72]
|
wire [31:0] _T_394 = _T_389 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_391 = _T_387 | _T_388; // @[Mux.scala 27:72]
|
wire [31:0] _T_395 = _T_391 | _T_392; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_392 = _T_391 | _T_389; // @[Mux.scala 27:72]
|
wire [31:0] _T_396 = _T_395 | _T_393; // @[Mux.scala 27:72]
|
||||||
wire [31:0] _T_393 = _T_392 | _T_390; // @[Mux.scala 27:72]
|
wire [31:0] _T_397 = _T_396 | _T_394; // @[Mux.scala 27:72]
|
||||||
wire [63:0] iccm_rd_data_pre = {_T_373,_T_393}; // @[Cat.scala 29:58]
|
wire [63:0] iccm_rd_data_pre = {_T_377,_T_397}; // @[Cat.scala 29:58]
|
||||||
wire [63:0] _T_399 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58]
|
wire [63:0] _T_403 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58]
|
||||||
wire [38:0] _T_405 = _T_359 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_409 = _T_363 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_406 = _T_361 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_410 = _T_365 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_407 = _T_363 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_411 = _T_367 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_408 = _T_365 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_412 = _T_369 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_409 = _T_405 | _T_406; // @[Mux.scala 27:72]
|
wire [38:0] _T_413 = _T_409 | _T_410; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_410 = _T_409 | _T_407; // @[Mux.scala 27:72]
|
wire [38:0] _T_414 = _T_413 | _T_411; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_411 = _T_410 | _T_408; // @[Mux.scala 27:72]
|
wire [38:0] _T_415 = _T_414 | _T_412; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_421 = _T_376 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_425 = _T_380 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_422 = _T_379 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_426 = _T_383 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_423 = _T_382 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_427 = _T_386 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_424 = _T_385 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72]
|
wire [38:0] _T_428 = _T_389 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_425 = _T_421 | _T_422; // @[Mux.scala 27:72]
|
wire [38:0] _T_429 = _T_425 | _T_426; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_426 = _T_425 | _T_423; // @[Mux.scala 27:72]
|
wire [38:0] _T_430 = _T_429 | _T_427; // @[Mux.scala 27:72]
|
||||||
wire [38:0] _T_427 = _T_426 | _T_424; // @[Mux.scala 27:72]
|
wire [38:0] _T_431 = _T_430 | _T_428; // @[Mux.scala 27:72]
|
||||||
assign iccm_mem_0__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_0__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_0__T_97_data = iccm_mem_0[iccm_mem_0__T_97_addr]; // @[el2_ifu_iccm_mem.scala 40:21]
|
assign iccm_mem_0__T_97_data = iccm_mem_0[iccm_mem_0__T_97_addr]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
assign iccm_mem_0__T_93_data = io_iccm_wr_data[38:0];
|
assign iccm_mem_0__T_93_data = io_iccm_wr_data[38:0];
|
||||||
assign iccm_mem_0__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_0__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_0__T_93_mask = iccm_clken_0 & wren_bank_0;
|
assign iccm_mem_0__T_93_mask = iccm_clken_0 & wren_bank_0;
|
||||||
|
@ -322,7 +330,7 @@ module el2_ifu_iccm_mem(
|
||||||
assign iccm_mem_0__T_96_mask = iccm_clken_0 & wren_bank_0;
|
assign iccm_mem_0__T_96_mask = iccm_clken_0 & wren_bank_0;
|
||||||
assign iccm_mem_0__T_96_en = 1'h1;
|
assign iccm_mem_0__T_96_en = 1'h1;
|
||||||
assign iccm_mem_1__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_1__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_1__T_97_data = iccm_mem_1[iccm_mem_1__T_97_addr]; // @[el2_ifu_iccm_mem.scala 40:21]
|
assign iccm_mem_1__T_97_data = iccm_mem_1[iccm_mem_1__T_97_addr]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
assign iccm_mem_1__T_93_data = io_iccm_wr_data[77:39];
|
assign iccm_mem_1__T_93_data = io_iccm_wr_data[77:39];
|
||||||
assign iccm_mem_1__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_1__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_1__T_93_mask = iccm_clken_1 & wren_bank_1;
|
assign iccm_mem_1__T_93_mask = iccm_clken_1 & wren_bank_1;
|
||||||
|
@ -340,7 +348,7 @@ module el2_ifu_iccm_mem(
|
||||||
assign iccm_mem_1__T_96_mask = iccm_clken_1 & wren_bank_1;
|
assign iccm_mem_1__T_96_mask = iccm_clken_1 & wren_bank_1;
|
||||||
assign iccm_mem_1__T_96_en = 1'h1;
|
assign iccm_mem_1__T_96_en = 1'h1;
|
||||||
assign iccm_mem_2__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_2__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_2__T_97_data = iccm_mem_2[iccm_mem_2__T_97_addr]; // @[el2_ifu_iccm_mem.scala 40:21]
|
assign iccm_mem_2__T_97_data = iccm_mem_2[iccm_mem_2__T_97_addr]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
assign iccm_mem_2__T_93_data = io_iccm_wr_data[38:0];
|
assign iccm_mem_2__T_93_data = io_iccm_wr_data[38:0];
|
||||||
assign iccm_mem_2__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_2__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_2__T_93_mask = iccm_clken_2 & wren_bank_2;
|
assign iccm_mem_2__T_93_mask = iccm_clken_2 & wren_bank_2;
|
||||||
|
@ -358,7 +366,7 @@ module el2_ifu_iccm_mem(
|
||||||
assign iccm_mem_2__T_96_mask = iccm_clken_2 & wren_bank_2;
|
assign iccm_mem_2__T_96_mask = iccm_clken_2 & wren_bank_2;
|
||||||
assign iccm_mem_2__T_96_en = 1'h1;
|
assign iccm_mem_2__T_96_en = 1'h1;
|
||||||
assign iccm_mem_3__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_3__T_97_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_3__T_97_data = iccm_mem_3[iccm_mem_3__T_97_addr]; // @[el2_ifu_iccm_mem.scala 40:21]
|
assign iccm_mem_3__T_97_data = iccm_mem_3[iccm_mem_3__T_97_addr]; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
assign iccm_mem_3__T_93_data = io_iccm_wr_data[77:39];
|
assign iccm_mem_3__T_93_data = io_iccm_wr_data[77:39];
|
||||||
assign iccm_mem_3__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
assign iccm_mem_3__T_93_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59;
|
||||||
assign iccm_mem_3__T_93_mask = iccm_clken_3 & wren_bank_3;
|
assign iccm_mem_3__T_93_mask = iccm_clken_3 & wren_bank_3;
|
||||||
|
@ -375,8 +383,12 @@ module el2_ifu_iccm_mem(
|
||||||
assign iccm_mem_3__T_96_addr = wren_bank_3 ? io_iccm_rw_addr[14:3] : _T_80;
|
assign iccm_mem_3__T_96_addr = wren_bank_3 ? io_iccm_rw_addr[14:3] : _T_80;
|
||||||
assign iccm_mem_3__T_96_mask = iccm_clken_3 & wren_bank_3;
|
assign iccm_mem_3__T_96_mask = iccm_clken_3 & wren_bank_3;
|
||||||
assign iccm_mem_3__T_96_en = 1'h1;
|
assign iccm_mem_3__T_96_en = 1'h1;
|
||||||
assign io_iccm_rd_data = iccm_rd_addr_lo_q[0] ? _T_399 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 95:19]
|
assign io_iccm_rd_data = iccm_rd_addr_lo_q[0] ? _T_403 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 98:19]
|
||||||
assign io_iccm_rd_data_ecc = {_T_411,_T_427}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 96:23]
|
assign io_iccm_rd_data_ecc = {_T_415,_T_431}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 99:23]
|
||||||
|
assign io_iccm_bank_wr_data_0 = io_iccm_wr_data[38:0]; // @[el2_ifu_iccm_mem.scala 35:24]
|
||||||
|
assign io_iccm_bank_wr_data_1 = io_iccm_wr_data[77:39]; // @[el2_ifu_iccm_mem.scala 35:24]
|
||||||
|
assign io_iccm_bank_wr_data_2 = io_iccm_wr_data[38:0]; // @[el2_ifu_iccm_mem.scala 35:24]
|
||||||
|
assign io_iccm_bank_wr_data_3 = io_iccm_wr_data[77:39]; // @[el2_ifu_iccm_mem.scala 35:24]
|
||||||
`ifdef RANDOMIZE_GARBAGE_ASSIGN
|
`ifdef RANDOMIZE_GARBAGE_ASSIGN
|
||||||
`define RANDOMIZE
|
`define RANDOMIZE
|
||||||
`endif
|
`endif
|
||||||
|
@ -426,28 +438,36 @@ initial begin
|
||||||
iccm_mem_3[initvar] = _RAND_3[38:0];
|
iccm_mem_3[initvar] = _RAND_3[38:0];
|
||||||
`endif // RANDOMIZE_MEM_INIT
|
`endif // RANDOMIZE_MEM_INIT
|
||||||
`ifdef RANDOMIZE_REG_INIT
|
`ifdef RANDOMIZE_REG_INIT
|
||||||
_RAND_4 = {1{`RANDOM}};
|
_RAND_4 = {2{`RANDOM}};
|
||||||
_T_298 = _RAND_4[0:0];
|
iccm_bank_dout_0 = _RAND_4[38:0];
|
||||||
_RAND_5 = {1{`RANDOM}};
|
_RAND_5 = {2{`RANDOM}};
|
||||||
_T_299 = _RAND_5[0:0];
|
iccm_bank_dout_1 = _RAND_5[38:0];
|
||||||
_RAND_6 = {1{`RANDOM}};
|
_RAND_6 = {2{`RANDOM}};
|
||||||
redundant_address_1 = _RAND_6[13:0];
|
iccm_bank_dout_2 = _RAND_6[38:0];
|
||||||
_RAND_7 = {1{`RANDOM}};
|
_RAND_7 = {2{`RANDOM}};
|
||||||
redundant_address_0 = _RAND_7[13:0];
|
iccm_bank_dout_3 = _RAND_7[38:0];
|
||||||
_RAND_8 = {1{`RANDOM}};
|
_RAND_8 = {1{`RANDOM}};
|
||||||
sel_red0_q = _RAND_8[3:0];
|
_T_302 = _RAND_8[0:0];
|
||||||
_RAND_9 = {1{`RANDOM}};
|
_RAND_9 = {1{`RANDOM}};
|
||||||
sel_red1_q = _RAND_9[3:0];
|
_T_303 = _RAND_9[0:0];
|
||||||
_RAND_10 = {2{`RANDOM}};
|
_RAND_10 = {1{`RANDOM}};
|
||||||
redundant_data_1 = _RAND_10[38:0];
|
redundant_address_1 = _RAND_10[13:0];
|
||||||
_RAND_11 = {2{`RANDOM}};
|
_RAND_11 = {1{`RANDOM}};
|
||||||
redundant_data_0 = _RAND_11[38:0];
|
redundant_address_0 = _RAND_11[13:0];
|
||||||
_RAND_12 = {1{`RANDOM}};
|
_RAND_12 = {1{`RANDOM}};
|
||||||
redundant_lru = _RAND_12[0:0];
|
sel_red0_q = _RAND_12[3:0];
|
||||||
_RAND_13 = {1{`RANDOM}};
|
_RAND_13 = {1{`RANDOM}};
|
||||||
iccm_rd_addr_lo_q = _RAND_13[2:0];
|
sel_red1_q = _RAND_13[3:0];
|
||||||
_RAND_14 = {1{`RANDOM}};
|
_RAND_14 = {2{`RANDOM}};
|
||||||
iccm_rd_addr_hi_q = _RAND_14[1:0];
|
redundant_data_1 = _RAND_14[38:0];
|
||||||
|
_RAND_15 = {2{`RANDOM}};
|
||||||
|
redundant_data_0 = _RAND_15[38:0];
|
||||||
|
_RAND_16 = {1{`RANDOM}};
|
||||||
|
redundant_lru = _RAND_16[0:0];
|
||||||
|
_RAND_17 = {1{`RANDOM}};
|
||||||
|
iccm_rd_addr_lo_q = _RAND_17[2:0];
|
||||||
|
_RAND_18 = {1{`RANDOM}};
|
||||||
|
iccm_rd_addr_hi_q = _RAND_18[1:0];
|
||||||
`endif // RANDOMIZE_REG_INIT
|
`endif // RANDOMIZE_REG_INIT
|
||||||
`endif // RANDOMIZE
|
`endif // RANDOMIZE
|
||||||
end // initial
|
end // initial
|
||||||
|
@ -457,62 +477,66 @@ end // initial
|
||||||
`endif // SYNTHESIS
|
`endif // SYNTHESIS
|
||||||
always @(posedge clock) begin
|
always @(posedge clock) begin
|
||||||
if(iccm_mem_0__T_93_en & iccm_mem_0__T_93_mask) begin
|
if(iccm_mem_0__T_93_en & iccm_mem_0__T_93_mask) begin
|
||||||
iccm_mem_0[iccm_mem_0__T_93_addr] <= iccm_mem_0__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_0[iccm_mem_0__T_93_addr] <= iccm_mem_0__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_0__T_94_en & iccm_mem_0__T_94_mask) begin
|
if(iccm_mem_0__T_94_en & iccm_mem_0__T_94_mask) begin
|
||||||
iccm_mem_0[iccm_mem_0__T_94_addr] <= iccm_mem_0__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_0[iccm_mem_0__T_94_addr] <= iccm_mem_0__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_0__T_95_en & iccm_mem_0__T_95_mask) begin
|
if(iccm_mem_0__T_95_en & iccm_mem_0__T_95_mask) begin
|
||||||
iccm_mem_0[iccm_mem_0__T_95_addr] <= iccm_mem_0__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_0[iccm_mem_0__T_95_addr] <= iccm_mem_0__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_0__T_96_en & iccm_mem_0__T_96_mask) begin
|
if(iccm_mem_0__T_96_en & iccm_mem_0__T_96_mask) begin
|
||||||
iccm_mem_0[iccm_mem_0__T_96_addr] <= iccm_mem_0__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_0[iccm_mem_0__T_96_addr] <= iccm_mem_0__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_1__T_93_en & iccm_mem_1__T_93_mask) begin
|
if(iccm_mem_1__T_93_en & iccm_mem_1__T_93_mask) begin
|
||||||
iccm_mem_1[iccm_mem_1__T_93_addr] <= iccm_mem_1__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_1[iccm_mem_1__T_93_addr] <= iccm_mem_1__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_1__T_94_en & iccm_mem_1__T_94_mask) begin
|
if(iccm_mem_1__T_94_en & iccm_mem_1__T_94_mask) begin
|
||||||
iccm_mem_1[iccm_mem_1__T_94_addr] <= iccm_mem_1__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_1[iccm_mem_1__T_94_addr] <= iccm_mem_1__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_1__T_95_en & iccm_mem_1__T_95_mask) begin
|
if(iccm_mem_1__T_95_en & iccm_mem_1__T_95_mask) begin
|
||||||
iccm_mem_1[iccm_mem_1__T_95_addr] <= iccm_mem_1__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_1[iccm_mem_1__T_95_addr] <= iccm_mem_1__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_1__T_96_en & iccm_mem_1__T_96_mask) begin
|
if(iccm_mem_1__T_96_en & iccm_mem_1__T_96_mask) begin
|
||||||
iccm_mem_1[iccm_mem_1__T_96_addr] <= iccm_mem_1__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_1[iccm_mem_1__T_96_addr] <= iccm_mem_1__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_2__T_93_en & iccm_mem_2__T_93_mask) begin
|
if(iccm_mem_2__T_93_en & iccm_mem_2__T_93_mask) begin
|
||||||
iccm_mem_2[iccm_mem_2__T_93_addr] <= iccm_mem_2__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_2[iccm_mem_2__T_93_addr] <= iccm_mem_2__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_2__T_94_en & iccm_mem_2__T_94_mask) begin
|
if(iccm_mem_2__T_94_en & iccm_mem_2__T_94_mask) begin
|
||||||
iccm_mem_2[iccm_mem_2__T_94_addr] <= iccm_mem_2__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_2[iccm_mem_2__T_94_addr] <= iccm_mem_2__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_2__T_95_en & iccm_mem_2__T_95_mask) begin
|
if(iccm_mem_2__T_95_en & iccm_mem_2__T_95_mask) begin
|
||||||
iccm_mem_2[iccm_mem_2__T_95_addr] <= iccm_mem_2__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_2[iccm_mem_2__T_95_addr] <= iccm_mem_2__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_2__T_96_en & iccm_mem_2__T_96_mask) begin
|
if(iccm_mem_2__T_96_en & iccm_mem_2__T_96_mask) begin
|
||||||
iccm_mem_2[iccm_mem_2__T_96_addr] <= iccm_mem_2__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_2[iccm_mem_2__T_96_addr] <= iccm_mem_2__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_3__T_93_en & iccm_mem_3__T_93_mask) begin
|
if(iccm_mem_3__T_93_en & iccm_mem_3__T_93_mask) begin
|
||||||
iccm_mem_3[iccm_mem_3__T_93_addr] <= iccm_mem_3__T_93_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_3[iccm_mem_3__T_93_addr] <= iccm_mem_3__T_93_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_3__T_94_en & iccm_mem_3__T_94_mask) begin
|
if(iccm_mem_3__T_94_en & iccm_mem_3__T_94_mask) begin
|
||||||
iccm_mem_3[iccm_mem_3__T_94_addr] <= iccm_mem_3__T_94_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_3[iccm_mem_3__T_94_addr] <= iccm_mem_3__T_94_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_3__T_95_en & iccm_mem_3__T_95_mask) begin
|
if(iccm_mem_3__T_95_en & iccm_mem_3__T_95_mask) begin
|
||||||
iccm_mem_3[iccm_mem_3__T_95_addr] <= iccm_mem_3__T_95_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_3[iccm_mem_3__T_95_addr] <= iccm_mem_3__T_95_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
end
|
end
|
||||||
if(iccm_mem_3__T_96_en & iccm_mem_3__T_96_mask) begin
|
if(iccm_mem_3__T_96_en & iccm_mem_3__T_96_mask) begin
|
||||||
iccm_mem_3[iccm_mem_3__T_96_addr] <= iccm_mem_3__T_96_data; // @[el2_ifu_iccm_mem.scala 40:21]
|
iccm_mem_3[iccm_mem_3__T_96_addr] <= iccm_mem_3__T_96_data; // @[el2_ifu_iccm_mem.scala 41:21]
|
||||||
|
end
|
||||||
|
iccm_bank_dout_0 <= iccm_mem_0__T_97_data;
|
||||||
|
iccm_bank_dout_1 <= iccm_mem_1__T_97_data;
|
||||||
|
iccm_bank_dout_2 <= iccm_mem_2__T_97_data;
|
||||||
|
iccm_bank_dout_3 <= iccm_mem_3__T_97_data;
|
||||||
|
if (reset) begin
|
||||||
|
_T_302 <= 1'h0;
|
||||||
|
end else begin
|
||||||
|
_T_302 <= _GEN_11;
|
||||||
end
|
end
|
||||||
if (reset) begin
|
if (reset) begin
|
||||||
_T_298 <= 1'h0;
|
_T_303 <= 1'h0;
|
||||||
end else begin
|
end else begin
|
||||||
_T_298 <= _GEN_11;
|
_T_303 <= _GEN_12;
|
||||||
end
|
|
||||||
if (reset) begin
|
|
||||||
_T_299 <= 1'h0;
|
|
||||||
end else begin
|
|
||||||
_T_299 <= _GEN_12;
|
|
||||||
end
|
end
|
||||||
if (reset) begin
|
if (reset) begin
|
||||||
redundant_address_1 <= 14'h0;
|
redundant_address_1 <= 14'h0;
|
||||||
|
@ -537,7 +561,7 @@ end // initial
|
||||||
if (reset) begin
|
if (reset) begin
|
||||||
redundant_data_1 <= 39'h0;
|
redundant_data_1 <= 39'h0;
|
||||||
end else if (redundant_data1_en) begin
|
end else if (redundant_data1_en) begin
|
||||||
if (_T_351) begin
|
if (_T_355) begin
|
||||||
redundant_data_1 <= iccm_bank_wr_data_1;
|
redundant_data_1 <= iccm_bank_wr_data_1;
|
||||||
end else begin
|
end else begin
|
||||||
redundant_data_1 <= iccm_bank_wr_data_0;
|
redundant_data_1 <= iccm_bank_wr_data_0;
|
||||||
|
@ -546,7 +570,7 @@ end // initial
|
||||||
if (reset) begin
|
if (reset) begin
|
||||||
redundant_data_0 <= 39'h0;
|
redundant_data_0 <= 39'h0;
|
||||||
end else if (redundant_data0_en) begin
|
end else if (redundant_data0_en) begin
|
||||||
if (_T_323) begin
|
if (_T_327) begin
|
||||||
redundant_data_0 <= iccm_bank_wr_data_1;
|
redundant_data_0 <= iccm_bank_wr_data_1;
|
||||||
end else begin
|
end else begin
|
||||||
redundant_data_0 <= iccm_bank_wr_data_0;
|
redundant_data_0 <= iccm_bank_wr_data_0;
|
||||||
|
@ -556,9 +580,9 @@ end // initial
|
||||||
redundant_lru <= 1'h0;
|
redundant_lru <= 1'h0;
|
||||||
end else if (redundant_lru_en) begin
|
end else if (redundant_lru_en) begin
|
||||||
if (io_iccm_buf_correct_ecc) begin
|
if (io_iccm_buf_correct_ecc) begin
|
||||||
redundant_lru <= _T_282;
|
redundant_lru <= _T_286;
|
||||||
end else begin
|
end else begin
|
||||||
redundant_lru <= _T_283;
|
redundant_lru <= _T_287;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (reset) begin
|
if (reset) begin
|
||||||
|
|
|
@ -17,7 +17,7 @@ class el2_ifu_iccm_mem extends Module with el2_lib {
|
||||||
val iccm_rd_data = Output(UInt(64.W))
|
val iccm_rd_data = Output(UInt(64.W))
|
||||||
val iccm_rd_data_ecc = Output(UInt(78.W))
|
val iccm_rd_data_ecc = Output(UInt(78.W))
|
||||||
val scan_mode = Input(Bool())
|
val scan_mode = Input(Bool())
|
||||||
|
val iccm_bank_wr_data = Output(Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
||||||
})
|
})
|
||||||
io.iccm_rd_data := 0.U
|
io.iccm_rd_data := 0.U
|
||||||
io.iccm_rd_data_ecc := 0.U
|
io.iccm_rd_data_ecc := 0.U
|
||||||
|
@ -32,20 +32,23 @@ class el2_ifu_iccm_mem extends Module with el2_lib {
|
||||||
|
|
||||||
val wren_bank = (0 until ICCM_NUM_BANKS).map(i=> io.iccm_wren&(io.iccm_rw_addr(ICCM_BANK_HI-1,1)===i.U)|(addr_bank_inc(ICCM_BANK_HI-1,1)===i.U))
|
val wren_bank = (0 until ICCM_NUM_BANKS).map(i=> io.iccm_wren&(io.iccm_rw_addr(ICCM_BANK_HI-1,1)===i.U)|(addr_bank_inc(ICCM_BANK_HI-1,1)===i.U))
|
||||||
val iccm_bank_wr_data = iccm_bank_wr_data_vec
|
val iccm_bank_wr_data = iccm_bank_wr_data_vec
|
||||||
|
io.iccm_bank_wr_data := iccm_bank_wr_data
|
||||||
val rden_bank = (0 until ICCM_NUM_BANKS).map(i=> io.iccm_rden&(io.iccm_rw_addr(ICCM_BANK_HI-1,1)===i.U)|(addr_bank_inc(ICCM_BANK_HI-1,1)===i.U))
|
val rden_bank = (0 until ICCM_NUM_BANKS).map(i=> io.iccm_rden&(io.iccm_rw_addr(ICCM_BANK_HI-1,1)===i.U)|(addr_bank_inc(ICCM_BANK_HI-1,1)===i.U))
|
||||||
val iccm_clken = for(i<- 0 until ICCM_NUM_BANKS) yield wren_bank(i) | rden_bank(i) | io.clk_override
|
val iccm_clken = for(i<- 0 until ICCM_NUM_BANKS) yield wren_bank(i) | rden_bank(i) | io.clk_override
|
||||||
val addr_bank = (0 until ICCM_NUM_BANKS).map(i=> Mux(wren_bank(i).asBool, io.iccm_rw_addr(ICCM_BITS-2, ICCM_BANK_INDEX_LO-1),
|
val addr_bank = (0 until ICCM_NUM_BANKS).map(i=> Mux(wren_bank(i).asBool, io.iccm_rw_addr(ICCM_BITS-2, ICCM_BANK_INDEX_LO-1),
|
||||||
Mux((addr_bank_inc(ICCM_BANK_HI-1,1)===i.U),addr_bank_inc(ICCM_BITS-2,ICCM_BANK_INDEX_LO-1),io.iccm_rw_addr(ICCM_BITS-2,ICCM_BANK_INDEX_LO-1))))
|
Mux((addr_bank_inc(ICCM_BANK_HI-1,1)===i.U),addr_bank_inc(ICCM_BITS-2,ICCM_BANK_INDEX_LO-1),io.iccm_rw_addr(ICCM_BITS-2,ICCM_BANK_INDEX_LO-1))))
|
||||||
println(pow(2, ICCM_INDEX_BITS).intValue)
|
|
||||||
val iccm_mem = Mem(pow(2, ICCM_INDEX_BITS).intValue, Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
val iccm_mem = Mem(pow(2, ICCM_INDEX_BITS).intValue, Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
||||||
|
|
||||||
val write_vec = VecInit.tabulate(ICCM_NUM_BANKS)(i=>iccm_clken(i)&wren_bank(i))
|
val write_vec = VecInit.tabulate(ICCM_NUM_BANKS)(i=>iccm_clken(i)&wren_bank(i))
|
||||||
val read_enable = VecInit.tabulate(ICCM_NUM_BANKS)(i=>iccm_clken(i)&(!wren_bank(i)))
|
val read_enable = VecInit.tabulate(ICCM_NUM_BANKS)(i=>iccm_clken(i)&(!wren_bank(i)))
|
||||||
//io.test := addr_bank
|
//io.test := addr_bank
|
||||||
val iccm_bank_dout = Wire(Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
val iccm_bank_dout = Wire(Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
||||||
|
val inter = Wire(Vec(ICCM_NUM_BANKS, UInt(39.W)))
|
||||||
for(i<-0 until ICCM_NUM_BANKS) iccm_mem.write(addr_bank(i), iccm_bank_wr_data, write_vec)
|
for(i<-0 until ICCM_NUM_BANKS) iccm_mem.write(addr_bank(i), iccm_bank_wr_data, write_vec)
|
||||||
iccm_bank_dout := iccm_mem.read(addr_bank(0))
|
inter := iccm_mem.read(addr_bank(0))
|
||||||
//io.test := iccm_bank_dout
|
for(i<-0 until ICCM_NUM_BANKS) iccm_bank_dout(i) := RegNext(inter(i))
|
||||||
|
|
||||||
val redundant_valid = WireInit(UInt(2.W), init = 0.U)
|
val redundant_valid = WireInit(UInt(2.W), init = 0.U)
|
||||||
val redundant_address = Wire(Vec(2, UInt((ICCM_BITS-2).W)))
|
val redundant_address = Wire(Vec(2, UInt((ICCM_BITS-2).W)))
|
||||||
redundant_address := (0 until 2).map(i=>0.U)
|
redundant_address := (0 until 2).map(i=>0.U)
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue