Professional Documents
Culture Documents
Abstract
Undergraduate computer and electrical engineering programs often partition the curriculum into
several courses based on related topics taught in isolation. Students are expected to synthesize
their knowledge in a senior design project. It is the authors’ experience that students often
struggle during their senior design project since they have not gained the appropriate knowledge
or mastered necessary skills needed to work on a significant or team-based engineering design
project. Specifically, students need to be able to define system requirements, partition the design
into subcomponents, design, build, test, and verify that the system requirements have been met.
The authors have enhanced and implemented three courses to develop system engineering
knowledge and skills that better prepare students for their senior design experience. This paper
gives an overview and lists the learning outcomes for each of these courses and includes some
examples of laboratory projects that are used to meet these learning outcomes.
Introduction
In the current global environment it is imperative that engineering graduates are prepared to enter
the workforce with the skills necessary to make immediate contributions. Today, companies
often outsource engineering tasks and projects that could otherwise be done by entry-level
engineers. Globalization combined with economic pressures has increased the competition for
entry level engineering jobs and therefore it is even more important to prepare our engineering
graduates with all of the skills needed to be productive members of an engineering team.
The challenges associated with preparing engineering graduates for professional practice through
an undergraduate curriculum based on theory and analysis is widely acknowledged.1-3 It has
become clear that project-based learning with open-ended design projects facilitates self-directed
learning and enhances students’ project management and communication skills. Typical projects
span multiple academic terms, during which time students gain invaluable experience applying
and synthesizing material from a variety of courses and disciplines. These projects, as nearly as
possible, replicate the working environment that students’ will encounter after graduation. The
issues encountered while working on projects are different from typical homework assignments
in conventional courses. Students gain experience as part of a project team that enhances their
ability to bridge into professional practice in an era that requires lifelong learning in the
engineering discipline and the ability to perform as a member of a multidisciplinary team.5
From 2001 to present, our students successfully completed over 25 masters theses and 30 senior
projects while conducting research and working on real-world sponsored projects in the NetPRL
lab.4 The authors have had the opportunity to work with graduate and undergraduate students
from computer engineering, computer science, electrical engineering, software engineering,
industrial engineering and manufacturing engineering. The students contribute to research and
engineering design projects; at the same time they gain industry-like work experience.
Our experience with project-based learning has uncovered several important issues. First,
students often have not participated on a large scale team-based design project before and
therefore they have to learn how to work in such an environment. They must gain project
management experience, develop a technical specialization to support their project role, and
develop their ability to collaborate and contribute to multidisciplinary projects. Secondly, we
discovered that our students were not prepared to develop complex systems requiring custom
printed circuit boards (PCB). In order to design a complex digital system today, printed circuit
board design knowledge and Computer Aided Design (CAD) tool training is usually required.
Students typically do not acquire printed circuit board design experience in community colleges
or in the upper division courses at Cal Poly, San Luis Obispo. In fact, our experience and
research indicate that there are very few universities that offer upper division courses in printed
circuit board design or electronics manufacturing.
Layering upon the above noted educational deficiencies in engineering curricula, programs
generally do not present an integrated approach to engineering education that includes practical
application of theoretical knowledge. Students often master the course and laboratory work
associated with courses in the curriculum, but they do not gain a “systems” level engineering
experience that requires them to synthesize what they have learned in their curriculum and
extend their knowledge through independent learning that reaches outside their field of study.
The need for “systems” level design and multidisciplinary experiences has been echoed by the
Cal Poly computer and electrical engineering Industrial Advisory Board (IAB) and the
Accreditation Board for Engineering and Technology5 (ABET). This educational gap is common
amongst engineering curricula. Figure 1 (a) below illustrates the knowledge and skills gap
between traditional computer and electrical engineering curricula and those engineering skills
required for successful job performance. At Cal Poly, the traditional CPE and EE courses taken
before systems design and the capstone project sequence include, computer engineering
orientation, fundamentals of computer programming I, II and III, discrete structures, digital
design, computer design and assembly language programming, electric circuit analysis I, II and
III, continuous-time signals and systems, semiconductor device electronics, and digital
electronics and integrated circuits. Several other courses are taken concurrently with the system
design and capstone project courses including, systems programming, operating systems,
computer networks, computer architecture, along with three technical electives and engineering
support courses.
Capstone Senior,
Enhanced Electronics Intro. to
Project Industrial or
CPE & EE Design System
Research
courses & Mfg. Design Experience
Projects
The authors have enhanced and implemented three courses to develop system engineering
knowledge and skills that better prepare students for their senior design experience. Specifically,
the junior-level microcontroller design course, CPE 329, was enhanced to provide a systems
design philosophy utilizing modern computer aided design tools. In this course students have the
opportunity to design a custom computer system, interface external hardware and develop
firmware to best meet system design requirements. A separate technical elective course has been
created for students to learn printed circuit board design using CAD tools that build upon the
microelectronics, digital and analog design taught in the core courses of the curriculum. Finally,
a capstone design course has been created that incorporates team building, engineering design
skills, project management, engineering ethics and other related skills.6 These three courses
construct a critical pipeline in the computer engineering curriculum to properly prepare students
for the workforce and graduate studies by engaging them in project-based learning activities
earlier and developing the appropriate skills needed to contribute to significant team-based
development projects. Figure 1(b) illustrates how the core curriculum has been enhanced to fill
the knowledge and skills gap with the construction of a pathway to acquire superior student skills
through requisite participation in project-based learning projects.
This paper provides an overview and lists the learning outcomes for each of these courses and
includes some examples of laboratory projects that are used to meet these learning outcomes.
One of the Capstone design projects, the BitNinja I/O extender card, is profiled at the end of this
paper. The student project was to design, implement, test, and produce a low-cost I/O extension
board to support the systems design course at Cal Poly, San Luis Obispo.
Project-based learning overcomes the two drawbacks discussed above. In the project-based
learning approach, students are presented with a challenging project, and the students decide how
to solve the problem within a set of constraints. The learning model is shifted from “Teacher-
Centered” to “Learner-Centered” and includes active learning methods. This learning
methodology has gained increasing popularity in engineering education recently as evidenced by
many recent project-based learning papers published in the educational literatures.12-14 Project-
based learning is consistent with the 2007-2008 ABET accreditation criteria5 that require
engineering programs to demonstrate that their students attain:
3 (c) an ability to design a system, component, or process to meet desired needs within
realistic constraints such as economic, environmental, social, political, ethical, health and
safety, manufacturability, and sustainability
3 (d) an ability to function on multi-disciplinary teams
3 (f) an understanding of professional and ethical responsibility
3 (g) an ability to communicate effectively
3 (i) a recognition of the need for, and an ability to engage in life-long learning
3 (k) an ability to use the techniques, skills, and modern engineering tools necessary for
engineering practice.
The exponential increase in the number of transistors available per integrated circuit over the
past four decades has fueled the information age and an era of ubiquitous computing. CAD tools
allow engineers to work at higher-levels of abstraction to design increasingly more complex
systems. Embedded system design has been a keystone course in electrical and computer
engineering curricula. Today it is possible for students to design embedded systems using soft-
core processors, peripheral devices, and custom hardware on a single Field Programmable Gate
Array (FPGA).
In the Introduction to Systems Design course at Cal Poly, CPE 329, students themselves design
their computing platform using only the necessary hardware and peripheral devices.15-16 They
analyze system performance based on hardware and software tradeoffs against a backdrop of
hardware resources utilization metrics, thus vastly increasing the design space they consider for
their projects. New content in introductory embedded systems courses using a soft-core
approach can be summarized as:
Students do not get the same experience using off-the-shelf microcontrollers since they cannot
customize the computer system nor can they design user-specific hardware as part of a system
on-a-chip. A soft-core processor approach expands the design space in which students develop
embedded systems incorporating numerous design decisions along the way.
This course is an upper division course for electrical and computer engineering students that
have completed course work on electronics design, digital design and computer programming.
The class meets three times per week for fifty minutes in a classroom setting and once each week
for three hours in the laboratory over the ten weeks of an academic quarter. In the lecture
students are introduced to the design, implementation and testing of programmable logic
microprocessor-based systems. Students learn how to interface the embedded system to various
sensors and displays. The learning outcomes of this course are that students will be able to:
• determine and document system requirements for a student proposed design project
• select the appropriate design type, hardware or stored program, to meet the system
requirements while optimizing various cost functions
• use digital, analog, and serial input and output devices such as UART, SPI, I2C, PS2,
LCD, VGA, Keypad, Keyboard, RAM, LED, etc.
• design, implement, and verify a digital system using a hardware description language
• design, implement, and verify a system using a higher-level programming language
• analyze hardware vs. software tradeoffs such as performance, power consumption,
system economics, and design time
• document design using block diagrams, flow charts, verification test matrix and system
measurements
• select external components and interface to embedded system using product datasheets
• exercise communication skills through preparing a proposal, writing final design reports,
and presenting in class.
In the laboratory students get an opportunity to design five embedded systems that meet a
specific set of system requirements. They first design a digital clock using the VHDL hardware
description language to implement a hardware-based design. Then they use a soft-core processor
with a hardware timer and a general purpose input/output peripheral module to design an
interrupt driven microcontroller implementation of the same digital clock system. The students
are asked to reflect on the design process and analyze the hardware utilization (such as the
number of programmable logic blocks and memory space used) and power consumption
tradeoffs involved in the two vastly different designs. Other design projects add serial and
analog input and output and have more challenging firmware requirements. The students select
their own final design project by drafting the system requirements and system architecture in a
proposal that is submitted to the instructor for approval. The overall schedule of the lab is shown
in Table 1. The laboratory learning modules include:
• introduction to the FPGA development board
• tutorial for Embedded Developers Kit (EDK)
• tutorial for the debugging tools
• hardware datasheets, reference manuals and specifications
The $1.3 trillion electronics industry in the United States and around the world continues to grow
at a high rate due to an ever-expanding range of electronic applications. Electronics
manufacturing is a multidisciplinary field that involves knowledge from the fields of materials
engineering, mechanical engineering, electrical engineering, manufacturing, reliability, and
statistical analysis. Thus, it is of critical importance to produce engineering graduates skilled in
electronics design and manufacturing.
IME 458 Microelectronics Design and Manufacturing is an upper division course for electrical
engineering, computer engineering and manufacturing engineering students. The class meets
two times per week for eighty minutes each in a lecture setting and once each week for three
hours in the laboratory over the ten weeks of an academic quarter. Lectures introduce electronics
packaging types and identification, the major manufacturing processes, materials, modern
electronics assembly, multilayer printed circuit board fabrication, printed circuit board design,
and semiconductor manufacturing. A hands-on laboratory experience is an integral part of this
course where students are exposed to state-of-the-art electronic design software (Cadence
Allegro©) and the assembly of printed circuit boards using a modern surface mount assembly
line. The overall schedule of the lab is shown in Table 2. The learning outcomes of this course
and laboratory are that students will be able to:
• identify electronics components including through-hole and surface mount components
• explain microelectronic and electronic interconnect technologies including die
The computer engineering capstone sequence is a two quarter course sequence. CPE 350 and
CPE 450 are both one quarter courses with 3 hours per week in a lecture format and 3 hours per
week scheduled in the design laboratory. During the six month capstone sequence, teams of 4-6
students participate in the design and implementation of a complex system. All students must be
assigned one or more roles and be held accountable for their portion of the project. Team roles
may include: Project Manager, System Architect, Hardware Architect, Software Architect,
Hardware Designer, Software Designer, System Interface, Development Tools Specialist,
Product Verification, Product Reliability and Serviceability (RAS), Procurement, Intellectual
Property and Customer Liaison. The project must meet the needs of a real user and be
deployable for use by those users. More specifically, during the first quarter students engage
with a service project or industry sponsor to elicit and establish project requirements. Regular
communication between the customer and students enhances the real world character of the
project. In the first phase of the project the students produce a system requirements specification
and give a presentation to their sponsor for early feedback. The next phases of the project
include the conceptual design and usability study. Again students interact with the project
customer to obtain meaningful feedback that can be used in assessing design decisions amongst
tradeoffs. The team partitions the system into components and documents the system
architecture, component interfaces, communications protocols and data structures needed for the
project. Students then organize into functional teams and establish design interdependencies and
milestones. After the design review, towards the end of the first quarter, students place purchase
orders to acquire prototype hardware and development tools.
At the beginning of the second quarter the functional teams design the subcomponents and write
software. At times, design changes must be made and schedule recovery plans established.
Simulation environments may be used to facilitate progress before hardware is available or
functional. After the subcomponents have been implemented and verified, the team begins the
system integration and debugging phase of the project. The teams document their designs
throughout the design process and give regular project status presentations to the instructors and
sponsors throughout the two academic quarters. At the end of the second quarter the students
work on customer documentation which includes Installation and User manuals and design
documentation to support future maintenance and engineering changes. The projects are
demonstrated at the College of Engineering Senior Design Fair that is open to students, faculty,
project sponsors, and the Cal Poly community. Table 3 captures the significant project activities,
milestones, and deliverables.
Product design and project management theory is presented in the first quarter of the Capstone
sequence. Each team must identify one project manager who is responsible for establishing a
project Gantt chart and to report on the team’s progress throughout the project. It is important
that students can become proficient in the project domain without much assistance from the
customer or instructor. Students must engage in independent learning to gain the knowledge
necessary to perform their assignments. Inter-project Knowledge Teams are formed to create
centers of competence where students working in a similar area can interact with students from
other projects to share their experiences and expertise. Each student is required to document
their individual research by presenting a mini-lecture to the class and writing a technical paper
using the IEEE publication format.
After successful completion of the Capstone sequence, students will be able to:
• Articulate design specifications and criteria by which they are to be measured
• Design and defend a solution to a real-world problem
• Verify that the design implementation solves a real-world problem and satisfies all of the
specified project requirements and constraints
• Evaluate the effectiveness of one’s own team and other teams’ designs
• Effectively contribute one’s own disciplinary knowledge on a team as well as locate and
evaluate new information
• Contribute to effective project management (e.g., through the use of Gantt charts)
• Effectively communicate with others in a team, fulfilling one’s individual role in the
project and in interfacing with customers
• Employ principles of effective communication
• Employ ethical practices in all aspects of the design process
• Reflect on aspects of design and the design process
The computer engineering Capstone sequence taught at Cal Poly has evolved over the last three
years. Most of the first year projects were sponsored by on-campus research centers such as the
PolyGait RFID research center. During the second year of the capstone sequence the majority of
the projects were sponsored by off campus companies such as the Jet Propulsion Laboratory and
Second Sight Medical. The third year brought a balance between service learning and industry
sponsored projects. Examples of the third year projects include: The Adapted Kayak for Dr.
Kevin Taylor, Kinesiology Department Cal Poly, figure 2-a: Chin Switch Environmental
Remote Control for VTC Enterprises, Santa Maria, CA figure 2-b: Personal Obstacle
Detection System for People who are Blind for VTC Enterprises, Santa Maria, CA: Vision-
Based Localization System for Autonomous Vehicles for Dr. Chris Clark, Computer
Engineering Cal Poly figure 2-c: and the Cal Poly Mars Autonomous Vehicle Project funded
by Lockheed/Martin and Dr. Chris Clark, Computer Engineering Cal Poly.
This section of the paper describes a project completed by the Capstone team called BitNinja.
The BitNinja team designed an input/output (I/O) extender board that will be used with the
Digilent Nexys22 programmable logic development board currently used in three required
computer and electrical engineering digital courses at Cal Poly. All students at Cal Poly are
required to purchase this FPGA development board to use in the digital courses. Students must
also purchase an assortment of peripheral boards through an online vendor to complete the
laboratory design projects in these courses. Unfortunately, there are a limited number of
expansion ports on the Nexys development board that can be used for these peripheral boards
and purchasing several I/O boards is expensive for the students. The BitNinja project team was
tasked with identifying a prioritized list of peripheral input and output devices that are required
in the digital courses and designing and implementing a low-cost peripheral board that provides
such a set of I/O devices.
The I/O extender board itself contains the input and output devices listed below. The I/O on the
board is fully customizable and can be interfaced to a proto-board through a 20-pin header
provided on the I/O extender board. This header contains connections to nearly all the I/O
connectors, dual operational amplifiers, and power rails.
• 1 Parallel Controlled 16x2 Character LCD
• 1 VGA Connector
• 1 PS2 Connector (keyboard or mouse)
• 2 MB Flash Memory
• 16 Surface Mount Push Buttons
• 16 LEDs
• 1 Speaker
• 2 RCA Connector
• 2 BNC Connector
• 2 Mono Headphone Connector
• 1 Binary Photodiode (Optional, not included)
• Buzzer/Speaker (Optional, not included)
The BitNinja I/O extender board shown in Figure 3 interfaces with the Nexys development board
through a 100-pin Hirose FX2 connector. Although the Nexys board provides a 100-pin header,
only 40 of these pins are actually available to use for I/O signals and 122 signals are needed to
control the I/O devices. The students decided to design an intelligent peripheral board with an
onboard controller that could access all of the I/O devices and include programmable logic to
support custom hardware state machines used to control external devices such as a VGA
controller. A Xilinx XPLA3 complex programmable logic device was selected for the peripheral
controller. The schematic shown in Figure 4 was implemented on the 4 by 8 inch 4-layer printed
circuit board shown in Figure 3.
The students stated that the IME 458 class prepared them with the necessary skills needed to
design a complex multilayer PCB that could be easily manufactured and assembled. The
students identified the primary constraint in the design phase was finding robust parts while
keeping the end-user cost below $100. This limited the design choices especially in the analog
portion of the board. In particular, the students decided to use a multiplexed analog to digital
converter (ADC) system to reduce the number of required ADC components and allow for a
wide range of sampling techniques. This decision reduced the component cost considerably
while meeting the analog input constraint.
Table 4 includes the Bill of Materials for the prototype I/O extender board. The Xilnx CPLD
was donated and therefore the price was not included in the table. It is important to note that
these prices were for retail components bought in limited quantities. Significant discounts are
available for larger quantity purchases. The BitNinja team received a quote to manufacture the
PCB for $12/board from Advanced Circuits and a quote to assemble the board for $27/board
from KL Electronics. Both quotes were for a quantity of 250 boards. The I/O extender board
combined fabrication and assembly cost is approximately $40/board with a one time setup
charge of $200 and a stencil charge of $300. Because the I/O extender boards will be sold to the
students at-cost, the end user purchase price will be approximately $100.
Figure 3. BitNinja Final I/O extender board
Part Description Qnty Unit Price Total Supplier Mfg. Part Number
In addition to the hardware design, the BitNinja team also designed a default I/O controller for
the FPGA using VHDL hardware description language. Students can customize the I/O
controller and update the non-volatile CPLD to increase the flexibility of the I/O extender card.
In addition, the BitNinja team provided an embedded system reference design that runs a 32-bit
Xilinx MicroBlaze soft-core processor in the Nexys development board which communicates to
all of the peripheral devices on the I/O extender board. The BitNinja Gantt chart show in Figure
5 indicates some of the work activities and project milestones the team compiled.
Figure 5. BitNinja Gantt Chart for Fall and Winter Quarter
This paper describes three upper-division courses that have been created or enhanced to include
learning objectives and skills that are needed for project-based learning in the computer and
electrical engineering curriculum. Students learn how to define system requirements, partition
the design into subcomponents, design, build, test, and verify that the system requirements have
been met. The project content in each of these courses has been increased to give the students
many opportunities to engage in self-directed learning and to get experience as a member of a
development team. The students’ feedback and final project demonstrations indicate that the
courses are providing a solid foundation of systems and PCB design while meeting the learning
outcomes of these courses. Students expressed pride in their project accomplishments and
gained confidence in their engineering abilities. Through project-based learning, undergraduate
students not only learn technical skills to design and manufacture systems, but they also
synthesize their engineering knowledge and develop project management, communication and
other professional skills.
Acknowledgment
This work is based upon work supported by the National Science Foundation, under Grant No.
DUE-0633363. The authors want to thank the teaching assistants that helped support the
laboratory development for these courses including Jackson Pang, Rafael Kaliski, Don Heyer,
and Carter Deleo. We would also like to thank the BitNinja Capstone Team: Joseph Nouri, JJ
Krakowski, Will Samuels, Daniel Schacht, and David Herrera and students that provided
constructive feedback for this work.
Bibliography
1. Friesen, M. and Taylor, K. L., “Perceptions and Experiences of Industry Co-Operators in Project-Based Design
Courses,” International Journal of Engineering Education, Vol. 23, No. 1, pp, 114-119, 2007.
2. Gorman, M. E., Johnson, V. S., Ben-Arieh, D. Bhattacharyya, S., Eberhart, S., Glower, J., et al., “Transforming
the Engineering Curriculum: Lessons Learned from a summer at Boeing,” Journal of Engineering Education,
Vol. 90, No. 1, pp, 143-149, 2001.
3. Nicolai, L. M., “Viewpoint: an Industry View of Engineering Design Education,” International Journal of
Engineering Education, Vol. 14, No. 1, pp. 7-13, 1998.
4. NetPRL webpage at http://www.netprl.calpoly.edu/.
5. ABET 2000 Criteria for Accrediting Engineering Programs, Accreditation Board for Engineering and
Technology, Baltimore, MD, http://www.abet.org/.
6. Slivovsky, L. A., “RFID in a Computer Engineering Capstone,” Proceedings of the 36th ASEE/IEEE Frontiers
in Education, pp. 22-27, October 2006.
7. Davis, B. G., Tools for Teaching, Jossey-Bass Publishers, p.100, 1993.
8. Duch, B.J., Groh, S.E., and Allen, D.E., “Chapter 1: Why Problem-based learning? A Case Study of
Institutional Change in Undergraduate Education,” The Power of Problem-Based Learning, A Practical “How
to” for Teaching Undergraduate Courses in Any Disciplinary, edited by Duch, B.J., Groh, S.E., and Allen,
D.E., Stylus Publishing, LLC, Sterling, Virginia, 2001, pp. 3-12.
9. Daems, W., Smedt, B.D., Vanassche, P., Gielen, G., Sansen, W., and Man, H.D., “PeopleMover: An Example
of Interdisciplinary Project-Based Education in Electrical Engineering,” IEEE Transactions on Education, Vol.
46, No. 1, February 2003, pp. 157-167.
10. Presley, M. and McCormick, C.B., Cognition, Teaching and Assessment, HarperCollins, New York, 1995.
11. Boyer Commission on Educating Undergraduates in the Research University, Reinventing Undergraduate
Education: A Blueprint for America’s Research Universities, State University of New York at Stony Brook for
the Carnegie Foundation for the Advancement of Teaching, Stony Brook, NY, 1998.
12. Hadim, H.A. and Esche, S.K., “Enhancing the Engineering Curriculum through Project-Based Learning,”
Proceedings of the 32nd ASEE/IEEE Frontier in Education Conference, November 6-9, 2002, Boston, MA,
Section F3F, pp. 1-6.
13. Witt, H.J., Alabart, J.R., Giralt, F., Herrero, J., Medir, M., and Fabregat, A., “Development of Coaching
Competencies in Students through a Project-Based Cooperative Learning Approach,” Proceedings of the 32nd
ASEE/IEEE Frontier in Education Conference, November 6-9, 2002, Boston, MA, Section F2A, pp. 1-6.
14. Ju, W., Oehlberg, L., and Leifer, L., “Project-Based Learning for Experimental Design Research,” Proceedings
of International Engineering and Product Design Education Conference, September 2-3, 2004, Delft, the
Netherlands.
15. Slivovsky, L. A., and Liddicoat, A. A., “Transforming the microprocessor class: Expanding learning objectives
with soft core processors,” 37th ASEE Annual Conference, Hawaii, June 2007.
16. Slivovsky, L. A., and Liddicoat, A. A., “Work In Progress: Future Pedagogical Trends in the Microprocessor
Course - The Soft Core Processor,” Proceedings of the 36th ASEE/IEEE Frontiers in Education, pp. 1-2,
October 2006.
17. Braun, C.G., “Making Things Real in Electronics Laboratories,” Proceedings of 1995 FIE Conference.
18. Braun, C.G., “An Electronics Prototyping Facility for Undergraduate Electronics Laboratories,” 1996 ASEE
Annual Conference Proceedings, pp. 457-465.
19. Herniter, M.E., “PC Board Design and Fabrication using Schematics, PADS-PERFORM, and a Laser Printer,”
Proceedings of 1994 Frontier in Education Conference.
20. Rizkalla, M.E., O’Loughlin, C., Yokomoto, C., and Burkart, G., “A New Electronic Manufacturing Course for
the Electrical Engineering Curriculum,” IEEE Transactions on Education, Vol. 39, No. 4, November 1996, pp.
512-518.
21. Rizkalla, M.E., O’Loughlin, C., and Yokomoto, C., “An innovative model for senior level undergraduate
engineering education in electronic manufacturing,” International Journal of Engineering Education, Vol. 12,
No. 2, 1996, pp. 147-151.
22. Digilent Nexys Board Reference Manual at http://www.digilentinc.com/Data/Products/NEXYS/Nexys_rm.pdf