Files
tatu/generated-ooo/DTLB.sv
2026-06-29 07:00:55 +00:00

1327 lines
33 KiB
Systemverilog

// Generated by CIRCT firtool-1.139.0
module DTLB(
input clock,
reset,
io_req_valid,
input [63:0] io_req_vaddr,
input io_req_isStore,
input [1:0] io_req_priv,
input io_req_sum,
io_req_mxr,
output io_resp_hit,
io_resp_miss,
output [63:0] io_resp_paddr,
output io_resp_pageFault,
input io_refill_valid,
input [26:0] io_refill_vpn,
input [43:0] io_refill_ppn,
input [1:0] io_refill_level,
input [7:0] io_refill_flags,
input io_flush
);
reg valid_0;
reg valid_1;
reg valid_2;
reg valid_3;
reg valid_4;
reg valid_5;
reg valid_6;
reg valid_7;
reg valid_8;
reg valid_9;
reg valid_10;
reg valid_11;
reg valid_12;
reg valid_13;
reg valid_14;
reg valid_15;
reg valid_16;
reg valid_17;
reg valid_18;
reg valid_19;
reg valid_20;
reg valid_21;
reg valid_22;
reg valid_23;
reg valid_24;
reg valid_25;
reg valid_26;
reg valid_27;
reg valid_28;
reg valid_29;
reg valid_30;
reg valid_31;
reg [26:0] vpn_0;
reg [26:0] vpn_1;
reg [26:0] vpn_2;
reg [26:0] vpn_3;
reg [26:0] vpn_4;
reg [26:0] vpn_5;
reg [26:0] vpn_6;
reg [26:0] vpn_7;
reg [26:0] vpn_8;
reg [26:0] vpn_9;
reg [26:0] vpn_10;
reg [26:0] vpn_11;
reg [26:0] vpn_12;
reg [26:0] vpn_13;
reg [26:0] vpn_14;
reg [26:0] vpn_15;
reg [26:0] vpn_16;
reg [26:0] vpn_17;
reg [26:0] vpn_18;
reg [26:0] vpn_19;
reg [26:0] vpn_20;
reg [26:0] vpn_21;
reg [26:0] vpn_22;
reg [26:0] vpn_23;
reg [26:0] vpn_24;
reg [26:0] vpn_25;
reg [26:0] vpn_26;
reg [26:0] vpn_27;
reg [26:0] vpn_28;
reg [26:0] vpn_29;
reg [26:0] vpn_30;
reg [26:0] vpn_31;
reg [43:0] ppn_0;
reg [43:0] ppn_1;
reg [43:0] ppn_2;
reg [43:0] ppn_3;
reg [43:0] ppn_4;
reg [43:0] ppn_5;
reg [43:0] ppn_6;
reg [43:0] ppn_7;
reg [43:0] ppn_8;
reg [43:0] ppn_9;
reg [43:0] ppn_10;
reg [43:0] ppn_11;
reg [43:0] ppn_12;
reg [43:0] ppn_13;
reg [43:0] ppn_14;
reg [43:0] ppn_15;
reg [43:0] ppn_16;
reg [43:0] ppn_17;
reg [43:0] ppn_18;
reg [43:0] ppn_19;
reg [43:0] ppn_20;
reg [43:0] ppn_21;
reg [43:0] ppn_22;
reg [43:0] ppn_23;
reg [43:0] ppn_24;
reg [43:0] ppn_25;
reg [43:0] ppn_26;
reg [43:0] ppn_27;
reg [43:0] ppn_28;
reg [43:0] ppn_29;
reg [43:0] ppn_30;
reg [43:0] ppn_31;
reg [1:0] level_0;
reg [1:0] level_1;
reg [1:0] level_2;
reg [1:0] level_3;
reg [1:0] level_4;
reg [1:0] level_5;
reg [1:0] level_6;
reg [1:0] level_7;
reg [1:0] level_8;
reg [1:0] level_9;
reg [1:0] level_10;
reg [1:0] level_11;
reg [1:0] level_12;
reg [1:0] level_13;
reg [1:0] level_14;
reg [1:0] level_15;
reg [1:0] level_16;
reg [1:0] level_17;
reg [1:0] level_18;
reg [1:0] level_19;
reg [1:0] level_20;
reg [1:0] level_21;
reg [1:0] level_22;
reg [1:0] level_23;
reg [1:0] level_24;
reg [1:0] level_25;
reg [1:0] level_26;
reg [1:0] level_27;
reg [1:0] level_28;
reg [1:0] level_29;
reg [1:0] level_30;
reg [1:0] level_31;
reg [7:0] flags_0;
reg [7:0] flags_1;
reg [7:0] flags_2;
reg [7:0] flags_3;
reg [7:0] flags_4;
reg [7:0] flags_5;
reg [7:0] flags_6;
reg [7:0] flags_7;
reg [7:0] flags_8;
reg [7:0] flags_9;
reg [7:0] flags_10;
reg [7:0] flags_11;
reg [7:0] flags_12;
reg [7:0] flags_13;
reg [7:0] flags_14;
reg [7:0] flags_15;
reg [7:0] flags_16;
reg [7:0] flags_17;
reg [7:0] flags_18;
reg [7:0] flags_19;
reg [7:0] flags_20;
reg [7:0] flags_21;
reg [7:0] flags_22;
reg [7:0] flags_23;
reg [7:0] flags_24;
reg [7:0] flags_25;
reg [7:0] flags_26;
reg [7:0] flags_27;
reg [7:0] flags_28;
reg [7:0] flags_29;
reg [7:0] flags_30;
reg [7:0] flags_31;
reg [4:0] repl;
wire hitVec_1 =
valid_1
& (level_1 == 2'h2
? vpn_1[26:18] == io_req_vaddr[38:30]
: level_1 == 2'h1
? vpn_1[26:9] == io_req_vaddr[38:21]
: vpn_1 == io_req_vaddr[38:12]);
wire hitVec_2 =
valid_2
& (level_2 == 2'h2
? vpn_2[26:18] == io_req_vaddr[38:30]
: level_2 == 2'h1
? vpn_2[26:9] == io_req_vaddr[38:21]
: vpn_2 == io_req_vaddr[38:12]);
wire hitVec_3 =
valid_3
& (level_3 == 2'h2
? vpn_3[26:18] == io_req_vaddr[38:30]
: level_3 == 2'h1
? vpn_3[26:9] == io_req_vaddr[38:21]
: vpn_3 == io_req_vaddr[38:12]);
wire hitVec_4 =
valid_4
& (level_4 == 2'h2
? vpn_4[26:18] == io_req_vaddr[38:30]
: level_4 == 2'h1
? vpn_4[26:9] == io_req_vaddr[38:21]
: vpn_4 == io_req_vaddr[38:12]);
wire hitVec_5 =
valid_5
& (level_5 == 2'h2
? vpn_5[26:18] == io_req_vaddr[38:30]
: level_5 == 2'h1
? vpn_5[26:9] == io_req_vaddr[38:21]
: vpn_5 == io_req_vaddr[38:12]);
wire hitVec_6 =
valid_6
& (level_6 == 2'h2
? vpn_6[26:18] == io_req_vaddr[38:30]
: level_6 == 2'h1
? vpn_6[26:9] == io_req_vaddr[38:21]
: vpn_6 == io_req_vaddr[38:12]);
wire hitVec_7 =
valid_7
& (level_7 == 2'h2
? vpn_7[26:18] == io_req_vaddr[38:30]
: level_7 == 2'h1
? vpn_7[26:9] == io_req_vaddr[38:21]
: vpn_7 == io_req_vaddr[38:12]);
wire hitVec_8 =
valid_8
& (level_8 == 2'h2
? vpn_8[26:18] == io_req_vaddr[38:30]
: level_8 == 2'h1
? vpn_8[26:9] == io_req_vaddr[38:21]
: vpn_8 == io_req_vaddr[38:12]);
wire hitVec_9 =
valid_9
& (level_9 == 2'h2
? vpn_9[26:18] == io_req_vaddr[38:30]
: level_9 == 2'h1
? vpn_9[26:9] == io_req_vaddr[38:21]
: vpn_9 == io_req_vaddr[38:12]);
wire hitVec_10 =
valid_10
& (level_10 == 2'h2
? vpn_10[26:18] == io_req_vaddr[38:30]
: level_10 == 2'h1
? vpn_10[26:9] == io_req_vaddr[38:21]
: vpn_10 == io_req_vaddr[38:12]);
wire hitVec_11 =
valid_11
& (level_11 == 2'h2
? vpn_11[26:18] == io_req_vaddr[38:30]
: level_11 == 2'h1
? vpn_11[26:9] == io_req_vaddr[38:21]
: vpn_11 == io_req_vaddr[38:12]);
wire hitVec_12 =
valid_12
& (level_12 == 2'h2
? vpn_12[26:18] == io_req_vaddr[38:30]
: level_12 == 2'h1
? vpn_12[26:9] == io_req_vaddr[38:21]
: vpn_12 == io_req_vaddr[38:12]);
wire hitVec_13 =
valid_13
& (level_13 == 2'h2
? vpn_13[26:18] == io_req_vaddr[38:30]
: level_13 == 2'h1
? vpn_13[26:9] == io_req_vaddr[38:21]
: vpn_13 == io_req_vaddr[38:12]);
wire hitVec_14 =
valid_14
& (level_14 == 2'h2
? vpn_14[26:18] == io_req_vaddr[38:30]
: level_14 == 2'h1
? vpn_14[26:9] == io_req_vaddr[38:21]
: vpn_14 == io_req_vaddr[38:12]);
wire hitVec_15 =
valid_15
& (level_15 == 2'h2
? vpn_15[26:18] == io_req_vaddr[38:30]
: level_15 == 2'h1
? vpn_15[26:9] == io_req_vaddr[38:21]
: vpn_15 == io_req_vaddr[38:12]);
wire hitVec_16 =
valid_16
& (level_16 == 2'h2
? vpn_16[26:18] == io_req_vaddr[38:30]
: level_16 == 2'h1
? vpn_16[26:9] == io_req_vaddr[38:21]
: vpn_16 == io_req_vaddr[38:12]);
wire hitVec_17 =
valid_17
& (level_17 == 2'h2
? vpn_17[26:18] == io_req_vaddr[38:30]
: level_17 == 2'h1
? vpn_17[26:9] == io_req_vaddr[38:21]
: vpn_17 == io_req_vaddr[38:12]);
wire hitVec_18 =
valid_18
& (level_18 == 2'h2
? vpn_18[26:18] == io_req_vaddr[38:30]
: level_18 == 2'h1
? vpn_18[26:9] == io_req_vaddr[38:21]
: vpn_18 == io_req_vaddr[38:12]);
wire hitVec_19 =
valid_19
& (level_19 == 2'h2
? vpn_19[26:18] == io_req_vaddr[38:30]
: level_19 == 2'h1
? vpn_19[26:9] == io_req_vaddr[38:21]
: vpn_19 == io_req_vaddr[38:12]);
wire hitVec_20 =
valid_20
& (level_20 == 2'h2
? vpn_20[26:18] == io_req_vaddr[38:30]
: level_20 == 2'h1
? vpn_20[26:9] == io_req_vaddr[38:21]
: vpn_20 == io_req_vaddr[38:12]);
wire hitVec_21 =
valid_21
& (level_21 == 2'h2
? vpn_21[26:18] == io_req_vaddr[38:30]
: level_21 == 2'h1
? vpn_21[26:9] == io_req_vaddr[38:21]
: vpn_21 == io_req_vaddr[38:12]);
wire hitVec_22 =
valid_22
& (level_22 == 2'h2
? vpn_22[26:18] == io_req_vaddr[38:30]
: level_22 == 2'h1
? vpn_22[26:9] == io_req_vaddr[38:21]
: vpn_22 == io_req_vaddr[38:12]);
wire hitVec_23 =
valid_23
& (level_23 == 2'h2
? vpn_23[26:18] == io_req_vaddr[38:30]
: level_23 == 2'h1
? vpn_23[26:9] == io_req_vaddr[38:21]
: vpn_23 == io_req_vaddr[38:12]);
wire hitVec_24 =
valid_24
& (level_24 == 2'h2
? vpn_24[26:18] == io_req_vaddr[38:30]
: level_24 == 2'h1
? vpn_24[26:9] == io_req_vaddr[38:21]
: vpn_24 == io_req_vaddr[38:12]);
wire hitVec_25 =
valid_25
& (level_25 == 2'h2
? vpn_25[26:18] == io_req_vaddr[38:30]
: level_25 == 2'h1
? vpn_25[26:9] == io_req_vaddr[38:21]
: vpn_25 == io_req_vaddr[38:12]);
wire hitVec_26 =
valid_26
& (level_26 == 2'h2
? vpn_26[26:18] == io_req_vaddr[38:30]
: level_26 == 2'h1
? vpn_26[26:9] == io_req_vaddr[38:21]
: vpn_26 == io_req_vaddr[38:12]);
wire hitVec_27 =
valid_27
& (level_27 == 2'h2
? vpn_27[26:18] == io_req_vaddr[38:30]
: level_27 == 2'h1
? vpn_27[26:9] == io_req_vaddr[38:21]
: vpn_27 == io_req_vaddr[38:12]);
wire hitVec_28 =
valid_28
& (level_28 == 2'h2
? vpn_28[26:18] == io_req_vaddr[38:30]
: level_28 == 2'h1
? vpn_28[26:9] == io_req_vaddr[38:21]
: vpn_28 == io_req_vaddr[38:12]);
wire hitVec_29 =
valid_29
& (level_29 == 2'h2
? vpn_29[26:18] == io_req_vaddr[38:30]
: level_29 == 2'h1
? vpn_29[26:9] == io_req_vaddr[38:21]
: vpn_29 == io_req_vaddr[38:12]);
wire hitVec_30 =
valid_30
& (level_30 == 2'h2
? vpn_30[26:18] == io_req_vaddr[38:30]
: level_30 == 2'h1
? vpn_30[26:9] == io_req_vaddr[38:21]
: vpn_30 == io_req_vaddr[38:12]);
wire hitVec_31 =
valid_31
& (level_31 == 2'h2
? vpn_31[26:18] == io_req_vaddr[38:30]
: level_31 == 2'h1
? vpn_31[26:9] == io_req_vaddr[38:21]
: vpn_31 == io_req_vaddr[38:12]);
wire hit =
io_req_valid
& (|{hitVec_31,
hitVec_30,
hitVec_29,
hitVec_28,
hitVec_27,
hitVec_26,
hitVec_25,
hitVec_24,
hitVec_23,
hitVec_22,
hitVec_21,
hitVec_20,
hitVec_19,
hitVec_18,
hitVec_17,
hitVec_16,
hitVec_15,
hitVec_14,
hitVec_13,
hitVec_12,
hitVec_11,
hitVec_10,
hitVec_9,
hitVec_8,
hitVec_7,
hitVec_6,
hitVec_5,
hitVec_4,
hitVec_3,
hitVec_2,
hitVec_1,
valid_0
& (level_0 == 2'h2
? vpn_0[26:18] == io_req_vaddr[38:30]
: level_0 == 2'h1
? vpn_0[26:9] == io_req_vaddr[38:21]
: vpn_0 == io_req_vaddr[38:12])});
wire [14:0] _hitIdx_T_2 =
{hitVec_31,
hitVec_30,
hitVec_29,
hitVec_28,
hitVec_27,
hitVec_26,
hitVec_25,
hitVec_24,
hitVec_23,
hitVec_22,
hitVec_21,
hitVec_20,
hitVec_19,
hitVec_18,
hitVec_17}
| {hitVec_15,
hitVec_14,
hitVec_13,
hitVec_12,
hitVec_11,
hitVec_10,
hitVec_9,
hitVec_8,
hitVec_7,
hitVec_6,
hitVec_5,
hitVec_4,
hitVec_3,
hitVec_2,
hitVec_1};
wire [6:0] _hitIdx_T_4 = _hitIdx_T_2[14:8] | _hitIdx_T_2[6:0];
wire [2:0] _hitIdx_T_6 = _hitIdx_T_4[6:4] | _hitIdx_T_4[2:0];
wire [4:0] hitIdx =
{|{hitVec_31,
hitVec_30,
hitVec_29,
hitVec_28,
hitVec_27,
hitVec_26,
hitVec_25,
hitVec_24,
hitVec_23,
hitVec_22,
hitVec_21,
hitVec_20,
hitVec_19,
hitVec_18,
hitVec_17,
hitVec_16},
|(_hitIdx_T_2[14:7]),
|(_hitIdx_T_4[6:3]),
|(_hitIdx_T_6[2:1]),
_hitIdx_T_6[2] | _hitIdx_T_6[0]};
wire [31:0][1:0] _GEN =
{{level_31},
{level_30},
{level_29},
{level_28},
{level_27},
{level_26},
{level_25},
{level_24},
{level_23},
{level_22},
{level_21},
{level_20},
{level_19},
{level_18},
{level_17},
{level_16},
{level_15},
{level_14},
{level_13},
{level_12},
{level_11},
{level_10},
{level_9},
{level_8},
{level_7},
{level_6},
{level_5},
{level_4},
{level_3},
{level_2},
{level_1},
{level_0}};
wire [31:0][43:0] _GEN_0 =
{{ppn_31},
{ppn_30},
{ppn_29},
{ppn_28},
{ppn_27},
{ppn_26},
{ppn_25},
{ppn_24},
{ppn_23},
{ppn_22},
{ppn_21},
{ppn_20},
{ppn_19},
{ppn_18},
{ppn_17},
{ppn_16},
{ppn_15},
{ppn_14},
{ppn_13},
{ppn_12},
{ppn_11},
{ppn_10},
{ppn_9},
{ppn_8},
{ppn_7},
{ppn_6},
{ppn_5},
{ppn_4},
{ppn_3},
{ppn_2},
{ppn_1},
{ppn_0}};
wire [31:0][7:0] _GEN_1 =
{{flags_31},
{flags_30},
{flags_29},
{flags_28},
{flags_27},
{flags_26},
{flags_25},
{flags_24},
{flags_23},
{flags_22},
{flags_21},
{flags_20},
{flags_19},
{flags_18},
{flags_17},
{flags_16},
{flags_15},
{flags_14},
{flags_13},
{flags_12},
{flags_11},
{flags_10},
{flags_9},
{flags_8},
{flags_7},
{flags_6},
{flags_5},
{flags_4},
{flags_3},
{flags_2},
{flags_1},
{flags_0}};
wire pageFault =
hit
& (io_req_priv == 2'h1 & _GEN_1[hitIdx][4] & ~io_req_sum | io_req_priv == 2'h0
& ~(_GEN_1[hitIdx][4])
| ~(io_req_isStore
? _GEN_1[hitIdx][2] & _GEN_1[hitIdx][7]
: _GEN_1[hitIdx][1] | io_req_mxr & _GEN_1[hitIdx][3])
| ~(_GEN_1[hitIdx][6]));
always @(posedge clock) begin
automatic logic _GEN_2;
automatic logic _GEN_3;
automatic logic _GEN_4;
automatic logic _GEN_5;
automatic logic _GEN_6;
automatic logic _GEN_7;
automatic logic _GEN_8;
automatic logic _GEN_9;
automatic logic _GEN_10;
automatic logic _GEN_11;
automatic logic _GEN_12;
automatic logic _GEN_13;
automatic logic _GEN_14;
automatic logic _GEN_15;
automatic logic _GEN_16;
automatic logic _GEN_17;
automatic logic _GEN_18;
automatic logic _GEN_19;
automatic logic _GEN_20;
automatic logic _GEN_21;
automatic logic _GEN_22;
automatic logic _GEN_23;
automatic logic _GEN_24;
automatic logic _GEN_25;
automatic logic _GEN_26;
automatic logic _GEN_27;
automatic logic _GEN_28;
automatic logic _GEN_29;
automatic logic _GEN_30;
automatic logic _GEN_31;
automatic logic _GEN_32;
automatic logic _GEN_33;
automatic logic _GEN_34;
automatic logic _GEN_35;
automatic logic _GEN_36;
automatic logic _GEN_37;
automatic logic _GEN_38;
automatic logic _GEN_39;
automatic logic _GEN_40;
automatic logic _GEN_41;
automatic logic _GEN_42;
automatic logic _GEN_43;
automatic logic _GEN_44;
automatic logic _GEN_45;
automatic logic _GEN_46;
automatic logic _GEN_47;
automatic logic _GEN_48;
automatic logic _GEN_49;
automatic logic _GEN_50;
automatic logic _GEN_51;
automatic logic _GEN_52;
automatic logic _GEN_53;
automatic logic _GEN_54;
automatic logic _GEN_55;
automatic logic _GEN_56;
automatic logic _GEN_57;
automatic logic _GEN_58;
automatic logic _GEN_59;
automatic logic _GEN_60;
automatic logic _GEN_61;
automatic logic _GEN_62;
automatic logic _GEN_63;
automatic logic _GEN_64;
automatic logic _GEN_65;
_GEN_2 = io_refill_valid & repl == 5'h0;
_GEN_3 = io_refill_valid & repl == 5'h1;
_GEN_4 = io_refill_valid & repl == 5'h2;
_GEN_5 = io_refill_valid & repl == 5'h3;
_GEN_6 = io_refill_valid & repl == 5'h4;
_GEN_7 = io_refill_valid & repl == 5'h5;
_GEN_8 = io_refill_valid & repl == 5'h6;
_GEN_9 = io_refill_valid & repl == 5'h7;
_GEN_10 = io_refill_valid & repl == 5'h8;
_GEN_11 = io_refill_valid & repl == 5'h9;
_GEN_12 = io_refill_valid & repl == 5'hA;
_GEN_13 = io_refill_valid & repl == 5'hB;
_GEN_14 = io_refill_valid & repl == 5'hC;
_GEN_15 = io_refill_valid & repl == 5'hD;
_GEN_16 = io_refill_valid & repl == 5'hE;
_GEN_17 = io_refill_valid & repl == 5'hF;
_GEN_18 = io_refill_valid & repl == 5'h10;
_GEN_19 = io_refill_valid & repl == 5'h11;
_GEN_20 = io_refill_valid & repl == 5'h12;
_GEN_21 = io_refill_valid & repl == 5'h13;
_GEN_22 = io_refill_valid & repl == 5'h14;
_GEN_23 = io_refill_valid & repl == 5'h15;
_GEN_24 = io_refill_valid & repl == 5'h16;
_GEN_25 = io_refill_valid & repl == 5'h17;
_GEN_26 = io_refill_valid & repl == 5'h18;
_GEN_27 = io_refill_valid & repl == 5'h19;
_GEN_28 = io_refill_valid & repl == 5'h1A;
_GEN_29 = io_refill_valid & repl == 5'h1B;
_GEN_30 = io_refill_valid & repl == 5'h1C;
_GEN_31 = io_refill_valid & repl == 5'h1D;
_GEN_32 = io_refill_valid & repl == 5'h1E;
_GEN_33 = io_refill_valid & (&repl);
_GEN_34 = io_flush | ~_GEN_2;
_GEN_35 = io_flush | ~_GEN_3;
_GEN_36 = io_flush | ~_GEN_4;
_GEN_37 = io_flush | ~_GEN_5;
_GEN_38 = io_flush | ~_GEN_6;
_GEN_39 = io_flush | ~_GEN_7;
_GEN_40 = io_flush | ~_GEN_8;
_GEN_41 = io_flush | ~_GEN_9;
_GEN_42 = io_flush | ~_GEN_10;
_GEN_43 = io_flush | ~_GEN_11;
_GEN_44 = io_flush | ~_GEN_12;
_GEN_45 = io_flush | ~_GEN_13;
_GEN_46 = io_flush | ~_GEN_14;
_GEN_47 = io_flush | ~_GEN_15;
_GEN_48 = io_flush | ~_GEN_16;
_GEN_49 = io_flush | ~_GEN_17;
_GEN_50 = io_flush | ~_GEN_18;
_GEN_51 = io_flush | ~_GEN_19;
_GEN_52 = io_flush | ~_GEN_20;
_GEN_53 = io_flush | ~_GEN_21;
_GEN_54 = io_flush | ~_GEN_22;
_GEN_55 = io_flush | ~_GEN_23;
_GEN_56 = io_flush | ~_GEN_24;
_GEN_57 = io_flush | ~_GEN_25;
_GEN_58 = io_flush | ~_GEN_26;
_GEN_59 = io_flush | ~_GEN_27;
_GEN_60 = io_flush | ~_GEN_28;
_GEN_61 = io_flush | ~_GEN_29;
_GEN_62 = io_flush | ~_GEN_30;
_GEN_63 = io_flush | ~_GEN_31;
_GEN_64 = io_flush | ~_GEN_32;
_GEN_65 = io_flush | ~_GEN_33;
if (reset) begin
valid_0 <= 1'h0;
valid_1 <= 1'h0;
valid_2 <= 1'h0;
valid_3 <= 1'h0;
valid_4 <= 1'h0;
valid_5 <= 1'h0;
valid_6 <= 1'h0;
valid_7 <= 1'h0;
valid_8 <= 1'h0;
valid_9 <= 1'h0;
valid_10 <= 1'h0;
valid_11 <= 1'h0;
valid_12 <= 1'h0;
valid_13 <= 1'h0;
valid_14 <= 1'h0;
valid_15 <= 1'h0;
valid_16 <= 1'h0;
valid_17 <= 1'h0;
valid_18 <= 1'h0;
valid_19 <= 1'h0;
valid_20 <= 1'h0;
valid_21 <= 1'h0;
valid_22 <= 1'h0;
valid_23 <= 1'h0;
valid_24 <= 1'h0;
valid_25 <= 1'h0;
valid_26 <= 1'h0;
valid_27 <= 1'h0;
valid_28 <= 1'h0;
valid_29 <= 1'h0;
valid_30 <= 1'h0;
valid_31 <= 1'h0;
repl <= 5'h0;
end
else begin
valid_0 <= ~io_flush & (_GEN_2 | valid_0);
valid_1 <= ~io_flush & (_GEN_3 | valid_1);
valid_2 <= ~io_flush & (_GEN_4 | valid_2);
valid_3 <= ~io_flush & (_GEN_5 | valid_3);
valid_4 <= ~io_flush & (_GEN_6 | valid_4);
valid_5 <= ~io_flush & (_GEN_7 | valid_5);
valid_6 <= ~io_flush & (_GEN_8 | valid_6);
valid_7 <= ~io_flush & (_GEN_9 | valid_7);
valid_8 <= ~io_flush & (_GEN_10 | valid_8);
valid_9 <= ~io_flush & (_GEN_11 | valid_9);
valid_10 <= ~io_flush & (_GEN_12 | valid_10);
valid_11 <= ~io_flush & (_GEN_13 | valid_11);
valid_12 <= ~io_flush & (_GEN_14 | valid_12);
valid_13 <= ~io_flush & (_GEN_15 | valid_13);
valid_14 <= ~io_flush & (_GEN_16 | valid_14);
valid_15 <= ~io_flush & (_GEN_17 | valid_15);
valid_16 <= ~io_flush & (_GEN_18 | valid_16);
valid_17 <= ~io_flush & (_GEN_19 | valid_17);
valid_18 <= ~io_flush & (_GEN_20 | valid_18);
valid_19 <= ~io_flush & (_GEN_21 | valid_19);
valid_20 <= ~io_flush & (_GEN_22 | valid_20);
valid_21 <= ~io_flush & (_GEN_23 | valid_21);
valid_22 <= ~io_flush & (_GEN_24 | valid_22);
valid_23 <= ~io_flush & (_GEN_25 | valid_23);
valid_24 <= ~io_flush & (_GEN_26 | valid_24);
valid_25 <= ~io_flush & (_GEN_27 | valid_25);
valid_26 <= ~io_flush & (_GEN_28 | valid_26);
valid_27 <= ~io_flush & (_GEN_29 | valid_27);
valid_28 <= ~io_flush & (_GEN_30 | valid_28);
valid_29 <= ~io_flush & (_GEN_31 | valid_29);
valid_30 <= ~io_flush & (_GEN_32 | valid_30);
valid_31 <= ~io_flush & (_GEN_33 | valid_31);
if (io_flush | ~io_refill_valid) begin
end
else
repl <= repl + 5'h1;
end
if (_GEN_34) begin
end
else
vpn_0 <= io_refill_vpn;
if (_GEN_35) begin
end
else
vpn_1 <= io_refill_vpn;
if (_GEN_36) begin
end
else
vpn_2 <= io_refill_vpn;
if (_GEN_37) begin
end
else
vpn_3 <= io_refill_vpn;
if (_GEN_38) begin
end
else
vpn_4 <= io_refill_vpn;
if (_GEN_39) begin
end
else
vpn_5 <= io_refill_vpn;
if (_GEN_40) begin
end
else
vpn_6 <= io_refill_vpn;
if (_GEN_41) begin
end
else
vpn_7 <= io_refill_vpn;
if (_GEN_42) begin
end
else
vpn_8 <= io_refill_vpn;
if (_GEN_43) begin
end
else
vpn_9 <= io_refill_vpn;
if (_GEN_44) begin
end
else
vpn_10 <= io_refill_vpn;
if (_GEN_45) begin
end
else
vpn_11 <= io_refill_vpn;
if (_GEN_46) begin
end
else
vpn_12 <= io_refill_vpn;
if (_GEN_47) begin
end
else
vpn_13 <= io_refill_vpn;
if (_GEN_48) begin
end
else
vpn_14 <= io_refill_vpn;
if (_GEN_49) begin
end
else
vpn_15 <= io_refill_vpn;
if (_GEN_50) begin
end
else
vpn_16 <= io_refill_vpn;
if (_GEN_51) begin
end
else
vpn_17 <= io_refill_vpn;
if (_GEN_52) begin
end
else
vpn_18 <= io_refill_vpn;
if (_GEN_53) begin
end
else
vpn_19 <= io_refill_vpn;
if (_GEN_54) begin
end
else
vpn_20 <= io_refill_vpn;
if (_GEN_55) begin
end
else
vpn_21 <= io_refill_vpn;
if (_GEN_56) begin
end
else
vpn_22 <= io_refill_vpn;
if (_GEN_57) begin
end
else
vpn_23 <= io_refill_vpn;
if (_GEN_58) begin
end
else
vpn_24 <= io_refill_vpn;
if (_GEN_59) begin
end
else
vpn_25 <= io_refill_vpn;
if (_GEN_60) begin
end
else
vpn_26 <= io_refill_vpn;
if (_GEN_61) begin
end
else
vpn_27 <= io_refill_vpn;
if (_GEN_62) begin
end
else
vpn_28 <= io_refill_vpn;
if (_GEN_63) begin
end
else
vpn_29 <= io_refill_vpn;
if (_GEN_64) begin
end
else
vpn_30 <= io_refill_vpn;
if (_GEN_65) begin
end
else
vpn_31 <= io_refill_vpn;
if (_GEN_34) begin
end
else
ppn_0 <= io_refill_ppn;
if (_GEN_35) begin
end
else
ppn_1 <= io_refill_ppn;
if (_GEN_36) begin
end
else
ppn_2 <= io_refill_ppn;
if (_GEN_37) begin
end
else
ppn_3 <= io_refill_ppn;
if (_GEN_38) begin
end
else
ppn_4 <= io_refill_ppn;
if (_GEN_39) begin
end
else
ppn_5 <= io_refill_ppn;
if (_GEN_40) begin
end
else
ppn_6 <= io_refill_ppn;
if (_GEN_41) begin
end
else
ppn_7 <= io_refill_ppn;
if (_GEN_42) begin
end
else
ppn_8 <= io_refill_ppn;
if (_GEN_43) begin
end
else
ppn_9 <= io_refill_ppn;
if (_GEN_44) begin
end
else
ppn_10 <= io_refill_ppn;
if (_GEN_45) begin
end
else
ppn_11 <= io_refill_ppn;
if (_GEN_46) begin
end
else
ppn_12 <= io_refill_ppn;
if (_GEN_47) begin
end
else
ppn_13 <= io_refill_ppn;
if (_GEN_48) begin
end
else
ppn_14 <= io_refill_ppn;
if (_GEN_49) begin
end
else
ppn_15 <= io_refill_ppn;
if (_GEN_50) begin
end
else
ppn_16 <= io_refill_ppn;
if (_GEN_51) begin
end
else
ppn_17 <= io_refill_ppn;
if (_GEN_52) begin
end
else
ppn_18 <= io_refill_ppn;
if (_GEN_53) begin
end
else
ppn_19 <= io_refill_ppn;
if (_GEN_54) begin
end
else
ppn_20 <= io_refill_ppn;
if (_GEN_55) begin
end
else
ppn_21 <= io_refill_ppn;
if (_GEN_56) begin
end
else
ppn_22 <= io_refill_ppn;
if (_GEN_57) begin
end
else
ppn_23 <= io_refill_ppn;
if (_GEN_58) begin
end
else
ppn_24 <= io_refill_ppn;
if (_GEN_59) begin
end
else
ppn_25 <= io_refill_ppn;
if (_GEN_60) begin
end
else
ppn_26 <= io_refill_ppn;
if (_GEN_61) begin
end
else
ppn_27 <= io_refill_ppn;
if (_GEN_62) begin
end
else
ppn_28 <= io_refill_ppn;
if (_GEN_63) begin
end
else
ppn_29 <= io_refill_ppn;
if (_GEN_64) begin
end
else
ppn_30 <= io_refill_ppn;
if (_GEN_65) begin
end
else
ppn_31 <= io_refill_ppn;
if (_GEN_34) begin
end
else
level_0 <= io_refill_level;
if (_GEN_35) begin
end
else
level_1 <= io_refill_level;
if (_GEN_36) begin
end
else
level_2 <= io_refill_level;
if (_GEN_37) begin
end
else
level_3 <= io_refill_level;
if (_GEN_38) begin
end
else
level_4 <= io_refill_level;
if (_GEN_39) begin
end
else
level_5 <= io_refill_level;
if (_GEN_40) begin
end
else
level_6 <= io_refill_level;
if (_GEN_41) begin
end
else
level_7 <= io_refill_level;
if (_GEN_42) begin
end
else
level_8 <= io_refill_level;
if (_GEN_43) begin
end
else
level_9 <= io_refill_level;
if (_GEN_44) begin
end
else
level_10 <= io_refill_level;
if (_GEN_45) begin
end
else
level_11 <= io_refill_level;
if (_GEN_46) begin
end
else
level_12 <= io_refill_level;
if (_GEN_47) begin
end
else
level_13 <= io_refill_level;
if (_GEN_48) begin
end
else
level_14 <= io_refill_level;
if (_GEN_49) begin
end
else
level_15 <= io_refill_level;
if (_GEN_50) begin
end
else
level_16 <= io_refill_level;
if (_GEN_51) begin
end
else
level_17 <= io_refill_level;
if (_GEN_52) begin
end
else
level_18 <= io_refill_level;
if (_GEN_53) begin
end
else
level_19 <= io_refill_level;
if (_GEN_54) begin
end
else
level_20 <= io_refill_level;
if (_GEN_55) begin
end
else
level_21 <= io_refill_level;
if (_GEN_56) begin
end
else
level_22 <= io_refill_level;
if (_GEN_57) begin
end
else
level_23 <= io_refill_level;
if (_GEN_58) begin
end
else
level_24 <= io_refill_level;
if (_GEN_59) begin
end
else
level_25 <= io_refill_level;
if (_GEN_60) begin
end
else
level_26 <= io_refill_level;
if (_GEN_61) begin
end
else
level_27 <= io_refill_level;
if (_GEN_62) begin
end
else
level_28 <= io_refill_level;
if (_GEN_63) begin
end
else
level_29 <= io_refill_level;
if (_GEN_64) begin
end
else
level_30 <= io_refill_level;
if (_GEN_65) begin
end
else
level_31 <= io_refill_level;
if (_GEN_34) begin
end
else
flags_0 <= io_refill_flags;
if (_GEN_35) begin
end
else
flags_1 <= io_refill_flags;
if (_GEN_36) begin
end
else
flags_2 <= io_refill_flags;
if (_GEN_37) begin
end
else
flags_3 <= io_refill_flags;
if (_GEN_38) begin
end
else
flags_4 <= io_refill_flags;
if (_GEN_39) begin
end
else
flags_5 <= io_refill_flags;
if (_GEN_40) begin
end
else
flags_6 <= io_refill_flags;
if (_GEN_41) begin
end
else
flags_7 <= io_refill_flags;
if (_GEN_42) begin
end
else
flags_8 <= io_refill_flags;
if (_GEN_43) begin
end
else
flags_9 <= io_refill_flags;
if (_GEN_44) begin
end
else
flags_10 <= io_refill_flags;
if (_GEN_45) begin
end
else
flags_11 <= io_refill_flags;
if (_GEN_46) begin
end
else
flags_12 <= io_refill_flags;
if (_GEN_47) begin
end
else
flags_13 <= io_refill_flags;
if (_GEN_48) begin
end
else
flags_14 <= io_refill_flags;
if (_GEN_49) begin
end
else
flags_15 <= io_refill_flags;
if (_GEN_50) begin
end
else
flags_16 <= io_refill_flags;
if (_GEN_51) begin
end
else
flags_17 <= io_refill_flags;
if (_GEN_52) begin
end
else
flags_18 <= io_refill_flags;
if (_GEN_53) begin
end
else
flags_19 <= io_refill_flags;
if (_GEN_54) begin
end
else
flags_20 <= io_refill_flags;
if (_GEN_55) begin
end
else
flags_21 <= io_refill_flags;
if (_GEN_56) begin
end
else
flags_22 <= io_refill_flags;
if (_GEN_57) begin
end
else
flags_23 <= io_refill_flags;
if (_GEN_58) begin
end
else
flags_24 <= io_refill_flags;
if (_GEN_59) begin
end
else
flags_25 <= io_refill_flags;
if (_GEN_60) begin
end
else
flags_26 <= io_refill_flags;
if (_GEN_61) begin
end
else
flags_27 <= io_refill_flags;
if (_GEN_62) begin
end
else
flags_28 <= io_refill_flags;
if (_GEN_63) begin
end
else
flags_29 <= io_refill_flags;
if (_GEN_64) begin
end
else
flags_30 <= io_refill_flags;
if (_GEN_65) begin
end
else
flags_31 <= io_refill_flags;
end // always @(posedge)
assign io_resp_hit = hit & ~pageFault;
assign io_resp_miss = io_req_valid & ~hit;
assign io_resp_paddr =
{8'h0,
_GEN_0[hitIdx][43:18],
_GEN[hitIdx][1] ? io_req_vaddr[29:21] : _GEN_0[hitIdx][17:9],
_GEN[hitIdx] == 2'h0 ? _GEN_0[hitIdx][8:0] : io_req_vaddr[20:12],
io_req_vaddr[11:0]};
assign io_resp_pageFault = pageFault;
endmodule