A Practical Introduction to Hardware/Software Codesign
Springer Science & Business Media, Nov 27, 2012 - Technology & Engineering - 482 pages
This textbook serves as an introduction to the subject of embedded systems design, with emphasis on integration of custom hardware components with software. The key problem addressed in the book is the following: how can an embedded systems designer strike a balance between flexibility and efficiency? The book describes how combining hardware design with software design leads to a solution to this important computer engineering problem. The book covers four topics in hardware/software codesign: fundamentals, the design space of custom architectures, the hardware/software interface and application examples. The book comes with an associated design environment that helps the reader to perform experiments in hardware/software codesign. Each chapter also includes exercises and further reading suggestions.
Improvements in this second edition include labs and examples using modern FPGA environments from Xilinx and Altera, which will make the material in this book applicable to a greater number of courses where these tools are already in use. More examples and exercises have been added throughout the book.
“If I were teaching a course on this subject, I would use this as a resource and text. If I were a student who wanted to learn codesign, I would look for a course that at least used a similar approach. If I were an engineer or engineering manager who wanted to learn more about codesign from a very practical perspective, I would read this book first before any other. When I first started learning about codesign as a practitioner, a book like this would have been the perfect introduction.”
--Grant Martin, Tensilica--
What people are saying - Write a review
Other editions - View all
0xFF actor algorithm architecture ASIP assembly code bits bus master bus slave byte cache clock cycle clock edge command compiler components computation coprocessor CORDIC cosimulation CSAR custom hardware module custom-instruction data edges data flow graph datapath decode define discussed encoding encryption endianness example execution FIFO finite state machine FPGA FSMD function GEZEL handshake hardware and software hardware design hardware implementation hardware interface hardware/software codesign hardware/software interface input instruction instruction-set ipblock ipparm iptype iteration key schedule keystream latency Listing loop machine memory memory-mapped interface memory-mapped register micro-instruction micro-programmed Microblaze microcontroller microprocessor n_next node on-chip bus operands operations optimization output parallel pipeline platform port Problem processor processor registers queue result RISC schedule SDF graph sequential signals simulation single Springer Science+Business Media stream cipher synchronization tokens Trivium unsigned variable write