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 Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Develop CPLD and FPGA implementations of combinational and sequential digital systems.
- Analyse, enhance and debug existing OO programs.
- Effectively integrate reusable OO libraries.
- Describe state machines of moderate complexity in SystemVerilog, simulate and synthesise into hardware.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Design testbenches to verify electronic design.
- Design, write and debug Object-Oriented programs
- Build and debug a digital circuit.
- Use simple numerical programs to solve physical problems
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The use of programs for numerical solution of mathematical equations.
- 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 principles and application of Design for Test
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Demonstrate working knowledge of state-of-the-art commercial software tools for digital system design.
- Address novel design challenges by choosing appropriate analysis and design methods.
- Select an appropriate numerical approach for different simple mathematical problems.
- Model software systems before implementation.
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 |
---|---|
Follow-up work | 12 |
Lecture | 24 |
Wider reading or practice | 32 |
Completion of assessment task | 32 |
Preparation for scheduled sessions | 12 |
Specialist Laboratory | 24 |
Tutorial | 12 |
Total study time | 148 |
Resources & Reading list
General Resources
Online documents. Lecture notes and details of assignments and assessment schemes will be provided on line.
Software requirements. The student version of Orcad/PSpice and LTSpice
Laboratory space and equipment required. IC fabrication facilities
Textbooks
Williams T (2005). The Circuit Designer's Companion. Newnes,.
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.
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