diff --git a/btb.sv b/btb.sv index bde19d64c..0b6511831 100644 --- a/btb.sv +++ b/btb.sv @@ -19,7 +19,7 @@ import ariane_pkg::*; module btb #( - parameter int NR_ENTRIES = 32, + parameter int NR_ENTRIES = 64, parameter int BITS_SATURATION_COUNTER = 2 ) ( @@ -62,6 +62,7 @@ module btb #( saturation_counter = btb_q[$unsigned(update_pc)].saturation_counter; if (misspredict_i.valid) begin + btb_n[$unsigned(update_pc)].valid = 1'b1; // update saturation counter // first check if counter is already saturated in the positive regime e.g.: branch taken if (saturation_counter == {BITS_SATURATION_COUNTER{1'b1}} && ~misspredict_i.is_taken) begin diff --git a/docs/synthesis.md b/docs/synthesis.md index ea7b03200..fae24a9da 100644 --- a/docs/synthesis.md +++ b/docs/synthesis.md @@ -21,3 +21,16 @@ Synthesized @ 0.4 ns, worst case, UMC65: | Buffer | 582 | | **Total** | **9019 (~6.4 kGE)** | +## BTB + +Synthesized @ 1.1 ns, worst case, UMC65 + +| **Type** | **64 entries** | **32 entries** | +|---------------|---------------------|---------------------| +| Sequential | 4288 | 2113 | +| Combinatorial | 7901 | 5923 | +| Buffer | 342 | 2276 | +| **Total** | **55490 (~39 kGE)** | **29327 (~20 kGE)** | + + +