
University of York · EMBS
Embedded Systems Design and Implementation¶
A companion to the EMBS module. Explore the principles of embedded systems, the trade-offs between hardware and software, and the algorithms that bring them together.
0. Getting started¶
- Module overview — Aims, learning outcomes, and module structure
- Lecture guide — Reading and worked examples for lectures 0–18
- How to use this book — Navigation and conventions
1. Embedded systems design¶
- Introduction — Characteristics, design metrics, and the design process
- FPGA design and implementation — Configurable hardware, design tools, and processor integration
2. Specification¶
- Introduction — Requirements and models of computation
- Ptolemy II — Actors, directors, hierarchy, and execution
- Models of computation — Continuous time, discrete events, and dataflow
- KPN and synchronous dataflow — Determinism, balance equations, schedules, and buffers
3. Hardware/software co-design¶
- Introduction — Principles and the design process
- Design space exploration — Trade-offs and Pareto analysis
- Partitioning — Dividing work between hardware and software
- Mapping — Assigning tasks to computing resources
4. Embedded software and RTOS¶
- Embedded software design — Compilation, execution-time bounds, and processor customisation
- Introduction — Tasks, scheduling, and kernel services
- FreeRTOS — Task states, communication, interrupts, and memory
5. Real-time scheduling¶
- Introduction — Task models, scheduling policies, and schedulability tests
- Fixed-priority scheduling — RM, DM, response-time analysis, and priority assignment
- EDF and processor demand — Demand bounds, PDA, and QPA with a worked example
6. Resource sharing, multicore, and mixed criticality¶
- Introduction — Extending the independent task model
- Resource sharing — Priority inheritance, ceilings, and blocking bounds
- Multicore scheduling — Global, partitioned, and semi-partitioned execution
- Mixed-criticality systems — Execution budgets, mode changes, and timing guarantees
Interactive tutorials¶
- Overheat monitor, three MoCs — Run one system under continuous-time, discrete-event and dataflow semantics
- Kernighan–Lin algorithm — Move nodes and step through graph partitioning
- Diffusion load balancing — Watch load flow between neighbouring nodes until it evens out
- PDA vs QPA — Compare two exact EDF schedulability tests on random task sets
Practical work and resources¶
Follow the practical exercises alongside your reading.