============================================================================= **COURSE ANNOUNCEMENT: FALL-13** *CSEE 4823x ADVANCED LOGIC DESIGN *(CSEE designates a joint course between computer science and electrical engineering) Instructor: Prof. Christos Vezyrtzis contact: cvezyrt@us.ibm.com Time: Monday/Wednesday, 7.10-8.25pm Room: 702 Hamilton Hall ============================================================================= COURSE DESCRIPTION: The course is on advanced aspects of modern digital design. It provides a strong foundation for computer engineering, computer science and electrical engineering courses in digital and embedded systems, computer architecture, parallel systems, networking, etc., and a good background for a variety of industrial positions. The course assumes you already have basic background on digital design. Its focus is on advanced topics, with a special focus on RTL (register-transfer level) design -- top-down design of complex systems from specification through implementation. It also covers practical aspects of modern commercial design, including use of hardware description languages (e.g. VHDL) for modelling and simulating systems. The course also covers a variety of methods and approaches for optimization of digital systems (in performance, power, area, etc.). It is suitable as an elective for BS/MS/PhD degrees in computer science and electrical engineering, and for the BS/MS in computer engineering (it is one of two alternative required courses for computer engineering BS students). TOPICS INCLUDE: Introduction to modern system-level design: Register-transfer level (RTL), algorithmic state machine models (ASMs), datapath/control allocation and interconnection. System-level performance optimization: resource sharing, scheduling, inner loop optimization, area/delay tradeoffs. Introduction to VHDL (an industry-standard hardware description language): Hands-on modelling and simulation of digital systems using Altera CAD tools. Structural, dataflow and behavioral models. Specifying combinational and sequential blocks. Synthesis-oriented coding styles. Large-scale digital system case studies: Designing/optimizing a custom floating point unit; counting and pattern detection units; the Philips I2C commercial serial bus interface; Huffman encoding/decoding. Designing and optimizing digital controllers: Mealy and Moore finite state machines (FSM's), including optimal state encoding and state partitioning. Iterative circuits. Advanced adders: Conditional sum, carry-skip, carry-select, carry-lookahead, parallel prefix (Kogge-Stone, Brent-Kung). Power/area/latency tradeoffs. Combinational array multipliers: Using carry-save addition for optimization. Modern low-power design techniques: Clock gating for controller optimization; pre-computation logic for sequential pipelined systems; bus encoding strategies. Introduction to fault-tolerance and error detection/correction: Hamming and parity codes, 2-dimensional (i.e. product) codes, cyclic redundancy codes (CRC) for Ethernet, etc. Recent work on handling "soft errors" due to cosmic rays. Asynchronous (i.e. clockless) digital circuits: Controllers, high-speed pipelines. Hazard-free logic synthesis. Metastability and synchronizers. Miscellaneous topics: Introduction to FPGA's: internals and micro-architecture. Pseudo-random number generators (LFSR's). HOMEWORKS, LAB COMPONENT AND PROJECT: The course will include a number of written homeworks, small lab design exercises, as well as a moderate-sized design project. You will develop good familiarity with modelling circuits and systems in VHDL, and simulating them in an Altera CAD environment. However, this is not primarily a project class. PRE-REQUISITES: basics of digital logic, such as CSEE 3827 Fundamentals of Computer Systems or the equivalent introductory course on digital design. In particular, it is assumed that you are already familiar with: Boolean algebra; combinational logic design (Karnaugh maps, basic gates, negative logic, 2-level/sum-of-products and multi-level digital design); combinational building blocks (multiplexers, demultiplexers, decoders); basic ripple-carry adder design; latches, flipflops and registers. A quick refresher on these topics will be included in the course. However, students with serious deficiencies should take an earlier course. No prior background on VHDL or VLSI circuits is required. If you have any questions about pre-requisites and your background, contact the instructor (nowick@cs.columbia.edu). REQUIRED TEXTBOOK: Stephen Brown and Zvonko Vranesic, "Fundamentals of Digital Logic with VHDL Design", **THIRD EDITION**, including Altera's Quartus II CAD System (on CD-ROM), McGraw-Hill, New York, NY. (Copies of the book will also be placed on reserve in the Engineering School Library.) NOTE: if you want to buy the SECOND EDITION (e.g. used), it is acceptable. It have only small differences from the third edition. However, you will need access to the 3rd edition for homework assignments, to identify and discrepancies between the two editions. The book will only be used for part of the course material. The course will include a number of additional handouts provided by the instructor, as well as recent research and industrial papers and articles.