University of Surrey - Guildford
Registry
  
 

  
 
Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: EEE2025 Module Title: ELECTRONIC V
Module Provider: Electronic Engineering Short Name: EEE2025
Level: HE2 Module Co-ordinator: VLADIMIROVA T Dr (Elec Eng)
Number of credits: 20 Number of ECTS credits: 10
 
Module Availability
Autumn and Spring Semesters
Assessment Pattern
Unit(s) of Assessment
Weighting Towards Module Mark( %)
2 hour closed book examination
85%
Assignments
15%
Module Overview
This first part of the module is concerned with digital engineering hardware. It consists of two sections namely Digital Integrated Circuits and Microprocessors.
The second part of the module is concerned with the analysis, design and implementation of computer algorithms. It presents concepts and methods for the analysis of algorithms. Classic programming techniques and data-structures needed to develop efficient algorithms in C for solving logical, numerical and data-handling problems are covered. The software development lifecycle is introduced and the various methodologies described. Techniques for the design of large and complex software are introduced through the use of UML.
Prerequisites/Co-requisites
An adequate grasp of Electronics I, II, III & level 1 Programming
Module Aims
To describe the basic structure and operation common of MOSFET and CMOS based electronic devices including combinational logic and memory systems.
To present the basic and most fundamental concepts of computer organization and design in contemporary microprocessors.
To present analysis, design and program algorithms for the solution of logical, numerical and data-handling problems with an understanding of the implications of algorithm design, data representation and problem data-size for efficiency and correctness of solution. To introduce students to the analyse and design of complex software systems.
Learning Outcomes
By the end of this module, students should be able to:
  1. describe the basic structure and operation of common MOSFET and CMOS based electronic devices;
  2. describe the properties associated with a digital inverter and be able further design an inverter with known properties and
  3. design combinational and sequential logic circuits with known properties.
  4. describe the structure and operation of CMOS based memory systems such as SRAM, DRAM and ROM based systems such as Flash.
  5. understand the basic concepts of microprocessor organisation and design,
  6. describe microprocessor operations and functionalities, and solve simple microprocessor design problems.
  7. be able to create analysis and design models of a large software system using UML
  8. be able to analyse and characterise the performance of algorithms, especially with regard to computational efficiency and numerical accuracy
  9. be able to appropriately select, and justify the selection of, data structures and algorithms for some problems and demonstrate this through the coursework exercise
  10. understand and illustrate the concept of abstract data type
  11. be familiar with common algorithms for data handling and some numerical analysis and explain their operation
Module Content

Digital Integrated Circuits: 10 Hours

 

[1]     Introduction to digital integrated circuits:

 

[2]     MOS transistor: Structure and operation, output and transfer characteristics, n- channel vs. p-channel transistors, enhancement vs. depletion mode, channel length modulation.

 

[3]    CMOS inverter I: structure and operation regimes of the NMOS and PMOS transistors and their relation to the voltage transfer characteristic of the inverter, transistor matching and designing the VTC.

 

[4]    CMOS inverter II: Dynamic operation of the inverter, source of capacitance, optimising the charging and discharging current to design the propagation delay.

 

[5]     CMOS Combinational logic: Transmission gate and CMOS Schmitt trigger, transistor rules for pull up and pull down networks.

 

[6]     Alternatives to CMOS logic: ratioed and ratioless design, pseudo-NMOS and dynamic logic CMOS. Comparison with conventional static CMOS.

 

[7]      Sequential CMOS logic: CMOS implementation of flip-flop and counters.

 

[8]     CMOS based memory: Static random access memory (SRAM) and Dynamic RAM memory cell.

 

[9]    MOSFET based memory: Programmable Read Only Memory (PROM), Erasable PROM (EPROM), Electrically Erasable (E2PROM) and Flash memories.

 

[10]   Introduction to ASIC: Types of ASIC, field vs. mask programmable, delay time scaling and capacitance.

 

 

Microprocessor Organisation and Design: 10 Hours

 

[1]   Introduction. Computer abstractions and technology. The changing face of computing.      Embedded microprocessors. Instructions: language of the computer.

 

[2-3] MIPS Instruction Set Architecture. Arithmetic instructions. Load and store instructions. Instruction formats. Decision making instructions.

 

[4]   Assessing and understanding microprocessors performance. Definition of performance. Performance metrics. Benchmarks. Examples.

 

[5]       Building a 32-bit arithmetic logic unit for the MIPS architecture.

 

[6-7]  Simplified implementation of the MIPS datapath. Single-cycle datapath implementation. Multi-cycle approach. Control signals. Control unit implementation. Examples.

 

[8]  Enhancing CPU performance with pipelining. Pipelined datapath. Pipeline control.     Dependencies. Forwarding. Stalling. Branch hazards.

 

[9-10] Exploring memory hierarchy. Direct mapped cache. Memory organization. Decreasing miss ratio with associativity. Example implementation: 4-way associative cache. Virtual memory. Making address translation fast. Modern microprocessors systems. Examples.

 

 

Algorithmic Programming & Software Design: 20 Hours

 

[1]   Software development lifecycle: stages; methodologies.

 

[2]  Introduction to traditional analysis and design: process modelling with DFDs, data modelling with ERDs; introduction to Object Oriented  concepts: classes, methods, encapsulation, inheritance, polymorphism; introduction to UML

 

[3-5]   OO Analysis and Design: Functional modelling: use cases; Structural modelling: CRC cards, class diagrams, object diagrams; Behaviour modelling:  sequence diagrams, behavioural state machine diagrams.

 

[6-7]  Analysis of algorithms: characterisation of problem data-size and program running time; big-O notation; recurrence relations; asymptotic behaviour; typical running times.

 

[8-9]  Recursion:  problem decomposition; base cases; implementation examples; run-time tracing; program efficiency issues: iteration versus recursion.

 

[10-13] Data structures: revision of simple data-types and pointers; abstract data-types: implementation and use of singly linked lists, doubly linked lists, stacks, queues, trees, binary trees binary search trees;

 

[14-15] Searching: directed and controlled scanning and implications of data ordering; hashing: hash functions and collision handling

 

[16-18] Sorting: elementary sort algorithms: selection, insertion, bubble; implications of initial ordering of data; quick sort; merge sort; priority queues, binary heaps and heap sort. Use of pattern design for sort algorithms.

 

[19-20] Numerical algorithms: implementation of algorithms to solve numerical problems (to be briefly introduced for a lab exercise).

Methods of Teaching/Learning
Lectures, laboratories classes and private study. Lecture notes will be provided.
Selected Texts/Journals
J. M. Rabaey, Digital Integrated Circuits – A Design Perspective, 2nd Edition, Prentice Hall 2002 (ISBN 0131207644), £31.99
A. S. Sedra and K. C. Smith, Microelectronic Circuits, 4th Edition, (ISBN 0195116909) Oxford 1998.
D. Patterson and J. Hennessy. Computer Organisation and Design. The Hardware/Software Interface, 3rd edition, Morgan Kaufmann, 2004 (ISBN: 1558606041).
Dennis A. et al, Systems Analysis and Design with UML 2.0
Weiss, M.A., Data Structures and Algorithm Analysis in C
Sedgewick, R., Algorithms in C
Press, W.H. et al, Numerical Recipes in C
Last Updated

12 August 2010