1.1. Motivation1.2. Heterogeneous Models1.3. Separation of Computation and Communication1.4. Systems and Models1.4.1. System PropertiesState-less and State-full SystemsTime-Varying and Time-Invariant SystemsSystem StateLinear and Nonlinear SystemsDeterministic, Stochastic, and Nondeterministic SystemsEventsTime-Driven and Event-Driven Systems1.4.2. System Classification Summary1.5. The Rugby Metamodel1.5.1. Domain, Hierarchy, and AbstractionHierarchyAbstractionDomain1.6. Domains1.6.1. ComputationTransistor and Logic Gate LevelThe Instruction Set LevelThe algorithmic levelSystem Functions and Relations1.6.2. Data1.6.3. Time1.6.4. Communication1.7. Notation1.8. Design Methods and Methodology1.8.1. Design phases1.8.2. Design and Synthesis1.8.3. Analysis1.9. Case Study: A Design Project1.9.1. Requirements Definitions1.9.2. System Model1.9.3. Software: The C Model1.9.4. Software: The Assembler Model1.9.5. Hardware: The VHDL Model1.9.6. Hardware: Synthesized Netlist1.9.7. Discussion1.10. Further Reading1.11. Exercises