FabScalar: composing synthesizable RTL designs of arbitrary cores within a canonical superscalar template