When training is valid, increment for a taken outcome and decrement for not-taken. Saturate at 11 and 00. Asynchronous reset loads weakly not-taken state 01.
RTL Design Patterns/Branch Prediction
CS450 Two-Bit Saturating Counter
mediumbranch-predictioncountersaturating