637 lines
18 KiB
Systemverilog
637 lines
18 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,
|
|
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 [7:0] io_refill_flags
|
|
);
|
|
|
|
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 [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 & vpn_1 == io_req_vaddr[38:12];
|
|
wire hitVec_2 = valid_2 & vpn_2 == io_req_vaddr[38:12];
|
|
wire hitVec_3 = valid_3 & vpn_3 == io_req_vaddr[38:12];
|
|
wire hitVec_4 = valid_4 & vpn_4 == io_req_vaddr[38:12];
|
|
wire hitVec_5 = valid_5 & vpn_5 == io_req_vaddr[38:12];
|
|
wire hitVec_6 = valid_6 & vpn_6 == io_req_vaddr[38:12];
|
|
wire hitVec_7 = valid_7 & vpn_7 == io_req_vaddr[38:12];
|
|
wire hitVec_8 = valid_8 & vpn_8 == io_req_vaddr[38:12];
|
|
wire hitVec_9 = valid_9 & vpn_9 == io_req_vaddr[38:12];
|
|
wire hitVec_10 = valid_10 & vpn_10 == io_req_vaddr[38:12];
|
|
wire hitVec_11 = valid_11 & vpn_11 == io_req_vaddr[38:12];
|
|
wire hitVec_12 = valid_12 & vpn_12 == io_req_vaddr[38:12];
|
|
wire hitVec_13 = valid_13 & vpn_13 == io_req_vaddr[38:12];
|
|
wire hitVec_14 = valid_14 & vpn_14 == io_req_vaddr[38:12];
|
|
wire hitVec_15 = valid_15 & vpn_15 == io_req_vaddr[38:12];
|
|
wire hitVec_16 = valid_16 & vpn_16 == io_req_vaddr[38:12];
|
|
wire hitVec_17 = valid_17 & vpn_17 == io_req_vaddr[38:12];
|
|
wire hitVec_18 = valid_18 & vpn_18 == io_req_vaddr[38:12];
|
|
wire hitVec_19 = valid_19 & vpn_19 == io_req_vaddr[38:12];
|
|
wire hitVec_20 = valid_20 & vpn_20 == io_req_vaddr[38:12];
|
|
wire hitVec_21 = valid_21 & vpn_21 == io_req_vaddr[38:12];
|
|
wire hitVec_22 = valid_22 & vpn_22 == io_req_vaddr[38:12];
|
|
wire hitVec_23 = valid_23 & vpn_23 == io_req_vaddr[38:12];
|
|
wire hitVec_24 = valid_24 & vpn_24 == io_req_vaddr[38:12];
|
|
wire hitVec_25 = valid_25 & vpn_25 == io_req_vaddr[38:12];
|
|
wire hitVec_26 = valid_26 & vpn_26 == io_req_vaddr[38:12];
|
|
wire hitVec_27 = valid_27 & vpn_27 == io_req_vaddr[38:12];
|
|
wire hitVec_28 = valid_28 & vpn_28 == io_req_vaddr[38:12];
|
|
wire hitVec_29 = valid_29 & vpn_29 == io_req_vaddr[38:12];
|
|
wire hitVec_30 = valid_30 & vpn_30 == io_req_vaddr[38:12];
|
|
wire hitVec_31 = valid_31 & 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 & 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][7:0] _GEN =
|
|
{{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_isStore ? ~(_GEN[hitIdx][2]) : ~(_GEN[hitIdx][1]));
|
|
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}};
|
|
always @(posedge clock) begin
|
|
automatic logic _GEN_1;
|
|
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;
|
|
_GEN_1 = io_refill_valid & repl == 5'h0;
|
|
_GEN_2 = io_refill_valid & repl == 5'h1;
|
|
_GEN_3 = io_refill_valid & repl == 5'h2;
|
|
_GEN_4 = io_refill_valid & repl == 5'h3;
|
|
_GEN_5 = io_refill_valid & repl == 5'h4;
|
|
_GEN_6 = io_refill_valid & repl == 5'h5;
|
|
_GEN_7 = io_refill_valid & repl == 5'h6;
|
|
_GEN_8 = io_refill_valid & repl == 5'h7;
|
|
_GEN_9 = io_refill_valid & repl == 5'h8;
|
|
_GEN_10 = io_refill_valid & repl == 5'h9;
|
|
_GEN_11 = io_refill_valid & repl == 5'hA;
|
|
_GEN_12 = io_refill_valid & repl == 5'hB;
|
|
_GEN_13 = io_refill_valid & repl == 5'hC;
|
|
_GEN_14 = io_refill_valid & repl == 5'hD;
|
|
_GEN_15 = io_refill_valid & repl == 5'hE;
|
|
_GEN_16 = io_refill_valid & repl == 5'hF;
|
|
_GEN_17 = io_refill_valid & repl == 5'h10;
|
|
_GEN_18 = io_refill_valid & repl == 5'h11;
|
|
_GEN_19 = io_refill_valid & repl == 5'h12;
|
|
_GEN_20 = io_refill_valid & repl == 5'h13;
|
|
_GEN_21 = io_refill_valid & repl == 5'h14;
|
|
_GEN_22 = io_refill_valid & repl == 5'h15;
|
|
_GEN_23 = io_refill_valid & repl == 5'h16;
|
|
_GEN_24 = io_refill_valid & repl == 5'h17;
|
|
_GEN_25 = io_refill_valid & repl == 5'h18;
|
|
_GEN_26 = io_refill_valid & repl == 5'h19;
|
|
_GEN_27 = io_refill_valid & repl == 5'h1A;
|
|
_GEN_28 = io_refill_valid & repl == 5'h1B;
|
|
_GEN_29 = io_refill_valid & repl == 5'h1C;
|
|
_GEN_30 = io_refill_valid & repl == 5'h1D;
|
|
_GEN_31 = io_refill_valid & repl == 5'h1E;
|
|
_GEN_32 = io_refill_valid & (&repl);
|
|
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 <= _GEN_1 | valid_0;
|
|
valid_1 <= _GEN_2 | valid_1;
|
|
valid_2 <= _GEN_3 | valid_2;
|
|
valid_3 <= _GEN_4 | valid_3;
|
|
valid_4 <= _GEN_5 | valid_4;
|
|
valid_5 <= _GEN_6 | valid_5;
|
|
valid_6 <= _GEN_7 | valid_6;
|
|
valid_7 <= _GEN_8 | valid_7;
|
|
valid_8 <= _GEN_9 | valid_8;
|
|
valid_9 <= _GEN_10 | valid_9;
|
|
valid_10 <= _GEN_11 | valid_10;
|
|
valid_11 <= _GEN_12 | valid_11;
|
|
valid_12 <= _GEN_13 | valid_12;
|
|
valid_13 <= _GEN_14 | valid_13;
|
|
valid_14 <= _GEN_15 | valid_14;
|
|
valid_15 <= _GEN_16 | valid_15;
|
|
valid_16 <= _GEN_17 | valid_16;
|
|
valid_17 <= _GEN_18 | valid_17;
|
|
valid_18 <= _GEN_19 | valid_18;
|
|
valid_19 <= _GEN_20 | valid_19;
|
|
valid_20 <= _GEN_21 | valid_20;
|
|
valid_21 <= _GEN_22 | valid_21;
|
|
valid_22 <= _GEN_23 | valid_22;
|
|
valid_23 <= _GEN_24 | valid_23;
|
|
valid_24 <= _GEN_25 | valid_24;
|
|
valid_25 <= _GEN_26 | valid_25;
|
|
valid_26 <= _GEN_27 | valid_26;
|
|
valid_27 <= _GEN_28 | valid_27;
|
|
valid_28 <= _GEN_29 | valid_28;
|
|
valid_29 <= _GEN_30 | valid_29;
|
|
valid_30 <= _GEN_31 | valid_30;
|
|
valid_31 <= _GEN_32 | valid_31;
|
|
if (io_refill_valid)
|
|
repl <= repl + 5'h1;
|
|
end
|
|
if (_GEN_1) begin
|
|
vpn_0 <= io_refill_vpn;
|
|
ppn_0 <= io_refill_ppn;
|
|
flags_0 <= io_refill_flags;
|
|
end
|
|
if (_GEN_2) begin
|
|
vpn_1 <= io_refill_vpn;
|
|
ppn_1 <= io_refill_ppn;
|
|
flags_1 <= io_refill_flags;
|
|
end
|
|
if (_GEN_3) begin
|
|
vpn_2 <= io_refill_vpn;
|
|
ppn_2 <= io_refill_ppn;
|
|
flags_2 <= io_refill_flags;
|
|
end
|
|
if (_GEN_4) begin
|
|
vpn_3 <= io_refill_vpn;
|
|
ppn_3 <= io_refill_ppn;
|
|
flags_3 <= io_refill_flags;
|
|
end
|
|
if (_GEN_5) begin
|
|
vpn_4 <= io_refill_vpn;
|
|
ppn_4 <= io_refill_ppn;
|
|
flags_4 <= io_refill_flags;
|
|
end
|
|
if (_GEN_6) begin
|
|
vpn_5 <= io_refill_vpn;
|
|
ppn_5 <= io_refill_ppn;
|
|
flags_5 <= io_refill_flags;
|
|
end
|
|
if (_GEN_7) begin
|
|
vpn_6 <= io_refill_vpn;
|
|
ppn_6 <= io_refill_ppn;
|
|
flags_6 <= io_refill_flags;
|
|
end
|
|
if (_GEN_8) begin
|
|
vpn_7 <= io_refill_vpn;
|
|
ppn_7 <= io_refill_ppn;
|
|
flags_7 <= io_refill_flags;
|
|
end
|
|
if (_GEN_9) begin
|
|
vpn_8 <= io_refill_vpn;
|
|
ppn_8 <= io_refill_ppn;
|
|
flags_8 <= io_refill_flags;
|
|
end
|
|
if (_GEN_10) begin
|
|
vpn_9 <= io_refill_vpn;
|
|
ppn_9 <= io_refill_ppn;
|
|
flags_9 <= io_refill_flags;
|
|
end
|
|
if (_GEN_11) begin
|
|
vpn_10 <= io_refill_vpn;
|
|
ppn_10 <= io_refill_ppn;
|
|
flags_10 <= io_refill_flags;
|
|
end
|
|
if (_GEN_12) begin
|
|
vpn_11 <= io_refill_vpn;
|
|
ppn_11 <= io_refill_ppn;
|
|
flags_11 <= io_refill_flags;
|
|
end
|
|
if (_GEN_13) begin
|
|
vpn_12 <= io_refill_vpn;
|
|
ppn_12 <= io_refill_ppn;
|
|
flags_12 <= io_refill_flags;
|
|
end
|
|
if (_GEN_14) begin
|
|
vpn_13 <= io_refill_vpn;
|
|
ppn_13 <= io_refill_ppn;
|
|
flags_13 <= io_refill_flags;
|
|
end
|
|
if (_GEN_15) begin
|
|
vpn_14 <= io_refill_vpn;
|
|
ppn_14 <= io_refill_ppn;
|
|
flags_14 <= io_refill_flags;
|
|
end
|
|
if (_GEN_16) begin
|
|
vpn_15 <= io_refill_vpn;
|
|
ppn_15 <= io_refill_ppn;
|
|
flags_15 <= io_refill_flags;
|
|
end
|
|
if (_GEN_17) begin
|
|
vpn_16 <= io_refill_vpn;
|
|
ppn_16 <= io_refill_ppn;
|
|
flags_16 <= io_refill_flags;
|
|
end
|
|
if (_GEN_18) begin
|
|
vpn_17 <= io_refill_vpn;
|
|
ppn_17 <= io_refill_ppn;
|
|
flags_17 <= io_refill_flags;
|
|
end
|
|
if (_GEN_19) begin
|
|
vpn_18 <= io_refill_vpn;
|
|
ppn_18 <= io_refill_ppn;
|
|
flags_18 <= io_refill_flags;
|
|
end
|
|
if (_GEN_20) begin
|
|
vpn_19 <= io_refill_vpn;
|
|
ppn_19 <= io_refill_ppn;
|
|
flags_19 <= io_refill_flags;
|
|
end
|
|
if (_GEN_21) begin
|
|
vpn_20 <= io_refill_vpn;
|
|
ppn_20 <= io_refill_ppn;
|
|
flags_20 <= io_refill_flags;
|
|
end
|
|
if (_GEN_22) begin
|
|
vpn_21 <= io_refill_vpn;
|
|
ppn_21 <= io_refill_ppn;
|
|
flags_21 <= io_refill_flags;
|
|
end
|
|
if (_GEN_23) begin
|
|
vpn_22 <= io_refill_vpn;
|
|
ppn_22 <= io_refill_ppn;
|
|
flags_22 <= io_refill_flags;
|
|
end
|
|
if (_GEN_24) begin
|
|
vpn_23 <= io_refill_vpn;
|
|
ppn_23 <= io_refill_ppn;
|
|
flags_23 <= io_refill_flags;
|
|
end
|
|
if (_GEN_25) begin
|
|
vpn_24 <= io_refill_vpn;
|
|
ppn_24 <= io_refill_ppn;
|
|
flags_24 <= io_refill_flags;
|
|
end
|
|
if (_GEN_26) begin
|
|
vpn_25 <= io_refill_vpn;
|
|
ppn_25 <= io_refill_ppn;
|
|
flags_25 <= io_refill_flags;
|
|
end
|
|
if (_GEN_27) begin
|
|
vpn_26 <= io_refill_vpn;
|
|
ppn_26 <= io_refill_ppn;
|
|
flags_26 <= io_refill_flags;
|
|
end
|
|
if (_GEN_28) begin
|
|
vpn_27 <= io_refill_vpn;
|
|
ppn_27 <= io_refill_ppn;
|
|
flags_27 <= io_refill_flags;
|
|
end
|
|
if (_GEN_29) begin
|
|
vpn_28 <= io_refill_vpn;
|
|
ppn_28 <= io_refill_ppn;
|
|
flags_28 <= io_refill_flags;
|
|
end
|
|
if (_GEN_30) begin
|
|
vpn_29 <= io_refill_vpn;
|
|
ppn_29 <= io_refill_ppn;
|
|
flags_29 <= io_refill_flags;
|
|
end
|
|
if (_GEN_31) begin
|
|
vpn_30 <= io_refill_vpn;
|
|
ppn_30 <= io_refill_ppn;
|
|
flags_30 <= io_refill_flags;
|
|
end
|
|
if (_GEN_32) begin
|
|
vpn_31 <= io_refill_vpn;
|
|
ppn_31 <= io_refill_ppn;
|
|
flags_31 <= io_refill_flags;
|
|
end
|
|
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], io_req_vaddr[11:0]};
|
|
assign io_resp_pageFault = pageFault;
|
|
endmodule
|
|
|