Design and Verification Techniques for TLM-based Design Flows