**Introduction:**This course introduces the many levels of abstraction that enable today's digital computing systems. It explores design at the layers of a computing platform from switches and wire to a programmable machine. It introduces the hardware aspects of digital computers, logic gates, flip-flops, reduction, finite state machines, combinational and sequential logic design, digital systems, software design tools, hardware description language (VHDL), and implementation technologies.**Corequisite:**Lab component**Prerequisite:**MATH 2554: Calculus I (C or higher)**Required Textbook:**"Fundamentals of Digital Logic with VHDL Design," by Stephen Brown and Zvonko Vranesic, Third Edition, McGraw Hill, ISBN: 978-0-07-352953-0, MHID 0-07352953-2. In addition, course notes for all lectures will be used.**Recommended Reference:***Digital Design: Principles and Practices, by John F. Wakerly, Fourth Edition, Pearson, ISBN: 978-0131863897**Advanced Digital Design With The Verilog HDL, by Michael D Clietti, Second Edition, Pearson, ISBN: 978-0136019282**Rapid Prototyping of Digital Systems SOPC Edition, by Hamblen, Hall, and Furman, Springer, ISBN: 978-0387726700*

**Course Goal:**The goal of the class is to develop the ability to apply knowledge of digital logic to the design of a microprocessor and operate an advanced CAD software application.

**Introduction:**Students will study the design and implementation of a standard Reduced Instruction Set Computer (RISC) and memory hierarchy. The course offers a detailed analysis of (1) instruction set encodings, (2) efficient pipelined implementation of the instruction set including data and control hazards introduced by pipelining instruction execution, and (3) memory hierarchy including cache and virtual memory. The laboratory component allows students to apply classroom theory by designing and implementing a complete working pipelined CPU and developing functions in assembly language through a simulator.**Corequisite:**Lab component**Prerequisite:**CSCE2114: Digital Design (C or higher)**Required Textbook:**"Computer Organization and Design MIPS Edition: The Hardware/Software Interface," by David A. Patterson and John L. Hennessy, Six Edition, Morgan Kaufmann, ISBN: 978-0128201091. Note: Zybook will be used for this class. In addition, course notes for all lectures will be used.**Recommended Reference:***"Computer Architecture: A Quantitative Approach," by David A. Patterson and John L. Hennessy, Six Edition, Morgan Kaufmann, ISBN: 978-0128119051**"Computer Systems: A Programmer's Perspective," by Randal Bryant and David O'Hallaron, 3rd Edition, Pearson, ISBN: 978-0134092669*

**Course Goal:**The goal of the class is to develop the skills to analyze and design both hardware and software components of a computer, and to evaluate the performance of a computer.

**Introduction:**This course studies the principal methods used in the solution of programming contest problems, e.g., data structures, strings, sorting, machine arithmetic and algebra, Combinatorics, number theory, backtracking, graph traversal, graph algorithms, dynamic programming, grids, and computational geometry.**Prerequisites:**CSCE 2014 Programming Foundations II with C or better**Required Textbook:***Programming Challenges: The Programming Contest Training Manual, Steven S. Skiena and Miguel A. Revilla, Springer, 2003, ISBN 978-0387001630*

**Recommended Reference:***Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, The MIT Press, 3rd edition, 2009, ISBN 978-0262033848**Algorithms, Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 4th edition, 2010, ISBN 978-0321573513**The Art of Computer Programming, Vol. 1: Fundamental Algorithms, Donald E. Knuth, Addison-Wesley Professional; 3rd edition, 1997, ISBN 978-0201896831***Course Goal:**Ability to rapidly develop efficient solutions to standard computer science problems, such that an online judge accepts the developed solutions as correct and efficient.

**Introduction:**The senior/graduate-level course surveys important classes of algorithms used in computer science and engineering. It introduces formal techniques for analyzing the complexity and computability of algorithms. It also studies and analyzes some commonly-used data structures and algorithms, with primary emphasis on the development of efficient implementation. The course covers them in considerable depth and discusses engineering issues with a careful explanation on the mathematical proof.**Prerequisites:**CSCE 3193 Programming Paradigms (C or higher)**and**MATH 2603 Discrete Math (C or higher)**Required Textbook:***Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, The MIT Press, 3rd edition, 2009, ISBN 978-0262033848***Recommended Reference:***Algorithms, Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 4th edition, 2010, ISBN 978-0321573513**The Art of Computer Programming, Vol. 1: Fundamental Algorithms, Donald E. Knuth, Addison-Wesley Professional; 3rd edition, 1997, ISBN 978-0201896831***Course Goal:**Analyze the complexity and performance of algorithms; Familiarize with major algorithms and data structures; Apply important algorithmic design paradigms and methods of analysis; Synthesize efficient algorithms in common engineering design situations.

**Introduction:**This course studies physical design, analysis and optimization of VLSI circuits and systems with emphasis on computational realizations and optimization. We start with some related topics such as graph algorithms, and discuss various well-known algorithms and methodologies in the design process of VLSI circuits, including design partitioning, logic synthesis, floor planning, routing, static timing analysis and performance-driven layout. It requires a basic knowledge of digital circuit design, data structure, and object-oriented programming.**Prerequisites:**CSCE 3953 System Synthesis and Modeling (C or higher)**and**CSCE 3193 Programming Paradigms (C or higher)**Textbook:**There is no required textbook for this course. Course notes for all lectures will be used. However, the following books are recommended:*Practical Problems in VLSI Physical Design Automation, Sung Kyu Lim, Springer, 2008, ISBN 978-1402066269**VLSI Physical Design: From Graph Partitioning to Timing Closure, Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu, 2011, ISBN 978-9048195909**VLSI Physical Design Automation: Theory and Practice, Sadiq M. Sait and Habib Youssef, World Scientific, 1999, ISBN 978-9810238834***Course Goal:**The objective of this course is to study algorithms and methodologies to solve practical problems in computer-aided VLSI design. We shall discuss how to transform a circuit from a structural to a gate-level representation, and finally into layout and masks. Because of design complexity, such transformation needs to be efficiently carried out using computers so that the resulting layout satisfies topological, geometric, timing, power and manufacturability constraints. Students will also learn to compare the complexity and efficiency of various algorithms for physical design, analysis and optimization, and can implement such algorithms with a programming practice.

**Introduction:**This course covers all aspects of VLSI design and engineering. The lectures mainly focus on theoretical understanding of CMOS fabrication process; MOS transistors and circuits; Circuit and datapath unit design; Standard cell design and timing characterization; Memory design; Clock tree synthesis; Static timing and power analysis; Floorplanning, placement, and routing; VLSI testing and design for testability. This course includes a lab session, which introduces standard VLSI design flow and commercial CAD tools. Topics include circuit simulation (Synopsys HSpice), standard cell design (Cadence Virtuoso), logic synthesis (Synopsys Design Compiler), automatic place & route (Cadence Innovus), static timing and power analysis (Synopsys Primetime), DRC and LVS (Mentor Graphics Calibre). The final design projects go through a complete VLSI design cycle from standard cell design, circuit design, logic synthesis, physical design, and sign-off verification.**Corequisite:**Lab component**Prerequisite:**CSCE 2114/ELEG 2904 Digital Design (with an A)**or**CSCE 3953 System Synthesis and Modeling (C or higher)**or**ELEG 3933 Circuits and Electronics (C or higher)**Textbook:**There is no required textbook for this course. Course notes for all lectures will be used. However, the following books are recommended:*CMOS VLSI Design: A Circuits and Systems Perspective, Neil Weste and David Harris, 2011, ISBN 978-0321547743**Digital Integrated Circuits: A Design Perspective, Jan M. Rabaey, Anantha Chandrakasan, Borivoje Nikolic, Pearson, 2003, 978-0130909961**Digital VLSI Chip Design with Cadence and Synopsys CAD Tools, Erik Brunvand, Pearson, 2010, ISBN 978-0321547996***Course Goal:**After completing this course, students should be able to do the following:- Understand the theory and modeling of the basic factors affecting the design: performance, power, area, and cost.
- Design standard cells and properly size transistors.
- Design and Layout large scale digital integrated circuits.
- Optimize propagation delay in CMOS digital circuitry on an integrated circuit chip.
- Use CAD tools to simulate, synthesis, layout and verify VLSI circuits.

**Introduction:**ASIC design is taught with emphasis on industrial preparation. Topics include ASIC technologies, design entry, simulation, and synthesis. Advanced design methods and techniques are studied for cell based and gate array ASICs.

In this class, we will use Intel FPGA DE1-SOC with embedded ARM Cortex A9 core to prototype and verify the functionality of the ASIC chip. We will implement an ARM Cortex M0 core using Intel FPGA. Further, we will design an ASIC 8051 microprocessor with a 45nm technology process using Cadence, Synopsys, and Mentor Graphics CAD tools.**Prerequisites:**CSCE 4213 Computer Architecture**or**ELEG 3924 Microprocessor Systems Design (C or higher)**Textbook:**There is no required textbook for this course. Course notes for all lectures will be used. However, the following books are recommended:*CMOS VLSI Design: A Circuits and Systems Perspective, Neil Weste and David Harris, 2011, ISBN 978-0321547743**Hands-on Experience with Altera FPGA Development Boards, Jivan S. Parab, Rajendra S. Gad, G.M. Naik, Springer, ISBN 978-8132237679**A Practical Introduction to Hardware/Software Codesign, Patrick R. Schaumont, Springer 2013, ISBN 978-1441959997**Digital VLSI Chip Design with Cadence and Synopsys CAD Tools, Erik Brunvand, Pearson, 2010, ISBN 978-0321547996***Course Goal:**The goal is for students to learn advanced learn advanced ASIC design concept and the practical aspects of Hardware-Software Codesign techniques, including FPGA prototyping with embedded ARM Cortex-A9 IP core, circuit analysis and logic design, data path elements design and memory block usage, architecture and SOC design, ASIC design techniques for timing optimization and low power computing, and ASIC processor design including 8051 processor design.