This chapter introduces the basic principles and guidelines for network-on-chip design. After providing a well-grounded motivation for this new communication paradigm, the chapter goes into the details of the NoC building blocks, presenting their design principles and the trade-offs spanned by implementation variants. Readers will be given the opportunity to become familiar withthe theoretical notions by analyzing a few case studies from real-life NoC prototypes. Finally, the key issue of topology design will be addressed from the perspective of both general-purpose as well as application-specific systems