Templates And Patterns : Augmenting High-Level Synthesis For Domain-Specific Computing