COQUITLAM COLLEGE
COURSE NUMBER: CSCI 150-3
TITLE: INTRODUCTION TO COMPUTER DESIGN
DESCRIPTION:
This course introduces students to the basic concepts of digital logic design,
and the function and use of typical digital components belonging primarily
to the small and medium scale integration (SSI, MSI) families.
The design principles will be used to develop an understanding
of how the functional capabilities can be provided by hardware
for the operation of a microprocessor.
Assembly language programming will be introduced.
An interactive logic simulation environment for designing
and testing logic circuit design will be used for the assignments.
PRE-REQUISITE:
None
TEXT:
Logic and Computer Design Fundamentals, 4th edition,
M. Morris Mano, Charles R. Kime, Pearson/Prentice Hall, 2008, ISBN-13: 9780131989269
RECOMMENDED:
LogicWorks 5, Capilano Computing Systems Ltd, Pearson/Prentice Hall, 2004, 9780131456587, Manual & software used for digital hardware simulation.
REFERENCES:
Digital Computer Electronics (3rd Edition), Malvino & Brown, Glencoe-Macmillan, McGraw-Hill, 1993
Introduction to Digital Systems, Milos Ercegovac, Tomas Lang, Jaime H. Moreno, John Wiley, 1999
Digital Systems: Principles and Applications, 10th Edition
Ronald J. Tocci, Neal S. Widner, Gregory L. Moss
Pearson Education, 2007 ISBN-10: 0131725793, ISBN-13: 9780131725799
DURATION: 13 weeks, 4 hours/week
TOPICS:
Introduction to numbers and codes.
Combinational logic design and applications: adders, decoders, multiplexers, etc.
Sequential logic design and applications: registers, flip-flops, etc.,
and general finite state machines.
Memory devices: read-only memory (ROM), random access memory (RAM).
Introduction to microprocessors: arithmetic logic unit (ALU), basic CPU architecture,
addressing modes and program execution.
Assembly language programming: programs for simple tasks; branching, loops, and subroutines.
LEARNING OUTCOMES:
At the end of this course, students should be able to....
1. Describe digital systems and their types.
2. Demonstrate the representation of information for digital systems.
2.1 Define digital and analog system with examples and identify the difference between these.
2.2 Explain number systems particularly binary, octal and hexadecimal
and describe their interconversion with examples. Illustrate arithmetic operations.
2.3 Explain BCD (Binary Coded Decimal) and its arithmetic.
2.4 Define alphanumeric codes and their applications.
3. Explain gate circuits and boolean equations.
3.1 Define logic gates (OR,AND,NOT,NAND,NOR,XOR,XNOR) and represent logic functions using truth tables,
Boolean equations and logic diagrams.
3.2 Explain Boolean algebra, algebraic and Karnaugh map optimization,
the Espresso algorithm as a pragmatic CAD optimization tool and multilevel optimization.
4. Describe combinational logic designs.
4.1 Explain steps of the design process including problem formulation, logic optimization,
technology mapping to NAND and NOR gates, and their verification.
4.2 Describe the functions and building blocks of combinational design including enabling and
input-fixing, decoding, encoding, code conversion, selecting, distributing,
and their implementations and simulation.
5. Describe arithmetic functions and HDLs.
5.1 Define arithmetic functions and their implementations.
5.2 Describe number representation, addition, subtraction, incrementing, decrementing, filling,
extension and shifting for arithmetic functions and their implementation.
5.3 Explain hardware description languages (HDLs) and Verilog HDL and state how these are used
to describe combinational logic and arithmetic logic.
6. Explain sequential circuits and their types.
6.1 Analyse, design and simulate sequential circuits.
6.2 Describe latches, master-slave flip-flops and edge-triggered flip-flops.
6.3 Describe state machine diagrams and state table formulation.
6.4 Explain a complete design process for sequential circuits including specification,
formulation, state assignment, flip-flop input and output equation determination,
optimization, technology mapping and veriļ¬cation.
7. Define integrated circuits and levels of integration.
7.1 Describe MOS transistor and CMOS circuits, asynchronous interactions between circuits
and programmable logic technologies.
7.2 Demonstrate synchronization of asynchronous inputs and metastability.
7.3 Describe delay and timing for gates.
7.4 Describe programmable logic, programmable logic arrays and programmable array logic.
8. Explain registers and register transfers.
8.1 Describe registers and their applications.
8.2 Demonstrate how shift register and counter design are based on the combination of flip-flops.
8.3 Define register transfers for both parallel and serial designs and describe time-space tradeoffs.
8.4 Describe multi-function registers that perform multiple operations.
9. Explain memory basics.
9.1 Describe static random access memory (SRAM), dynamic random access memory (DRAM) and basic memory systems.
9.2 Describe distinct types of SRAMs.
10. Explain computer design basics.
10.1 Describe register files, function units and datapaths.
10.2 Describe two simple computers: a single-cycle computer and a multiple-cycle computer
and their functionality.
11. Describe assembly language and its usage, trace the execution of assembly language programs
and create programs for simple tasks; branching, loops, and subroutines.
EVALUATION:
Quizzes 10%
Assignments 20%
Midterm Exam 30%
Final Exam 40%
Students must attain an overall passing grade on the weighted average of
exams in the course in order to obtain a clear pass (C or better).
Revised: Friday 20th September 2013, 8:28 PT, AD