CSE 352
Hardware Design and Implementation
Credits
4.0
Lead Instructor
Mark Oskin
Textbook
- Digital Design & Computer Architecture, Harris
Course Description
Covers digital circuit design, processor design, and systems integration and embedded-systems issues. Includes substantial hardware laboratory.
Prerequisites
CSE 311; CSE 351.
CE Major Status
Required
Course Objectives
At the end of this course, students should:
- know how to implement a Boolean function in hardware, and how
to analyze the cost and performance of the implementation
- understand system clocking methodology to implement sequential circuits
- understand the timing constraints imposed by the clocking
methodology and how to analyze a digital system for timing correctness
- understand the basics of computer arithmetic
- understand how to implement an instruction set processor using
the digital design methodology
- understand how to use pipelining to improve the performance of a
digital circuit
- understand how to use forwarding, stalling and prediction to
address hazards in pipelined processors
- be able to use design tools to design and implement digital
circuits using FPGA technology
- be able to write and debug assembly language programs, including
the use of interrupts and timers for real-time operation
ABET Outcomes
(a) an ability to apply knowledge of mathematics, science, and engineering
(b) an ability to design and conduct experiments, as well as to analyze and interpret data
(c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
(e) an ability to identify, formulate, and solve engineering problems
(k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice
Course Topics
- Implementation of Boolean functions (6 lectures)
- CMOS transistors and logic gates
- Truth tables and regular logic structures
- Multiplexers and decoders
- Ripple-carry and carry-lookahead addition
- ALUs
- Combinational logic delay
- Verilog for combinational circuits
- Implementation of sequential circuits (6 lectures)
- The system clock and registers
- Shift registers and counters
- System timing, clocking constraints and static timing analysis
- Systems sequencing and the RTL abstraction
- Register file design
- Verilog for sequential circuits
- FPGA architectures and CAD tools (2 lectures)
- Configurable logic functions
- Configurable interconnection networks
- FPGA architecture case study
- CAD Tools
- Synthesis
- Simulation
- Placement & Routing
- Static timing analysis
- Y86 processor design (8 lectures)
- Instruction set design
- The Y86 instruction set
- Basic processor structure
- Instruction set implementation
- Memory design
- Move and arithmetic
- Conditionals and branches
- Memory load and store
- Y86 subroutines and the stack
- Support for real-time, embedded systems (3 lectures)
- Timers and counters
- Interrupts
- Memory-mapped I/O
- Writing real-time, embedded programs
- Pipelining (3 lectures)
- Basic pipelining: throughput and latency
- Data hazards and stalling/forwarding
- Control hazards and branch prediction
- Pipelining the Y86 processor