VLSI Curriculum-Core Courses

CORE COURSES (VE 500 – VE 505)

 

Course Prefix & No.: VE 500
Units: 3
Course Title: Computer Architecture
Prerequisite: Graduate Standing
Course Description
The purose of this course is to introduce students to the general topics in Computer Organization and to study the MIPS architecture and design philosophy in particular.

Topic covered in this coruse are: performance measurement, computer architecute design and tradeoffs, computer arithmetic and implementation, MPIS assembly language, MIPS instruction set architecture (ISA), hierarchical memory architecture, and storage system.

Learning outcomes of this course are to have students to understand 3 major topics: (1) MIPS instruction set and assembly language programming, (2) Instruction set architecture theory, data path, performace measurement, and design tradeoffs, (3) Hierarchical memory aarchitecutre fundamentals and the performace of multi-layer cache. This course also includes hands-on experiments using MIPS architecture simulators on PC.

Course Prefix & No.: VE 501
Units: 3
Course Title: Distributed Computing
Prerequisite: Undergraduate Operating Systems
Course Description
The purpose of this course is to provide the graduate students a solid introduction to the mathematical foundations and theory of distributed computing, highlighting common themes and basis techniques.

Topics covered in this couse are: Overview of Distributed System, Basic Algorithms in Message-Passing Systems, Leader Election in Rings, Mutual Exclusion in Shared Memory, Fault-Passing Systems, Leader Election in Rings, Mutual Exclusion in Share Memory, Fault-Tolerant Consensus, Causality and Time, A Formal Model for Simulations, Broadcast and Multicast, and Randomization.

Learning outcomes of this course are to have students to understand (1) basic algorithms in message-passing systems, (2) leader election in rings, (3) mutual exclusion in shared memory, (4) fault-tolerant consensus, (5) causality and time, (6) formal model for simulations, (7) broadcast and multicast, (8) randomization, and (9) implement new distributed algorithms based on the above techniques.

Course Prefix & No.: VE 502
Units: 3
Course Title: Computer Networks
Prerequisite: Graduate Standing
Course Description
The purpose of the course is to provide students with fundamental knowledge of computer networking technologies and infrastructure that is required by modern information professionals. Students will have detailed description of each layer of ISO/OSI reference model, including physical, data link, network and application protocols and functionality of each layer of TCP/IP reference model.

Topics covered in this course are: Network Hardware and Software, Network Standardization, The Physical Layer: Data Communication, Transmission Media, Wireless Transmission, Communication Satellites, The Data Link Layer: Design and Interface Issues, Error Detection and Correction, Data Link Layer Protocol and Verification, Medium Access Control: Channel Allocation, Multiple Access Arbitration, Network Layer: Design Issues, Routing Algorithms, Congestion Control Algorithms, Internetworking Technology, IP Protocol, The Transport Layer: Internet Transport Protocols, UDP and TCP, Performance Issues, The Application Layer: Domain Name System, Client/Server Model, Socket Programming, Electronic Mail, World Wide Web, Wireless Networks, Network Security and Management.

Learning outcomes of this course are: students are able to demonstrate use of computer network hardware, hubs, switches and routers and use of computer network software, networking operating systems. Students will also demonstrate an understanding of major components of computer networks based on ISO/OSI reference model and layered communication architectures. Students will also be familiarized with current topics, such as network security and network management.

Course Prefix & No.: VE 503
Units: 3
Course Title: VLSI Design
Prerequisite: Graduate Standing
Course Description
The purpose of this course is to provide the graduate students with the basic introduction of VLSI Design and the complete coverage of CMOS design requirements.

Topics covered in this course are: Microelectronics evolution, VLSI design flow, MOS transistor theory, CMOS fabrication technology, layout design introduction, design rules, stick diagrams, circuit performance estimation, CMOS design flow methods, circuit simulation, physical design introduction, timing analysis & optimization, power, clock distribution, design verification, and antenna check theory.

Learning outcomes of this course are to have students to gain the fundamentals of VLSI technology and have the basic knowledge on MOS transistor switches, fabrication process, CMOS logic gate design, layout, timing optimization, and verification. The students also learn how to support the VLSI design using the Cadence tools.

Course Prefix & No.: VE 504
Units: 3
Course Title: Embedded Systems Design
Prerequisite: VE 500, VE 501
Course Description
The purpose of this course is to introduce the graduate students to the fundamentals of embedded system hardware and firmware design.

Topics covered in this course are: embedded processor selection, hardware/firmware partitioning, glue logic, circuit design and layout, hardware debug, firmware development and debug tools, firmware architecture and design, and platform debug.

Learning outcomes of this course are to apply the embedded hardware and firmware design theories in lab projects. Students will design and program micro-controller based hardware devices to solve real-world problems in the final project.

Course Prefix & No.: VE 505
Units: 3
Course Title: Parallel Computing Systems
Prerequisite: VE 500, VE 501
Course Description
The purpose of this couse is to tech graduate students both the archtecture of modern multicore processors and the parallel programming principles to exploit the computational power of multi-core processors.

Topics covered in this course are: multi-core architecture, multi-core programming, CUDA and other off-the shelf GPGPU processor, Stream processors, Vector proessors, Data-level parallelism and the associated programming patterns, Thread-level parallelism and the associated programming patterns, and future trends.

Learning outcomes of this course are that students will learn the parallel computer architecture and programming models. They will learn both the theory and practice of parallel computing through lecture, discussion, and experiements based on PC simulation.