Information in the Degree Programme Tables may still be subject to change in response to Covid-19

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Computer Design (INFR09046)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 9 (Year 3 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThis course provides an introduction to the fundamental concepts of the different ways computers can be analysed and designed. The course does not look at the differences between machines with different types of instruction set, nor does it cover design techniques for extracting maximum performance from computers - these aspects of computer hardware are covered in the Computer Architecture course. The issues and techniques covered in the Computer Design course are relevant to the design of all computers, regardless of their particular architecture.

The course is partitioned into three sections. The short first section revises the design of combinational and sequential logic. The second section demonstrates how to analyse and design systems of the complexity of a simple CPU or I/O controller. The third section of the course covers the design of a complete computer capable of executing assembly code programs and different control strategies for performing I/O.
Course description Logic Design Revision Simple combinational logic design to state machines for sequential circuits.

Processor Design Data path and control. Fixed program controllers: example and design procedure. Instruction set processors: data path design, simple control, microprogrammed control. ALU design: addition, ripple carry and look ahead adders, negative numbers & subtraction; multiplication sequential multiplier, modification for 2's complement, combinational multiplier, division. Floating point numbers: addition, multiply and divide, implementations.

Computer Systems Memory: Byte vs. word addressing, memory system design, error detection and correction. I/O Design: I/O controller design. Connection of I/O controllers to CPU, synchronization of I/O and CPU, polling, interrupts. Direct Memory Access, bus arbitration, DMA controller implementation. I/O processors. Synchronous and asynchronous buses. Simple performance enhancements to the basic architecture. RISC.

***This course and Computer Architecture (INFR09009) have been replaced by Computer Architecture and Design (INFR10076) FROM 2019/20.***
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser (lecturer).
Information for Visiting Students
Pre-requisitesVisiting students are required to have comparable background to that assumed by the course prerequisites listed in the Degree Regulations & Programmes of Study. If in doubt, consult the course organiser (lecturer).
High Demand Course? Yes
Course Delivery Information
Not being delivered
Learning Outcomes
On completion of this course, the student will be able to:
  1. Build state machines to implement a circuit or system to a specification.
  2. Interconnect circuits for systems of higher complexity, specifically up to the complexity of the components required in a simple computer processor datapath.
  3. Analyse and synthesise circuits to control and sequence the flow of data within a simple CPU or microcontroller, and between a simple CPU, memory systems and input/output device controllers.
  4. Design and implement a microprogrammed controller for a given simple cpu architecture.
  5. Gain familiarity with: design and simulation software; designing systems with Verilog HDL; programming designs into a large field-programmable gate array device (FPGA); using an assembly language to implement a design in a programmable microcontroller.
Reading List
* V. C. Hamacher, Z. G. Vranesic & S. G. Zaky, 'Computer Organization', 5th edition, McGraw-Hill, 2001. Covers almost all the syllabus (and more). Similar in approach to the lectures.
* D. A. Patterson & J. L. Hennessy, 'Computer Organization & Design: The Hardware/Software Interface', 2nd edition, Morgan Kaufmann, 1998. A different view of most of the material in the syllabus, and a lot of interesting stuff.
* M. M. Mano, 'Digital Design', 2nd edition, Prentice-Hall, 1991. A very good book on logic design, with much more coverage of that part of the syllabus than the previous two books.
* A. S. Tanenbaum, 'Structured Computer Organization', 4th edition, Prentice-Hall, 1999. More a CS2 level book, but worth referring to.
Additional Information
Course URL
Graduate Attributes and Skills Not entered
KeywordsNot entered
Course organiserProf Nigel Topham
Tel: (0131 6)50 5122
Course secretaryMiss Lisa Branney
Tel: (0131 6)51 7607
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information