diff --git a/src/cache_subsystem/lru_4way.sv b/src/cache_subsystem/lru_4way.sv index abfd4a45c7771493add368fcc20a65b6a3feb09d..2a3235ca8783759106ebdb398d1c81d23c2840c9 100644 --- a/src/cache_subsystem/lru_4way.sv +++ b/src/cache_subsystem/lru_4way.sv @@ -47,15 +47,13 @@ module lru_4way ( // assign ways[3] = (ages_i[4]) ? ordered_ways[2] : ordered_ways[3]; assign evicted_o = ways[3]; + assign updated_o = miss_i || (ways[0] != hit_i) || (ways[1] != ages_i[3:2]); always_comb begin : encode ages_o = ages_i; new_ways = ways[2:0]; - updated_o = 1'b0; if (miss_i || ways[0] != hit_i) begin - updated_o = 1'b1; - if (miss_i || ways[1] != hit_i) begin new_ways[0] = (miss_i) ? ways[3] : hit_i; new_ways[1] = ways[0]; @@ -64,8 +62,6 @@ module lru_4way ( new_ways[0] = ways[1]; new_ways[1] = ways[0]; end - end else if (ways[1] != ages_i[3:2]) begin - updated_o = 1'b1; end new_ways_ordered[0] = (new_ways[0] < new_ways[1]) ? new_ways[0] : new_ways[1];