Hardware Programming with C