Welcome to my Personal Homepage
 Daniel F. Gomez-Prado
 http://www-unix.ecs.umass.edu/~dgomezpr
PERSONAL RESUME RESEARCH & PAPERS ACTUAL COURSES PREVIOUS COURSES PHOTO GALLERY

 

Previous Courses


Computer Networks

This course covers fundamental concepts and systems aspects of computer networks. Topics include a review of the layered Internet architecture and encompass router design, lookup and classification algorithms, scheduling algorithms, congestion control, wireless protocols, and network security. Computer networks are the fabric that connects our information society. To achieve the ubiquity, scalability, and performance of today's Internet, numerous problems needed to be solved. In this course the fundamental concepts that are behind current computer networks are explored. A number of different techniques that can be employed to investigate and solve such research problems are studied. The main goal of this course is to get exposed to a broad range of topics that are interesting for research in the networking area.

 

Adv. Wireless Topics

This course presents a broad overview of the technical as well as business aspects of mobile computing and wireless communications. Instead of one narrow topic, this course covers the major building blocks of mobile computing and wireless communications. (mobile applications, mobile computing platforms, wireless networks, architectures, security, and management). The role of wireless Internet and Mobile IP is reviewed and the mobile computing platforms are examined with a discussion of  wireless middleware, wireless gateways, mobile application servers,  WAP, i-mode, J2ME, BREW, Mobile Internet Toolkit, and Mobile Web Services.  The wireless networks are discussed next with a review of wireless communication principles, wireless LANs with emphasis on 802.11 LANs, Bluetooth, wireless sensor networks, UWB (Ultra Wideband), cellular networks ranging from 1G to 5G, wireless local loops, FSO (Free Space Optics), satellites communications, and deep space networks.


 

Homework's & Projects

Lab 1: Too big
Lab 2

Lab 3
Lab 4

 

Homework's & Projects

Project 1: Chat Server for mobile devices (java)



High Level Synthesis

This course presents modern approaches to logic design and verification of digital circuits, including necessary background material in Boolean Logic, Finite State Machines, Decision Diagrams, and satisfiability (SAT) algorithms. The first part of the course covers high-level and architectural synthesis of designs described using hardware description languages (HDL). The second part covers, the fundamentals of Boolean algebra, logic function representations, and basic algorithms. The third part is devoted to Logic Synthesis, concentrating mostly on multi-level synthesis; and novel synthesis methods based on BDD representation and AIG graphs. The last part of the course is devoted to Verification, including simulation-based validation, functional test generation, and formal methods (equivalence checking and model checking).

 

Reconfigurable Computing

This course explores reconfigurable computers that can be quickly customized at the hardware level to perform exactly the computation required in hardware, overcoming the fixed hardware configurations found in many contemporary microprocessors. The state-of-the-art in reconfigurable computing both from a hardware and software perspective are investigated. A detail review is done of the basic building blocks of most reconfigurable computers, the field-programmable gate arrays (FPGAs). The characteristics of FPGA VLSI architecture such as the organization of device logic and interconnection resources are examined to quantify hardware limitations. As a final step, special focus is given to architecture for existing multi-FPGA systems and on compilation techniques for mapping applications described in a hardware description language to reconfigurable hardware.


 

Homework's & Projects

I've been Teaching Assistant of this course, so I had to remove my solutions - Just in case.
 

Homework's & Projects

Hw 1: Routing Algorithms (VPR)
Hw 2: Placement Algorithms (VPR)
Hw 3: Wire Estimation & Scheduling



Computer Algorithm

Introduction to the design and analysis of computer algorithms and basic data structures. Specific topics include: methods for analyzing algorithm complexity, fundamental algorithmic strategies (greedy methods, branch-and-bound, dynamic programming, simulated annealing, etc.); classical data structures; graph algorithms (graph traversal, network flows, cuts and matching); combinatorial algorithms and mathematical optimization techniques (linear programming, ILP, duality), and their relationship to graph theoretical approach. The theory will be illustrated with practical examples from Physical Design Automation of VLSI circuits and systems. 

 

Advance VLSI Design

This course explores the design of large-scale digital systems using application-specific integrated circuit(ASIC) and field programmable gate array (FPGA) technologies. State of the art CAD tools are used to take design specifications from a high level in HDL down to a layout level design. Recent advancements due to Moore's law have resulted in significant challenges in physical design, including interconnection, power consumption, reliability and verification. These challenges will be explored at a fundamental level as well as solutions in modern CAD tools from Cadence, Synopsys, Xilinx and Altera. Both ASIC and FPGA solutions will be explored and the economic, performance, power and flexibility tradeoffs will be studied for each technology.


 

Homework's & Projects

Hw 1: Hand written
Hw 2: Knapsack program (java)
Hw 3: Hand written
Hw 4: Flight Scheduling program (java)

 

Homework's & Projects

Hw 1: Simple FIR design in Verilog
Hw 2: Reverse Engineering
Hw 3: Synthesis
Hw 4: Problems various from chap8 to chap17
Midterm: Home take exam
Project Proposal: Encryption


Computer Architecture

The Textbook: D.A. Patterson and J.L. Hennessy, Computer Architecture: A Quantitative Approach, 3rd edition, Morgan-Kaufmann, 2002.

 

I. Introduction
II. Performance Analysis (Ch.1 +)
III. Processor Design: Pipelining (App.A, Ch.3-4)
IV. Memory Design: Memory Hierarchy, Cache Memory, Secondary Memory (Ch.5)
V. Storage Systems and Input/Output (Ch.7)
VI. Vector Computers (App.G)

 

Control Systems

The Textbook: C. T. Chen, Linear Systems Theory and Design, Oxford, 1999.

 

The objective of this course is to provide a basic understanding of linear systems and the methodologies that are used to analyze and model such systems. Provide the necessary background for advanced material in systems, control and communications.

 

 

VLSI Design

The course cover basic theory and techniques of VLSI design in CMOS technology.


Lecture topics include: CMOS devices and circuits, fabrication process, chip layout, combinational and sequential logic, static and dynamic logic structures, simulation and testing, system-level design, interconnect, timing issues, memory design, and design methodologies.  Use of semi-custom design techniques for random logic and finite state machine synthesis, and full-custom design for regular structures such as data-path and memory.


 
 

Java Implementation

Dynamic Scheduling using Tomasulo's Algorithm (java)
     

VLSI Labs

Lab 1: CMOS Gate ~(A(B+C))
Lab 2: 1-bit Accumulator
Lab 3: 4-bit Accumulator
Lab 4: 4x4 Multiplier


Login to SPIRE | Login to ECE web mail | Hotmail | Yahoo

ECE Department | Professor's page | Everyone else's page | Back home  

 Last updated: August 16, 2006