A HLS-Based Toolflow to Design Next-Generation Heterogeneous Many-Core Platforms with Shared Memory