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
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Design, write and debug Object-Oriented programs
- Use simple numerical programs to solve physical problems
- Build and debug a digital circuit.
- Design testbenches to verify electronic design.
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Select an appropriate numerical approach for different simple mathematical problems.
- 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.
- Model software systems before implementation.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Analyse, enhance and debug existing OO programs.
- Develop CPLD and FPGA implementations of combinational and sequential digital systems.
- Describe state machines of moderate complexity in SystemVerilog, simulate and synthesise into hardware.
- Effectively integrate reusable OO libraries.
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Sequential digital system design for implementation in CPLDs and FPGAs.
- The principles of Object-Oriented programming, including the concepts of inheritance, abstraction and polymorphism.
- The principles and application of Design for Test
- The use of programs for numerical solution of mathematical equations.
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 |
---|---|
Wider reading or practice | 32 |
Preparation for scheduled sessions | 12 |
Follow-up work | 12 |
Lecture | 24 |
Completion of assessment task | 32 |
Specialist Laboratory | 24 |
Tutorial | 12 |
Total study time | 148 |
Resources & Reading list
General Resources
Software requirements. The student version of Orcad/PSpice and LTSpice
Laboratory space and equipment required. IC fabrication facilities
Online documents. Lecture notes and details of assignments and assessment schemes will be provided on line.
Textbooks
Williams T (2005). The Circuit Designer's Companion. Newnes,.
Sedra A S & Smith K C (2004). Microelectronic Circuits. OUP.
Spencer R R & Ghausi M S (2003). Introduction to Electronic Circuit Design. Prentice Hall.
Lidwell W, Holden K and Butler J (2010). Universal Principles of Design. Rockport Publishers Inc.
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