Combining High-Level-Synthesis and Register-Transfer Level Design for Programmable Hardware