🚀 Predicting the future — just another day in processor design! Wrapped up an exciting SystemVerilog project: a 2-way set-associative Branch Target Buffer (BTB) powering smarter RISC-V branch prediction. 💡 What it does: predicts branch directions, updates targets, and keeps the pipeline running smoothly — all thanks to a 2-bit dynamic predictor and an LRU replacement policy. 📌 Highlights: • Simulated and synthesised on Artix-7 FPGA • Verified branch hits, mispredictions, and target updates through waveform analysis • Optimised pipeline efficiency and resource usage Check out the waveform screenshot — you can see the BTB in action, predicting branches and updating targets in real time! 🔗 See the full project: https://lnkd.in/dDtpzXQ7 #FPGA #SystemVerilog #RISC_V #BranchPrediction #HardwareDesign #DigitalDesign #Vivado
Good work. You may have to run a dhrystone benchmark to analyse the performance + validate the branch prediction.
Congratulation great
This is insightful considering how branch related hazards are one of the main reasons for bottlenecks in modern processors. Just curious, how does the design manage conflicts or misses when they do occur?
A solid bench marking of how efficient the branch predictor design is by evaluating via bench mark programs like CoreMark. Waveform evaluation is easy to understand flow and underline concept but real world you will need heavy programs to evaluate performance. Great work.
Going through the posted project link. Cool work!
If the compiler can produce simplified math expressions for describing the data and control flow ahead of time, a branch predicting co-processor should be able to avoid most of the data and instruction cache misses.