Text this: Multicore hardware-software design and verification techniques