Module overview
This module introduces some advanced programming, simulation and design modelling frameworks and tools. Teaching activities are a combination of taught sessions, expanded self-study supported by the Professional Skills Hub and practical hands-on sessions in computer laboratories. The tools and techniques studied in this module are also used in the companion design module in practical hands on applications.
Aims and Objectives
Learning Outcomes
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Address novel design challenges by choosing appropriate analysis and design methods.
- Demonstrate working knowledge of state-of-the-art commercial software tools for digital system design.
- Select an appropriate numerical approach for different simple mathematical problems.
- Model software systems before implementation.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Describe state machines of moderate complexity in SystemVerilog, simulate and synthesise into hardware.
- Develop CPLD and FPGA implementations of combinational and sequential digital systems.
- Effectively integrate reusable OO libraries.
- Analyse, enhance and debug existing OO programs.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Design testbenches to verify electronic design.
- Use simple numerical programs to solve physical problems
- Build and debug a digital circuit.
- Design, write and debug Object-Oriented programs
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The principles of Object-Oriented programming, including the concepts of inheritance, abstraction and polymorphism.
- Sequential digital system design for implementation in CPLDs and FPGAs.
- The use of programs for numerical solution of mathematical equations.
- The principles and application of Design for Test
Syllabus
Advanced Programming
- Introduction to Object Oriented Programming (C++)
- Encapsulation; Classes; Objects; Inheritance; Polymorphism
- Programming in C++: The software lifecycle; Source code control; Testing
- Use of OO modelling tools, including UML
- Exception Handling; Storage (Files & Databases); Dynamic memory allocation
- Introduction to data structures; Trees and Graphs; Stacks queues and linked lists; Searching and sorting
- Programming Skills; Use of high-level program development tools; Collaborative programming
Numerical Programming
- Introduction to numerical simulation
- Numerical solution of ODEs
- Numerical simulation of PDEs for field equations
Digital Electronic Systems
- Analysis and Design of Synchronous State Machines
- RTL synthesis of standard Combinational and Sequential Building Blocks
- Introduction to SystemVerilog assertion-based verification
- Software tools for CPLD and FPGA synthesis
- Implementation of Basic Microprocessor-Core Blocks:
- Registers, ALU, SRAM, IO ports, Instruction Decoder
- Synthesis of a simplified MIPS microprocessor on FPGA
- Design for Testability:
- Testing combinational and sequential digital systems
- Boundary Scan
- Build-in self-test
Learning and Teaching
Teaching and learning methods
The content of this module is delivered through lectures, module website, directed reading, pre-recorded materials and practical sessions.
Students work on their understanding through a combination of independent study, preparation for timetabled activities and tutorials.
Students work on their practical skills and professional skills through laboratory sessions and discussion tutorials.
Type | Hours |
---|---|
Preparation for scheduled sessions | 12 |
Wider reading or practice | 32 |
Follow-up work | 12 |
Tutorial | 12 |
Specialist Laboratory | 24 |
Lecture | 24 |
Completion of assessment task | 32 |
Total study time | 148 |
Resources & Reading list
General Resources
Laboratory space and equipment required. IC fabrication facilities
Software requirements. The student version of Orcad/PSpice and LTSpice
Online documents. Lecture notes and details of assignments and assessment schemes will be provided on line.
Textbooks
Spencer R R & Ghausi M S (2003). Introduction to Electronic Circuit Design. Prentice Hall.
Williams T (2005). The Circuit Designer's Companion. Newnes,.
Lidwell W, Holden K and Butler J (2010). Universal Principles of Design. Rockport Publishers Inc.
Sedra A S & Smith K C (2004). Microelectronic Circuits. OUP.
Assessment
Assessment strategy
This module is assessed entirely by a combination of coursework exercises, presentations and reports, along with demonstrations.
There is no referral opportunity for this module.
There is no external repeat opportunity for this module.
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Coursework | 100% |
Repeat Information
Repeat type: Internal