FLECSim-SoC: A Flexible End-to-End Co-Design Simulation Framework for System on Chips