gsmecher / minimax

Minimax: a Compressed-First, Microcoded RISC-V CPU
BSD 3-Clause "New" or "Revised" License
204 stars 13 forks source link

Ram register redistribution #11

Closed gsmecher closed 1 year ago

gsmecher commented 1 year ago

This work greatly improves Fmax of the Minimax core. We go from timing closure at 50 MHz to 100 MHz (on an Arty A7). The resource cost is as follows:

LUT6s: 398 -> 507 FFs: 116 -> 191

The FFs are (to first order) "free" because they are paired with LUTs in a slice and their usage is subdominant. Moreover, FFs are the most important ingredient in improving Fmax here - increased usage is absolutely intended here.

The 25% LUT increase is not as obviously settled. Fmax in the older design was cripplingly low, and a 25% resource increase to solve the problem is an obvious win. However, I'm not sure we're done recouping these LUTs yet.