ECE4525/5950: Digital Design
The objective of theis course is to develop systematic techniques for large-scale digital logic design and analysis. We will primarily be concerned with the design of multi-input, multi-output system controllers, which provide the central control signals that orchestrate the collection of hardware devices found in a digital system. This being the case, much of the work in this course will center upon the synchronous state machine design of system controllers using various implementations, the main emphasis being on Programmable Logic Devices (PLDs). In addition, the design of asynchronous sequential machines and the transient behavior of logic circuits will be examined. The two design projects and some of the homework assignments will be based upon Field Programmable Gate Arrays (FPGAs). Students will be designing their circuits in VHDL using CAD tools by Mentor Graphics (ModelSim) along with Xilinx Vivado CAD tools to program their designs into chips.
ECE3570: Computer Architecture
The objective of the ECE 3570 is to broaden students' knowledge on hardware and software aspects of contemporary computer architecture. A bottom-to-top approach is taken to review both hardware and software aspects of computers. The gate level is followed by the microarchitecture level of a simple RISC machine. Various performance improving techniques are introduced. Next, the Instruction Set Architecture level is considered. After that, the Operating System machine level and the Assembly Language level are discussed. Finally, a few parallel computer architectures are studied.
ECE4500/5540: Digital Electronics
The purpose of this course is to develop techniques for analyzing and designing digital integrated circuits. For circuit implementations 0.25 micron CMOS technology is being used. The course will start with a brief review of the state-of-the-art technology, followed by fundamental device models. Next, a detailed description and analysis of the core digital design block, being the inverter, will be given. It will be followed by the design of more complex logic gates, such as NAND, NOR, and EXOR, looking at optimizing the speed, area, or power. The learned techniques will be applied on designing MSI level building blocks. Substantial attention will be devoted to the discussion of sequential circuits, clocking approaches, and memories. The course will be concluded with the discussion of the impact of interconnect parasitics on the design performance and approaches to cope with them. Major emphasis will be placed on the use of Mentor Graphics Electronic Design Automation tools (Design Manager, Design Architect, Eldo, Xelga, IcStation, Calibre Xrc) for labs, homework assignments, and projects.
ECE4510/5530: Microcontroller Applications
The primary emphasis of the course will be microcontroller architecture, firmware and embedded software design but hardware interface design issues will also be extensively covered. Students are expected to show expertise in both areas. Currently, the ARM Cortex STM32f429I microcontroller is being used as the hardware platform. Software development is done using the EWARM by IAR. Application programs are developed in C. Interface designs include the CAN Bus, the I2C Bus, the SPI Bus, analog I/O and PWM. Programs are downloaded into the Flash Memory of the microcontroller.
ECE5510: ASIC Design
The main objective of this course is to develop skills for designing custom digital circuits using VHDL and Programmable Logic Devices (PLDs). The basic properties of CMOS logic circuits and the key features of semi-custom and full-custom ASIC devices will be reviewed. Methods for floor planning, placement and routing are also discussed. Students are expected to have a background in digital logic design. The two design projects will be based upon Field Programmable Gate Arrays (FPGAs). Students will be designing their circuits in VHDL using professional CAD tools by Xilinx and Mentor Graphics.
ECE5570: Design of Reconfigurable Digital Machines
The objective of this course is to develop skills for designing complex digital systems and system-on-chip (SOC) applications. In addition, topics in the following areas are also discussed: reconfigurable devices and systems, reconfigurable computing applications, dynamic reconfigurations and its applications and hardware/software codesign. Students are expected to have a background in digital logic design. The three design projects will be based upon Field Programmable Gate Arrays (FPGAs). Students will be designing their circuits in VHDL using professional CAD tools by Xilinx and Mentor Graphics.
ECE6050: Advanced Microprocessor Applications
The objective of this course is to survey current microprocessors and to discuss various aspects of memory system design and bus interfacing. Though some software will be covered, the primary emphasis will be on internal architecture and hardware system design. Most of the course work is based upon designing a bridge between the AXI bus of a 32-bit ARM microprocessor on a Xilinx SoC FPGA chip and some industry standard multi-processor bus such as the VME Bus or the PCI Bus. For hardware design, simulation and prototyping Xilinx SoC Development Boards will be used along with CAD tools by Mentor Graphics (ModelSim) and Xilinx Vivado and SDK CAD tools to design, simulate, and program their designs into chips.
ECE6720: Fuzzy Control Systems
Among the various paradigmatic changes in science and mathematics, one such change concerns the concept of uncertainty. The driving force behind this paradigm shift is the realization that traditional two-valued logical decision systems, crisp set theory and crisp probability theory are inadequate for dealing with imprecision, uncertainty and complexity of the real world. It is this realization that motivates the evolution of fuzzy set theory and fuzzy logic. One of the most successful fields of application of fuzzy set theory has been in control systems. This course is designed to address the theoretical aspects of fuzzy set theory and fuzzy logic, fuzzy control, the implementation issues of fuzzy controllers, application of fuzzy logic in supervisory control, design of fuzzy logic hardware accelerators, and applications of fuzzy automata in intelligent decision support systems.