Laerte++: an Object Oriented High-Level TPG for SystemC Designs