| /* Generated by Yosys 0.9+3743 (git sha1 UNKNOWN, clang 7.0.1-8+deb10u2 -fPIC -Os) */ |
| |
| module plru_1(clk, rst, acc, acc_en, lru); |
| wire _0_; |
| wire _1_; |
| wire _2_; |
| wire _3_; |
| input acc; |
| input acc_en; |
| input clk; |
| output lru; |
| input rst; |
| reg [1:0] tree; |
| assign _0_ = ~ acc; |
| assign _1_ = acc_en ? _0_ : tree[1]; |
| assign _2_ = rst ? 1'h0 : tree[0]; |
| assign _3_ = rst ? 1'h0 : _1_; |
| always @(posedge clk) |
| tree <= { _3_, _2_ }; |
| assign lru = tree[1]; |
| endmodule |
| |
| module cache_ram_4_64_1489f923c4dca729178b3e3233458550d8dddf29(clk, rd_en, rd_addr, wr_sel, wr_addr, wr_data, rd_data); |
| wire [127:0] _00_; |
| wire [7:0] _01_; |
| wire [127:0] _02_; |
| wire [7:0] _03_; |
| wire [127:0] _04_; |
| wire [7:0] _05_; |
| wire [127:0] _06_; |
| wire [7:0] _07_; |
| wire [127:0] _08_; |
| wire [7:0] _09_; |
| wire [127:0] _10_; |
| wire [7:0] _11_; |
| wire [127:0] _12_; |
| wire [7:0] _13_; |
| wire [127:0] _14_; |
| wire [7:0] _15_; |
| input clk; |
| input [3:0] rd_addr; |
| output [63:0] rd_data; |
| input rd_en; |
| input [3:0] wr_addr; |
| input [63:0] wr_data; |
| input [7:0] wr_sel; |
| reg [7:0] \$mem$\20409 [15:0]; |
| reg [7:0] \$mem$\20410 [15:0]; |
| reg [7:0] \$mem$\20411 [15:0]; |
| reg [7:0] \$mem$\20412 [15:0]; |
| reg [7:0] \$mem$\20413 [15:0]; |
| reg [7:0] \$mem$\20414 [15:0]; |
| reg [7:0] \$mem$\20415 [15:0]; |
| reg [7:0] \$mem$\20416 [15:0]; |
| (* ram_style = "block" *) |
| reg [7:0] \20409 [15:0]; |
| reg [7:0] _16_; |
| always @(posedge clk) begin |
| if (rd_en) _16_ <= \20409 [rd_addr]; |
| if (wr_sel[0]) \20409 [wr_addr] <= wr_data[7:0]; |
| end |
| assign _01_ = _16_; |
| (* ram_style = "block" *) |
| reg [7:0] \20410 [15:0]; |
| reg [7:0] _17_; |
| always @(posedge clk) begin |
| if (rd_en) _17_ <= \20410 [rd_addr]; |
| if (wr_sel[1]) \20410 [wr_addr] <= wr_data[15:8]; |
| end |
| assign _03_ = _17_; |
| (* ram_style = "block" *) |
| reg [7:0] \20411 [15:0]; |
| reg [7:0] _18_; |
| always @(posedge clk) begin |
| if (rd_en) _18_ <= \20411 [rd_addr]; |
| if (wr_sel[2]) \20411 [wr_addr] <= wr_data[23:16]; |
| end |
| assign _05_ = _18_; |
| (* ram_style = "block" *) |
| reg [7:0] \20412 [15:0]; |
| reg [7:0] _19_; |
| always @(posedge clk) begin |
| if (rd_en) _19_ <= \20412 [rd_addr]; |
| if (wr_sel[3]) \20412 [wr_addr] <= wr_data[31:24]; |
| end |
| assign _07_ = _19_; |
| (* ram_style = "block" *) |
| reg [7:0] \20413 [15:0]; |
| reg [7:0] _20_; |
| always @(posedge clk) begin |
| if (rd_en) _20_ <= \20413 [rd_addr]; |
| if (wr_sel[4]) \20413 [wr_addr] <= wr_data[39:32]; |
| end |
| assign _09_ = _20_; |
| (* ram_style = "block" *) |
| reg [7:0] \20414 [15:0]; |
| reg [7:0] _21_; |
| always @(posedge clk) begin |
| if (rd_en) _21_ <= \20414 [rd_addr]; |
| if (wr_sel[5]) \20414 [wr_addr] <= wr_data[47:40]; |
| end |
| assign _11_ = _21_; |
| (* ram_style = "block" *) |
| reg [7:0] \20415 [15:0]; |
| reg [7:0] _22_; |
| always @(posedge clk) begin |
| if (rd_en) _22_ <= \20415 [rd_addr]; |
| if (wr_sel[6]) \20415 [wr_addr] <= wr_data[55:48]; |
| end |
| assign _13_ = _22_; |
| (* ram_style = "block" *) |
| reg [7:0] \20416 [15:0]; |
| reg [7:0] _23_; |
| always @(posedge clk) begin |
| if (rd_en) _23_ <= \20416 [rd_addr]; |
| if (wr_sel[7]) \20416 [wr_addr] <= wr_data[63:56]; |
| end |
| assign _15_ = _23_; |
| assign rd_data = { _15_, _13_, _11_, _09_, _07_, _05_, _03_, _01_ }; |
| endmodule |
| |
| module icache( |
| `ifdef USE_POWER_PINS |
| vccd1, vssd1, |
| `endif |
| clk, rst, i_in, m_in, stall_in, flush_in, inval_in, wishbone_in, i_out, stall_out, wishbone_out); |
| `ifdef USE_POWER_PINS |
| inout vccd1; |
| inout vssd1; |
| `endif |
| |
| wire _000_; |
| wire _001_; |
| wire _002_; |
| wire _003_; |
| wire _004_; |
| wire _005_; |
| wire _006_; |
| wire _007_; |
| wire _008_; |
| wire _009_; |
| wire [1:0] _010_; |
| wire _011_; |
| wire [1:0] _012_; |
| wire _013_; |
| wire _014_; |
| wire _015_; |
| wire [1:0] _016_; |
| wire [1:0] _017_; |
| wire _018_; |
| wire _019_; |
| wire [1:0] _020_; |
| wire [1:0] _021_; |
| wire [3:0] _022_; |
| wire [3:0] _023_; |
| wire [3:0] _024_; |
| wire _025_; |
| wire _026_; |
| wire _027_; |
| wire _028_; |
| wire _029_; |
| wire _030_; |
| wire _031_; |
| wire _032_; |
| wire _033_; |
| wire _034_; |
| wire _035_; |
| wire _036_; |
| wire _037_; |
| wire _038_; |
| wire _039_; |
| wire _040_; |
| wire [2:0] _041_; |
| wire _042_; |
| wire _043_; |
| wire _044_; |
| wire _045_; |
| wire _046_; |
| wire _047_; |
| wire _048_; |
| wire _049_; |
| wire _050_; |
| wire _051_; |
| wire _052_; |
| wire _053_; |
| wire _054_; |
| wire [2:0] _055_; |
| wire _056_; |
| wire _057_; |
| wire _058_; |
| wire _059_; |
| wire _060_; |
| wire _061_; |
| wire _062_; |
| wire _063_; |
| wire _064_; |
| wire _065_; |
| wire _066_; |
| wire _067_; |
| wire _068_; |
| wire _069_; |
| wire _070_; |
| wire _071_; |
| wire _072_; |
| wire _073_; |
| wire _074_; |
| wire _075_; |
| wire _076_; |
| wire _077_; |
| wire _078_; |
| wire _079_; |
| wire _080_; |
| wire _081_; |
| wire [64:0] _082_; |
| reg [66:0] _083_; |
| wire [3:0] _084_; |
| wire _085_; |
| wire [2:0] _086_; |
| wire [33:0] _087_; |
| wire [1:0] _088_; |
| wire [58:0] _089_; |
| wire _090_; |
| wire _091_; |
| wire _092_; |
| wire _093_; |
| wire _094_; |
| wire _095_; |
| wire [199:0] _096_; |
| wire _097_; |
| wire _098_; |
| wire _099_; |
| wire [199:0] _100_; |
| wire [199:0] _101_; |
| wire [3:0] _102_; |
| wire [1:0] _103_; |
| wire _104_; |
| wire _105_; |
| wire _106_; |
| wire _107_; |
| wire _108_; |
| wire _109_; |
| wire _110_; |
| wire _111_; |
| wire [2:0] _112_; |
| wire [31:0] _113_; |
| wire _114_; |
| wire _115_; |
| wire [2:0] _116_; |
| wire _117_; |
| wire _118_; |
| wire _119_; |
| wire _120_; |
| wire _121_; |
| wire [3:0] _122_; |
| wire [1:0] _123_; |
| wire _124_; |
| wire [2:0] _125_; |
| wire _126_; |
| wire _127_; |
| wire _128_; |
| wire [3:0] _129_; |
| wire [7:0] _130_; |
| wire _131_; |
| wire _132_; |
| wire _133_; |
| wire [199:0] _134_; |
| wire [3:0] _135_; |
| wire [1:0] _136_; |
| wire [31:0] _137_; |
| wire _138_; |
| wire _139_; |
| wire _140_; |
| wire _141_; |
| wire [3:0] _142_; |
| wire [53:0] _143_; |
| wire _144_; |
| wire _145_; |
| wire _146_; |
| wire _147_; |
| wire _148_; |
| wire _149_; |
| wire _150_; |
| wire _151_; |
| wire [199:0] _152_; |
| wire [3:0] _153_; |
| wire [33:0] _154_; |
| wire [71:0] _155_; |
| wire [1:0] _156_; |
| wire _157_; |
| wire [67:0] _158_; |
| wire _159_; |
| wire _160_; |
| wire _161_; |
| wire _162_; |
| wire _163_; |
| wire _164_; |
| wire _165_; |
| wire _166_; |
| reg [177:0] _167_; |
| wire [255:0] _168_; |
| wire [63:0] _169_; |
| wire [199:0] _170_; |
| wire [49:0] _171_; |
| wire _172_; |
| wire _173_; |
| wire _174_; |
| wire _175_; |
| wire _176_; |
| wire _177_; |
| wire _178_; |
| wire _179_; |
| wire _180_; |
| wire _181_; |
| wire _182_; |
| wire _183_; |
| wire _184_; |
| wire _185_; |
| wire _186_; |
| wire _187_; |
| wire _188_; |
| wire _189_; |
| wire _190_; |
| wire _191_; |
| wire _192_; |
| wire _193_; |
| wire _194_; |
| wire _195_; |
| wire _196_; |
| wire [99:0] _197_; |
| wire _198_; |
| wire _199_; |
| wire _200_; |
| wire _201_; |
| wire [99:0] _202_; |
| wire _203_; |
| wire [63:0] _204_; |
| wire [31:0] _205_; |
| wire _206_; |
| wire _207_; |
| wire _208_; |
| wire _209_; |
| wire _210_; |
| wire _211_; |
| wire _212_; |
| wire _213_; |
| wire _214_; |
| wire _215_; |
| wire [99:0] _216_; |
| wire _217_; |
| wire [99:0] _218_; |
| wire [99:0] _219_; |
| wire [99:0] _220_; |
| wire _221_; |
| wire [99:0] _222_; |
| wire [99:0] _223_; |
| wire _224_; |
| wire _225_; |
| wire _226_; |
| wire _227_; |
| wire _228_; |
| wire _229_; |
| wire _230_; |
| wire _231_; |
| wire _232_; |
| wire _233_; |
| wire _234_; |
| wire _235_; |
| wire _236_; |
| wire _237_; |
| wire _238_; |
| wire _239_; |
| wire _240_; |
| wire _241_; |
| wire _242_; |
| wire _243_; |
| wire _244_; |
| wire _245_; |
| wire _246_; |
| wire _247_; |
| wire _248_; |
| wire _249_; |
| wire _250_; |
| wire _251_; |
| wire _252_; |
| wire _253_; |
| wire _254_; |
| wire _255_; |
| wire _256_; |
| wire _257_; |
| wire _258_; |
| wire _259_; |
| wire _260_; |
| wire _261_; |
| wire _262_; |
| wire _263_; |
| wire _264_; |
| wire _265_; |
| wire _266_; |
| wire access_ok; |
| reg [199:0] cache_tags; |
| reg [3:0] cache_valids; |
| input clk; |
| wire eaa_priv; |
| input flush_in; |
| input [69:0] i_in; |
| output [98:0] i_out; |
| input inval_in; |
| reg [3:0] itlb_valids; |
| input [130:0] m_in; |
| wire \maybe_plrus.plrus:0.plru_acc_en ; |
| wire \maybe_plrus.plrus:0.plru_out ; |
| wire \maybe_plrus.plrus:1.plru_acc_en ; |
| wire \maybe_plrus.plrus:1.plru_out ; |
| wire priv_fault; |
| wire ra_valid; |
| wire \rams:0.do_read ; |
| wire \rams:0.do_write ; |
| wire [63:0] \rams:0.dout ; |
| wire [63:0] \rams:0.wr_dat ; |
| wire \rams:1.do_read ; |
| wire \rams:1.do_write ; |
| wire [63:0] \rams:1.dout ; |
| wire [63:0] \rams:1.wr_dat ; |
| wire [55:0] real_addr; |
| wire replace_way; |
| wire req_hit_way; |
| wire req_is_hit; |
| wire req_is_miss; |
| input rst; |
| input stall_in; |
| output stall_out; |
| wire [1:0] tlb_req_index; |
| wire use_previous; |
| input [65:0] wishbone_in; |
| output [106:0] wishbone_out; |
| reg [63:0] \$mem$\8207 [3:0]; |
| reg [49:0] \$mem$\8210 [3:0]; |
| (* ram_style = "distributed" *) |
| reg [63:0] \8207 [3:0]; |
| always @(posedge clk) begin |
| if (_032_) \8207 [_017_] <= m_in[130:67]; |
| end |
| assign _169_ = \8207 [tlb_req_index]; |
| (* ram_style = "distributed" *) |
| reg [49:0] \8210 [3:0]; |
| always @(posedge clk) begin |
| if (_028_) \8210 [_017_] <= m_in[66:17]; |
| end |
| assign _171_ = \8210 [tlb_req_index]; |
| assign _257_ = _012_[0] ? itlb_valids[1] : itlb_valids[0]; |
| assign _258_ = _041_[0] ? _167_[170] : _167_[169]; |
| assign _259_ = _041_[0] ? _167_[174] : _167_[173]; |
| assign _260_ = _055_[0] ? _167_[170] : _167_[169]; |
| assign _261_ = _055_[0] ? _167_[174] : _167_[173]; |
| assign _262_ = _012_[0] ? itlb_valids[3] : itlb_valids[2]; |
| assign _263_ = _041_[0] ? _167_[172] : _167_[171]; |
| assign _264_ = _041_[0] ? _167_[176] : _167_[175]; |
| assign _265_ = _055_[0] ? _167_[172] : _167_[171]; |
| assign _266_ = _055_[0] ? _167_[176] : _167_[175]; |
| assign _172_ = _012_[1] ? _262_ : _257_; |
| assign _194_ = _041_[1] ? _263_ : _258_; |
| assign _195_ = _041_[1] ? _264_ : _259_; |
| assign _199_ = _055_[1] ? _265_ : _260_; |
| assign _200_ = _055_[1] ? _266_ : _261_; |
| assign _000_ = ~ _167_[164]; |
| assign \rams:0.wr_dat = _000_ ? wishbone_in[63:0] : { wishbone_in[39:32], wishbone_in[47:40], wishbone_in[55:48], wishbone_in[63:56], wishbone_in[7:0], wishbone_in[15:8], wishbone_in[23:16], wishbone_in[31:24] }; |
| assign _001_ = stall_in | use_previous; |
| assign \rams:0.do_read = ~ _001_; |
| assign _002_ = { 31'h00000000, replace_way } == 32'd0; |
| assign _003_ = wishbone_in[64] & _002_; |
| assign \rams:0.do_write = _003_ ? 1'h1 : 1'h0; |
| assign _004_ = ~ _167_[164]; |
| assign \rams:1.wr_dat = _004_ ? wishbone_in[63:0] : { wishbone_in[39:32], wishbone_in[47:40], wishbone_in[55:48], wishbone_in[63:56], wishbone_in[7:0], wishbone_in[15:8], wishbone_in[23:16], wishbone_in[31:24] }; |
| assign _005_ = stall_in | use_previous; |
| assign \rams:1.do_read = ~ _005_; |
| assign _006_ = { 31'h00000000, replace_way } == 32'd1; |
| assign _007_ = wishbone_in[64] & _006_; |
| assign \rams:1.do_write = _007_ ? 1'h1 : 1'h0; |
| assign _008_ = { 31'h00000000, _083_[7] } == 32'd0; |
| assign \maybe_plrus.plrus:0.plru_acc_en = _008_ ? _083_[66] : 1'h0; |
| assign _009_ = { 31'h00000000, _083_[7] } == 32'd1; |
| assign \maybe_plrus.plrus:1.plru_acc_en = _009_ ? _083_[66] : 1'h0; |
| assign _010_ = i_in[19:18] ^ i_in[21:20]; |
| assign tlb_req_index = _010_ ^ i_in[23:22]; |
| assign _011_ = _171_ == i_in[69:20]; |
| assign _012_ = 2'h3 - tlb_req_index; |
| assign _013_ = _011_ ? _172_ : 1'h0; |
| assign eaa_priv = i_in[1] ? _169_[3] : 1'h1; |
| assign real_addr = i_in[1] ? { _169_[55:12], i_in[17:6] } : i_in[61:6]; |
| assign ra_valid = i_in[1] ? _013_ : 1'h1; |
| assign _014_ = ~ i_in[2]; |
| assign priv_fault = eaa_priv & _014_; |
| assign _015_ = ~ priv_fault; |
| assign access_ok = ra_valid & _015_; |
| assign _016_ = m_in[16:15] ^ m_in[18:17]; |
| assign _017_ = _016_ ^ m_in[20:19]; |
| assign _018_ = m_in[1] & m_in[2]; |
| assign _019_ = rst | _018_; |
| assign _020_ = 2'h3 - _017_; |
| assign _021_ = 2'h3 - _017_; |
| assign _022_ = m_in[0] ? { _192_, _191_, _190_, _189_ } : itlb_valids; |
| assign _023_ = m_in[1] ? { _182_, _181_, _180_, _179_ } : _022_; |
| assign _024_ = _019_ ? 4'h0 : _023_; |
| always @(posedge clk) |
| itlb_valids <= _024_; |
| assign _025_ = ~ _019_; |
| assign _026_ = ~ m_in[1]; |
| assign _027_ = _025_ & _026_; |
| assign _028_ = _027_ & m_in[0]; |
| assign _029_ = ~ _019_; |
| assign _030_ = ~ m_in[1]; |
| assign _031_ = _029_ & _030_; |
| assign _032_ = _031_ & m_in[0]; |
| assign _033_ = i_in[8] != 1'h0; |
| assign _034_ = i_in[5] & _083_[66]; |
| assign use_previous = _033_ ? _034_ : 1'h0; |
| assign _035_ = 1'h1 - i_in[12]; |
| assign _036_ = _167_[1:0] == 2'h2; |
| assign _037_ = { 31'h00000000, i_in[12] } == { 31'h00000000, _167_[110] }; |
| assign _038_ = _036_ & _037_; |
| assign _039_ = 32'd0 == { 31'h00000000, _167_[109] }; |
| assign _040_ = _038_ & _039_; |
| assign _041_ = 3'h7 - i_in[11:9]; |
| assign _042_ = _040_ & _196_; |
| assign _043_ = _193_ | _042_; |
| assign _044_ = i_in[0] & _043_; |
| assign _045_ = 1'h1 - i_in[12]; |
| assign _046_ = _197_[49:0] == { i_in[3], real_addr[55:7] }; |
| assign _047_ = _046_ ? 1'h1 : 1'h0; |
| assign _048_ = _044_ ? _047_ : 1'h0; |
| assign _049_ = 1'h1 - i_in[12]; |
| assign _050_ = _167_[1:0] == 2'h2; |
| assign _051_ = { 31'h00000000, i_in[12] } == { 31'h00000000, _167_[110] }; |
| assign _052_ = _050_ & _051_; |
| assign _053_ = 32'd1 == { 31'h00000000, _167_[109] }; |
| assign _054_ = _052_ & _053_; |
| assign _055_ = 3'h7 - i_in[11:9]; |
| assign _056_ = _054_ & _201_; |
| assign _057_ = _198_ | _056_; |
| assign _058_ = i_in[0] & _057_; |
| assign _059_ = 1'h1 - i_in[12]; |
| assign _060_ = _202_[99:50] == { i_in[3], real_addr[55:7] }; |
| assign _061_ = _063_ ? 1'h1 : _048_; |
| assign _062_ = _060_ ? 1'h1 : 1'h0; |
| assign _063_ = _058_ & _060_; |
| assign req_hit_way = _058_ ? _062_ : 1'h0; |
| assign _064_ = i_in[0] & access_ok; |
| assign _065_ = ~ flush_in; |
| assign _066_ = _064_ & _065_; |
| assign _067_ = ~ rst; |
| assign _068_ = _066_ & _067_; |
| assign _069_ = ~ _061_; |
| assign req_is_hit = _068_ ? _061_ : 1'h0; |
| assign req_is_miss = _068_ ? _069_ : 1'h0; |
| assign _070_ = _167_[1:0] == 2'h1; |
| assign _071_ = 1'h1 - _167_[110]; |
| assign replace_way = _070_ ? _203_ : _167_[109]; |
| assign _072_ = 1'h1 - _083_[0]; |
| assign _073_ = _061_ & access_ok; |
| assign _074_ = ~ _073_; |
| assign _075_ = stall_in | use_previous; |
| assign _076_ = rst | flush_in; |
| assign _077_ = _076_ ? 1'h0 : _083_[66]; |
| assign _078_ = req_is_hit ? req_hit_way : _083_[0]; |
| assign _079_ = _075_ ? _083_[0] : _078_; |
| assign _080_ = _075_ ? _077_ : req_is_hit; |
| assign _081_ = ~ stall_in; |
| assign _082_ = _081_ ? { i_in[4], i_in[69:6] } : _083_[65:1]; |
| always @(posedge clk) |
| _083_ <= { _080_, _082_, _079_ }; |
| assign _084_ = inval_in ? 4'h0 : cache_valids; |
| assign _085_ = inval_in ? 1'h0 : _167_[165]; |
| assign _086_ = real_addr[5:3] - 3'h1; |
| assign _087_ = req_is_miss ? { real_addr[31:3], 5'h01 } : _167_[33:0]; |
| assign _088_ = req_is_miss ? 2'h3 : _167_[107:106]; |
| assign _089_ = req_is_miss ? { _086_, 1'h1, i_in[3], real_addr[55:3], i_in[12] } : { _167_[168:166], _085_, _167_[164:110] }; |
| assign _090_ = _167_[1:0] == 2'h0; |
| assign _091_ = _167_[1:0] == 2'h1; |
| assign _092_ = 1'h1 - i_in[12]; |
| assign _093_ = 32'd0 == { 31'h00000000, replace_way }; |
| assign _094_ = 1'h1 - _167_[110]; |
| assign _095_ = 1'h1 - _167_[110]; |
| assign _096_ = _093_ ? { _219_, _218_ } : cache_tags; |
| assign _097_ = 32'd1 == { 31'h00000000, replace_way }; |
| assign _098_ = 1'h1 - _167_[110]; |
| assign _099_ = 1'h1 - _167_[110]; |
| assign _100_ = _097_ ? { _223_, _222_ } : _096_; |
| assign _101_ = _091_ ? _100_ : cache_tags; |
| assign _102_ = _091_ ? { _215_, _214_, _213_, _212_ } : _084_; |
| assign _103_ = _091_ ? 2'h2 : _167_[1:0]; |
| assign _104_ = _091_ ? replace_way : _167_[109]; |
| assign _105_ = ~ _167_[107]; |
| assign _106_ = ~ wishbone_in[65]; |
| assign _107_ = ~ _105_; |
| assign _108_ = _106_ & _107_; |
| assign _109_ = _167_[7:5] == _167_[168:166]; |
| assign _110_ = _114_ ? 1'h0 : _167_[107]; |
| assign _111_ = _115_ ? 1'h1 : _105_; |
| assign _112_ = _167_[7:5] + 3'h1; |
| assign _113_ = _108_ ? { _167_[33:8], _112_, _167_[4:2] } : _167_[33:2]; |
| assign _114_ = _108_ & _109_; |
| assign _115_ = _108_ & _109_; |
| assign _116_ = 3'h7 - _167_[113:111]; |
| assign _117_ = _167_[113:111] == _167_[168:166]; |
| assign _118_ = _111_ & _117_; |
| assign _119_ = 1'h1 - _167_[110]; |
| assign _120_ = ~ inval_in; |
| assign _121_ = _167_[165] & _120_; |
| assign _122_ = _126_ ? { _256_, _255_, _254_, _253_ } : _102_; |
| assign _123_ = _127_ ? 2'h0 : _103_; |
| assign _124_ = _128_ ? 1'h0 : _167_[106]; |
| assign _125_ = _167_[113:111] + 3'h1; |
| assign _126_ = wishbone_in[64] & _118_; |
| assign _127_ = wishbone_in[64] & _118_; |
| assign _128_ = wishbone_in[64] & _118_; |
| assign _129_ = wishbone_in[64] ? { _167_[114], _125_ } : _167_[114:111]; |
| assign _130_ = wishbone_in[64] ? { _246_, _245_, _244_, _243_, _242_, _241_, _240_, _239_ } : _167_[176:169]; |
| assign _131_ = _167_[1:0] == 2'h1; |
| assign _132_ = _167_[1:0] == 2'h2; |
| assign _133_ = _131_ | _132_; |
| function [199:0] \8094 ; |
| input [199:0] a; |
| input [399:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8094 = b[199:0]; |
| 2'b1?: |
| \8094 = b[399:200]; |
| default: |
| \8094 = a; |
| endcase |
| endfunction |
| assign _134_ = \8094 (200'hxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, { _101_, cache_tags }, { _133_, _090_ }); |
| function [3:0] \8096 ; |
| input [3:0] a; |
| input [7:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8096 = b[3:0]; |
| 2'b1?: |
| \8096 = b[7:4]; |
| default: |
| \8096 = a; |
| endcase |
| endfunction |
| assign _135_ = \8096 (4'hx, { _122_, _084_ }, { _133_, _090_ }); |
| function [1:0] \8099 ; |
| input [1:0] a; |
| input [3:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8099 = b[1:0]; |
| 2'b1?: |
| \8099 = b[3:2]; |
| default: |
| \8099 = a; |
| endcase |
| endfunction |
| assign _136_ = \8099 (2'hx, { _123_, _087_[1:0] }, { _133_, _090_ }); |
| function [31:0] \8102 ; |
| input [31:0] a; |
| input [63:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8102 = b[31:0]; |
| 2'b1?: |
| \8102 = b[63:32]; |
| default: |
| \8102 = a; |
| endcase |
| endfunction |
| assign _137_ = \8102 (32'hxxxxxxxx, { _113_, _087_[33:2] }, { _133_, _090_ }); |
| function [0:0] \8105 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8105 = b[0:0]; |
| 2'b1?: |
| \8105 = b[1:1]; |
| default: |
| \8105 = a; |
| endcase |
| endfunction |
| assign _138_ = \8105 (1'hx, { _124_, _088_[0] }, { _133_, _090_ }); |
| function [0:0] \8108 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8108 = b[0:0]; |
| 2'b1?: |
| \8108 = b[1:1]; |
| default: |
| \8108 = a; |
| endcase |
| endfunction |
| assign _139_ = \8108 (1'hx, { _110_, _088_[1] }, { _133_, _090_ }); |
| function [0:0] \8111 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8111 = b[0:0]; |
| 2'b1?: |
| \8111 = b[1:1]; |
| default: |
| \8111 = a; |
| endcase |
| endfunction |
| assign _140_ = \8111 (1'hx, { _104_, _167_[109] }, { _133_, _090_ }); |
| function [0:0] \8115 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8115 = b[0:0]; |
| 2'b1?: |
| \8115 = b[1:1]; |
| default: |
| \8115 = a; |
| endcase |
| endfunction |
| assign _141_ = \8115 (1'hx, { _167_[110], _089_[0] }, { _133_, _090_ }); |
| function [3:0] \8118 ; |
| input [3:0] a; |
| input [7:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8118 = b[3:0]; |
| 2'b1?: |
| \8118 = b[7:4]; |
| default: |
| \8118 = a; |
| endcase |
| endfunction |
| assign _142_ = \8118 (4'hx, { _129_, _089_[4:1] }, { _133_, _090_ }); |
| function [53:0] \8124 ; |
| input [53:0] a; |
| input [107:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8124 = b[53:0]; |
| 2'b1?: |
| \8124 = b[107:54]; |
| default: |
| \8124 = a; |
| endcase |
| endfunction |
| assign _143_ = \8124 (54'hxxxxxxxxxxxxxx, { _167_[168:166], _085_, _167_[164:115], _089_[58:5] }, { _133_, _090_ }); |
| function [0:0] \8127 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8127 = b[0:0]; |
| 2'b1?: |
| \8127 = b[1:1]; |
| default: |
| \8127 = a; |
| endcase |
| endfunction |
| assign _144_ = \8127 (1'hx, { _130_[0], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8130 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8130 = b[0:0]; |
| 2'b1?: |
| \8130 = b[1:1]; |
| default: |
| \8130 = a; |
| endcase |
| endfunction |
| assign _145_ = \8130 (1'hx, { _130_[1], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8133 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8133 = b[0:0]; |
| 2'b1?: |
| \8133 = b[1:1]; |
| default: |
| \8133 = a; |
| endcase |
| endfunction |
| assign _146_ = \8133 (1'hx, { _130_[2], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8136 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8136 = b[0:0]; |
| 2'b1?: |
| \8136 = b[1:1]; |
| default: |
| \8136 = a; |
| endcase |
| endfunction |
| assign _147_ = \8136 (1'hx, { _130_[3], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8139 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8139 = b[0:0]; |
| 2'b1?: |
| \8139 = b[1:1]; |
| default: |
| \8139 = a; |
| endcase |
| endfunction |
| assign _148_ = \8139 (1'hx, { _130_[4], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8142 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8142 = b[0:0]; |
| 2'b1?: |
| \8142 = b[1:1]; |
| default: |
| \8142 = a; |
| endcase |
| endfunction |
| assign _149_ = \8142 (1'hx, { _130_[5], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8145 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8145 = b[0:0]; |
| 2'b1?: |
| \8145 = b[1:1]; |
| default: |
| \8145 = a; |
| endcase |
| endfunction |
| assign _150_ = \8145 (1'hx, { _130_[6], 1'h0 }, { _133_, _090_ }); |
| function [0:0] \8148 ; |
| input [0:0] a; |
| input [1:0] b; |
| input [1:0] s; |
| (* parallel_case *) |
| casez (s) |
| 2'b?1: |
| \8148 = b[0:0]; |
| 2'b1?: |
| \8148 = b[1:1]; |
| default: |
| \8148 = a; |
| endcase |
| endfunction |
| assign _151_ = \8148 (1'hx, { _130_[7], 1'h0 }, { _133_, _090_ }); |
| assign _152_ = rst ? cache_tags : _134_; |
| assign _153_ = rst ? 4'h0 : _135_; |
| assign _154_ = rst ? 34'h000000000 : { _137_, _136_ }; |
| assign _155_ = rst ? 72'hff0000000000000000 : _167_[105:34]; |
| assign _156_ = rst ? 2'h0 : { _139_, _138_ }; |
| assign _157_ = rst ? 1'h0 : _167_[108]; |
| assign _158_ = rst ? _167_[176:109] : { _151_, _150_, _149_, _148_, _147_, _146_, _145_, _144_, _143_, _142_, _141_, _140_ }; |
| assign _159_ = rst | flush_in; |
| assign _160_ = _159_ | m_in[0]; |
| assign _161_ = ~ access_ok; |
| assign _162_ = i_in[0] & _161_; |
| assign _163_ = ~ stall_in; |
| assign _164_ = _162_ & _163_; |
| assign _165_ = _164_ ? 1'h1 : _167_[177]; |
| assign _166_ = _160_ ? 1'h0 : _165_; |
| always @(posedge clk) |
| cache_tags <= _152_; |
| always @(posedge clk) |
| cache_valids <= _153_; |
| always @(posedge clk) |
| _167_ <= { _166_, _158_, _157_, _156_, _155_, _154_ }; |
| assign _173_ = ~ _020_[1]; |
| assign _174_ = ~ _020_[0]; |
| assign _175_ = _173_ & _174_; |
| assign _176_ = _173_ & _020_[0]; |
| assign _177_ = _020_[1] & _174_; |
| assign _178_ = _020_[1] & _020_[0]; |
| assign _179_ = _175_ ? 1'h0 : itlb_valids[0]; |
| assign _180_ = _176_ ? 1'h0 : itlb_valids[1]; |
| assign _181_ = _177_ ? 1'h0 : itlb_valids[2]; |
| assign _182_ = _178_ ? 1'h0 : itlb_valids[3]; |
| assign _183_ = ~ _021_[1]; |
| assign _184_ = ~ _021_[0]; |
| assign _185_ = _183_ & _184_; |
| assign _186_ = _183_ & _021_[0]; |
| assign _187_ = _021_[1] & _184_; |
| assign _188_ = _021_[1] & _021_[0]; |
| assign _189_ = _185_ ? 1'h1 : itlb_valids[0]; |
| assign _190_ = _186_ ? 1'h1 : itlb_valids[1]; |
| assign _191_ = _187_ ? 1'h1 : itlb_valids[2]; |
| assign _192_ = _188_ ? 1'h1 : itlb_valids[3]; |
| assign _193_ = _035_ ? cache_valids[2] : cache_valids[0]; |
| assign _196_ = _041_[2] ? _195_ : _194_; |
| assign _197_ = _045_ ? cache_tags[199:100] : cache_tags[99:0]; |
| assign _198_ = _049_ ? cache_valids[3] : cache_valids[1]; |
| assign _201_ = _055_[2] ? _200_ : _199_; |
| assign _202_ = _059_ ? cache_tags[199:100] : cache_tags[99:0]; |
| assign _203_ = _071_ ? \maybe_plrus.plrus:0.plru_out : \maybe_plrus.plrus:1.plru_out ; |
| assign _204_ = _072_ ? \rams:0.dout : \rams:1.dout ; |
| assign _205_ = _083_[3] ? _204_[63:32] : _204_[31:0]; |
| assign _206_ = ~ _092_; |
| assign _207_ = ~ replace_way; |
| assign _208_ = _206_ & _207_; |
| assign _209_ = _206_ & replace_way; |
| assign _210_ = _092_ & _207_; |
| assign _211_ = _092_ & replace_way; |
| assign _212_ = _208_ ? 1'h0 : _084_[0]; |
| assign _213_ = _209_ ? 1'h0 : _084_[1]; |
| assign _214_ = _210_ ? 1'h0 : _084_[2]; |
| assign _215_ = _211_ ? 1'h0 : _084_[3]; |
| assign _216_ = _094_ ? cache_tags[199:100] : cache_tags[99:0]; |
| assign _217_ = ~ _095_; |
| assign _218_ = _217_ ? { _216_[99:50], _167_[164:115] } : cache_tags[99:0]; |
| assign _219_ = _095_ ? { _216_[99:50], _167_[164:115] } : cache_tags[199:100]; |
| assign _220_ = _098_ ? cache_tags[199:100] : cache_tags[99:0]; |
| assign _221_ = ~ _099_; |
| assign _222_ = _221_ ? { _167_[164:115], _220_[49:0] } : _096_[99:0]; |
| assign _223_ = _099_ ? { _167_[164:115], _220_[49:0] } : _096_[199:100]; |
| assign _224_ = ~ _116_[2]; |
| assign _225_ = ~ _116_[1]; |
| assign _226_ = _224_ & _225_; |
| assign _227_ = _224_ & _116_[1]; |
| assign _228_ = _116_[2] & _225_; |
| assign _229_ = _116_[2] & _116_[1]; |
| assign _230_ = ~ _116_[0]; |
| assign _231_ = _226_ & _230_; |
| assign _232_ = _226_ & _116_[0]; |
| assign _233_ = _227_ & _230_; |
| assign _234_ = _227_ & _116_[0]; |
| assign _235_ = _228_ & _230_; |
| assign _236_ = _228_ & _116_[0]; |
| assign _237_ = _229_ & _230_; |
| assign _238_ = _229_ & _116_[0]; |
| assign _239_ = _231_ ? 1'h1 : _167_[169]; |
| assign _240_ = _232_ ? 1'h1 : _167_[170]; |
| assign _241_ = _233_ ? 1'h1 : _167_[171]; |
| assign _242_ = _234_ ? 1'h1 : _167_[172]; |
| assign _243_ = _235_ ? 1'h1 : _167_[173]; |
| assign _244_ = _236_ ? 1'h1 : _167_[174]; |
| assign _245_ = _237_ ? 1'h1 : _167_[175]; |
| assign _246_ = _238_ ? 1'h1 : _167_[176]; |
| assign _247_ = ~ _119_; |
| assign _248_ = ~ replace_way; |
| assign _249_ = _247_ & _248_; |
| assign _250_ = _247_ & replace_way; |
| assign _251_ = _119_ & _248_; |
| assign _252_ = _119_ & replace_way; |
| assign _253_ = _249_ ? _121_ : _102_[0]; |
| assign _254_ = _250_ ? _121_ : _102_[1]; |
| assign _255_ = _251_ ? _121_ : _102_[2]; |
| assign _256_ = _252_ ? _121_ : _102_[3]; |
| plru_1 \maybe_plrus.plrus:0.plru ( |
| .acc(_083_[0]), |
| .acc_en(\maybe_plrus.plrus:0.plru_acc_en ), |
| .clk(clk), |
| .lru(\maybe_plrus.plrus:0.plru_out ), |
| .rst(rst) |
| ); |
| plru_1 \maybe_plrus.plrus:1.plru ( |
| .acc(_083_[0]), |
| .acc_en(\maybe_plrus.plrus:1.plru_acc_en ), |
| .clk(clk), |
| .lru(\maybe_plrus.plrus:1.plru_out ), |
| .rst(rst) |
| ); |
| cache_ram_4_64_1489f923c4dca729178b3e3233458550d8dddf29 \rams:0.way ( |
| .clk(clk), |
| .rd_addr(i_in[12:9]), |
| .rd_data(\rams:0.dout ), |
| .rd_en(\rams:0.do_read ), |
| .wr_addr(_167_[114:111]), |
| .wr_data(\rams:0.wr_dat ), |
| .wr_sel({ \rams:0.do_write , \rams:0.do_write , \rams:0.do_write , \rams:0.do_write , \rams:0.do_write , \rams:0.do_write , \rams:0.do_write , \rams:0.do_write }) |
| ); |
| cache_ram_4_64_1489f923c4dca729178b3e3233458550d8dddf29 \rams:1.way ( |
| .clk(clk), |
| .rd_addr(i_in[12:9]), |
| .rd_data(\rams:1.dout ), |
| .rd_en(\rams:1.do_read ), |
| .wr_addr(_167_[114:111]), |
| .wr_data(\rams:1.wr_dat ), |
| .wr_sel({ \rams:1.do_write , \rams:1.do_write , \rams:1.do_write , \rams:1.do_write , \rams:1.do_write , \rams:1.do_write , \rams:1.do_write , \rams:1.do_write }) |
| ); |
| assign i_out = { _205_, _083_[64:1], _167_[177], _083_[65], _083_[66] }; |
| assign stall_out = _074_; |
| assign wishbone_out = _167_[108:2]; |
| endmodule |