Teaching pipelining and concurrency using hardware description languages | IEEE Conference Publication | IEEE Xplore